Команды бывают встроенными в оболочку или отдельными утилитами. Наборы утилит для разных компьютеров могут различаться. Здесь в основном приведены утилиты из стандартного набора, работающего в большинстве случаев. Рассмотрены не все, а только самые часто используемые. Здесь не рассмотрено программирование на BASH и нет раздела с перенаправлением вывода данных.
help - Встроенная. Выведет список доступных встроенных команд. Не работает для утилит.
help <команда> - Встроенная. Выведет краткую справку для конкретной встроенной команды. Не работает для утилит.
<команда/утилита> --help - Альтернативный вариант краткой справки. Работает для команд и утилит.
type <команда> - Встроенная. Выведет путь к используемой утилите, или сообщение о том, что это встроенная команда или псевдоним.
type -a <команда/утилита> - Встроенная. То же самое, но выведет список всех возможных для использования вариантов.
man <утилита> - Утилита. Расширенная справка для утилиты. Не работает для встроенных команд.
Кнопки ↑ | ↓ - Перемещение по истории команд. Начни вводить команду и нажми ↑ Если повезёт, то увидишь эту же предыдущую команду
history - Вывод всей сохранённой истории команд
clear - очистка экрана (прокрутка)
reset - Полная очистка экрана
Клавиша Tab (↔) - контекстное дополнение команды, имени переменной, файла или пути. Начни что-то вводить и нажми TAB
./file_name - Запуск на выполнение какого-либо исполняемого файла. Подробнее см. Исполнение файлов
| - Pipe, конвейер. Основная мощь BASH. Вместо вывода на экран результа передаётся следующей команде.
> - перенаправление вывода (результата работы команды/утилиты) в файл. Файл будет перезаписан.
>> - то же самое, но предыдущие данные будут сохранены, новые будут дописаны в конец файла.
👉 cd - Встроенная. Перейти в каталог по указанному пути.
cd <путь> - Путь может быть относительным (от текущего каталога) или абсолютным (относительно корня /)
cd ~ - Перейти в домашний каталог пользователя
cd - - Вернуться в предыдущий каталог
pwd - Встроенная. Отобразить путь к текущему каталогу от корня файловой системы.
👉 ls - Утилита. Показать содержимое текущего каталога.
ls -a - показать содержимое ткущего каталога, включая скрытые файлы (Их имена начинаются с . )
ls -la - вывод содержимого в расширенном формате
ls -lah - вывод содержимого в расширенном формате с человекопонятным размером файлов
👉 mkdir - Утилита. Создать каталог
mkdir <имя каталога> - создать в текущем месте каталог с указанным именем
mkdir -p <полный путь> - создать по указанному пути каталог, включая все отсутствующие родительские
mkdir <имя каталога>{последовательность} - Создать несколько каталогов.
Пример. Команда mkdir mycat-{a,b,c} создаст 3 каталога: mycat-1, mycat-2, mycat-3 Последовательность может быть буквенная. Допустимо использовать синтаксис {1..100} {a..z}. Будут подставлены значения от 1 до 100 и от a до z.
touch <имя файла> - Утилита. Создать пустой файл. Можно создать несколько файлов см. mkdir
cp <что> <куда> - Утилита. Скопировать файл, каталог целиком.
mv <что> <куда> - Утилита. Переместить файл, каталог целиком.
👉 cat - Утилита. Вывод текста.
cat <имя файла> - выведет содержимое файла на экран.
cat <имя файла1, имя файла2...> - выведет содержимое нескольких файлов.
cat << EOF > <имя файла> - Неочевидный способ использования утилиты cat для многострочного ввода с клавиатуры в файл.
Здесь EOF - слово-маркер, означающий конец ввода. Операция > - запись в файл с обнулением предыдущих данных.
Обычно после этой команды вводят построчноданные, а последняя строка должна быть EOF
Line 1
My line 2
....
Line 100500
EOF
👉 less - Утилита. Выод содержимого файла на экран с поиском и навигацией.
less <имя файла> - выведет на экран содержимое файла
Некоторые сочетания клавиш, доступные после открытия файла:
G (Shift+g) - перейти в конец файла
g + g - перейти в начало файла
<номер строки> + g - перейти на строку номер...
/<строка для поиска> - найти и подсветить в тексе требуемую строку. Перейти на первое совпадение.
n - следующее совпадение поиска
N (Shift + n) - предыдущее совпадение.
q - выход
👉 chmod - Утилита. Сменить атрибуты файла
chmod 755 <имя файла> - устанавливает атрибуты файла в состояние rwxr-xr-x
chmod +x <имя файла> - добавляет атрибут x ко всем правам
chmod -R 755 <имя каталога> - Изменяет рекурсивно права для всех файлов и подкаталогов внутри каталога с указанным именем.
ls -la - команда выведет список файлов в виде таблицы.
В первой колонке таблицы находятся атрибуты файла или каталога. Атрибуты каталога начинаются с буквы d. Атрибуты простого файла начинаются с -. Буквы rwx обозначают доступность файла: r(ead) - для чтения w(rite) - для записи e(x)ecute - для исполнения Первая тройка букв rwx относится к владельцу файла. (Это вторая колонка таблицы) Вторая тройка - к группе владельцев (Это третья колонка таблицы) Третья тройка - ко всем остальным. Таким образом, права rwxr-xr-- можно прочитать так: Владелец имеет право на чтение, запись и исполнение. Группа может читать и исполнять. Остальные только читать.
Что означают цифры 755 и как они соотносятся с буквами rwxr-xr-x.
7 - rwx 5 - r-x 5 - r-x
В двоичном представлении 7 = 111 5 = 101. Такой способ кодирования информации называется битовые флаги. В данном случае битовых флагов 9 шт, по одному на каждую букву атрибута. Бит, установленный в 1 означает, что атрибут включен.
Ещё пример: chmod 611 my_file.sh Права на my_file.sh будут выглядеть как rw---x--x. 6 = 110 = (rw-) 1 = 001 (--x)
stat <Имя файла> - Утилита. Очень мощная и полезная.
Полная информация о файле (владелец, путь, дата и время создания,последнего изменеия и открытия на чтение).
С возможностью форматированного вывода для каждого параметра. подробнее см. man stat
👉 Исполнение файлов
./<имя файла> - Чтобы выполнить файл (запустить программу) необходимо перейти в каталог с файлом и набрать эту команду.
Чтобы в Linux файл был выполняемым, должны быть соблюдены два условия:
- В атрибутах файл должен быть установлен флаг исполнения (х). Подробнее см. chmod
- Файл должен быть или скомпилированной программой или текстовым скриптом.
Первая строка текстового скрипта должна указывать на командный процессор, который будет выполнять дальнейшие инструкции.
Эта строка называется shebang.
В случае с BASH она выглядит примерно так: !# /usr/bin/env bash В зависимости от операционной системы возможны вариации.
❗Важно. Эта строка должна быть первой. Пустых строк перед ней и пробелов в начале строки быть не должно. После первой строки желательно оставлять одну пустую строку.
ps -A - Утилита. Список всех процессов. Можно узнать PID (идентификатор процесса)
top - Таблица процессов с детальной информацией в реальном времени
kill -9 <PID> - Уничтожить процесс с номером PID. Подробнее см man kill
htop - Утилита. Продвинутая версия top. Не входит в GNU Core Utils
pkill - Утилита. Продвинутая версия kill. Позволяет уничтожать процесс по имени.
Часто при обработке данных используется pipe (конвейер) |
Пример
ls -la | grep -i 'rw' - в результате выполнения произойдёт следующее:
Сначала сработает команда ls -la, которая создаст список содержимого текущего каталога.
Для каждой строки этого сипска будет выполнена команда grep -i 'rw', которая проверит в строке наличие идущих подряд двух символов rw, без учёта регистра.
Если в строке есть хотя бы одно вхождение rw, то строка будет выведена на экран.
❗Все приведённые в разделе утилиты обладают гораздо большими возможностями, чем описано здесь. Use the Force. Read the man.
👉 grep -r <искомая подстрока> - Утилита. Поиск подстроки
Очень мощная универсальная утилита. Можно использовать регулярные выражения. Искать с учётом и без учёта регистра. Полный список возможностей см. man grep
grep <подстрока> - Используется в конвейере для поиска во входящем наборе данных. Если применено не в конвейере, то будет ожидать ввод с клавиатуры
grep -r <подстрока> - рекурсивно ищет в содержимом текстовых файлах текущего каталога и всех подкаталогов подстроку. Используется без конвейра.
diff -y <файл1><файл2> - Утилита. Сравнение содержимого двух текстовых файлов. Вывод на экран в две колонки для наглядности
tr <символ1> <символ2> - Уилита, используется в конвейере. заменяет один символ на другой. Если второй сивол отсутствует - просто удаляет найденный символ. Работает посимвольно. Если нужно заменить строку - используй sed
sort - Утилита. Используется в конвейере. Упорядочивает входящие строки.
uniq - Утилита. Удаляет ❗ ИДУЩИЕ ПОДРЯД повторяющиеся данные. Поэтому чаще всего используется в конвейере после sort
sed - Утилита. Потоковый редактор, использется в конвейре для сложной обработки входящего текста. Супер-тул. См. man sed
awk - Утилита. Ещё более мощный инструмент для редактирования. По сути, это полноценный язык програмирования.
bc - Утилита. Калькулятор. Позволяет производить вычисления с плавающей точкой. Используется в скриптах BASH и в конвейере.
uname -a - Утилита. Имя компьютера и релиз ядра
cat /etc/*release* - Утилита. Полная информация об операционной ситеме
ip a - Утилита. IP - адрес и вся информация о сетевых интерфейсах
du - Утилита. Использование диска. Аккуратнее, возможен большой вывод. См. сначала man du
df -h - Утилита. Сколько места на дисках свободно
free - Утилита. Информация об оперативной памяти
