Лабараторная работа. Лабораторная работа 2. Лабораторная работа 2 Навыки работы с командной строкой Введение
Скачать 37.05 Kb.
|
$ true || echo Nothing to see here $ echo Success && false && echo Bye $ false; echo Not; echo Conditional $ echo "D*" $ echo This is the command "`date`" $ echo This is the command '`date`' $ echo Today is `date` $$ type vi $ type ls $ which date $ echo $HISTSIZE$ echo Hello Student $ history 5 $ history $$ uname --nodename $ uname $ whoami $ ls -l (у вас может отличаться), который представляет ваш домашний каталог.Лабораторная работа №2 Навыки работы с командной строкой Введение Лабораторная работа №2: Навыки командной строки. Выполнив эту лабораторную работу, студенты узнают, как использовать основные функции оболочки. В этой лабораторной работе вы будете выполнять следующие задачи: Изучите возможности Bash Используйте переменные оболочки Уметь использовать цитирование Файлы и каталоги В этой работе мы получим доступ к интерфейсу командной строки (CLI) для Linux, чтобы узнать, как выполнять основные команды и что влияет на их выполнение. Большинство пользователей, вероятно, лучше знакомы с тем, как команды выполняются с использованием графического интерфейса пользователя (GUI). Таким образом, эта задача, вероятно, представит вам некоторые новые концепции, если вы ранее не работали с CLI. Чтобы использовать CLI, вам нужно будет ввести команду, которую вы хотите запустить. Окно, в котором вы вводите свою команду, называется приложением-эмулятором терминала. Внутри окна Терминала система отображает подсказку, за которой следует мигающий курсор: sysadmin@localhost: Когда вы набираете команду, она появляется у текстового курсора. Вы можете использовать клавиши, такие как home, end, backspace и клавиши со стрелками для редактирования команды вы набираете. Не менее важен синтаксис командной строки, который представляет собой порядок, в котором команда, параметр (ы) и аргумент (ы) должны быть введены в приглашение, чтобы оболочка распознала, как правильно выполнить команду. Правильный синтаксис командной строки выглядит следующим образом: команда [параметры] [аргументы] Введите команду ls в командной строке, в которой будут перечислены файлы и каталоги, содержащиеся в вашем текущем рабочем каталоге. В этом примере не будут использоваться никакие параметры или аргументы. После того, как вы ввели команду правильно, нажмите Enter, чтобы выполнить ее. sysadmin@localhost: |
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Desktop
drwxr-xr-x 4 sysadmin sysadmin 4096 Oct 31 19:52 Documents
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Downloads
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Music
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Pictures
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Public
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Templates
drwxr-xr-x 2 sysadmin sysadmin 4096 Oct 31 19:52 Videos
Обратите внимание, что каталоги считаются типом файлов в файловой системе Linux.
Шаг 2
К командам также можно добавлять аргументы. Добавление местоположения определенного каталога в ls команду отобразит информацию для этого каталога. Используйте аргумент / tmp для отображения подробной информации о файлах в каталоге /tmp.
ls -l / tmp
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
sysadmin
sysadmin@localhost:
Linux
Многие выполняемые команды производят такой текстовый вывод. Вы можете изменить вывод, производимый командой, используя параметры после имени команды.
Параметры команды можно указать несколькими способами. Традиционно в UNIX параметры выражались дефисом, за которым следует другой символ; например: -n.
В Linux параметры иногда также могут быть заданы двумя символами дефиса, за которыми следует слово, или слово через дефис; например: --nodename.
Выполните uname команду еще раз дважды в терминале, один раз с параметром -n и еще раз с параметром --nodename. Это отобразит имя хоста сетевого узла, также найденное в подсказке.
uname -n
uname --nodename
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
localhost
Шаг 5
Команда pwd используется для отображения вашего текущего «местоположения» или текущего «рабочего» каталога. Введите следующую команду, чтобы отобразить рабочий каталог:
pwd
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
Текущий каталог в приведенном выше примере - /home/sysadmin. Это также называется вашим домашним каталогом, особым местом, где вы можете управлять файлами, а другие пользователи обычно не имеют доступа. По умолчанию этот каталог называется так же, как ваше имя пользователя, и находится под /home каталогом.
Как видно из вывода команды, /home/sysadminLinux использует косую черту /для разделения каталогов, чтобы создать то, что называется путем . Начальная косая черта представляет каталог верхнего уровня, известный как корневой каталог.
Символ тильды,
1 ls
2 ls -l
3 ls -l /tmp
4 whoami
5 uname
6 uname -n
7 uname --nodename
8 pwd
9 echo Hi
10 history
sysadmin@localhost:
7 uname --nodename
8 pwd
9 echo Hi
10 history
11 history 5
Шаг 3
Чтобы выполнить команду еще раз, введите восклицательный знак и номер списка истории. Например, чтобы выполнить 9-ю команду в списке истории, вы должны выполнить следующее:
!9
sysadmin@localhost:
Hello Student
sysadmin@localhost:
1000
Шаг 3
Введите следующую команду, чтобы отобразить значение переменной PATH:
echo $PATH
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
/bin/date
Выходные данные команды which говорят вам, что когда вы выполняете команду date, система запустит ее /bin/date. Команда which использует переменную PATH для определения местоположения команды date.
Типы команд
В этом разделе мы узнаем о четырех типах команд, используемых в Linux. Понимание того, откуда берутся эти команды и чем они отличаются, позволяет администратору более эффективно управлять системой.
Шаг 1
Один из способов узнать больше о команде - посмотреть, откуда она пришла. Команда type может быть использована для определения информации о типе команды.
type command
В оболочке вашего CLI есть несколько разных источников команд:
Внутренние команды встроены в саму оболочку. Хорошим примером является команда cd (сменить каталог), поскольку она является частью оболочки Bash. Когда пользователь вводит команду cd, оболочка Bash уже выполняется и знает, как ее интерпретировать, не требуя запуска дополнительных программ.
Команда type идентифицирует команду cd как внутреннюю команду:
sysadmin@localhost:
ls is aliased to `ls --color=auto'
Шаг 3
Псевдонимы могут использоваться для сопоставления более длинных команд с более короткими последовательностями клавиш. Когда оболочка видит выполняемый псевдоним, она заменяет более длинную последовательность перед тем, как приступить к интерпретации команд.
Чтобы определить, какие псевдонимы установлены в текущей оболочке, используйте команду alias:
sysadmin@localhost:
vi is /usr/bin/vi
sysadmin@localhost:
Цитирование
Оболочка Bash использует три типа кавычек: одинарные кавычки ( '), двойные кавычки ( ") и обратные кавычки ( `). Эти кавычки имеют специальные функции в оболочке Bash, как описано ниже.
Чтобы понять одинарные и двойные кавычки, учтите, что иногда вы не хотите, чтобы оболочка рассматривала некоторые символы как особые. Например, *символ используется как подстановочный знак. Что, если вы хотите, чтобы этот *символ означал буквально звездочку?
Одиночные 'кавычки не позволяют оболочке «интерпретировать» или раскрывать все специальные символы. Часто одинарные кавычки используются для защиты строки (последовательности символов) от изменения оболочкой, чтобы строка могла быть интерпретирована командой как параметр, влияющий на способ выполнения команды.
Двойные "кавычки останавливают раскрытие глобальных символов, таких как звездочка ( *), вопросительный знак ( ?) и квадратные скобки ( []). Двойные кавычки действительно обеспечивают как расширение переменной и подстановки команд (см назад кавычки) , чтобы иметь место.
Обратные кавычки ` вызывают подстановку команд, которая позволяет выполнить команду в строке другой команды.
При использовании кавычек их следует вводить парами, иначе оболочка не сочтет команду выполненной.
Хотя одинарные кавычки полезны для блокировки интерпретации одного или нескольких символов оболочкой, оболочка также предоставляет способ заблокировать интерпретацию всего одного символа, называемого «экранированием» символа. Чтобы избежать особого значения метасимвола оболочки, символ \ обратной косой черты используется в качестве префикса для этого символа.
Шаг 1
Выполните следующую команду, чтобы использовать обратные кавычки ` (находящиеся под символом
Today is Mon Dec 3 21:29:45 UTC 2018
Шаг 2
Вы также можете разместить $(перед командой и )после команды для выполнения подстановки команды:
echo Today is $(date)
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
This is the command `date`
Шаг 4
Обратите внимание, что вы также можете поместить символ обратной косой черты перед каждым символом обратной кавычки. Выполните следующее:
echo This is the command \`date\`
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
This is the command Mon Dec 3 21:37:33 UTC 2018
Шаг 6
Двойные кавычки будут влиять на символы подстановки, отключая их особое значение. Выполните следующее:
echo D*
echo "D*"
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
D*
Важно
Цитирование может показаться тривиальным и странным в данный момент, но по мере того, как вы приобретете больше опыта работы в командной оболочке, вы обнаружите, что хорошее понимание того, как работают разные кавычки, имеет решающее значение для использования оболочки.
Контрольные утверждения
Обычно вы вводите одну команду и выполняете ее, когда нажимаете Enter . Оболочка Bash предлагает три разных оператора, которые можно использовать для разделения нескольких команд, вводимых вместе.
Самый простой разделитель - точка с запятой ( ;). Использование точки с запятой между несколькими командами позволяет выполнять их одну за другой, последовательно слева направо.
Эти && символы создать логический оператор «и». Команды, разделенные &&, выполняются условно. Если команда слева от && символа успешна, то команда справа && также будет выполнена. Если команда слева от && не работает, то команда справа && не выполняется.
Эти || символы создают логический оператор «или», который также вызывает условное выполнение. Когда команды разделены символом ||, то только в случае сбоя команды слева выполняется команда справа от ||. Если команда слева от команды выполнена || успешно, то команда справа || не будет выполнена.
Чтобы увидеть, как работают эти управляющие операторы, вы будете использовать два специальных исполняемых файла: true и false. true Исполняемая всегда удается, когда он выполняет, в то время как, то false исполняемая всегда терпит неудачу. Хотя это может не дать вам реалистичных примеров того, как && и || работает, это дает возможность продемонстрировать, как они работают, без необходимости вводить новые команды.
Шаг 1
Выполните следующие три команды вместе, разделенные точкой с запятой:
echo Hello; echo Linux; echo Student
Как вы можете видеть, результат показывает, что все три команды выполняются последовательно:
sysadmin@localhost:
Not
Conditional
Обратите внимание, что в предыдущем примере все три команды по-прежнему выполняются, даже если первая не удалась. Хотя вы не можете видеть из вывода команды false, она выполнилась. Однако, когда команды разделены символом ; , они полностью независимы друг от друга.
Шаг 3
Затем используйте логические «и» для разделения команд:
echo Start && echo Going && echo Gone
Ваш результат должен быть похож на следующий:
sysadmin@localhost:
Success
Первая echo команда выполнена успешно, и мы видим ее результат. Команда false выполняется с ошибкой, поэтому последняя echo инструкция не выполняется.
Шаг 5
Символы «или», разделяющие следующие команды, демонстрируют, как сбой перед оператором «или» вызывает выполнение команды после него; однако успешный первый оператор заставляет команду не выполняться:
false || echo Fail Or
true || echo Nothing to see here
Ваш результат должен быть похож на следующий:
sysadmin@localhost: