Режим командной строки ОС Linux — КиберПедия 

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Режим командной строки ОС Linux

2022-09-15 65
Режим командной строки ОС Linux 0.00 из 5.00 0 оценок
Заказать работу

Лабораторная работа 2.

Режим командной строки ОС Linux

 

Изучим, что такое команда

Все свой действия пользователь реализует выполняя команды, как в графическом, так и в командном режиме. В последнем для этого вводится символьная строка и нажимается клавиша <Enter>. На порядок записи элементов такой строки накладываются жесткие ограничения. Доступ к командной строке можно получить используя программу Терминал (Пуск-Системные-Терминал Fly). Или нажав комбинацию клавиш <Ctrl-Alt-Fn>, где Fn — клавиши от F1 до F6. После нажатия таких клавиш надо зарегистрировать сеанс пользователя stud. Что бы вернуться в командный режим надо набрать <Ctrl-Alt-F7>.

В командной строке может быть записаны одна или несколько команд (в этом случае они разделяются точкой с запятой), но для каждой из них на первом месте обязательно должно стоять ее имя, а уже затем – параметры.

ИМЯ_КОМАНДЫ ПАРАМЕТРЫ

Имя команды и параметры отделяются пробелами (их количество может быть любым). Само имя команды содержит буквы английского алфавита и цифры. Использование других символов ограничено, о чем речь пойдет далее.

Рассмотрим типы и количество команд

Прежде всего, отметим, что существуют команды двух типов. К первому относятся внутренние команды системы. Они не имеют отдельного исполнимого файла на диске, как другой тип – внешние. Последние представлены исполнимыми файлами. Зная имя последнего, его расположение можно найти специальной командой поиска (ее имя find). Принято, что основные системные команды располагаются в определенных каталогах. Прежде всего, такие каталоги зафиксированы в переменной окружения оболочки с именем PATH.

Убедимся в том, что существуют команды двух названных типов. Если дать команду, выполняющую поиск всех файлов с именем cd (в ней / указывает на необходимость поиска во всей файловой системе, а -name фиксирует имя искомого файла)

Find / -name cd

то она выдаст информацию о шести файлах и множестве каталогов, доступ к которым запрещен. Если про каждый из них получить подробную информацию (например, командой file), то окажется, что среди них нет исполнимых файлов. Заметим, что для режима пользователя stud вывод этой команды содержит большое количество строк. Они сообщают о том, что многие каталоги файловой системы не доступны в этом сеансе. Поэтому выполнять описанные в работе действия лучше в сеансе пользователя root.

Такая команда

find / -name cd 2>errlist

будет выводить сообщение об ошибках (параметр 2) не на экран, а в текстовый файл с именем errlist

 

Итак после выполнения такой команды (обратите внимание, что команда выполняется когда активен домашний каталог пользователя - символ ~ до знака $)

stud@Live-Astra:~$ find / -name cd 2>errlist

выводится информация о шести файлах с именем cd 1)/lib/live/mount/rootfs/filesystem.squashfs/usr/share/X11/xkb/symbols/ cd

 

2)/lib/live/mount/rootfs/filesystem.squashfs/usr/share/doc/texlive-doc/latex/ cd

 

3)/lib/live/mount/rootfs/filesystem.squashfs/usr/share/texlive/texmf-dist/tex/latex/ cd

 

4)/usr/share/X11/xkb/symbols/ cd

 

5)/usr/share/doc/texlive-doc/latex/ cd

 

6)/usr/share/texlive/texmf-dist/tex/latex/ cd

 

Далее командой file можно узнать тип файла.

stud@Live-Astra:~$ file /usr/share/texlive/texmf-dist/tex/latex/ cd

Файл cd в такой директории является каталогом (директорией)

/usr/share/texlive/texmf-dist/tex/latex/cd: directory

Файл cd в такой директории является текстом. Дана команда

stud@Live-Astra:~$ file /lib/live/mount/rootfs/filesystem.squashfs/usr/share/X11/xkb/symbols/ cd
и ее результат:

/lib/live/mount/rootfs/filesystem.squashfs/usr/share/X11/xkb/symbols/cd: ASCII text

