Аргумент командной строки linux

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Учимся писать базовые скрипты в Unix и Linux

Если вы еще не умеете писать скрипты в системах Unix и Linux, эта статья познакомит с основами написания скриптов.

Написание скриптов в системе Unix или Linux может быть одновременно и простым и чрезвычайно сложным. Все зависит от того, что вы пытаетесь выполнить, используя скрипт. В этой статье мы рассмотрим основы создания скриптов — то, как начать, если вы никогда раньше не создавали скрипты.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Идентификация оболочки.

Сегодня в системах Unix и Linux есть несколько оболочек, которые вы можете использовать. Каждая оболочка — это интерпретатор команд. Он считывает команды и отправляет их ядру для обработки.

Bash является одной из самых популярных оболочек, но существуют также zsh , csh , tcsh и korn . Есть даже оболочка под названием fish , которая может быть особенно полезна новичкам в Linux благодаря полезным параметрам автозаполнения команд. Чтобы определить, какую оболочку вы используете, используйте эту команду:

Вы также можете определить свою основную оболочку, просмотрев файл /etc/passwd :

Один из способов определить, какие оболочки доступны в системе Linux, — это проверить файл /etc/shells .

На выводе видно, что доступно всего девять оболочек.

Какую оболочку выбрать пользователю во многом зависит от того, что он привык использовать, поскольку большая часть синтаксиса в скриптах не представляет команды, которые вы найдете в /bin , /us /bin или /usr/local/bin . Вместо этого они являются частью самой оболочки и называются «встроенными». Сюда входят команды, используемые для цикла (например, for и while ).

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

Выбор оболочки

Чтобы определить, какая из доступных оболочек будет выполнять команды вашего скрипта, в первой строке вашего скрипта пропишите одну из строчек, приведенных ниже:

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

Выполнение команд

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

Читайте также:  Драйвер для руля defender challenge turbo для windows 10

Чтобы запустить этот скрипт, выполните команду:

Добавление комментариев

Рекомендуется добавлять к скриптам комментарии, объясняющие, для чего предназначен скрипт, особенно если скрипт длинный или имеется сложный синтаксис. Просто начните комментарий со знака # . Комментарии могут быть отдельными строками или добавляться в конец команд в скрипте. Например:

Делаем файл исполняемым

Чтобы сделать скрипт исполняемым, используйте команду chmod и убедитесь, что предполагаемые пользователи могут его запустить. Например:

Если скрипт не сделан как исполняемый, его все равно можно запустить с помощью символа . Это встроенная функция, которая «выполняет» (т. е. читает и запускает) скрипт.

Использование команды if

Команда if позволяет вам проверять условия или переменные. В примере ниже мы проверяем, запускается ли скрипт в пятницу.

Базовый синтаксис команды if — if value == other_value . Знак == выполняет сравнение, и необходимо убедиться, что оболочка видит по одному значению с каждой стороны оператора сравнения. По этой причине часто приходится заключать свои строки в кавычки.

Понятие переменных

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

Запрос пользователя на ввод данных

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

Человек, запускающий сценарий, увидит приглашение и введет ответ :

Использование аргументов командной строки

Чтобы использовать аргументы, которые пользователь вводит вместе с именем скрипта, необходимо знать, как их идентифицировать. Аргументам скрипта будут присвоены имена $1 , $2 и так далее. Для любого аргумента, который вы собираетесь использовать неоднократно, вы можете рассмотреть возможность присвоения этих значений более значимым именам переменных.

В этом случае мы проверяем, является ли первый предоставленный аргумент числовым, и закрываем скрипт, если это не так. Если ответ — число, то далее назначаем его переменной $loops , чтобы использовать позже в скрипте.

Еще одна полезная вещь, которую нужно сделать в скрипте, — это сначала проверить наличие аргументов. В противном случае синтаксис, подобный показанному выше, не сработает, потому что оболочка увидит выражение if [[! = 3 *]]; , что приведет к синтаксической ошибке.

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

Различные способы создания циклов

Есть несколько способов сделать цикл внутри скрипта. Используйте for , если вы хотите повторить действие заданное количество раз. Например:

Используйте while , если хотите выполнять какое-то действие, пока условие существует или не существует.

Использование оператора case

Операторы case позволяют вашим скриптам реагировать по-разному в зависимости от того, какие значения проверяются. В приведенном ниже скрипте используются разные команды для извлечения содержимого файла, предоставленного в качестве аргумента, путем определения типа файла.

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

Читайте также:  Run windows start menu programs

Реакция на ошибки

Вы можете обнаруживать ошибки в скриптах и реагировать на них и тем самым избегать других ошибок. Хитрость заключается в том, чтобы проверять выходные коды после запуска команд. Если код выхода имеет значение, отличное от нуля, произошла ошибка. В этом скрипте проверяется, запущен ли Apache, но отправляем результат проверки в /dev/null . Затем проверяем, не равен ли код выхода нулю, поскольку это означает, что команда ps не получила ответа. Если код выхода не равен нулю, сценарий сообщает пользователю, что Apache не запущен.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Linux Команды и аргументы

Вступление

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

Интерфейс командной строки или оболочка, используемая в большинстве систем Linux, называется bash, что означает Bourne снова shell. Оболочка bash включает в себя элементы sh (исходная оболочка Bourne), csh (оболочка C) и ksh (оболочка Korn).

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

аргументы

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

Этот процесс называется расширением оболочки. Когда оболочка закончит сканирование и изменение этой строки, она будет выполнена.

удаление пробелов

Части, разделенные одним или несколькими последовательными пробелами (или табуляциями), рассматриваются как отдельные аргументы, любые пробелы удаляются. Первый аргумент — это команда, которую нужно выполнить, остальные аргументы передаются команде. Оболочка эффективно разделяет вашу команду на один или несколько аргументов.

Это объясняет, почему следующие четыре разные командные строки одинаковы после расширения оболочки.

Команда echo отобразит каждый аргумент, полученный от оболочки. Команда echo также добавит новый пробел между полученными аргументами.

одинарные кавычки

Вы можете предотвратить удаление пробелов, заключив их в кавычки. Содержимое строки в кавычках рассматривается как один аргумент. На скриншоте ниже эхо получает только один аргумент.

двойные кавычки

Вы также можете предотвратить удаление пробелов, заключив их в двойные кавычки. То же, что и выше, echo получает только один аргумент.

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

эхо и цитаты

Строки в кавычках могут содержать специальные экранированные символы, распознаваемые командой echo (при использовании echo -e). На приведенном ниже снимке экрана показано, как использовать новую строку и вкладку (обычно восемь пробелов).

Команда echo может генерировать больше, чем пробелы, табуляции и переводы строк. Посмотрите на странице справочника список вариантов.

команды

внешние или встроенные команды?

Не все команды являются внешними по отношению к оболочке, некоторые встроены. Внешние команды — это программы, которые имеют свой собственный двоичный файл и находятся где-то в файловой системе. Многие внешние команды находятся в / bin или / sbin. Встроенные команды являются неотъемлемой частью самой программы оболочки.

Читайте также:  Установить opera vpn для linux

тип

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

Как видите, команда cd встроена, а команда cat — внешняя.

Вы также можете использовать эту команду, чтобы показать вам, является ли команда псевдонимом или нет.

запуск внешних команд

Некоторые команды имеют как встроенную, так и внешнюю версии. Когда одна из этих команд выполняется, встроенная версия имеет приоритет. Для запуска внешней версии необходимо ввести полный путь к команде.

который

Команда which будет искать двоичные файлы в переменной окружения $ PATH (переменные будут объяснены позже). На приведенном ниже снимке экрана показано, что cd встроен, а ls, cp, rm, mv, mkdir, pwd и являются внешними командами.

псевдонимы

создать псевдоним

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

сокращать команды

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

параметры по умолчанию

Псевдонимы могут использоваться для предоставления командам параметров по умолчанию. В приведенном ниже примере показано, как установить параметр -i по умолчанию при вводе команды rm.

В некоторых дистрибутивах псевдонимы по умолчанию используются для защиты пользователей от случайного удаления файлов (‘rm -i’, ‘mv -i’, ‘cp -i’)

просмотр псевдонимов

Вы можете предоставить один или несколько псевдонимов в качестве аргументов команды alias, чтобы получить их определения. Отсутствие аргументов дает полный список текущих псевдонимов.

unalias

Вы можете отменить псевдоним с помощью команды unalias.

отображение расширения оболочки

Вы можете отобразить расширение оболочки с помощью set -x и прекратить его отображение с помощью set + x. Возможно, вы захотите использовать это далее в этом руководстве, или если у вас есть сомнения относительно того, что именно оболочка делает с вашей командой.

Упражнение, практика и решение:

1. Сколько аргументов в этой строке (не считая самой команды).

коснитесь ‘/etc/cron/cron.allow’ ‘abc123.txt’ «abc456.txt»

Код:

2. Является ли tac встроенной командой оболочки?

Код:

3. Существует ли псевдоним для rm?

Код:

4. Прочтите man-страницу rm, убедитесь, что вы понимаете опцию -i rm. Создайте и удалите файл для проверки опции -i.

Код:

5. Выполните: псевдоним rm = ‘rm -i’. Проверьте свой псевдоним с помощью тестового файла. Это работает как ожидалось?

Код:

6. Перечислите все текущие псевдонимы.

Код:

7. Создайте псевдоним «город», который повторяет ваш родной город.

Код:

8. Используйте свой псевдоним, чтобы проверить, что он работает.

Код:

9. Выполните set -x, чтобы отобразить расширение оболочки для каждой команды.

Код:

10. Проверьте функциональность set + x, выполнив псевдонимы вашего города и rm.

Код:

11. Выполните set + x, чтобы остановить отображение расширения оболочки.

Код:

12. Удалите псевдоним вашего города.

Код:

13. Каково расположение команд cat и passwd?

14. Объясните разницу между следующими командами:
эхо
/ Бен / эхо

Код:

15. Объясните разницу между следующими командами:
эхо привет
эхо -n привет

Код:

16. Покажите ABC с двумя пробелами между B и C.
(необязательный)

Код:

17. Выполните следующую команду (не используйте пробелы), чтобы отобразить точно так же, как показано ниже

Решение заключается в использовании вкладок с.

18. Используйте echo для точного отображения следующего:

Код:

19. Используйте одну команду echo для отображения трех слов в трех строках.

Источник

Оцените статью