Основные команды Linux: (почти) полное руководство с примерами

getopts — встроенная команда Bash, используемая для разбора аргументов, передаваемых скрипту из командной строки. Она позволяет обрабатывать серии опций, объединенных в один аргумент и дополнительные аргументы, передаваемые опцией.

Использование Bash и ch

Название bash является аббревиатурой от Bourne Again SHell. Эта аббревиатура указывает на то, что bash наследует интерпретатор Bourneshell (команда sh), созданный Стивом Борном (Steve Bourne) из AT&TBell Labs. Брайан Фокс (Brian Fox) из Free Software Foundation создал bash в составе проекта GNU. В дальнейшем разработка перешла в руки Чета Рами (Chet Ramey) в Case Western Reserve University.

Интерпретатор bash содержит возможности, которые разрабатывались для интерпретаторов sh и ksh во времена ранних версий UNIX, а также ряд возможностей интерпретатора csh.

Можно рассчитывать, что в большинстве систем Linux, кроме специализированных (например, встраиваемых или загружающихся с внешнего диска), интерпретатор bash применяется по умолчанию. В специализированных системах может потребоваться командный интерпретатор меньшего объема, что подразумевает и ограничение возможностей.

Большинство примеров в этой

Подсчёт параметров

Опробуем её:

Подсчёт параметров

#!/bin/bash echo There were $# parameters passed. Вызовем сценарий.

Подсчёт параметров

./myscript 1 2 3 4 5 В результате скрипт сообщит о том, что ему передано 5 параметров.

Подсчёт параметров

Подсчёт количества параметров в скрипте

Подсчёт параметров

Эта переменная даёт необычный способ получения последнего из переданных скрипту параметров, не требующий знания их количества. Вот как это выглядит:

Подсчёт параметров

#!/bin/bash echo The last parameter was ${!#} Вызовем скрипт и посмотрим, что он выведет.

Подсчёт параметров

Обращение к последнему параметру

Подсчёт параметров

Заключение, несколько советов

Мы рассмотрели основные команды Linux с примерами, надеемся, что они окажутся вам полезными. Напоследок приведем несколько советов по использованию терминала одной строкой.

Читайте также:  Как запретить пользователям ssh выполнять команды Linux

Двойной символ & (амперсанд)

Предназначен для выполнения нескольких команд последовательно:

команда1 && команда2 && команда3

Вертикальная черта | (pipe)

Вводит результат первой команды в последующую. Например, следующая команда добавит таблицу процессов к команде поиска:

ps axu | grep имя_процесса

Стрелки вверх и вниз на клавиатуре

Помогают осуществлять навигацию по последним командам. Стрелка вверх — предыдущая выполненная команда, стрелка вниз — следующая.

history — история

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

Новая вкладка bash

Не всегда удобно иметь несколько окон. Терминал, как браузер, дает возможность открыть несколько вкладок сочетанием клавиш Ctrl+Shift+T.

Копирование и вставка, прерывание команды

Пробовали ли вы копировать текст и вставлять в терминал? Пробовали Ctrl+C? Ctrl+C прервет выполнение текущей команды, например таблицы процессов, сбросит текст, введенный в строку. Скопировать текст из bash — Ctrl+Shift+C. Вставить текст в bash — Ctrl+Shift+V.

Условия. Множественный выбор

Если необходимо сравнивать какоую-то одну переменную с большим количеством параметров, то целесообразней использовать оператор case.

#!/bin/bash echo "Выберите редатор для запуска:" echo "1 Запуск программы nano" echo "2 Запуск программы vi" echo "3 Запуск программы emacs" echo "4 Выход" read doing #здесь мы читаем в переменную $doing со стандартного ввода case $doing in 1) /usr/bin/nano # если $doing содержит 1, то запустить nano ;; 2) /usr/bin/vi # если $doing содержит 2, то запустить vi ;; 3) /usr/bin/emacs # если $doing содержит 3, то запустить emacs ;; 4) exit 0 ;; *) #если введено с клавиатуры то, что в case не описывается, выполнять следующее: echo "Введено неправильное действие" esac #окончание оператора case.

Читайте также:  Обзор MIUI 12.5, когда выйдет и какие смартфоны получат обновление

Результат работы:

$ ./ Выберите редатор для запуска: 1 Запуск программы nano 2 Запуск программы vi 3 Запуск программы emacs 4 Выход

После выбор цифры и нажатия Enter запуститься тот редактор, который вы выбрали(если конечно все пути указаны правильно, и у вас установлены эти редакторы 🙂 )

Прведу список логических операторв, которые используются для конструкции if-then-else-fi:

-z # строка пуста -n # строка не пуста =, (==) # строки равны != # строки неравны -eq # равно -ne # неравно -lt,(< ) # меньше -le,(<=) # меньше или равно -gt,(>) #больше -ge,(>=) #больше или равно ! #отрицание логического выражения -a,(&&) #логическое «И» -o,(||) # логическое «ИЛИ»

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

Основы BASH. Часть 2.

Вызов команд из истории

В моем случае это снова запустил ls -lrt, как вы можете видеть из вывода моей истории, это было на шесть команд выше моей последней команды.

Вы также можете использовать «!» как своего рода поиск. Используя мой пример истории bash, скажем, я хотел запустить последний цикл for, который был запущен. Вы можете использовать «! -14», но трудно вспомнить, сколько команд было назад, по крайней мере, для меня. Вместо этого мы можем сказать bash просто выполнить последнюю команду, начинающуюся с «for», вот так:

Пример:

[email protected]:~$ !for for i in `cat names`; do echo -n «FORWARD: $i — REVERSE: «; dig +short $i; done

Вы также можете указать по номеру, какую команду вы хотите запустить. Например, я хотел запустить команду 18 в приведенном выше примере. Используя восклицательный знак, сделать это можно так:

Например:

[email protected]:~$ !18 freshclam

Цикл for-in

Оператор for-in предназначен для поочередного обращения к значениям перечисленным в списке. Каждое значение поочередно в списке присваивается переменной.

Синтаксис следующий:

for переменная in список_значений

команды

done

Пример работы цикла for-in с параметрами

#!/bin/bash# Цикл выдаст все переданные аргументыfor n in [email protected]do echo «$n»done

Для тестирования скрипта введи команду, введя перед названием исполняемого файла оператор bash, а в качестве параметров — one two four:

bash parametr one two four

В результате получим следующее:

one

two

four

Содержимое файлов

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

cat file1 | more

Если вам нужно не только посмотреть содержимое файла, но и отредактировать его, тогда нужно использовать одну из утилит: nano либо vim. Это текстовые редакторы, при помощи которых вы можете открыть файл, изменить и сохранить его. Несмотря на кажущееся сходство, эти утилиты имеют ряд отличий; большинство пользователей сходится во мнении, что nano представляет собой более простой редактор, в то время как vim обладает большими возможностями.

С русскоязычной документацией nano вы можете ознакомиться по этой ссылке:

А документация vim доступна в этом разделе: