Основные команды Linux: справочник команд Linux | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Node.js Developer
-25%
Unity Game Developer. Professional
-25%
React.js Developer
-25%
Android Developer. Professional
-25%
Software Architect
-25%
C++ Developer. Professional
-25%
Программист С Разработчик C# Базы данных MS SQL Server Developer AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Архитектура и шаблоны проектирования Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Подготовка к сертификации Oracle Java Programmer (OCAJP) Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Administrator Linux.Basic Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Основные команды Linux: справочник команд Linux

Linux_Deep_10.1-5020-0c5eb5.png

В этой статье мы постарались систематизировать основные команды Linux. Команды, которые вы увидите в этом списке, одинаково верно работают в разных дистрибутивах, включая Debian, Gentoo, Ubuntu, ASPLinux, ALTLinux и т. д. Главная цель статьи — создать список основных команд Linux, что упростит как изучение, так и эксплуатацию этой операционной системы.

Все команды Linux разбиты на тематические подразделы с краткими описаниями. Список команд будет обновляться и дополняться.

1. Общие команды Linux

Здесь собраны Linux-команды, которым не нашлось место в других разделах.

# uname -a
# Показывается версия ядра Linux;

# lsb_release -a
# На экран выводится информация о версии ОС и основанных на ней дистрибутивах;

# clear
# Очищается экран терминала;

# cat /etc/SuSE-release
# На экран выводится информация о версии ОС SuSE;

# man hier
# Описывается иерархия файловой системы (для чего необходима каждая директория в Linux);

# wall Привет
# На терминалы других пользователей отправляется сообщение «Привет»;

# date
# Отображается текущая дата и время;

# cal -3
# Отображается в удобной форме предыдущий, текущий и следующий месяц;

# uptime
# Отображается текущее время и работа системы без выключения и перезагрузки;

# hostname
# Выводится сетевое имя компьютера;

# whois linux.org
# Показывается информация о домене linux.org;

# export http_proxy=http://your.proxy:port
# Меняется переменная окружения http_proxy для использования интернета посредством proxy-сервера;

# wget --convert-links -r http://www.linux.org/
# Сайт копируется целиком, конвертируются ссылки для автономной работы. Копирование производится на глубину 5-ти уровней;

# wget http://itshaman.ru/images/logo_white.png
# Файл http://itshaman.ru/images/logo_white.png скачивается в текущую папку;

# pppconfig
# Команда нужна для создания и настройки соединения Dial-Up при выходе в интернет по модему;

# pppoeconf
# Команда для создания и настройки выхода в сеть через ADSL-модем;

# !!
# Обеспечивается выполнение последней команды;

# history | tail -50
# Отображаются последние 50 набранных команд;

# exit
# Сеанс текущего пользователя завершается;

# passwd
# Пароль текущего пользователя меняется;

# shutdown -h now
# Для выхода из Linux;

# poweroff
# Для выхода из Linux;

# reboot
# Система перезагружается;

# last reboot
# Выводится статистика перезагрузок;

# winecfg
# Для настройки Wine — неэмулятора WinAPI;

# host itshaman.ru
# Для отображения IP-адреса введённого сайта.

2. Команды Linux для работы с директориями и файлами

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

2.1 Файлы и директории

# pwd
# Выводится текущий путь;

# ls
# Выводится список каталогов и файлов по порядку;

# ls -laX
# Выводится отформатированный список всех директорий и файлов, в том числе скрытых;

# cd
# Для перехода в домашнюю директорию;

# cd /home
# Для перехода в директорию /home;

# touch /home/primer2
# Создаётся пустой файл /home/primer2;

# tail /var/log/messages
# Выводится конец файла. Это удобно, если вы работе с большими файлами и логами;

# cat /home/primer2
# Показывается содержимое файла;

# nano /home/primer2
# Обеспечивается редактирование файла;

# gedit /home/primer2
# Ещё одна Linux-команда для редактирования файла;

# echo "Последняя строчка" | sudo tee -a /home/primer2
# К концу файла добавляется "Последняя строчка";

