Полезные команды linux на одном листе

Команды Linux могут показаться пугающими на первый взгляд, если вы не привыкли использовать терминал. Для выполнения операций и процессов в вашей системе Linux существует огромное количество команд.

Полное руководство по командам Linux

Независимо от того, являетесь ли вы новичком в Linux или опытным пользователем, полезно иметь список общих команд под рукой. В этом руководстве вы найдете часто используемые команды Linux, а также загружаемую шпаргалку (так называемый cheatsheet) с синтаксисом и примерами.

Скачать PDF

Список команд Linux

Важное замечание: В зависимости от настроек вашей системы для выполнения некоторых из приведенных ниже команд может потребоваться запуск sudo.

Информация об оборудовании

Показать сообщения, которые выводило ядро во время загрузки:

dmesg

Показать информацию о процессоре:

cat /proc/cpuinfo

Показать свободную и использованную память с:

free -h

Список информации о конфигурации оборудования:

lshw

Показать информацию о блочных устройствах:

lsblk

Показать устройства PCI в древовидной схеме:

lspci -tv

Отображение USB-устройств в виде древовидной диаграммы:

lsusb -tv

Показать информацию об оборудовании из BIOS:

dmidecode

Показать информацию о диске:

hdparm -i /dev/disk

Провести тест скорости чтения на устройстве/диске:

hdparm -tT /dev/[device]

Проверка на нечитаемые блоки на устройстве/диске:

badblocks -s /dev/[device]

Поиск

Поиск определенного паттерна в файле:

grep [pattern] [file_name]

Рекурсивно искать паттерн в каталоге:

grep -r [pattern] [directory_name]

Найти все файлы и каталоги, связанные с конкретным именем:

locate [name]

Вывести список имен, начинающиеся с указанного символа a в указанном месте /folder/location, с помощью команды find:

find [/folder/location] -name [a]

Просмотр файлов, размер которых превышает указанный размер + 100M в папке:

find [/folder/location] -size [+100M]

Файлы

Список файлов в каталоге:

ls

Список всех файлов (включая скрытые):

ls -a

Показать каталог, в котором вы сейчас работаете:

pwd

Создать новый каталог:

mkdir [directory]

Удалить файл:

rm [file_name]

Удалить каталог рекурсивно:

rm -r [directory_name]

Рекурсивно удалить каталог без подтверждения:

rm -rf [directory_name]

Скопировать содержимое одного файла в другой файл:

cp [file_name1] [file_name2]

Рекурсивно скопировать содержимое одного файла во второй файл:

cp -r [directory_name1] [directory_name2]

Переименовать имя_файла1 в имя_файла2:

mv [file_name1] [file_name2]

Создать символическую ссылку на файл:

ln -s /path/to/[file_name] [link_name]

Создать новый файл:

touch [file_name]

Показать содержимое файла:

more [file_name]

Показать первые 10 строк файла:

head [file_name]

Показать последние 10 строк файла:

tail [file_name]

Зашифровать файл:

gpg -c [file_name]

Расшифровать файл:

gpg [file_name.gpg]

Показать количество слов, строк и байтов в файле:

wc

Подняться на один уровень вверх в структуре дерева каталогов:

cd ..

Перейти в каталог $ HOME:

cd

Изменить местоположение на указанный каталог:

cd /chosen/directory

Сжатие файлов

Заархивировать существующий файл:

tar cf [compressed_file.tar] [file_name]

Извлечь заархивированный файл:

tar xf [compressed_file.tar]

Создайте сжатый gzip tar-файл:

tar czf [compressed_file.tar.gz]

Сжать файл с расширением .gz:

gzip [file_name]

Передача файлов

Скопировать файл в каталог сервера через ssh:

scp [file_name.txt] [server/tmp]

Синхронизировать содержимое каталога с резервным каталогом:

rsync -a [/your/directory] [/backup/]

Пользователи

Показать подробности об активных пользователях:

id

Показать последние системные логины:

last

Показать, кто в данный момент вошел в систему:

who

Показать, какие пользователи вошли в систему и их активность:

w

Добавить новую группу:

groupadd [group_name]

Добавить нового пользователя:

adduser [user_name]

Добавить пользователя в группу:

usermod -aG [group_name] [user_name]

Удалить пользователя:

userdel [user_name]

Изменить информацию о пользователе:

usermod

Установка пакета

Список всех установленных пакетов с yum:

yum list installed

Найти пакет по связанному ключевому слову:

yum search [keyword]

