Основные команды Linux: справочник команд Linux
В этой статье мы постарались систематизировать основные команды 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"!