# cp /home/Mut@NT/primer.txt /home/primer.txt
# Копируется /home/Mut@NT/primer.tx в home/primer.txt;

# mkdir /home/Mut@NT/shaman
# Создаётся директория с именем shaman;

# rmdir /home/Mut@NT/shaman
# Удаляется директория с именем shaman;

# rm -rf /home/Mut@NT/shaman
# Удаляется директория со вложенными фалами;

# ln -s /home/Mut@NT/primer.txt /home/primer
# Cоздаётся символическая ссылка к файлу /home/Mut@NT/primer.txt;

# cp -la /dir1 /dir2
# Для копирования директории;

# mv /dir1 /dir2
# Для переименовывания директории;

# du -sh /home/Mut@NT/
# На экран выводится размер заданной директории. Команда подходит и для определения размера файлов;

# locate primer
# Выполняется поиск файлов с именем primer.

2.2 Права доступа

# [sudo] chmod 0777 /home/
# Меняются права доступа к директории. В данном случае 0777 – это разрешение на чтение/запись/исполнение для всех групп;

# [sudo] chown Mut@NT:ITShaman /home/primer.txt
# Меняются владелец и группы, но только для файла /home/primer.txt;

# [sudo] chmod -R 0777 /home/
# Происходит рекурсивное изменение прав доступа к директории. Значение 0777 мы уже описали выше. Права 0777 будут иметь все вложенные файлы и директории;

# [sudo] chown -R Mut@NT /home/
# Для всего содержимого директории меняется владелец.

3. Команды Linux: работаем с архивами

# tar cf primer.tar /home/primer.txt
# Создаётся tar-архив с именем primer.tar;

# tar cjf primer.tar.bz2 /home/primer.txt
# Создаётся tar-архив со сжатием Bzip2 и именем primer.tar.bz;

# tar czf primer.tar.gz /home/primer.txt
# Cоздаётся tar-архив со сжатием Gzip и именем primer.tar.gz;

# tar xf primer.tar
# В текущую папку распаковывается архив primer.tar;

# tar xjf primer.tar.bz
# Распаковывается tar-архив с Bzip2;

# tar xzf primer.tar.gz
# Распаковывается tar-архив с Gzip.

4. Команды Linux для установки программ

4.1 Просмотр установленных пакетов

RPM-дистрибутивы

# rpm -qa
# Отображается список пакетов RPM, установленных в системе.

DEB–дистрибутивы

# dpkg -l |more
# Для показа списка пакетов DEB, установленных в системе;

# apt-cache search имя пакета
# Для поиска в индексах доступного пакета и вывода на экран краткой информации о нужном пакете (это весьма полезная команда, обеспечивающая поиска программ из консоли);

# apt-cache showpkg имя пакета
# Для отображения полной информации об указанном пакете.

4.2 Установка и удаление пакетов

RPM-дистрибутивы

# [sudo] rpm -i pkgname.rpm
# Устанавливается RPM-пакет pkgname.rpm;

# [sudo] dpkg -i *.rpm
# Устанавливаются все пакеты в директории;

# [sudo] rpm -e pkgname
# Удаляется RPM-пакет pkgname.

DEB-дистрибутивы

# [sudo] apt-get update
# Обновляется список доступных пакетов из интернета;

# [sudo] apt-get upgrade
# Обновляется доступная версия установленных пакетов в системе;

# [sudo] dpkg -i *.deb
# Устанавливаются все пакеты в директории;

# [sudo] apt-get install pkgname
# Устанавливается DEB-пакет pkgname;

# [sudo] apt-get remove pkgname
# Удаляется DEB-пакет pkgname.

5. Команды Linux для мониторинга работы и просмотра логов

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

# top
# Для получения информации о загруженных процессах, потреблении ОЗУ;

# htop
# Расширенная онлайн-статистика о загруженных процессах;

# dmesg
# Отображение log-файла загрузки операционной системы и нахождения новых устройств;

# mpstat 1
# Отображается расширенная статистика потребления ресурсов в процентах (для некоторых дистрибутивов нужна установка пакета sysstat);

