Особенности консоли Линукс

В данной заметке собраны интересные особенности консоли Линукс и некоторые полезные команды, которыми часто пренебрегают.

Объединение команд

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

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

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

Потоки ввода и вывода

Работа консоли Линукса основана на потоках ввода и вывода. Эти потоки можно перенаправлять в разные стороны. Для направления потока данных используются угловые скобки > и <.

Пример направления потока в файл вместо вывода на экран:

ls > file.txt

Для записи в конец файла следует использовать двойные угловые скобки >>.

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

cat < file.txt

Поток данных от одной программы к другой передается через одиночный пайп «|».

ls | less

Здесь же стоит упомянуть о механизме подстановки одних команд, в другие. Для этого нужно поместить вставляемую команду в скобки и поставить перед ними знак $, то есть $(ВАША_КОМАНДА). Это позволяет встроить результаты подставляемых команд в нужные нам места.

echo $(date)

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

Консольные команды Линукса попадают в историю использования. Для её просмотра введите команду «history«. Эта команда покажет несколько последних сотен записей, причем пронумерованных. По этим номерам их можно вызывать через восклицательный знак, например, !300.

При вводе каждой команды история сдвигается и, соответственно, смещается номер каждой из них.

Также можно вызвать любую предыдущую команду через два восклицательных знака !!.

Операторы bash’a

В консоли Линукса можно немножко «попрограммировать». Пара примеров ниже.

Вызов утилит в цикле:

while sleep 1; do curl -I https://ya.ru/; done

Вывод счетчика:

count=0; while sleep 1; do count=$(($count+1)); echo $count;  done

Конечно, если есть внушительный объем часто повторяющихся операций, то стоит написать полноценный bash-скрипт или программу на любом другом языке программирования. Вот хорошая серия статей по Bash’у с Хабра.

Получение информации

Основным источником информации о командах Линукса является man.

Определение путей к исполняемым файлам и страницам справки:

whereis PROGRAM_NAME

Вывод описания команды:

whatis PROGRAM_NAME

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

which PROGRAM_NAME

13.10.2022

Категория(-и): Linux, Статьи

# #

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