Показать информацию и краткую сводку о пакете:

yum info [package_name]

Установить пакет с помощью менеджера пакетов >YUM:

yum install [package_name.rpm]

Установить пакет с помощью менеджера пакетов >DNF:

dnf install [package_name.rpm]

Установить пакет с помощью менеджера пакетов >APT:

apt-get install [package_name]

Установить пакет .rpm из локального файла:

rpm -i [package_name.rpm]

Удалить пакет .rpm:

rpm -e [package_name.rpm]

Установить программное обеспечение из исходного кода:

tar zxvf [source_code.tar.gz]
cd [source_code]
./configure
make
make install

Процессы

Показать снимок активных процессов:

ps

Показать процессы в древовидной диаграмме:

pstree

Показать карту использования памяти процессами:

pmap

Показать все запущенные процессы:

top

Завершить процесс Linux с заданным идентификатором:

kill [process_id]

Завершить процесс с определенным именем:

pkill [proc_name]

Завершите все процессы, помеченные как proc:

killall [proc_name]

Список и сводка остановленных заданий в фоновом режиме:

bg

Перевод последней фоновой задачи в активный режим:

fg

Перевод конкретной задачи в активный режим:

fg [job]

Список файлов, открытых запущенными процессами:

lsof

Системная информация

Показать информацию о системе:

uname -r

Показать информацию о релизе ядра:

uname -a

Показать, как долго работает система, включая среднюю нагрузку:

uptime

Показать имя хоста системы:

hostname

Показать IP-адрес системы:

hostname -i

История перезагрузки системы:

last reboot

Показать текущее время и дату:

date

Запрос и изменение системных часов:

timedatectl

Показать текущий календарь (месяц и день):

cal

Список залогиненых пользователей:

w

Показать текущего пользователя:

whoami

Показать информацию о конкретном пользователе:

finger [username]

Использование диска

Показать свободное и использованное пространство на смонтированных системах:

df -h

Показать свободные иноды (inode) на смонтированных файловых системах:

df -i

Показать разделы диска, размеры и типы:

fdisk -l

Показать использование диска для всех файлов и каталогов:

du -ah

Показать использование диска в каталоге, в котором вы находитесь:

du -sh

Показать целевую точку монтирования для всей файловой системы:

findmnt

Смонтировать устройство:

mount [device_path] [mount_point]

SSH

Подключиться к хосту как пользователь:

ssh user@host

Подключиться к хосту через SSH порт по умолчанию 22:

ssh host

Подключиться к хосту, используя определенный порт:

Читайте также:  Сок с мякотью полезнее чем без

ssh -p [port] user@host

Подключиться к хосту через telnet порт по умолчанию 23:

telnet host

Разрешение файлов

Назначить права на чтение, запись и выполнение всем:

chmod 777 [file_name]

Дать владельцу право на чтение, запись и выполнение, а также разрешение на чтение и выполнение для группы и других пользователей:

chmod 755 [file_name]

Назначить полное разрешение владельцу, а также разрешение на чтение и запись для группы и других пользователей:

chmod 766 [file_name]

Изменить владельца файла:

chown [user] [file_name]

Изменить владельца и групповое владение файлом:

chown [user]:[group] [file_name]

Сеть

Список IP-адресов и сетевых интерфейсов:

ip addr show

Назначить IP-адрес интерфейсу eth0:

ip address add [IP_address]

Отображение IP-адресов всех сетевых интерфейсов:

ifconfig

Показать активные (прослушиваемые) порты:

netstat -pnltu

Показать порты tcp и udp и их программы:

netstat -nutlp

Показать больше информации о домене:

whois https://donpodarki.ru

Показать DNS информацию о домене:

dig https://donpodarki.ru

Обратный поиск по домену:

dig -x host

Обратный поиск IP-адреса:

dig -x [ip_address]

Поиск IP для домена:

host https://donpodarki.ru

Показать локальный IP-адрес:

hostname -I

Скачать файл из домена с помощью команды wget:

wget [file_name]

Сочетания клавиш Linux

Убить процесс, запущенный в терминале:

Ctrl + C

Остановить текущий процесс:

Ctrl + Z

Вырезать одно слово перед курсором и добавить его в буфер обмена:

Ctrl + W

Вырезать часть строки перед курсором и добавить ее в буфер обмена:

Ctrl + U

Вырезать часть строки после курсора и добавить ее в буфер обмена:

Ctrl + K

Вставить из буфера обмена:

Ctrl + Y

