Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:overall:bash:cli [2022/11/05 03:30] admin |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Оболочка ====== | ||
- | |||
- | Born again shell - усовершенствованная оболочка Bourne shell.\\ | ||
- | Командный процессор, | ||
- | |||
- | |||
- | ===== Общее ===== | ||
- | * **history** - история команд | ||
- | |||
- | |||
- | ===== Формы команд ===== | ||
- | * **cmd &** - выполнить в фоновом режиме. | ||
- | * **{cmd1; cmd2}** - выполнить группой, | ||
- | * **cmd1 | cmd2** - направить выход **cmd1** на вход **cmd2** | ||
- | * **cmd1 `cmd2`** - выход **cmd2** в аргументами в **cmd1**, $(cmd2) по стандарту POSIX | ||
- | * **cmd $(выражение)** - арифметический результат **выражения**, | ||
- | * **cmd1 && cmd2** - логическое **И**, || **ИЛИ** | ||
- | * **!cmd** - инверсия кода результата. | ||
- | |||
- | |||
- | <code bash> | ||
- | # Выполнить указанные команды в фоне | ||
- | nroff file > file.txt & | ||
- | |||
- | # Выполнить команда последовательно | ||
- | cd; ls | ||
- | |||
- | # Переадресация результатов | ||
- | (date; who; pwd) > logfile | ||
- | |||
- | # Отсортировать, | ||
- | sort file | pr -3 | lpr | ||
- | |||
- | # Отобразить эхом сообщение об ошибке при неудаче | ||
- | grep 'XX file' || echo "XX not found" | ||
- | |||
- | # Различия в файлах, | ||
- | diff -u <(sort file1) <(sort file2) | less | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Переадресация ввода/ | ||
- | |0|Ввод|stdin|Клавиатура| | ||
- | |1|Вывод|stdout|Экран терминала| | ||
- | |2|Вывод ошибок|stderr|Экран терминала| | ||
- | |||
- | * **cmd > file** - перезаписать выводом команды файл >> присоединить | ||
- | * **cmd < file** - входные данные для команды из файла | ||
- | * **cmd 2> file** - вывод только **ошибок** в файл | ||
- | * **cmd &1> file** - весь вывод в файл **(& | ||
- | |||
- | |||
- | |||
- | ==== Специальные имена файлов ==== | ||
- | * **/ | ||
- | * **/ | ||
- | * **/ | ||
- | |||
- | |||
- | ===== Внутренние команды ===== | ||
- | Часть из приведенных команд, | ||
- | |||
- | ==== Ввод/ | ||
- | * **echo** - выводит выражение или переменную stdout. | ||
- | * **printf** - форматированный вывод | ||
- | * **read** - читает значение из **stdin** | ||
- | |||
- | ==== Файловая система ==== | ||
- | * **cd** - сменить текущий каталог | ||
- | * **pwd** - текущий каталог | ||
- | * **pushd, popd, dirs** - работа с каталогами | ||
- | |||
- | ==== Действия над переменными ==== | ||
- | * **getopts** - разбор переменных, | ||
- | * **let** - арифметические операции над переменными | ||
- | * **eval** - транслирует список аргументов в команды | ||
- | * **set** - изменяет значение внутренних переменных скрипта | ||
- | * **unset** - удаляет переменную | ||
- | * **export** - сделать переменную доступной дочерним процессам | ||
- | * **declare, typeset** - задают (и накладывают) ограничения на переменные | ||
- | |||
- | ==== Управление сценарием ==== | ||
- | * **source, . (точка)** - запуск указанного сценария | ||
- | * **exit** - завершение работы сценария | ||
- | * **exec** - заменяет текущий процесс новым | ||
- | * **shopt** - позволяет изменять ключи оболочки "на лету" | ||
- | |||
- | ==== Управление запущенными задачами ==== | ||
- | * **jobs** - список задач, запущенных в оболочке (информация по номеру) | ||
- | * **fg** - вернуть текущее задание из фонового режима (или на указанный номер) | ||
- | * **bg** - перенести текущее задание в фоновый режим | ||
- | * **wait** - ожидает завершение фоновых задач | ||
- | * **kill** - прервать выполнение задания | ||
- | |||
- | |||
- | ===== Переменные окружения ===== | ||
- | Временная, | ||
- | Для долгосрочного хранения, | ||
- | |||
- | <code bash> | ||
- | # Просмотр текущий переменных | ||
- | env | ||
- | |||
- | myVar=Value | ||
- | echo myVar | ||
- | |||
- | export myVar=Value | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Горячие клавиши ===== | ||
- | * **Ctrl + A (E)** - перемещает курсор в начало (конец) строки | ||
- | * **Ctrl + Y** - вставить из (своего) буфера | ||
- | * **Ctrl + U (W)** - копирует в буфер всю строку (слово) ДО курсора (k-после курсора) | ||
- | * **Ctrl + S (P)** - приостановить (возобновить) вывод | ||
- | * **Ctrl + L** - очистить экран (clear) | ||
- | * **Ctrl + R** - поиск по ранее введенным командам | ||
- | |||
- | |||
- | ===== Примеры ===== | ||
- | |||
- | <code bash> | ||
- | # Текущая дата в указанном формате | ||
- | echo $(date ' | ||
- | |||
- | </ | ||
- | |||