# iostat 2
# Показывается расширенная статистика прерываний по устройствам;

# vmstat 2
# Расширенная статистика по применению виртуальной памяти.

6. Команды Linux для отображения информации об устройствах

# lsdev
# Установленные устройства (для некоторых дистрибутивов потребуется пакет procinfo);

# cat /proc/cpuinfo
# Полная информация о модели процессора;

# cat /proc/meminfo
# Расширенная информация о занимаемой ОС;

# watch -n1 'cat /proc/interrupts'
# Данные о прерываниях;

# grep SwapTotal /proc/meminfo
# Размер раздела, который выделен под swap;

# free -m
# Используемые и свободные ОЗУ и Swap-файл (-m указывает, что отображать данные надо в Мб);

# lshal
# Полный список всех устройств, а также их параметров;

# lspci -tv
# Показ обнаруженных PCI-устройств;

# cat /proc/devices
# Все устройства в системе (названия взяты из директории /proc/devices);

# lsusb -tv
# USB-устройства;

# [sudo] dmidecode
# Версия BIOS;
# gtf 1024 768 75
# Вывод строки ModeLine для монитора на параметрах экрана 1024x768x75Hz.

7. Команды Linux для жёстких дисков и файловой системы

7.1 Информация о жёстком диске и файловой системе

# fdisk -l
# Все подключенные жесткие и сменные диски;

# smartctl -a /dev/sda1
# Вывод SMART-данных о разделе жесткого диска /dev/sda1 (нужен пакет smartmontools);


# [sudo] hdparm -I /dev/sda
# IDE/ATA жёсткие диски;


# [sudo] blkid
# Вывод UUID всех доступных накопителей в системе.

7.2 Производительность жёстких дисков

# [sudo] hdparm -tT /dev/sda
# Отображение производительности жёсткого диска.

7.3 Монтирование разделов жёсткого диска

# mount | column -t
# Примонтированные устройства;

# cat /proc/partitions
# Только примонтированные разделы;

# df
# Свободное место на разделах;

# [sudo] mount /dev/sda1 /mnt
# Монтаж раздела /dev/sda1 к точке монтирования /mnt;

# [sudo] mount -t auto /dev/cdrom /mnt/cdrom
# Монтаж большинства CD-ROM`ов;

# [sudo] mount /dev/hdc -t iso9660 -r /cdrom
# Монтаж IDE CD-ROM;

# [sudo] mount /dev/scd0 -t iso9660 -r /cdrom
# Монтаж SCSI CD-ROM;

# [sudo] mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
# Монтаж разделов FreeBSD в Linux;

# [sudo] mount -t iso9660 -o loop /home/file.iso /home/iso
# Монтаж ISO-образов;

# [sudo] mount -t smbfs -o username=vasja,password=pupkin //pup/Video
# Монтаж сетевых ресурсов (SMB);

# [sudo] mount /dev/sdb1 -t vfat -o rw /mnt
# Монтаж раздела с файловой системой FAT 16/32 к точке монтирования /mnt с возможностью записи;

# [sudo] umount /mnt
# Демонтаж раздела от точки монтирования /mnt;

8. Команды Linux для настройки сети

8.1 Конфигурация сети

# ifconfig
# Параметры всех сетевых;

# ifconfig eth0
# Параметры сетевого интерфейса eth0;

# [sudo] ethtool eth0
# Состояние сетевого интерфейса eth0 (Может потребоваться пакет ethtool). Команда применяется только для проводных подключений (с беспроводными интерфейсами не работает);

# [sudo] ethtool -s eth0 speed 100 duplex full autoneg off
# Принудительное задание скорости сетевому интерфейсу 100 Mbit и режима Full duplex и отключение автоматического определения;

# ifconfig eth0 192.168.50.254 netmask 255.255.255.0
# Задание основного IP-адреса сетевому интерфейсу eth0;

# ip addr add 192.168.50.254/24 dev eth0
# Аналогично;

# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0
# Задание дополнительного IP-адреса сетевому интерфейсу eth0;