В программе терминал можно копировать текст, выводимый на экран. Например, можно копировать полный путь к файлу в последних двух командах. Для этого надо выделить необходимый текст и нажав правую кнопку мышки выбрать команду копировать, а далее в нужном месте (в нашем случае после команды file) нажав правую кнопку мышки выполнить команду Вставить. Теперь найдем исполнимый файл (внешнюю команду) утилиты ls. Она выводит информацию о содержимом каталога. Сначала найдем его расположение.

stud@Live-Astra:~$ find / -name ls 2>errlist

Она найдет шесть файлов
/bin/ls
/lib/live/mount/rootfs/filesystem.squashfs/bin/ls
/lib/live/mount/rootfs/filesystem.squashfs/usr/lib/klibc/bin/ls
/lib/live/mount/rootfs/filesystem.squashfs/usr/lib/mc/fish/ls
/usr/lib/klibc/bin/ls
/usr/lib/mc/fish/ls

Определим тип первого

stud@Live-Astra:~$ file /bin/ls

Результат будет таким:

/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=03939d6c76800b64003f260ff6cda1e48a52d10c, stripped

Это описание исполнимого файла ELF (англ. Executable and Linkable Format). 

Внешние команды можно, в свою очередь, поделить на две группы. Первая из них – это программы в машинных кодах. Вторая же состоит из сценариев, о которых мы уже коротко упоминали. Выполним команду file для файла xinitrc расположенный в каталоге /etc/X11/xinit. Результат будет таким.

/etc/X11/xinit/xinitrc: POSIX shell script, ASCII text executable/

 

Задание 10.

Определите (используя системные утилиты find и file ), какие из перечисленных команд

cp

Dir

bg

Dmsg

являются внутренними, а какие команды – внешними.

В конкретной системе, инсталлированной на компьютере, состав команд разный. В процессе работы могут быть добавлены новые команды (представленные исполнимым файлом), а некоторые – удалены. Какой же состав команд можно считать минимальным стандартом? Сколько таких команд 10, 100 или 1000? Абсолютно точного и однозначного ответа нет. Но имеются косвенные указания. В стандартах, связанных с UNIX, перечисляется список утилит. Например, по адресу http://www.unix.org/version3/apis/cu.html их чуть менее 200 (точно - 160). Это первый ответ на вопрос о минимальном количестве системных команд UNIX. Другой список системных утилит можно получить так. Различные версии UNIX/Linux включают систему помощи man, в которой информация собрана в определенном месте диска (каталоге с именем../man).

В версии Astra Linux Orel файлы системы помощи расположены по адресу

/usr/share/man

Все файлы там разделены по подкаталогам, подчиненным главному. Информация о родственных объектах собираются в одном подкаталоге и называются разделом. Содержимое подкаталога../man1 и раздела 1 – это системные команды, а подкаталога../man8 – команды пользователя.

Задание 11.

Проанализируйте состав подкаталогов /bin, /sbin и../man1,../man8/. Сравните их содержимое и количество.

Вновь обратим внимание на то, что некоторые файлы системы помощи man, переведены на разные языки и расположены в разных подкаталогах. Для нашей версии Linux по адресу /usr/share/man имеются подкаталоги, содержащие страницы справочного руководства man переведенного на различные языки. Там есть два подкаталога.

/usr/share/man/man1

/usr/share/man/ru/man1

В первом из них содержатся основные файлы, а во втором – их перевод на русский язык. К примеру, в этих каталогах есть файлы, описывающие команду apropos. Если вызвать файл из первого каталога, будет представлено описание на английском языке, а из второго (находящегося в подкаталоге../ru/man1) – перевод на русский язык. В общем случае приоритет вызова одного из двух файлов определяется файлами конфигурации системы man. Для завершения просмотра помощи man той или иной команды надо нажать q.

Сd /?

На экране появится

 

Вывод имени или смена текущего каталога

 

CHDIR[диск:][путь]

CHDIR..

CD[диск:][путь]

CD..

.. задает переход в родительский каталог.

Команда CD [диск:] отображает имя текущего каталога заданного диска.

Команда CD без параметров отображает имена текущего диска и каталога.

Программы графического режима Windows изменяют свои настройки в зависимости от значений, задаваемых в командной строке параметров. Задавая параметры строки вызова Проводнику (основному файловому менеджеру) можно определить какой каталог будет активным при вызове программы.

Задание 13.

Изучите параметры программ в Windows. Для этого сделайте следующее.

1. Выберите «Пуск», «Вызвать». Далее наберите command. Для завершения сеанса командной строки над, набрать exit. Теперь дайте команду cd /?. Команда dir выводит содержимое активного каталога. А с параметром / p осуществляет постраничный вывод. Изучите содержимое корневой директории диска С:. Создайте каталог ( mkdir ). Сделайте его активным. Просмотрите его содержимое. Каждый раз, задавая команду, фиксируйте количество задаваемых параметров.

2. На рабочем столе создайте ярлык вызова программы..\Windows\explorer. Откройте ее свойства, используя правую кнопку мышки. В строке ввода «Объект» добавьте “c:\”. Закройте окно свойств. Теперь при вызове открывается корневой каталог диска С:. Проверьте это.

Pwd

ps

Первая выводит имя текущего каталога и приведет к следующему результату:

/home/stud

Еще раз отметим, что после регистрации пользователя, активным будет его домашний каталог, что мы и увидели в результате выполнения команды pwd, выводящей имя текущей директории. Кроме термина «Каталог», будем использовать еще и «Папка» или «Директория». Сама команда pwd образована, видимо от слов print working directory.

Вторая команда выводит информацию о процессах, запущенных в текущий момент. Будет выведено что-то похожее на это:

PID TTY TIME CMD

3556 tty1 00:00:00 bash

3610 tty1 00:00:00 ps

Сообщается только об активных на первом виртуальном терминале процессах. Один из них соответствует запущенной после регистрации пользователя программе-оболочке (ее имя bash). Она обслуживает работу пользователя, интерпретируя его команды. Вторая сообщает информацию о ps - последней запущенной системной утилите (команды называют еще и так). Для обоих процессов приводятся такие данные (чаще называемые атрибутами):

PID – идентификатор или идентификационный номер процесса;

TTY – имя терминала, связанного с процессом;

TIME – суммарное время использования центрального процессора,

CMD – имя исполнимого файла, соответствующего процессу.

После загрузки системы активизируется больше процессов, но они не отображаются при запуске ps без параметров.

Вернемся в графический режим, исполнив <Ctrl+Alt+F7>. Но сначала закроем сеансы пользователей командой

Exit

Теперь в графическом режиме исполним команду Меню ПриложенийЭмулятор терминала. Результат будет таким.

 

 

Выполним такую команду:

Pwd

Ее результат

/home/stud

показывает, что работа соответствует командному режиму, загруженного по умолчанию сеанса пользователя stud (его домашний каталог совпадает с его именем).

Затем зададим

ps

Она выведет следующее

PID TTY TIME CMD

4732 pts/0 00:00:00 bash

4775 pts/0 00:00:00 ps

Обращаем внимание, что выведены данные о двух процессах, но связаны они с терминалом, имеющим другое имя (pts/0), а не ttyx, как для виртуального терминала (здесь x соответствует его номеру и может быть целым числом от 1 до 6).

Для завершения работы с программой xfce4-terminal введем команду

Exit

Продолжим работу с компьютером, управляемым Linux, в командном режиме. До начала действий перейдем на первый виртуальный терминал (напомним команду - <Ctrl+Alt+F1>) и запустим сеанс root. Начнем со следующих двух команд:

echo $HOME

/home/stud

echo $SHELL

/bin/bash

Команда echo распечатывает на экране значения переменных оболочки. Они могут быть нескольких типов. Один из них сохраняет системные настройки и называется переменные окружения. В приведенных примерах распечатываются значения двух из них, хранящих имена домашнего каталога пользователя и имя файла его активной оболочки. Для вывода значений переменных командой echo нужно к ее имени добавить знак $.

Убедимся в том, что домашний каталог пользователя совпадает с именем, под которым он зарегистрирован в системе, следующей командой

Whoami

которая выведет

stud

Для того чтобы узнать версию программы-оболочки, используем

Bash –-version

Будет получен следующий результат:

GNU bash, версия 4.4.12(1)-release (x86_64-pc-linux-gnu) 

Copyright (C) 2016 Free Software Foundation, Inc.

Лицензия GPLv3+: GNU GPL версии 3 или более поздней

 <http://gnu.org/licenses/gpl.html>

Это свободное программное обеспечение. Вы можете изменять и распространять его.

НИКАКАЯ ГАРАНТИЯ не предоставляется в пределах, допускаемых законом.

