Ниже приведен список из 100 команд Linux, каждая с описанием и примерами использования.
SSH (Secure Shell) используется для безопасного подключения к удаленной машине.
- программа для входа на удаленную машину и выполнения команд на удаленной машине. Предназначена для обеспечения безопасной зашифрованной связи между двумя ненадежными хостами через незащищенную сеть. Соединения X11, произвольные TCP-порты и сокеты UNIX-домена также могут быть перенаправлены через защищенный канал.
# Подключение к удаленному серверу
ssh username@hostname
# Подключение с использованием определенного порта
ssh -p 2222 username@hostname
Изменение текущего каталога.
# Переход в домашний каталог
cd ~
# Переход в каталог /etc
cd /etc
# Подняться на один уровень выше
cd ..
Отображение содержимого каталога.
- выводит информацию о файлах (по умолчанию текущего каталога). Сортирует записи в алфавитном порядке, если не указаны параметры -cftuvSUX или --sort.
# Показать файлы в текущем каталоге
ls
# Показать все файлы, включая скрытые
ls -a
# Показать файлы с подробной информацией
ls -l
Вывод полного имени текущего рабочего каталога.
pwd
Nano - это простой и удобный текстовый редактор.
- это маленький и дружелюбный редактор. Копирует внешний вид и функциональность Pico, но является свободным ПО и включает несколько функций, которых нет в Pico, таких как: открытие нескольких файлов, построчный скроллинг, отмена/повтор, подсветка синтаксиса, нумерация строк и мягкая перенастройка длинных строк.
# Открыть файл в nano
nano filename.txt
# Сохранить изменения и выйти
Ctrl + O, Enter, Ctrl + X
Vim - мощный текстовый редактор.
- это текстовый редактор, совместимый с Vi. Он может использоваться для редактирования всех видов простого текста. Особенно полезен для редактирования программ.
Есть много улучшений по сравнению с Vi: многоуровневая отмена, много окон и буферов, подсветка синтаксиса, редактирование командной строки, автодополнение имен файлов, онлайн-помощь, визуальный выбор и т.д. См. ":help vi_diff.txt" для краткого описания различий между Vim и Vi.
# Открыть файл в vim
vim filename.txt
# Войти в режим вставки
i
# Сохранить изменения и выйти
:wq
Копирование файлов и каталогов. Копирует ИСТОЧНИК в ЦЕЛЬ или несколько ИСТОЧНИКОВ в КАТАЛОГ.
# Копировать файл
cp source.txt destination.txt
# Копировать каталог рекурсивно
cp -r source_dir destination_dir
Перемещение или переименование файлов и каталогов. Переименовать ИСТОЧНИК в ЦЕЛЬ или переместить ИСТОЧНИК(И) в КАТАЛОГ.
# Переместить файл
mv source.txt destination.txt
# Переименовать файл
mv oldname.txt newname.txt
Удаление файлов или каталогов.
# Удалить файл
rm filename.txt
# Удалить каталог и его содержимое
rm -r directory_name
Изменение прав доступа к файлу. Изменить режим каждого ФАЙЛА на МОД. С параметром --reference, изменить режим каждого ФАЙЛА на режим ФАЙЛА-ОБРАЗЦА.
# Сделать файл исполняемым
chmod +x script.sh
# Установить конкретные права
chmod 755 filename.txt
Изменение владельца и группы файла.
- изменяет владельца и/или группу каждого указанного файла.
# Изменить владельца файла
chown username filename.txt
# Изменить владельца и группу каталога рекурсивно
chown -R username:group directory_name
Отображение информации о запущенных процессах.
- отображает информацию о выбранных активных процессах. Для получения обновляемой информации используйте top.
# Показать все запущенные процессы
ps aux
# Показать процессы конкретного пользователя
ps -u username
# Показать все процессы, запущенные от root
ps -U root -u root u
Отправка сигнала для завершения процесса.
- по умолчанию сигнал для kill - TERM. Используйте -l или -L для отображения доступных сигналов. Особо полезные сигналы включают HUP, INT, KILL, STOP, CONT и 0. Альтернативные сигналы могут быть указаны тремя способами: -9, -SIGKILL или -KILL.
# Завершить процесс по PID
kill 1234
# Принудительное завершение процесса
kill -9 1234
Отображение системной информации в реальном времени, включая процессы.
- программа предоставляет динамический вид работающей системы в реальном времени. Может отображать общую информацию о системе, а также список процессов или потоков, управляемых ядром Linux. Типы отображаемой информации и порядок, размер отображаемой информации для процессов можно настроить пользователем и сохранить между перезапусками.
top
Интерактивный просмотрщик процессов.
- это кроссплатформенный ncurses-базированный просмотрщик процессов. Он похож на top, но позволяет прокручивать вертикально и горизонтально, а также взаимодействовать с помощью указательного устройства (мыши). Вы можете наблюдать все процессы, запущенные на системе, вместе с их аргументами командной строки, а также видеть их в виде дерева, выбирать несколько процессов и выполнять действия над ними одновременно.
htop
Отображение использования дискового пространства.
- отображает количество доступного дискового пространства на файловой системе, содержащей каждый указанный файл. Если файл не указан, показывается доступное пространство на всех текущих смонтированных файловых системах. Дисковое пространство по умолчанию отображается в 1К блоках, если не установлена переменная окружения POSIXLY_CORRECT, в этом случае используются 512-байтовые блоки.
# Показать использование дискового пространства в удобочитаемом формате
df -h
Оценка использования дискового пространства.
- суммирует использование диска для набора файлов, рекурсивно для каталогов.
# Показать размер текущего каталога и подкаталогов
du -h
# Показать размер конкретного каталога
du -sh directory_name
Архивация файлов.
- программа архивации, предназначенная для хранения нескольких файлов в одном файле (архиве) и управления такими архивами. Архив может быть как обычным файлом, так и устройством (например, ленточным приводом, отсюда и название программы, которое означает ленточный архиватор), который может находиться как на локальной, так и на удаленной машине.
# Создать tar-архив
tar -cvf archive.tar file1 file2
# Распаковать tar-архив
tar -xvf archive.tar
# Создать сжатый tar.gz-архив
tar -czvf archive.tar.gz file1 file2
# Распаковать сжатый tar.gz-архив
tar -xzvf archive.tar.gz
Сжатие файлов.
- уменьшает размер указанных файлов с использованием кодирования Лемпеля-Зива (LZ77). Всякий раз, когда это возможно, каждый файл заменяется файлом с расширением .gz, сохраняя при этом те же права собственности, режимы доступа и время модификации. (По умолчанию расширение z используется для MS-DOS, OS/2 FAT, Windows NT FAT и Atari.) Если файлы не указаны или указан файл "-", стандартный ввод сжимается в стандартный вывод. Gzip будет пытаться сжимать только обычные файлы. В частности, он проигнорирует символьные ссылки.
# Сжать файл
gzip filename.txt
# Распаковать файл
gunzip filename.txt.gz
Поиск файлов в иерархии каталогов.
- ищет в дереве каталогов, начинающемся с каждого указанного начального пункта, оценивая выражение слева направо, в соответствии с правилами приоритета, пока результат не станет известен (левая сторона ложна для операций "и", истина для "или"), после чего find переходит к следующему имени файла. Если начальный пункт не указан, предполагается `.'.
# Найти файл по имени
find /path/to/search -name filename.txt
# Найти файлы, измененные за последние 7 дней
find /path/to/search -mtime -7
Поиск шаблонов в файлах.
- ищет PATTERNS в каждом ФАЙЛЕ. PATTERNS - это один или несколько шаблонов, разделенных символами новой строки, и grep выводит каждую строку, которая соответствует шаблону. Обычно PATTERNS следует заключать в кавычки, когда grep используется в командной строке.
# Искать шаблон в файле
grep 'pattern' filename.txt
# Искать рекурсивно во всех файлах в каталоге
grep -r 'pattern' /path/to/search
Объединение и отображение содержимого файлов.
# Показать содержимое файла
cat filename.txt
# Объединить несколько файлов и показать результат
cat file1.txt file2.txt
Просмотр содержимого файла по одной странице за раз.
- программа, похожая на more(1), но имеющая много дополнительных функций. Less не требует считывания всего файла перед запуском, поэтому с большими файлами он запускается быстрее, чем текстовые редакторы, такие как vi(1). Less использует termcap (или terminfo на некоторых системах), поэтому может работать на различных терминалах. Есть даже ограниченная поддержка печатных терминалов. (На печатном терминале строки, которые должны быть напечатаны вверху экрана, предшествуют символу "^".)
# Просмотреть файл
less filename.txt
# Прокрутка вперед и назад
# Вперед: Space или f
# Назад: b
Отображение последней части файла.
- выводит последние 10 строк каждого ФАЙЛА на стандартный вывод. При наличии более одного ФАЙЛА, перед каждым указывается имя файла.
# Показать последние 10 строк файла
tail filename.txt
# Показать последние 50 строк файла
tail -n 50 filename.txt
# Следить за обновлениями файла (полезно для логов)
tail -f filename.txt
Отображение первой части файла.
# Показать первые 10 строк файла
head filename.txt
# Показать первые 20 строк файла
head -n 20 filename.txt
Мощный язык обработки текста.
# Показать первый столбец файла
awk '{print $1}' filename.txt
# Показать строки, где второй столбец больше 100
awk '$2 > 100' filename.txt
Потоковый редактор для фильтрации и преобразования текста.
# Заменить 'old' на 'new' в файле
sed 's/old/new/g' filename.txt
# Удалить строки, содержащие шаблон
sed '/pattern/d' filename.txt
Безопасное копирование файлов между хостами.
# Копировать файл на удаленный хост
scp localfile.txt username@remotehost:/path/to/remote/directory
# Копировать файл с удаленного хоста
scp username@remotehost:/path/to/remotefile.txt localfile.txt
Быстрый и универсальный инструмент для копирования файлов.
# Синхронизировать локальный каталог с удаленным
rsync -avz /path/to/local/directory username@remotehost:/path/to/remote/directory
# Синхронизировать удаленный каталог с локальным
rsync -avz username@remotehost:/path/to/remote/directory /path/to/local/directory
Неинтерактивный загрузчик файлов по сети.
# Скачать файл по URL
wget http://example.com/file.zip
# Скачать файл и сохранить его с другим именем
wget -O newfile.zip http://example.com/file.zip
Инструмент для передачи данных с или на сервер.
# Скачать файл по URL
curl -O http://example.com/file.zip
# Скачать файл и сохранить его с другим именем
curl -o newfile.zip http://example.com/file.zip
Утилита для работы с пакетами в системах, основанных на Debian.
# Обновить индекс пакетов
sudo apt-get update
# Установить пакет
sudo apt-get install package_name
# Удалить пакет
sudo apt-get remove package_name
Менеджер пакетов для дистрибутивов на основе RPM.
# Установить пакет
sudo yum install package_name
# Удалить пакет
sudo yum remove package_name
# Обновить все пакеты
sudo yum update
Менеджер пакетов для пакетов Python.
# Установить пакет
pip install package_name
# Удалить пакет
pip uninstall package_name
# Показать установленные пакеты
pip list
Платформа для разработки, доставки и запуска приложений в контейнерах.
# Загрузить образ из репозитория Docker
docker pull image_name
# Запустить контейнер из образа
docker run image_name
# Показать запущенные контейнеры
docker ps
# Остановить запущенный контейнер
docker stop container_id
Управление системой и менеджером служб systemd.
# Запустить службу
sudo systemctl start service_name
# Остановить службу
sudo systemctl stop service_name
# Включить службу при загрузке системы
sudo systemctl enable service_name
# Отключить службу при загрузке системы
sudo systemctl disable service_name
# Проверить статус службы
sudo systemctl status service_name
Запрос и отображение журналов от journald.
# Показать все журналы
sudo journalctl
# Показать журналы для конкретной службы
sudo journalctl -u service_name
# Следить за новыми записями в журнале
sudo journalctl -f
Вывод сетевых соединений, таблиц маршрутизации, статистики интерфейсов, подключений маскарада и членства в многоадресных группах.
# Показать все сетевые соединения
netstat -a
# Показать прослушиваемые порты
netstat -l
# Показать сетевую статистику
netstat -s
Утилита для исследования сокетов.
# Показать все открытые TCP-соединения
ss -t
# Показать все открытые UDP-соединения
ss -u
# Показать прослушиваемые сокеты
ss -l
Настройка сетевых интерфейсов.
# Показать информацию о сетевых интерфейсах
ifconfig
# Назначить IP-адрес интерфейсу
sudo ifconfig eth0 192.168.1.100
Показывает/манипулирует маршрутами, устройствами, политиками маршрутизации и туннелями.
# Показать сетевые интерфейсы
ip a
# Назначить IP-адрес интерфейсу
sudo ip addr add 192.168.1.100/24 dev eth0
# Показать таблицу маршрутизации
ip route
Отправляет пакеты ICMP ECHO_REQUEST к сетевым хостам.
# Пинговать хост
ping hostname
# Пинговать хост с указанным количеством пакетов
ping -c 4 hostname
Показывает маршрут, по которому пакеты передаются к сетевому хосту.
# Проследить маршрут к хосту
traceroute hostname
Запрашивает систему доменных имен (DNS) для получения отображения доменного имени или IP-адреса.
# Найти IP-адрес домена
nslookup domain.com
Утилита для поиска в DNS.
# Выполнить DNS
-запрос
dig domain.com
# Выполнить обратный DNS-запрос
dig -x ip_address
Показывает или устанавливает имя хоста системы.
# Показать имя хоста
hostname
# Установить новое имя хоста
sudo hostname new_hostname
Показывает текущее имя пользователя.
whoami
Выполняет команду от имени другого пользователя, обычно суперпользователя.
# Выполнить команду от имени суперпользователя
sudo command
# Редактировать файл с привилегиями суперпользователя, используя nano
sudo nano filename.txt
Изменение пароля пользователя.
# Изменить собственный пароль
passwd
# Изменить пароль другого пользователя (только суперпользователь)
sudo passwd username
Добавление пользователя в систему.
# Добавить нового пользователя
sudo adduser username
Изменение учетной записи пользователя.
# Добавить пользователя в группу
sudo usermod -aG groupname username
Удаление пользователя из системы.
# Удалить пользователя
sudo deluser username
Добавление новой группы.
# Добавить новую группу
sudo groupadd groupname
Удаление группы.
# Удалить группу
sudo groupdel groupname
Планирование периодических заданий.
# Редактировать crontab текущего пользователя
crontab -e
# Показать запланированные задания текущего пользователя
crontab -l
Планирование выполнения команды на определенное время.
# Запланировать выполнение команды на определенное время
echo "command" | at 10:00
Показывает, как долго система работает.
uptime
Отображение использования памяти.
# Показать использование памяти в удобочитаемом формате
free -h
Отчет о статистике виртуальной памяти.
# Показать статистику виртуальной памяти
vmstat
Отчет о статистике процессора и ввода/вывода.
# Показать статистику процессора и ввода/вывода
iostat
Печать сообщений кольцевого буфера ядра.
# Показать все сообщения
dmesg
# Показать сообщения и следить за новыми
dmesg -w
Показать информацию о блочных устройствах.
# Показать блочные устройства
lsblk
Нахождение и печать атрибутов блочного устройства.
# Показать атрибуты блочного устройства
blkid
Монтирование файловой системы.
# Смонтировать файловую систему
sudo mount /dev/sdX1 /mnt
Размонтирование файловой системы.
# Размонтировать файловую систему
sudo umount /mnt
Управление таблицей разделов диска.
# Просмотр и редактирование разделов диска
sudo fdisk /dev/sdX
Создание файловой системы Linux.
# Создать файловую систему ext4
sudo mkfs.ext4 /dev/sdX1
Проверка и восстановление файловой системы Linux.
# Проверить и восстановить файловую систему
sudo fsck /dev/sdX1
Преобразование и копирование файла.
# Создать загрузочную USB-флешку
sudo dd if=path/to/image.iso of=/dev/sdX bs=4M status=progress
Программа для управления разделами.
# Запустить parted на диске
sudo parted /dev/sdX
Обеспечивает быстрое, безопасное и масштабируемое ведение системных журналов.
# Перезапустить службу rsyslog
sudo systemctl restart rsyslog
Вращает, сжимает и отправляет системные журналы по почте.
# Вручную повернуть журналы
sudo logrotate /etc/logrotate.conf
Управление системным именем хоста.
# Установить системное имя хоста
sudo hostnamectl set-hostname new_hostname
Управление системным временем и датой.
# Показать текущие настройки времени
timedatectl
# Установить системный часовой пояс
sudo timedatectl set-timezone America/New_York
Доступ к аппаратным часам.
# Показать текущее время аппаратных часов
sudo hwclock
# Установить аппаратные часы на текущее системное время
sudo hwclock --systohc
Показывает или устанавливает системную дату и время.
# Показать текущую дату и время
date
# Установить дату и время
sudo date MMDDhhmmYYYY
Язык калькулятора с произвольной точностью.
# Запустить интерактивный калькулятор bc
bc
Вычисление выражений.
# Выполнить арифметические операции
expr 2 + 2
Построение и выполнение командных строк из стандартного ввода.
# Использовать с find для удаления файлов
find /path/to/search -name "*.tmp" | xargs rm
Создание псевдонима для команды.
# Создать псевдоним
alias ll='ls -la'
# Удалить псевдоним
unalias ll
Вывод строки текста.
# Вывести строку
echo "Hello, World!"
# Вывести значение переменной
echo $HOME
Отображение или изменение окружения.
# Показать все переменные окружения
env
# Выполнить команду с измененными переменными окружения
env VAR=value command
Установка переменных окружения.
# Установить переменную окружения
export VAR=value
# Экспортировать переменную в окружение
export PATH=$PATH:/new/path
Выполнение команд из файла в текущем шелле.
# Выполнить скрипт
source script.sh
Отображение истории команд.
# Показать историю команд
history
# Очистить историю команд
history -c
Создание псевдонима для команды.
# Создать псевдоним
alias ll='ls -la'
# Удалить псевдоним
unalias ll
Отображение руководства для команды.
# Показать руководство для ls
man ls
Отображение информации о командах.
# Показать информацию для ls
info ls
Отображение однострочного описания команды.
# Показать однострочное описание ls
whatis ls
Поиск по страницам руководства по ключевому слову.
# Искать ключевое слово в страницах руководства
apropos keyword
Поиск исполняемых файлов, исходных файлов и файлов руководства для команды.
# Найти файлы для ls
whereis ls
Поиск исполняемого файла, связанного с командой.
# Найти исполняемый файл для ls
which ls
Описание команды.
# Описать команду ls
type ls
Выполнение команд в оболочке Bourne.
# Запустить скрипт оболочки
sh script.sh
Выполнение команд в оболочке Bourne-again.
# Запустить скрипт оболочки
bash script.sh
Выполнение команд в оболочке Z.
# Запустить скрипт оболочки
zsh script.sh
Выполнение команд в оболочке Korn.
# Запустить скрипт оболочки
ksh script.sh
Выполнение команд в оболочке Debian Almquist.
# Запустить скрипт оболочки
dash script.sh
Мультиплексор терминала.
# Начать новую сессию screen
screen
# Повторно подключиться к отсоединенной сессии
screen -r
Мультиплексор терминала.
# Начать новую сессию tmux
tmux
# Повторно подключиться к отсоединенной сессии
tmux attach