Горячие клавиши и пара полезных трюков
| Enter | Выполняет команду. |
| ↑ | Показывает предыдущую команду. |
| Ctrl+r | Позволяет искать команду в истории. |
| Ctrl+с | Останавливает выполнение текущей команды. |
| Ctrl+a | Переводит курсор в начало строки. |
| Ctrl+e | Переводит курсор в конец строки. |
| Ctrl+l | Очищает экран. |
| Ctrl+u | Вырезает всё от начала строки до курсора и помещает в специальный буфер. |
| Ctrl+k | Вырезает всё от курсора до конца строки и помещает в специальный буфер. |
| Ctrl+y | Вставляет содержимое специального буфера. |
| Ctrl+w | Удаляет слово/аргумент слева от курсора в текущей строке. |
| Ctrl+d | Завершает текущую сессию, аналогично команде exit. |
| Alt+< | Переходит к первой команде в истории. |
| Alt+> | Переходит к последней команде в истории. |
| Alt+␈ | Удаляет всё от начала слова до курсора. |
| TabTab | Показывает возможные дополнения текущей команды. |
| *TabTab | Показывает директории, содержащиеся в текущей директории (за исключением скрытых). |
| ~TabTab | Выводит список пользователей из /etc/passwd. |
!!
| Повторяет последнюю команду. |
&&
| Объединяет несколько команд. |
command | less
| Выводит результат работы команды command постранично. Переходить между страницами можно с помощью Shift+↑ и Shift+↓. |
Помощь
Все описаные ниже команды имеют значительно больше параметров, чем указано на этой странице. Для того, чтобы узнать полный список возможностей как раз и нужна команда man
man command
| Показывает страницу мануала для команды command. |
man -k something
или apropos something
| Показывает список страниц мануала, связанных с something. |
Системная информация
date
| Показывает системную дату. |
cal
| Показывает календарь на текущий месяц. |
uptime
| Показывает текущий аптайм. |
w
| Показывает залогиненых пользователей. |
whoami
| Показывает имя, под которым вы залогинены. |
uname -a
| Показывает информацию о ядре. |
whereis app
| Показывает пути возможного нахождения программы app. |
which app
| Показывает путь, по которому программа app будет запущена по умолчанию. |
df
| Отображает информацию об использовании HDD на основе файловой системы. |
df -h
| Отображает ту же информацию, но в более читабельном виде (флаг -h буквально означает "human readable"). |
du
| Отображает информацию об использовании диска для каждого файла и директории в текущей директории. |
free
| Показывает информацию об использовании памяти и swap. |
Файловые команды
Листинг содержимого текущей директории
ls
| Показывает содержимое текущей директории. |
ls -l
| Форматирует вывод в виде списка с более детализированным представлением содержимого текущей директории. |
ls -a
| Показывает также скрытые файлы, соответственно: |
ls -la
| Показывает детализированный список со всем содержимым текущей директории. |
pwd
| Показывает полный путь к текущей директории. |
Вывод файла на экран
cat /some/file/path
| Показывает содержимое файла /some/file/path. Можно перенаправить вывод не на экран, а в другой файл, с помощью символа '>'. Если нужно ограничить вывод каким-то количеством строк, используем опцию -n [количество строк]. |
Также команду cat можно использовать для просмотра определенной системной информации, например: |
cat /proc/cpuinfo
| Показывает информацию о CPU. |
cat /proc/meminfo
| Показывает информацию о памяти. |
more /some/file/path
| Показывает содержимое файла /some/file/path постранично. Переход на следующую страницу с помощью Space bar |
less filename
| Более продвинутая вариация команды more, которая также постранично показывает содержимое файла filename, но добавляет возможность листать в обе стороны, поиск по содержимому и т.п. |
head -5 filename
| Показывает первые 5 строк файла filename. |
tail -f /some/log/path
| Показывает последние 10 строк файла /some/log/path, добавляя новые строки по мере их появления в файле (опция -f). |
tail -f /some/log/path | grep -i -P "(error|warning)"
| Показывает те строки из последних 10 строк файла /some/log/path, которые содержат error или warning. |
Смена директории
cd
или cd ~
| Переходит в домашнюю директорию текущего пользователя. |
cd ~user
| Переходит в домашнюю директорию пользователя user. |
cd /some/dir/path
| Переходит в директорию /some/dir/path. |
cd ..
| Переходит в директорию уровнем выше. |
cd -
| Переходит в предыдущую посещённую директорию. |
Создание файлов и директорий
touch filename
| Создаёт файл с именем filename. |
touch -t 1702270000 filename
| Изменяет дату и время создания файла filename на 27.02.2017 00:00. Если файла не существует, то он создаётся с указанными датой и временем создания (в формате YYMMDDhhmm). |
mkdir dirname1
| Создаёт директорию с именем dirname1. |
mkdir dirname1 dirname2
| Создаёт сразу 2 директории — dirname1 и dirname2. |
mkdir -p /dir1/dir2/dir3
| Создаёт сразу 3 директории, вложенные друг в друга (создаёт дерево директорий). |
mkdir -m 755 dirname1
| Создаёт директорию dirname1 и устанавливает ей права доступа 755. |
Копирование, перемещение и удаление файлов и директорий
cp /some/file/path1 /some/file/path2
| Копирует файл /some/file/path1 в /some/file/path2. |
cp -p /some/file/path1 /some/file/path2
| Копирует файл /some/file/path1 в /some/file/path2 с сохранением атрибутов (время изменения, права доступа). |
cp -r /some/dir/path1 /some/dir/path2
| Рекурсивно копирует директорию /some/dir/path1 в /some/dir/path2. Если директории /some/dir/path2 не существует, она будет создана. |
mv filename1 filename2
| Переименовывает (перемещает содержимое) файла filename1 в filename2. |
mv filename /some/dir/path
| Перемещает файл filename в директорию /some/dir/path. |
rm something
| Удаляет файл или директорию с названием something. |
rm -r /some/dir/path
| Удаляет директорию /some/dir/path и всё её содержимое (рекурсивное удаление). В случае, если директория, которую мы собираемся удалить, не пуста, простая команда rm /some/dir/path выдаст ошибку и нам понадобиться опция -r для рекурсивного удаления всего содержимого. |
О некоторых особенностях работы команд cp, mv и rm со скрытыми файлами можно узнать в заметке. |
Права доступа и владельцы
chmod mode something
| Устанавливает права доступа к файлу или директории something на mode. |
mode может быть указан в числовом или в символьном виде и определяет права для владельца (файла или директории), группы и всех остальных, например: |
chmod 754 /some/dir/path
или chmod rwxr-xr-- /some/dir/path
| Устанавливает для директории /some/dir/path следующие права: владелец (7 в 754 или rwx в rwxr-xr--) может читать, записывать и выполнять (r - Read; w - Write; x - eXecute); группа может читать и выполнять; все остальные (world) могут только читать. |
chown user:group something
| Назначает владельцем файла или директории something пользователя user и группу group. |
chmod -R 754 /some/dir/path && chown -R user:group /some/dir/path
| Рекурсивно устанавливает права и владельца для директории /some/dir/path. |
Поиск
find / -name dirname1 -type d
| Производит поиск директорий (-type d) c именем dirname1, начиная с корневой директории (/). |
find /some/dir/path -name "*.php" -type f
| Ищет все php файлы в директории /some/dir/path. |
find some/dir/path -type f -mtime -10
| Ищет все файлы в директории some/dir/path, измененные за последние 10 дней. |
Кроме того команда find позволяет выполнять другие команды для найденных файлов, например: |
find . -name "*.tmp" -type f -exec rm -rf {} \;
| Ищет все tmp файлы в текущей и дочерних директориях и удаляет их. |
grep "something" filename
| Ищет вхождения something в файл filename. |
grep -i "something" filename1 filename2
| Ищет вхождения something в файлы filename1 и filename2 без учета регистра (опция -i). |
grep --include=\*.log -r "some_ip_address" /some/dir/path
| Рекурсивно (опция -r) ищет some_ip_address (понятно, что это не обязательно должен быть ip адрес) во всех *.log файлах, находящихся в директории /some/dir/path. |
history | grep "some_previous_command"
| Ищет вхождения some_previous_command в выводе команды history. Полученную информацию можно использовать, например, для повторного запуска какой-нибудь команды с помощью команды !n, где n - номер строки в истории. |
ps auxf | grep nginx
| Ищет вхождения nginx в списке активных процессов (вывод команды ps auxf). |
Другие файловые команды
ln filename linkname
| Создаёт жёсткую ссылку с именем linkname на файл filename. |
ln -s /some/dir/path /some/dest/dir/path/linkname
| Создаёт в директории /some/dest/dir/path/ символическую ссылку с именем linkname на директорию /some/dir/path. Если в пути встречаются пробелы, их нужно экранировать обратным слешем. |
| Символические (программные, мягкие) ссылки указывают на файл или директорию, но не содержат никаких метаданных (они чем-то похожи на ярлыки в Windows). Жёсткие же ссылки указывают на физический адрес области диска. |
Работа с процессами
top
| Показывает список запущенных процессов и потребляемые ими ресурсы (процессорное время, память и т.д.). Информация автоматически обновляется. |
pstree
| Показывает дерево процессов. |
ps
| Показывает активные процессы. |
ps auxf
| Показывает активные процессы в виде дерева. |
kill 5555
или kill -TERM 5555
| Отправляет процессу с PID (ID процесса) 5555 сигнал о завершении работы (-TERM). |
kill -9 5555
или kill -KILL 5555
| Отправляет процессу с PID 5555 сигнал -KILL о немедленном завершении работы без сохранения данных. |
lsof -p 5555
| Показывает список файлов, открытых процессом с PID 5555. |
Пользователи и группы
useradd username
| Создаёт аккаунт пользователя с именем username. |
useradd -g some_group -d /home/users/username -s /bin/bash username
| Создаёт аккаунт пользователя с именем username, помещает его в группу some_group, устанавливает ему в качестве домашнего каталога директорию /home/users/username и назначает ему в качестве shell'а /bin/bash. |
usermod -s /bin/nologin username
| Изменяет в аккаунте пользователя username атрибут shell, устанавливая его в /bin/nologin |
userdel -r username
| Удаляет аккаунт пользователя username и его домашний каталог. |
passwd
| Позволяет изменить пароль. Для суперпользователя доступна команда passwd username, которая позволяет менять пароль аккаунту пользователя username. |
Другие полезные команды
wget -r www.example.com
| Рекурсивно загружает содержимое сайта www.example.com. |
wget -c www.example.com/filename.iso
| Продолжает загрузку файла filename.iso с сайта www.example.com. |
alias ngr="service nginx restart"
| Назначает команде service nginx restart алиас ngr. |