В системе потенциально существует много оболочек. Они выполняют разные функции. Интерпретация команд, которые задают пользователи, – одна из них. Другими функциями оболочки являются поддержка языка программирования и специальных переменных. Все имеющиеся в системе оболочки можно узнать по содержимому файла /etc/shells. Их там четыре, в том числе текущая — bash.

ДОПОЛНЕНИЕ. В текущей версии оболочки набрав команду поиска (например, в файловым менеджере mc), получим список таких файлов: rbash, dash, sh, bash и sh.distrib. Некоторые из перечисленных файлов являются ссылками на bash.

 

Всем пользователям важно знать, как распечатать имена файлов, которые находится в том или ином каталоге. В командном режиме это можно сделать командой ls. Ей можно задать параметры (опции), позволяющие управлять тем, какая информация и в каком виде будет представлена. Примеры двух опций для домашнего каталога пользователя root приведены далее. В результате использования параметра -a печатается еще и информация о скрытых файлах. Обратите внимание, что первый символ имени таких файлов – точка.

Ls –a

..config.dmrc.gnupg tmp   Видео Музыка

..      .dbus   errl.local.Xauthority Документы Общедоступные

.bash_history Desktops errlist.mozilla.xsession-errors Загрузки Рабочий стол

.cache  .directory.fly.pki .xsession-errors.old Изображения Шаблоны

Эта же команда с опцией –l, выводит и другие характеристики: тип файла, права доступа, количество связей, имя его владельца, размер, время последней модификации и имя. Приведем содержимое домашней директории пользователя stud, выполненной без опции -a. Будут печататся данные о следующих файлах: Документы, Загрузки, Общедоступные, Рабочий стол

Ls – l / home / stud


 

К сказанному ранее добавим, что первый символ (d) указывает на тип файла. Это – директория. Цифра 2 у всех файлов во втором поле указывает на количестве связей файла, о чем подробнее будет сказано далее.

Сделаем замечание о том что, видимо, отдавая дань распространенности MS DOS, в Linux существует еще и команда dir, выполняющая такие же функции, как и ls.

Следующая команда просто очищает экран.

Clear

Для завершения сеанса работы пользователя в командном режиме введите следующую команду:

Logout

В ответ на команду может быть выведено

bash: logout: not login shell else `exit`

Возможный перевод сообщения может быть таким: «оболочка не является запущенной, после входа в систему используйте ‘exit’». Для этих же целей можно сразу набрать команду exit или использовать комбинацию клавиш <Ctrl+D>.

И, наконец, чтобы немедленно (now) перезагрузить компьютер, надо задавать

Shutdown –r now

а для полного выключения нужна команда

Shutdown –h now

Две последние команды сейчас давать не надо. Когда операционная система Linux загружена в графическом режиме, завершать работу компьютера следует, используя такую последовательность действий. Следует сначала вернуться в графический режим (напомним, что для этого следует нажать <Ctrl+Alt+F7>). Далее в Меню приложений выберите пункт Выйти, а далее – Выключить.

A r сh

Так распечатывается тип процессора

x86_64

Более полную информацию о процессоре можно получить так

Cat / proc / cpuinfo

Здесь выполнена команда, которая выводит содержимое файла cpuinfo из каталога proc (этот каталог связан со специальной файловой системой). Об этих команде и каталоге далее будет рассказано более подробно.

Следующая из рассмотренных здесь команд – uname. По ней получают более полную информацию о системе (аппаратуре и программном обеспечении), задавая разные параметры. Например, что бы получить тип процессора вводится

Uname –m

(что аналогично команде arch). Дату выпуска версии операционной системы (дистрибутива) получим после ввода команды

Uname – v

#astra30 SMP Wed Jul 22 14:13:05 UTC 2020
а имя компьютера в сети будет выведено после команды

Uname –n

Live-Astra

И, наконец, имя редакции операционной системы (номер версии ядра) выводится после такой команды:

Uname –r

Оно имеет такое значение

5.4.0-34-generic

