Настройка и работа в Linux
adb5321d

Команды bash


Перед тем как перечислять в алфавитном порядке наиболее употребительные команды bash, необходимо назвать три «справочных» команды, используемых почти исключительно при интерактивной работе, — help, info и man. Команда help выдает краткое описание любой встроенной команды bash, info предоставляет доступ к входящему в состав системы GNU развернутому справочнику, в котором bash, разумеется, подробно описан. Команда man позволяет обратиться к другому, более старому справочнику, где есть информация о ряде команд, не описанных в справочнике info (вообще говоря, команда info, не найдя сведений в собственном справочнике, ищет их и в справочнике man, однако кое-что можно получить только с помощью самой man). Естественно, команда help help позволяет получить справку по help, команда info info — по info, а man man — по man.

В приводимом ниже списке каждая команда снабжена пометкой, указывающей, как получить ее более подробное описание: (b) означает, что команда встроенная и, следовательно, информацию о ней предоставляет команда help, (i) соответствует команде info, (m) — команде man.

. (b) — синоним для команды source

: (b) — синоним для команды true

[ (b) — сокращение для команды test, но, в отличие от нее, требует закрывающей квадратной скобки

(( (b) — соотносится с командой let так же, как [ соотносится с test

[[ (b) — не вполне команда, а особое выражение, очень похожее на команду [ (test)

alias(b) — позволяет задавать псевдонимы для других команд

at(m) — ставит программу в очередь на выполнение в заданное время

atq(m) — в заданное время проверяет очередь программ на выполнение

atrm(m) — в заданное время удаляет программу из очереди на выполнение

awk(i) — язык для построчного сканирования и обработки файлов: простой, маленький и быстрый, но притом достаточно мощный

batch(m) — выполняет программу, когда система не слишком загружена



builtin(b) — позволяет вызвать встроенную команду bash, даже когда ее имя перекрыто именем функции или псевдонимом


bzip2(i) — более новая, чем gzip, программа сжатия файлов; работает медленнее, чем gzip, но обеспечивает лучший коэффициент сжатия

cat(i) — «склеивает» заданные файлы и выдает их на стандартный выход

cd(b) — изменяет текущий каталог

chgrp(i), chmod(i), chown(i) — изменяют соответственно группу, права доступа и владельца файла

command(b) — позволяет вызвать команду — встроенную или внешнюю, даже когда ее имя перекрыто именем функции или псевдонимом

cp(i) — копирует файлы и каталоги

cpio(i) — CoPy In/Out — системная программа создания архивов; не содержит встроенной поддержки сжатия файлов, но может использоваться совместно с gzip или bzip2

crontab(m) — позволяет модифицировать список регулярных заданий пользователя

cut(i) — выдает на стандартный выход выбранные части строк текстового файла

dd(i) — копирует файл блоками, выполняя одновременно некоторые дополнительные действия

du(i) — вычисляет объем, занятый на диске указанными файлами

declare(b) — позволяет задать имя и тип переменной (применяется не слишком часто, так как bash допускает использование необъявленных переменных)

df(i) — сообщает количество свободного и занятого места на диске

diff(i) — находит различия между двумя файлами

dirs(b) — выводит список запомненных подкаталогов

echo(b/i) — выводит на стандартный выход заданное сообщение

enable(b) — позволяет разрешить или запретить использование встроенных команд

eval(b) — выполняет аргументы так, как если бы они были введены в командной строке (ранее часто использовалась для обращения к переменной, имя которой содержится в другой переменной)

exec(b) — выполняет системный вызов exec, т. е. замещает процесс, где исполняется скрипт, другим, заданным в качестве параметра; часто используется в так называемых «скриптах-обертках» (wrapper scripts), настраивающих среду для выполнения программ

exit(b) — завершает работу командного интерпретатора (и, стало быть, скрипта)

export(b) — делает переменные данного скрипта доступными для других процессов, запущенных из командного интерпретатора



file(m) — определяет тип файла ( по содержимому; эвристический анализ выполняется на основе гибкой настраиваемой базы данных)

find(m/i) — ищет файлы по множеству признаков, но не по содержимому

false(b/i) — возвращает код ненормального завершения

getopts(b) — довольно сложная команда, похожая на аналогичное средство системной библиотеки; позволяет создавать скрипты, понимающие сложные опции

grep(m) — ищет строки в файлах; может использоваться совместно с командами find и xargs для поиска файлов по содержимому

gzip(i) — стандартная для GNU программа сжатия файлов; способна распаковывать (но не создавать) файлы в формате compress — более старой UNIX-программы сжатия

install(i) — копирует файлы, одновременно позволяя устанавливать их атрибуты

kill(b/m) — позволяет послать процессу сигнал; по умолчанию посылается сигнал SIGTERM, останавливающий процесс; отсюда такое устрашающее название

less(m) — улучшенная по сравнению с more программа просмотра файлов

let(b) — вычисляет арифметическое выражение; выражение может содержать многие операторы языка Си, а также переменные

local(b) — создает локальную (внутри функции) переменную

logout(b) — завершает работу командного интерпретатора, являющегося основным (login shell)

ln(i) — создает ссылки на файлы (дополнительные жесткие или символические)

ls(i) — выводит список файлов (например, для заданного каталога)

md5sum(i) — подсчитывает для файлов 128-битовую контрольную сумму

mkdir(i) — создает подкаталог

mktemp(m) — создает временный файл (чтобы избежать «дыр» в безопасности, создавайте временные файлы только с помощью mktemp)

more(m) — постранично выводит файл на экран (служит для просмотра длинных файлов)

mv(i) — перемещает или переименовывает файлы (каталоги)

patch(i) — применяет diff-файл (см. diff) к исходному файлу

popd(b) — удаляет подкаталоги из списка запомненных подкаталогов

printf(b/i) — обеспечивает форматированную печать данных (имеет много общего с одноименной функцией стандартной библиотеки Си)



pushd(b) — добавляет подкаталог в список запомненных подкаталогов и перемещает подкаталоги внутри этого списка

pwd(b/i) — выводит путь к текущему каталогу

read(b) — считывает строку со стандартного ввода и присваивает прочитанные значения указанным переменным

readonly(b) — защищает переменную от случайных изменений

return(b) — выходит из функции и передает управление в вызвавшую программу

rm(i) — удаляет файлы (подкаталоги)

rmdir(i) — удаляет пустые подкаталоги

sed(i) — потоковый редактор (a Stream EDitor); дает возможность быстро производить с текстом простые операции (например, поиск с заменой)

select(b) — довольно сложная команда, позволяющая организовывать меню с выбором вариантов из списка (в действительности это даже не команда, а особая синтаксическая форма, родственная синтаксическим формам while и for)

set(b/i) — очень сложная команда:

  • без параметров выдает список всех определенных на данный момент переменных и функций
  • с параметрами вида +<option>, -<option> или -o <option> включает или выключает «на лету» режимы настройки командного интерпретатора (их можно устанавливать и в командной строке)
  • все прочие параметры присваиваются последовательно переменным $1 $2 ... $N


  • (Команда help set не дает полного описания set; оно есть только в описании bash, получаемом командой info bash.)

    shift(b) — сдвигает позиционные параметры ($1 становится равным $N, $2 — $N+1, $3 — $N+2 и т.д.)

    sort(i) — сортирует файл

    source(b) — читает и выполняет команды, содержащиеся в файле (часто используется для того, чтобы вынести определение переменных в отдельный файл конфигурации)

    tar(i) — программа создания архивов (Tape ARchiver); не содержит встроенной поддержки сжатия файлов, но может использоваться совместно с gzip или bzip2

    test(b/i) — вычисляет значение логического выражения; в основном проверяет атрибуты файлов (существует? пуст? исполняемый? подкаталог? и т. д.), однако может также сравнивать строки

    tr(i) — заменяет одни символы на другие по заданной таблице подстановки



    trap(b) — позволяет связать с сигналом особую обработку

    true(b/i) — возвращает код успешного завершения

    type(b) — возвращает «тип» слова, заданного в качестве аргумента (встроенная команда, псевдоним, функция и т. д.)

    ulimit(b) — устанавливает или сообщает системные квоты для процесса (процессов)

    umask(b) — назначение описано в статье «Файлы, файлы, файлы»

    unalias(b) — удаляет имя из списка псевдонимов

    uniq(i) — выводит уникальные (или, наоборот, повторяющиеся) строки в отсортированном файле

    unset(b) — удаляет имя из списка переменных

    wc(i) — подсчитывает число символов, слов и строк в файле

    xargs(m) — получает параметры со стандартного входа и вызывает с этими параметрами заданную программу (по умолчанию echo)

    Как уже говорилось, здесь перечислены далеко не все команды. В типичной системе GNU/Linux их значительно больше: есть, например, команды, выводящие восьмеричный и шестнадцатеричный дамп памяти (od и hexdump), печатающие начало и конец файла (head и tail), а ко многим упомянутым командам есть дополнительные (например, diff3 позволяет сравнить три файла, а bzcat — просмотреть файл, упакованный программой bzip2). Не попали в наш обзор и системные переменные, имеющие для bash особый смысл. Обо всем этом и о многом другом вы сможете узнать, набрав в командной строке слова info bash.

    Вернуться


    Содержание раздела