# ip addr add 192.168.51.254/24 dev eth0 label eth0:1
# Аналогично;

# [sudo] ifconfig eth0 up
# Запуск сетевого интерфейса eth0;

# [sudo] ifconfig eth0 down
# Его отключение;

# ifconfig eth0 hw ether 00:01:02:03:04:05
# Для смены MAC-адреса;

# [sudo] /etc/init.d/dhcpd restart
# Для перезагрузки DHCP клиента;

# ping 192.168.0.2
# Для проверки сетевого соединения. Пингуется IP-адрес 192.168.0.2.

8.2 Маршрутизация

# route -n
# Для вывода на экран таблицы маршрутизации;

# netstat -rn
# Аналогично.

8.3 Управление портами (брандмауэр)

# lsof -i
# Показывается список всех открытых портов в сеть интернет;

# netstat -an | grep LISTEN
# Отображение списка всех открытых портов;

# [sudo] netstat -tup
# Вывод активных соединений с интернетом;

# socklist
# Открытые сокеты;

# [sudo] netstat -anp --udp --tcp | grep LISTEN
# Выводится список приложений, открывающих порты;

# [sudo] iptables -P INPUT ACCEPT
# Открытие доступа ко всем портам;

# [sudo] iptables -P FORWARD ACCEPT
# То же самое;

# [sudo] iptables -P OUTPUT ACCEPT
# То же;

# [sudo] iptables -L -n -v
# Статус firewall (статус iptables);

# [sudo] iptables -X
# Удаляются все цепочки.

8.4 Управление NAT

# [sudo] iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Чтобы «поднять» NAT на интерфейсе eth0;

# [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995
# Перенаправить диапазон портов 993-995;

# [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22
# Перенаправить порт 20022, используемый для ssh;

# iptables -L -t nat
# Для проверки статуса NAT.

9. Команды Linux для создания и записи образов ISO

# cdrecord -scanbus
# Отображение всех доступных CD-ROM;

# dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc
#Создание образов ISO с диска CD-ROM.

10. Команды Linux: группы и пользователи

Эти команды Linux необходимы для работы с пользователями и группами пользователей.

# id
# Сводная информация по текущему пользователю (логин, UID, GID, группы);

# finger Mut@NT
# Информация о пользователе Mut@NT;

# last
# Последние зарегистрированные пользователи;

# who
# Имя текущего пользователя и время его входа;

# useradd Mut@NT
# Добавляет нового пользователя Mut@NT;

# groupadd Otus
# Добавляет группу Otus;

# usermod -a -G Otus Mut@NT
# Добавляет пользователя с именем Mut@NT в группу под названием Otus (для Debian);

groupmod -A Mut@NT Otus
# Добавление пользователя Mut@NT в группу под названием Otus (SuSE);

# userdel Mut@NT
# Пользователь Mut@NT удаляется;

# groupdel Otus
# Группа Otus удаляется.

11. Команды Linux для работы с процессами

Обратите внимание, что все процессы, которые запущены, имеют PID — уникальные номера.

# ps axjf
# Все загруженные процессы;

# pgrep -l sshd
# PID конкретного процесса – sshd;

# fuser -va 22/tcp
# PID процесса использующего 22-й порт;

# echo $$
# PID вашей оболочки;

# fuser -va /home
# PID процесса;

# lsof /home
# Список процессов;

# killall 0 httpd
# Текущее состояние процесса httpd;

# kil 4712
# С помощью этой команды вы «убьёте» процесс с PID 4712;

# [sudo] killall TERM 4711
# Команда посылает процессу с PID`ом 4711 сигнал TERM, завершающий процесс;

# [sudo] killall HUP httpd
# Процесс с именем httpd  получает сигнал HUP, останавливающий процесс;

# [sudo] fuser -k -TERM -m /home
# «Убиваются» все процессы, обладающие доступом к /home.

Ещё раз про важные сигналы, которые можно послать процессам: • 1 — HUP; остановка процесса; • 2 — INT; прерывание процесса; • 3 — QUIT; выход; • 9 — KILL; чтобы «убить» процесс; • 15 — TERM; завершение процесса.