Сделаем небольшое отступление о присвоении имен версиям ядра. Для операционных систем Linux существует следующая традиция присваивать номера новым версиям. Первые из них нумеровались двумя числами, разделенными точкой. К примеру, первая работоспособная версия Linux имела номер 0.02, а та, для которой был реализован графический интерфейс, – 1.0. Но с определенного времени был сделан переход на три числа. Разработчик ядра Linux Линус Тордвальдс присваивает номера следующим образом. Если последнее число – нечетное, то версия называется исследовательской (нестабильной). Четные числа означают окончательные версии ядра. После версии 2.6.8 нумерация стала четырехзначной, например, 2.6.8.1. Но с 30 мая 2011 года изменена политика именования ядер. Нет стабильных и нестабильных версий. Они стали нумероваться тремя цифрами. Используемая версия ядра 5.4.34.

Вспомним, что компания Microsoft также выпускает сначала бета-версии своих программных продуктов.

Самую свежую информацию о версиях ядра Linux можно получить в Интернете по адресу http://www.kernel.org. Фирмы, формирующие инсталляторы Linux, могут изменить окончательную версию ядра.

Следующая команда (hostname) сообщает имя компьютера, или более точно (в терминах изучаемой операционной системы) имя узла, хоста. Она аналогична команде uname с опцией –n. Такую же информацию можно получить, задав

echo $HOSTNAME

Live-Astra

Важной частью аппаратуры компьютера является оперативная память. Такой командой можно узнать ее размер, а так же наличие свободной, разделяемой (shared) памяти и данные о Swap-разделе.

Free


Для операционных систем важнейшим понятием является файловая система. Ядро семейства UNIX/Linux обслуживает много их типов. Информацию об используемых в данный момент файловых системах можно получить командой df. Она выводит такую информацию.

 

 

Как принято в семействе UNIX/Linux, для каждого устройства, являющегося частью файловой системы, имеется два имени. Первое указывает на имя устройства (в нашем примере оно приведено в левом столбце). А второе определяет точку (вершину) в иерархической файловой системе, где доступны его данные. Мы видим их в самом правом столбце, названном «смонтирована на».

Интересной особенностью семейства UNIX/Linux является тот факт, что обеспечивается доступ к файлам, подготовленным в разных операционных системах. Узнать все активные в данный момент файловые системы и их типы можно по такой команде:

Df -Т

 

Продолжим изучать команды, сообщающие сведения о программно-аппаратном комплексе. Информацию о терминале выдает следующая команда.

Tty

Для первого виртуального терминала результат будет таким

/dev/tty1

а для программы Терминал графического режима, как было получено ранее, вывод такой:

/dev/pts/0

Утилита, результаты работы которой показаны далее, сообщает информацию или изменяет режимы терминального ввода/вывода stty.

Более подробные сведения получим так

Stty – a

 


Теперь выдается больше информации, и в том числе данные о количестве символов на экране дисплея, закреплении комбинаций клавиш за стандартными управляющими сигналами и другая информация.

Прежде всего, отметим eof= ^D (конец файла - комбинацию клавиш <Ctrl+D>). Еще одна комбинация - <Ctrl+C>, за которой закреплен управляющий сигнал «Прекратить процесс». На экране это представлено так intr=^C.

В UNIX существует несколько способов взаимодействия между процессами. Сигналы являются одним из них. Когда процессу посылается сигнал, он останавливает свою работу и выполняет определенное действие. Заметим, что полный перечень сигналов можно найти, скорее всего, в справочном руководстве или в файле с именем signal.h.

Приведем еще три комбинации клавиш:

start= ^Q (временная остановка процесса);

stop= ^S (возобновление процесса после временной остановки);

susp= ^Z (остановка процесса).

Как говорилось выше, задавая команды, пользователь обращается к программе, называемой «Оболочка». Эта программа имеет много специальных переменных (будем называть их еще переменными окружения). Список и значения таких переменных можно получить командой printenv. Если

Для более удобного постраничного просмотра результатов выполнения команд можно использовать утилиты more или less. Их надо связать с выполняемой командой символом |.

printenv | more

При выполнении этой команде выводиться довольно длинный список. Обратим внимание на следующие его элементы (режим пользователя root).

