Основные команды Linux - Справочник команд Линукс

В статье систематизирована информация об основных командах в Linux. Приведенные команды будут одинаково верно работать во многих дистрибутивах, таких как: ASPLinux, Debian, Gentoo, Ubuntu, ALTLinux и во многих других. Автором статьи преследовалась цель составления наиболее полного списка основных команд Linux`а, для более легкого и эффективного изучения этой операционной системы.

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

Содержание

  1. 1. Общие команды Linux
  2. 2. Работы с файлами и директориями
    1. 2.1. Директории и файлы
    2. 2.2. Права доступа
  3. 3. Работа с архивами
  4. 4. Установка программ
    1. 4.1. Просмотр установленных пакетов
    2. 4.2. Установка и удаление пакетов
  5. 5. Мониторинг работы и просмотр логов
  6. 6. Информация об устройствах
  7. 7. Жесткие диски и файловая система
    1. 7.1. Информация о файловой системе и жестком диске
    2. 7.2. Производительность жесткого диска.
    3. 7.3. Монтирование разделов жесткого диска
  8. 8. Настройка сети
    1. 8.1. Конфигурация сети
    2. 8.2. Маршрутизация
    3. 8.3. Управление портами (брандмауэр)
    4. 8.4. Управление NAT
  9. 9. Создание и запись ISO образов
  10. 10. Пользователи и группы
  11. 11. Работа с процессами
  12. 12. Уровни выполнения
  13. 13. Работа с ядром и модулями
    1. 13.1. Работа с ядром системы
    2. 13.2. Работа с модулями ядра
  14. 14. Работа с LiveCD
  15. 15. Конвертирование различной информации (видео, аудио, текст и т.д.)
    1. 15.1. Конвертирование текста
    2. 15.2. Конвертирование PDF в JPEG
    3. 15.3. Конвертирование видео
    4. 15.4. Конвертирование аудио
  16. 16. Печать на принтере

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

На верх


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

# uname -a
# Показать версию ядра Linux;
 
# lsb_release -a
# На экран выводиться информация о версии операционной системы Debian и оснваных на ней дистрибутивах;
 
# cat /etc/SuSE-release
# На экран выводится информация о версии операционной системы SuSE;
 
# man hier
# Описание иерархии файловой системы (для чего нужна каждая директория в linux);
 
# clear
# Очищение экрана терминала;
 
# wall Привет
# Отправляет на терминалы других пользователей сообщение "Привет";
 
# date
# Показывает текущую дату и время;
 
# cal -3
# Показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь);
 
# uptime
# Показать текущее время и работу системы без перезагрузки и выключения;
 
# hostname
# Показать сетевое имя компьютера;
 
# whois linux.org
# Показать информацию о доменом имени linux.org;
 
# export http_proxy=http://your.proxy:port
# Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;
 
# wget http://itshaman.ru/images/logo_white.png
# Скачать файл http://itshaman.ru/images/logo_white.png в текущую папку;
 
# wget --convert-links -r http://www.linux.org/
# Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 5 уровней в глубину;
 
# pppconfig
# Создание и настройка Dial-Up соединения для выхода в Интернет по модему;
 
# pppoeconf
# Создание и настройка выхода в Интернет через ADSL-модем;
 
# !!
# Выполнить последнюю команду;
 
# history | tail -50
# Показать последние 50 набранных команд;
 
# exit
# Завершить сеанс текущего пользователя;
 
# passwd
# Меняет пароль текущего пользователя;
 
# shutdown -h now
# Выход из Linux;
 
# poweroff
# Выход из Linux;
 
# reboot
# Перезагрузка системы;
 
# last reboot
# Cтатистика перезагрузок;
 
# 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;
 
# cat /home/primer2
# Показать содержимое файла /home/primer2;
 
# tail /var/log/messages
# Выводит конец файла. Удобно при работе с логами и большими файлами;
 
# nano /home/primer2
# Редактирование файла /home/primer2;
 
# gedit /home/primer2
# Вторая команда Linux для редактирования файла;
 
# echo "Последняя строчка" | sudo tee -a /home/primer2
# Добавление к концу файла "Последняя строчка" в файл /home/primer2;
 
# cp /home/Mut@NT/primer.txt /home/primer.txt
# Копирует /home/Mut@NT/primer.tx в home/primer.txt;
 
# ln -s /home/Mut@NT/primer.txt /home/primer
# Cоздает символическую ссылку /home/primer к файлу /home/Mut@NT/primer.txt;
 
# mkdir /home/Mut@NT/shaman
# Создание директории с именем shaman;
 
# rmdir /home/Mut@NT/shaman
# Удаление директории с именем shaman;
 
# rm -rf /home/Mut@NT/shaman
# Удаление директории с вложенными фалами;
 
# cp -la /dir1 /dir2
# Создание жесткой ссылки на директорию;
 
# cp -r /dir1 /dir2
# Копирование директорий;
 
# mv /dir1 /dir2
# Переименование директории;
 
# du -sh /home/Mut@NT/
# Выводит на экран размер заданной директории. Можно использовать для определения размера файлов;
 
# locate primer
# Поиск всех файлов с именем primer;
 

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

На верх

# [sudo] chmod 0777 /home/
# Изменение прав доступа к директории только для /home. 0777 – разрешение на чтение/запись/исполнение для всех групп;
 
# [sudo] chmod -R 0777 /home/
# Рекурсивное изменение прав доступа к директории /home. 777 – разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;
 
# [sudo] chmod ugo+rwx /home/
# Другой способ назначения прав:  для владельца (u), группы (g) и всех остальных (o) добавить (+) право записи (w), чтения (r), исполнения (x) ;
 
# [sudo] chown Mut@NT:ITShaman /home/primer.txt
# Изменение владельца и группы только для файла /home/primer.txt;
 
# [sudo] chown -R Mut@NT /home/
# Изменение владельца для всего содержимого директории /home;
 

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


# tar cf primer.tar /home/primer.txt
# Создать tar-архив с именем primer.tar содержащий /home/primer.txt;
 
# tar czf primer.tar.gz /home/primer.txt
# Cоздать tar-архив с сжатием Gzip по имени primer.tar.gz;
 
# tar cjf primer.tar.bz2 /home/primer.txt
# Cоздать tar-архив с сжатием Bzip2 по имени primer.tar.bz;
 
# tar xf primer.tar
# Распаковать архив primer.tar в текущую папку;
 
# tar xzf primer.tar.gz
# Распаковать tar-архив с Gzip;
 
# chmod -R 644 /dir_name
# find /dir_name -type d -exec chmod 755 {} \;
рекурсивно изменить права доступа по отдельности для файлов и папок
 
# tar xjf primer.tar.bz
# Распаковать tar-архив с Bzip2;
 

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] rpm -e pkgname
# Удаление RPM пакета pkgname;
 
# [sudo] dpkg -i *.rpm
# Установка всех пакетов в директории;
 

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

# [sudo] apt-get update
# Обновление списка доступных пакетов из Internet;
 
# [sudo] apt-get upgrade
# Обновление доступной версии установленных пакетов в системе;
 
# [sudo] apt-get install pkgname
# Установка DEB пакета pkgname;
 
# [sudo] apt-get remove pkgname
# Удаление DEB пакета pkgname;
 
# [sudo] dpkg -i *.deb
# Установка всех пакетов в директории;
 

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

На верх


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

# top
# Информация в реальном времени о загруженных процессах, потребление ОЗУ;
 
# htop
# Более расширенная on line-статистика о загруженных процессах (разработчик http://htop.sourceforge.net);
 
# dmesg
# Показывает log-файл загрузки ОС и нахождения новых устройств;
 
# mpstat 1
# Показывает расширенную статистику потребления ресурсов системы в процентах (для некоторых дистрибутивов необходима установка пакета sysstat);
 
# vmstat 2
# Показать расширенную статистику по использованию виртуальной памяти;
 
# iostat 2
# Показать расширенную статистику прерываний по устройствам;
 

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

На верх


# lsdev
# информация об уже установленных устройствах (в некоторых дистрибутивах требует доставить пакет procinfo);
 
# cat /proc/cpuinfo
# Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.);
 
# cat /proc/meminfo
# Показать расширенную информацию о занимаемой оперативной памяти (MemTotal, MemFree, Buffers, Cached, SwapCached,HighTotal, HighFree, LowTotal и т. д.);
 
# grep SwapTotal /proc/meminfo
# Показать размер раздела выделенного под swap;
 
# watch -n1 'cat /proc/interrupts'
# Показать информацию о прерываниях;
 
# free -m
# Информация о используемой и свободной ОЗУ и Swap-файле (-m указывает, что отображать нужно в Мб);
 
# lshal
# Показать список всех устройств и их параметров;
 
# cat /proc/devices
# Показать все устройства в системе (названия взяты из директории /proc/devices);
 
# lspci -tv
# Показать обнаруженные PCI-устройства;
 
# lsusb -tv
# Показать обнаруженные USB-устройства;
 
# [sudo] dmidecode
# Показать информацию о версии BIOS компьютера;
 
# gtf 1024 768 75
# Выводит строку ModeLine для Вашего монитора на параметрах экрана 1024x768x75Hz;
 

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


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

На верх

# fdisk -l
# Информация о всех подключенных жестких и сменных дисках;
 
# [sudo] hdparm -I /dev/sda
# Полная информация о IDE/ATA жестких дисках;
 
# smartctl -a /dev/sda1
# Выводит SMART-информацию о разделе жесткого диска /dev/sda1 (необходима установка пакета smartmontools);
 
# [sudo] blkid
# Выводит UUID всех доступных накопителей информации в системе;
 

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

На верх

# [sudo] hdparm -tT /dev/sda
# Показывает производительность жесткого диска;
 

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

На верх

# mount | column -t
# Показывает полную информацию о примонтированных устройсвах;
 
# cat /proc/partitions
# Показывает только примонтированные разделы жесткого диска;
 
# df -h
# Показывает свободное место на разделах;
 
# [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 smbfs -o username=vasja,password=pupkin //pup/Video
# Монтирование сетевых ресурсов (SMB);
 
# [sudo] mount -t iso9660 -o loop /home/file.iso /home/iso
# Монтирование ISO-образов;
 
# [sudo] mount /dev/sdb1 -t vfat -o rw /mnt
# Монтирование раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точки монтирования /mnt с возможностью записи;
 
# [sudo] umount /mnt
# Отмонтирует раздел от точки монтирования /mnt;
 

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


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

На верх

# ifconfig
# Показать параметры всех сетевых;
 
# ifconfig eth0
# Показать параметры сетевого интерфейса eth0;
 
# [sudo] ethtool eth0
# Показывает состояние сетевого интерфейса eth0 (для некоторых дистрибутивов требуется установка пакета ethtool). Команда ethtool применяется только для проводных подключений, не работает с беспроводными интерфейсами;
 
# [sudo] ethtool -s eth0 speed 100 duplex full autoneg off
# Принудительно задать скорость сетевому интерфейсу 100Mbit и режим 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
# Задать основной IP адрес сетевому интерфейсу 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
# Задать дополнительный IP адрес сетевому интерфейсу eth0;
 
# [sudo] ifconfig eth0 up
# Запустить сетевой интерфейс eth0;
 
# [sudo] ifconfig eth0 down
# Отключить сетевой интерфейс eth0;
 
# 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 (пинговать можно ya.ru);
 

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

На верх

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

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

На верх

# netstat -an | grep LISTEN
# Показывает список всех открытых портов;
 
# lsof -i
# Показывает список всех открытых портов в сеть Internet;
 
# [sudo] netstat -tup
# Активные соединения с интернетом;
 
# socklist
# Показывает все открытые сокеты;
 
# [sudo] netstat -anp --udp --tcp | grep LISTEN
# Список приложений, которые открывают порты;
 
# [sudo] iptables -L -n -v
# Показывает статус firewall (статус iptables);
 
# [sudo] iptables -P INPUT ACCEPT
# Открывает доступ ко всем портам;
 
# [sudo] iptables -P FORWARD ACCEPT
# Открывает доступ ко всем портам;
 
# [sudo] iptables -P OUTPUT ACCEPT
# Открывает доступ ко всем портам;
 
# [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 20022 -j DNAT --to 192.168.16.44:22
# Перенаправление порта 20022, который использется для ssh;
 
# [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;
 
# 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 ITShaman
# Добавление группы ITShaman;
 
# usermod -a -G ITShaman Mut@NT
# Добавляет пользователя Mut@NT в группу ITShaman (для Debian-подобных дистрибутивов);
 
groupmod -A Mut@NT ITShaman
# Добавляет пользователя Mut@NT в группу ITShaman (SuSE);
 
# userdel Mut@NT
# Удаление пользователя Mut@NT;
 
# groupdel ITShaman
# Удаление группы ITShaman;
 

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

На верх


Все запущенные процессы имеют уникальные номера - PID.

# ps axjf
# Показать все загруженные процессы;
 
# pgrep -l sshd
# Показать PID определенного процесса – sshd;
 
# echo $$
# Показать PID вашей оболочки;
 
# fuser -va 22/tcp
# Показать PID процесса использующий порт 22;
 
# fuser -va /home
# Показывает PID процесса имеющего доступ к /home;
 
# lsof /home
# Показывает список процессы, которые используют /home;
 
# killall 0 httpd
# Выводит на экран текущее состояние процесса httpd;
 
# kil 4712
# «Убить» процесс с PID 4712;
 
# [sudo] killall TERM 4712
# Посылает процессу с PID`ом 4712 сигнал 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 по-умолчанию (для 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 (для Debian-подобных дистрибутивов);
 
# [sudo] chkconfig udev off
# Отключение у udev всех Runlevels;
 
# [sudo] update-rc.d -f udev remove
# Отключение у udev всех Runlevel (для Debian-подобных дистрибутивов);
 

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


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

На верх

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

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

На верх

# lsmod
# Список всех модулей загруженных в ядро;
 
# [sudo] modprobe isdn
# Загрузка модуля на примере isdn;
 
# make
# Создание сжатого образа ядра системы;
 
# make modules
# Компиляция модуля;
 
# [sudo] make modules_install
# Установка модуля;
 
# [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-файлами;
 
# lame -b 256 in.wav out.mp3
# Конвертирование wav-файлов в mp3 с качеством 256 kb/s;
 
# oggenc in.wav -b 256 out.ogg
# Конвертирование wav-файлов в Ogg Vorbis с качеством 256 kb/s;
 

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

На верх


# export PRINTER=lbp2900
# Выбор принтера по-умолчанию. В примере выбран принтер Canon LBP-2900;
 
# lpr #2 name.txt
# Распечатать на принтере Canon LBP-2900 две копии файла name.txt;
 
# lprm -
# Удаление всех задач с принтера по-умолчанию;
 
Статья опубликована 12.04.2009 · Автор статьи: Зюзгин Иван
Статья относится к linux, ubuntu, debian, репозиторий, команды, iso, mount