Инструменты пользователя

Инструменты сайта


linux:overall:bash:cli

Это старая версия документа!


Оболочка

Born again shell - усовершенствованная оболочка Bourne shell.
Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. написание скриптов.

Общее

  • history - история команд
  • cd - - переход в последнюю директорию
  • -
  • -
  • -
  • -
  • -

Формы команд

  • cmd & - выполнить в фоновом режиме.
  • {cmd1; cmd2} - выполнить группой, в текущей оболочке, () - в подоболочке
  • cmd1 | cmd2 - направить выход cmd1 на вход cmd2
  • cmd1 `cmd2` - выход cmd2 в аргументами в cmd1, $(cmd2) по стандарту POSIX
  • cmd $(выражение) - арифметический результат выражения, аргументами в cmd.
  • cmd1 && cmd2 - логическое И, || ИЛИ
  • !cmd - инверсия кода результата.
  # Выполнить указанные команды в фоне
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 - весь вывод в файл (&1> /dev/null - подавление вывода)

Специальные имена файлов

  • /dev/(stdin|stdout|stderr) - дубликаты 0,1,2.
  • /dev/fd/<n> - дескриптор файла <n>
  • /dev/(tcp|udp)/<host>/<port> - оболочка устанавливает соединение, используя полученный дескриптор для В/Вывода

Внутренние команды

Часть из приведенных команд, имеет аналогичные исполняемые файлы в ОС, но это не одно и тоже.

Ввод/вывод

  • 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 - прервать выполнение задания

Переменные окружения

Временная, локальная переменная (очистится при окончании сессии)
Для долгосрочного хранения, нужно добавить ее в файл .bashrc, в домашней директории. После обновить конфигурацию командой source .bashrc

  # Просмотр текущий переменных
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 - поиск по ранее введенным командам

Примеры

  # Текущая дата в указанном формате
echo $(date '+%Y-%m-%d')
linux/overall/bash/cli.1667622479.txt.gz · Последнее изменение: 2022/11/05 04:27 — admin