HOSTNAME= localhost.localdomain   Указывает на имя системы в сети (в нашем случае – компьютера) Astra-Live
TERM=linux   Определяет тип терминала (полный их список находиться в базе данных terminfo)
SHELL=/bin/bash   Имя используемой командной оболочки
HISTSIZE=999 В этой переменной задается максимальное количество строк, в файле истории команд.
USER=stud Если на виртуальном терминале зарегистрировать сеанс stud, а затем дать команду su root (sudo - s), то эта переменная будет иметь значение root. В версии Astra Linux требуется пароль администратора.
LOGNAME=root Если на виртуальном терминале зарегистрировать сеанс stud, а затем дать команду su root (sudo - s), то эта переменная будет иметь, как и предыдущая, останется со значением root.
USERNAME=root Если на виртуальном терминале зарегистрировать сеанс stud, а затем дать команду su root (sudo - s), то эта переменная будет иметь пустое значение.
HOME=/root Хранит имя домашнего каталога пользователя.
PWD=/ Сохраняет имя активной директории. Если сменить директорию на другую, то получает значение еще одна переменная оболочки OLDPWD.

Если после названия команды printenv указать имя одной из переменных оболочки, то получим только ее значение.

ЗАМЕЧАНИЕ. Сделаем замечание о наборе команд. Для удобства этой операции можно применять клавишу <Tab>. Ее использование поможет в наборе длинных имен. Но из-за большого количества имеющихся в системе утилит использование этой клавиши не всегда эффективно. К примеру, если набрать print и нажать <Tab> два раза (система не может так зафиксировать единственную команду), будет выведено 2 команды (printenv, printf). И только после ввода printe и последующего однократного <Tab> система сама дополнит ввод до printenv.

Приведем еще несколько переменных окружения и укажем на их роль. Дадим следующую команду.

echo $MAIL

Так можно узнать адрес, где хранятся файлы почтового ящика пользователя.

Командная строка начинается всегда с информации, определяемой переменной $PS1. Напечатаем ее значение.

echo $PS1

\u@\h \w\$

После такого вывода ясно, что указывается в строке перед полем для набора команды (еще называемой строкой приглашения). При загрузке Astra Linux Live CD определена такая информация: \u – имя пользователя, \h – имя хоста (компьютера) и \w – текущая директория. Непосредственно перед полем ввода команд пользователя расположен знак $.

Еще одна специальная переменная оболочки PATH определяет список подкаталогов, где должны содержаться исполнимые файлы вызываемых команд. Используя команду 

echo $ PATH

получим список каталогов содержащих основные утилиты. Для пользователя stud это будут такие каталоги.

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

 

Echo -n “First line - ”

echo $a $b $c

First line – 5 1 one

Echo -n “Second line: ”

echo $d $e

Second line: 5+1 5+one

Script2

Вызвать скрипт можно и по-другому

Script2

Напомним, что в последнем случае между точкой и именем сценария следует поставить пробел. А так же так.

Bash s cript2

Во всех случаях результат будет таким

Hello

Если просто задать имя файла

Script2

то выводится сообщение о том, что файла нет

bash: script2: command not found

Еще раз поясним, что каталог /root, где хранится сценарий, не указан в переменной PATH.

Задание 14.

Проделайте следующие действия. Добавьте в значение переменной PATH каталог / home. После этого надо выполнить еще команду export PATH. Перенесите туда созданный сценарий и опробуйте разные способы его выполнения.

Упомянутая ранее команда cd предназначена для смены активного каталога. Фактически она позволяет «путешествовать» в иерархической системе директорий. Для этого после команды указывайте имя выбранного каталога (спустимся на один уровень вниз) или две точки (поднимемся на один уровень вверх). Сделаем второе, предварительно определив текущий каталог

Pwd

/home/stud

Cd..

Теперь мы находимся в каталоге /home. Поднявшись еще на уровень перейдем в корневом каталоге (точнее – текущим является корневой каталог «/»). Отсюда наш сценарий можно вызвать, указывая полный путь, как делали ранее, или используя относительный

/home/ stud /script2

Вспомним, что в системе существует домашний каталог пользователя stud, расположенный в /home. Сделаем его активным.

Cd home

cd stud

Команде cd можно задать полное имя

Cd /home/ stud

Перенесем в директорию /home сценарий script2 командой копирования файлов.

Cp /root/script2 /home

Этой команде указывается сначала что копировать, а затем – куда. Активным является каталог, по отношению к которому сценарий находится на один уровень выше. Относительный путь для вызова задается следующим образом.

Script2

Задание 15.