12. Команды Linux: Runlevels

После того, как происходит загрузка ядра Linux, загружаются разные демоны и приложения, например, NetworkManager, Evolution и прочие. Результат мы видим на рабочем столе после загрузки. При этом загрузка каждой службы выполняются скриптом, которые находятся в /etc/init.d.

Runlevels – это целое число, определяющее «уровень загрузки».

Уровни бывают: • Runlevels=0; выключение компьютера; • Runlevels=1; работа в режиме Single-User; • Runlevels=2; текстовый режим (сеть не поддерживается); • Runlevels=3; текстовый режим но уже с поддержкой сети; • Runlevels=4; • Runlevels=5; графический режим; • Runlevels=6; осуществляется перезагрузка компьютера.

Таким образом, скрипты, которые загружаются лишь в текстовом режиме с поддержкой сети, — это Runlevels=3.

Упрощённый вариант настройки:

# [sudo] sysv-rc-conf
#Чрезвычайно удобная настройка Runlevels, правда, нужен пакет sysv-rc-conf.

А вот ручной вариант настройки:

# chkconfig --list
# Список всех скриптов с соответствующими Runlevels;

# chkconfig --list udev
# Разрешенные Runlevels только отдельного скрипта, у нас это udev;

# [sudo] update-rc.d udev defaults
# Скрипту udev выставляются значения Runlevels по умолчанию;

# [sudo] chkconfig udev off
# У udev отключаются все Runlevels;

# [sudo] update-rc.d -f udev remove
# Аналогично для Debian;

# [sudo] chkconfig udev --level 35 on
# Для добавления скрипту udev Runlevels 3 и 5;

# [sudo] update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6
# Для изменения параметров для скрипта udev.

13. Команды Linux для работы с ядром и модулями

13.1 Работа с ядром системы

# uname -a
# Отображение версии ядра Linux.

13.2 Работа с модулями ядра

# lsmod
# Вывод списка всех модулей, загруженных в ядро;

# [sudo] modprobe isdn
# Для загрузки модуля на примере isdn;

# make
# Создаётся сжатый образ ядра;

# [sudo] make modules_install
# Устанавливается модуль;

# make modules
# Производится компиляция модуля;

# [sudo] make install
# Для установки в ядро системы.

14. Команды Linux для работы с LiveCD

# [sudo] chroot /mnt
# Происходит смена root-окружения на /mnt. Далее корневой раздел, который примонтировн к /mnt, используется как родной.

15. Команды Linux для конвертирования данных

15.1 Конвертирование текста

# iconv -l
# Вывод списка всех кодировок, которые доступны;

# iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt
# Смена кодировки. Например, был файл file_cp1251.txt (кодировка cp1251), а получился файл file_utf8.txt (кодировка utf8).

15.2 Конвертирование PDF в JPEG

# convert name.pdf name-%03d.jpg
# Конвертация name.pdf в постраничные изображения JPEG (может понадобиться пакет imagemagick);

# convert *.jpeg name.pdf
# Конвертация изображений JPEG в PDF (может потребоваться пакет imagemagick).

15.3 Конвертирование видео

# mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI

15.4 Конвертирование аудио

# cdparanoia -B
# Треки с AudioCD копируются в текущую директорию wav-файлами;

# oggenc in.wav -b 256 out.ogg
# Wav-файлы конвертируются в Ogg Vorbis с качеством 256 kb/s;

# lame -b 256 in.wav out.mp3
# Wav-файлы конвертируются в mp3 с качеством 256 kb/s.

16. Команды Linux для печати на принтере

# export PRINTER=lbp2900
# Выбирается принтер по умолчанию. У нас это Canon LBP-2900;

# lprm -
# С принтера по умолчанию удаляются все задачи;

# lpr #2 name.txt
# На принтере распечатываются две копии файла name.txt.

Вот и всё, узнать больше всегда можно на курсе "Администратор Linux"!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!