Вызвать последнюю команду, которая соответствует предоставленным символам:

Ctrl + R

Запустите ранее вызванную команду:

Ctrl + O

Выйти из истории команд без выполнения команды:

Ctrl + G

Запустить последнюю команду еще раз:

!!

Выйти из текущей сессии:

exit

Заключение

Чем чаще вы используете команды Linux, тем лучше вы их запомните. Не переживайте о запоминании их синтаксиса – используйте наш шпаргалку.

А больше материалов про Linux можно найти в нашем разделе.

Источник

Во всех операционных системах, в том числе и в Linux, термин ‘команда’ означает либо утилиту командной строки, либо определённую возможность, встроенную в командную оболочку системы. Тем не менее, для самих пользователей это различие не имеет особого значения. В конце концов, и те и другие команды терминала Linux вызываются одинаково. Вы вводите слово в вашем эмуляторе терминала и получаете результат выполнения команды.

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

И вот она. Её цель – собрать основные простые и сложные команды Linux, которые должен знать каждый пользователь, чтобы наиболее эффективно управлять своей системой. Для удобности запоминания опций команд я в скобках добавил слова, от которых они произошли – так намного проще, на себе проверено.

Это не значит, что я перечислю все команды, все перечислены тут – я постараюсь охватить всё самое полезное, то, что может пригодиться в повседневной жизни. Чтобы было удобнее читать, разделим этот список на категории команд по назначению. Большинство рассмотренных здесь утилит не требуют дополнительной установки, они будут предустановлены в любом дистрибутиве Linux, а если не будут, то их несложно найти в официальных репозиториях.

Команды Linux для управления файлами

1. ls

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Печатает содержимое файла, переданного в параметре, в стандартный вывод. Если передать несколько файлов, команда склеит их. Также можно перенаправить вывод в ещё один файл с помощью символа ‘>’. Если нужно вывести только определенное количество строк, используйте опцию -n (Number). Подробнее тут.

3. cd

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров – возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

Печатает на экран текущий каталог. Это может быть полезно, если ваша командная строка Linux не выводит такую информацию. Эта команда будет востребована в Bash программировании, где для получения ссылки на каталог выполняется скрипт. Более подробно в отдельной статье.

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

Команда file показывает тип файла. В Linux файлы не обязаны всегда иметь расширения для того, чтобы с ними работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Эта маленькая утилита решает проблему.

7. cp

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

8. mv

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование – это перемещение файла в ту же папку с другим именем. Подробнее – здесь.

Читайте также:  Полезные свойства касторового масла для кожи лица

9. rm

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе “rm съела мою курсовую” никому не будут интересны. Подробнее в этой статье.

 10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки – это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

Изменяет права доступа к файлу. Это чтение, запись и выполнение. Каждый пользователь может изменять права для своих файлов.

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

Поиск в файловой системе, файлах и папках. Это очень гибкая и мощная команда Linux не только из-за своих способностей ищейки, но и благодаря возможности выполнять произвольные команды для найденных файлов.

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее – тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную – пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом “с”, удалнные – “d”, а новые – “а”. Подробнее – здесь.

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill – достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

Читайте также:  Самый лучший и полезный шампунь для волос

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo – это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +”%j %V”, выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

Эти команды консоли Linux позволяют вам добавлять, удалять и изменять учетные записи пользователей. Скорее всего, вы не будете использовать их очень часто. Особенно если это домашний компьютер, и вы являетесь единственным пользователем. Управлять пользователями можно и с помощью графического интерфейса, но лучше знать об этих командах на всякий случай.

36. passwd

Эта команда позволяет изменить пароль учетной записи пользователя. Как суперпользователь вы можете сбросить пароли всех пользователей, даже несмотря на то, что не можете их увидеть. Хорошая практика безопасности – менять пароль почаще.

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

Показывает полный путь к исполняемому файлу программы. Также может показать путь к исходникам, если они есть в системе.

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита – ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping – это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

Если у вас медленный интернет, то вам, наверное, было бы интересно знать, сколько трафика использует какая-либо программа в Linux или какая программа потребляет всю скорость. Теперь это можно сделать с помощью утилиты nethogs. Для того чтобы задать сетевой интерфейс используйте опцию -i.

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее – тут.

Выводы

Мы рассмотрели основные команды Linux, которые могут пригодиться вам при повседневном использовании системы. Если вы считаете, что есть другие команды, которые нужно добавить в этот список, напишите в комментариях!

Источник