Создайте сценарий, например, выводящий простую текстовую строку. Поместите две модификации такого файла, выводящие разные сообщения, в текущий каталог и указанный в переменной PATH. Попробуйте запустить сценарии в обоих каталогах, сделав их активными. Сделайте это в Linux и Windows и определите, какой из файлов с одинаковыми именами (или оба) выполняется при задании относительного имени. Для первой системы Вы знаете, как это сделать, а для второй, перезагрузив компьютер, сначала в меню «Пуск» выберите команду «Выполнить», а затем наберите и исполните такую команду

Copy con files.bat

Команда copy в Windows аналогично cp в Linux. Сначала указывается, откуда копировать (в нашем случае - системная консоль), а затем куда – файл с расширением bat, являющийся аналогом сценария Linux и имеющий свойство исполнимого файла. Для завершения ввода содержимого файла надо набрать <Ctrl+Z>.

Теперь команду можно выполнить так

Files.bat

Вспомните об отличии в исполнении команд из текущего каталога двух операционных систем: Windows и Linux. Если теперь перейти в корневой каталог

сd \

то, указав полное имя файла, можно выполнить созданный сценарий, а короткое

Files.bat

– нет.

Во втором случае будет выведено такое сообщение.

Файл “files.bat” не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Для того чтобы завершить сеанс командного режима в Windows, выполните

Exit

Вернемся в ОС Astra Linux, перезагрузив компьютер.

Man passwd

На экране выводиться содержимое, которое структурировано. Оно разделено на несколько разделов, каждый которых начинается заголовком. Приведем неполный список заголовков файла системы помощи.

NAME определяет имя команды и ее краткое описание;

SYNOPSIS - формат обращения к команда;

DESCRIPTION - подробной описание команды;

OPTIONS - перечисление опций;

AUTHOR - информация об авторе;

COPYRIGHT - сведения об авторских правах;

BUGS - информация о том, куда сообщать об обнаруженных ошибках;

SEE ALSO - список похожих команд. 

Файлы, которые появляются на экране при вызове справочных страниц man, традиционно группируются в каталогах-разделах с именами man1, man2,..., man8 и т. д.

В каталоге man1 - команды оболочки, доступные все пользователям, man5 - форматы системных файлов и обозначения (обычно в /etc). Каталог man8 содержит страницы доступные для системного администрирования (пользователя root).

В версии Astra эти каталоги расположены по адресу /usr/share/man. Там же кроме стандартных каталогов есть еще и каталоги, содержащие страницы, переведенные на разные языки – de (немецкий), fr (французский), ru (русский) и т.д.

Замечание. В системе Windows в командном режиме можно получить справку о командах задав

Help

Подробную информацию о перечисленных командах получим так

Команда /?

Как в системах UNIX/Linux получить аналогичную (более короткую, чем в системе man) справку о команде? Для разных команд надо использовать свои опции. Например, часто это - h или - help. Для команды passwd - это только –h (первая опция), а для ls только вторая. Но для команды ls эта опция закреплена за такой настройкой - печатать размер файла с использование символов M (мегабайт), К и G, а для w – не печатать заголовок столбцов. А вот для команды cal (календарь) две указанные опции означают вывести справку. 

Зададим несколько команд Linux, сообщающих информацию о passwd. Этот термин связан с паролями пользователей, и именует не один объект. Как минимум это файл, содержащий список всех пользователей, и утилита изменения паролей.

Дадим команду

Man -k passwd

Она аналогична 

Apropos passwd

Замечание. В рассматриваемой версии эта система помощи не работает. Приводим ее для полноты картины. Для ее активации требуется дополнительная настройка.

В результате выполнения команды выдаются элементы, имеющие отношения к passwd.

passwd (8) - update password file in batch
fgetpwent_r [getpwent_r] (3) - get passwd file entry reentrantly
getpwent_r (3) - get passwd file entry reentrantly
gpasswd (1) - administer the /etc/group file
lppasswd (1) - add, change, or delete digest passwords
mkpasswd (1) - generate new password, optionally apply it to a user
pam_localuser (8) - require users to be listed in /etc/passwd
pam_passwdqc (8) - Password quality-control PAM module
passwd (1) - update a user's authentication tokens(s)
passwd (5) - password file
passwd [sslpasswd] (1ssl) - compute password hashes
passwd2des [xcrypt] (3) - RFS password encryption
saslpasswd (8) - set a user's sasl password
saslpasswd [saslpasswd2] (8) - set a user's sasl password
smbpasswd (8) - change a user's SMB password
userpasswd (1) - A graphical tool to allow users to change their passwords
vncpasswd (1) - change a VNC password
ypchfn [yppasswd] (1) - change your password in the NIS database
ypchsh [yppasswd] (1) - change your password in the NIS database
yppasswd (1) - change your password in the NIS database

Из этой распечатки видно, что изучаемый термин встречается в разных частях системы man. Такие части называются разделами и именуются цифрами. В частности, в первом ее разделе (9-я строка) приводится информация об утилите passwd, а в пятом (10-я строка) – о файле.

У наиболее развитой и часто используемой системы помощи Linux существуют разные режимы работы. С параметром

Man –h

можно получить короткую справку об этих режимах. Если после имени команды указать номер, то поиск будет осуществляться только в соответствующем разделе. Скажем, из предыдущих примеров стало ясно, что информация о passwd расположена разных разделах. В одном из них (с номером 1) содержится информация об утилите, а в другом (разделе 5) – о файле. Получить первую информацию можно командой

Man 1 passwd

а вторую – командой

Man 5 passwd

Она в версии Astra Linux Live CD так же не работает.

Помощь операционных систем семейства UNIX/Linux весьма разнообразна. К примеру, после такого ввода

whatis <имя команды>

получим короткую информацию о команде, записанной после whatis. В нашей версии (Live CD) она так же не работает. Для решения этой проблемы в реальной системе надо дать команду

Make whatis

Команда man с параметром – f аналогична whatis. К примеру, команда

Man -f passwd

выведет следующее (не работает для Live CD).

passwd (1) - update a user's authentication tokens (s)
passwd (5) - password file
passwd [sslpasswd] (1ssl) - compute password hashes

В Linux существуют внутренние команды. Их определение дается позже, а полный их список выдается по такой команде

Help

В этом списке содержатся внутренние команды системы и операторы, применяемые при написании сценариев, всего более чем о 50 объектах. Далее приводятся примеры команды help для команды pwd и оператора цикла for

Help pwd

pwd: pwd [-LP]

Print the current working directory. With the -P option, pwd prints the physical directory, without any symbolic links; the -L option makes pwd follow symbolic links.

Help for

for: for NAME [in WORDS...;] do COMMANDS; done

The `for' loop executes a sequence of commands for each member in a list of items. If `in WORDS...;' is not present, then `in "$@"' is assumed. For each element in WORDS, NAME is set to that element, and the COMMANDS are executed.

for ((: for ((exp1; exp2; exp3)); do COMMANDS; done

Equivalent to

((EXP1))

while ((EXP2)); do

COMMANDS

((EXP3))

done

EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is omitted, it behaves as if it evaluates to 1.

Заметим, что при описании команд элементы, записываемые в квадратных скобках, означают не обязательный элемент. Такое правило справедливо для многих систем.

В системе Linux еще есть система помощи аналогичная man и называемая info. Она содержит документацию с гиперссылками на другие свои разделы. Ей, в качестве параметра, дается имя команды.

Приведем пример вызова утилиты info для параметра passwd.

I nfo passwd

Откроется окно, в котором появиться справка, сразу о трех элементах: двух утилитах и специальном файле. Приведем только заголовки и назначение этих элементов. Обратим внимание на то, что, как и для системы man, выводятся номера разделов справки.

PASSWD(1)                ALT Linux               PASSWD(1)

 

ИМЯ

passwd - обновление аутентификационных данных пользователя

 

СИНТАКСИС

passwd [-h] [-k] [имя пользователя]

 

ОПИСАНИЕ

passwd используется для обновления аутентификационных данных пользователя.

 

==========================================================================

 

PASSWD(8)       Системное администрирование       PASSWD(8)

 

ИМЯ

  Обвязка passwd

 

СИНТАКСИС

  passwd [ОПЦИЯ...] [ИМЯ ПОЛЬЗОВАТЕЛЯ]

 

==========================================================================

 

PASSWD(5)     Руководство программиста Linux      PASSWD(5)

 

ИМЯ

  passwd - файл паролей

 

ВНИМАНИЕ. Для завершения работы со справочной системой info надо перейти в командный режим, нажав «:», а затем клавиши <q> и <Enter>.

В некотоых дистрибутивах


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.301 с.