Основные команды 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. Runlevels
  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 команды, которым не нашлось место ни в каком другом разделе.

    # Показать версию ядра Linux;
    uname -a
    # На экран выводиться информация о версии операционной системы Debian и оснваных на ней дистрибутивах;
    lsb_release -a
    # На экран выводится информация о версии операционной системы SuSE;
    cat /etc/SuSE-release
    # Описание иерархии файловой системы (для чего нужна каждая директория в linux);
    man hier
    # Очищение экрана терминала;
    clear
    # Отправляет на терминалы других пользователей сообщение "Привет";
    wall Привет
    # Показывает текущую дату и время;
    date
    # Показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь);
    cal -3
    # Показать текущее время и работу системы без перезагрузки и выключения;
    uptime
    # Показать сетевое имя компьютера;
    hostname
    # Показать информацию о доменом имени linux.org;
    whois linux.org
    # Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;
    export http_proxy=http://your.proxy:port
    # Скачать файл http://itshaman.ru/images/logo_white.png в текущую папку;
    wget http://itshaman.ru/images/logo_white.png
    # Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 5 уровней в глубину;
    wget --convert-links -r http://www.linux.org/
    # Создание и настройка Dial-Up соединения для выхода в Интернет по модему;
    pppconfig
    # Создание и настройка выхода в Интернет через ADSL-модем;
    pppoeconf
    # Выполнить последнюю команду;
    !!
    # Показать последние 50 набранных команд;
    history | tail -50
    # Завершить сеанс текущего пользователя;
    exit
    # Меняет пароль текущего пользователя;
    passwd
    # Завершение работы Linux;
    shutdown -h now
    # Выключение машины
    poweroff
    # Перезагрузка системы;
    reboot
    # Cтатистика перезагрузок;
    last reboot
    # Настройка Wine - НЕэмулятор WinAPI;
    winecfg
    # Показывает IP-адрес введенного сайта;
    host itshaman.ru

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

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

    2.1 Директории и файлыНаверх

    # Выводит текущий путь;
    pwd
    # Выводит список файлов и каталогов по порядку;
    ls
    # Выводит форматированный список всех файлов и директорий, включая скрытые;
    ls -laX
    # Переход в домашнюю директорию;
    cd
    # Переход в директорию /home;
    cd /home
    # Создание пустого файла /home/primer2;
    touch /home/primer2
    # Показать содержимое файла /home/primer2;
    cat /home/primer2
    # Выводит конец файла. Удобно при работе с логами и большими файлами;
    tail /var/log/messages
    # Редактирование файла /home/primer2;
    nano /home/primer2
    # Вторая команда Linux для редактирования файла;
    gedit /home/primer2
    # Добавление к концу файла "Последняя строчка" в файл /home/primer2;
    echo "Последняя строчка" | sudo tee -a /home/primer2
    # Копирует /home/Mut@NT/primer.tx в home/primer.txt;
    cp /home/Mut@NT/primer.txt /home/primer.txt
    # Cоздает символическую ссылку /home/primer к файлу /home/Mut@NT/primer.txt;
    ln -s /home/Mut@NT/primer.txt /home/primer
    # Создание директории с именем shaman;
    mkdir /home/Mut@NT/shaman
    # Удаление директории с именем shaman;
    rmdir /home/Mut@NT/shaman
    # Удаление директории с вложенными фалами;
    rm -rf /home/Mut@NT/shaman
    # Копирование директорий;
    cp -la /dir1 /dir2
    # Переименование директории;
    mv /dir1 /dir2
    # Выводит на экран размер заданной директории. Можно использовать для определения размера файлов;
    du -sh /home/Mut@NT/
    # Поиск всех файлов с именем primer;
    locate primer

    2.2 Права доступаНаверх

    # Изменение прав доступа к директории только для /home. 0777 – разрешение на чтение/запись/исполнение для всех групп;
    chmod 0777 /home/
    # Рекурсивное изменение прав доступа к директории /home. 777 – разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;
    chmod -R 0777 /home/
    # Изменение владельца и группы только для файла /home/primer.txt;
    chown Mut@NT:ITShaman /home/primer.txt
    # Изменение владельца для всего содержимого директории /home;
    chown -R Mut@NT /home/

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

    # Создать tar-архив с именем primer.tar содержащий /home/primer.txt;
    tar cf primer.tar /home/primer.txt
    # Cоздать tar-архив с сжатием Gzip по имени primer.tar.gz;
    tar czf primer.tar.gz /home/primer.txt
    # Cоздать tar-архив с сжатием Bzip2 по имени primer.tar.bz;
    tar cjf primer.tar.bz2 /home/primer.txt
    # Распаковать архив primer.tar в текущую папку;
    tar xf primer.tar
    # Распаковать tar-архив с Gzip;
    tar xzf primer.tar.gz
    # Распаковать tar-архив с Bzip2;
    tar xjf primer.tar.bz

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

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

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

    # Показать список установленных пакетов RPM в системе;
    rpm -qa

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

    # Показать список установленных пакетов DEB в системе;
    dpkg -l |more
    # Ищет в индексах наличее доступного пакета и выводит на экран краткую информацию о нужном пакете (очень полезная команда для поиска и установки программ из консоли);
    apt-cache search имя пакета
    # Полная информация о указанном пакете;
    apt-cache showpkg имя пакета

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

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

    # Установка RPM пакета pkgname.rpm;
    rpm -i pkgname.rpm
    # Удаление RPM пакета pkgname;
    rpm -e pkgname
    # Установка всех пакетов в директории;
    dpkg -i *.rpm

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

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

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

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

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

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

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

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

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

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

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

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

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

    # Показывает полную информацию о примонтированных устройсвах;
    mount | column -t
    # Показывает только примонтированные разделы жесткого диска;
    cat /proc/partitions
    # Показывает свободное место на разделах;
    df
    # Монтирует раздел /dev/sda1 к точке монтирования /mnt;
    mount /dev/sda1 /mnt
    # Монтирует большинство CD-ROM`ов;
    mount -t auto /dev/cdrom /mnt/cdrom
    # Монтирует IDE CD-ROM;
    mount /dev/hdc -t iso9660 -r /cdrom
    # Монтирует SCSI CD-ROM;
    mount /dev/scd0 -t iso9660 -r /cdrom
    # Монтирование FreeBSD разделов в Linux;
    mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
    # Монтирование сетевых ресурсов (SMB);
    mount -t smbfs -o username=vasja,password=pupkin //pup/Video
    # Монтирование ISO-образов;
    mount -t iso9660 -o loop /home/file.iso /home/iso
    # Монтирование раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точки монтирования /mnt с возможностью записи;
    mount /dev/sdb1 -t vfat -o rw /mnt
    # Отмонтирует раздел от точки монтирования /mnt;
    umount /mnt

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

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

    # Показать параметры всех сетевых;
    ifconfig
    # Показать параметры сетевого интерфейса eth0;
    ifconfig eth0
    # Показывает состояние сетевого интерфейса eth0 (для некоторых дистрибутивов требуется установка пакета ethtool). Команда ethtool применяется только для проводных подключений, не работает с беспроводными интерфейсами;
    ethtool eth0
    # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;
    ethtool -s eth0 speed 100 duplex full autoneg off
    # Задать основной IP адрес сетевому интерфейсу eth0;
    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
    # Запустить сетевой интерфейс eth0;
    ifconfig eth0 up
    # Отключить сетевой интерфейс eth0;
    ifconfig eth0 down
    # Смена MAC адреса;
    ifconfig eth0 hw ether 00:01:02:03:04:05
    # Перезагрузка DHCP клиента;
    /etc/init.d/dhcpd restart
    # Проверка сетевого соединения. Пингуется IP адрес 192.168.0.2 (пинговать можно ya.ru);
    ping 192.168.0.2

    8.2 МаршрутизацияНаверх

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

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

    # Показывает список всех открытых портов;
    netstat -an | grep LISTEN
    # Показывает список всех открытых портов в сеть Internet;
    lsof -i
    # Активные соединения с интернетом;
    netstat -tup
    # Показывает все открытые сокеты;
    socklist
    # Список приложений, которые открывают порты;
    netstat -anp --udp --tcp | grep LISTEN
    # Показывает статус firewall (статус iptables);
    iptables -L -n -v
    # Открывает доступ ко всем портам;
    iptables -P INPUT ACCEPT
    # Открывает доступ ко всем портам;
    iptables -P FORWARD ACCEPT
    # Открывает доступ ко всем портам;
    iptables -P OUTPUT ACCEPT
    # Удаляет все цепочки;
    iptables -X

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

    # "Поднятие" NAT на интерфейсе eth0;
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    # Перенаправление порта 20022, который использется для ssh;
    iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22
    # Перенаправление диапазона портов 993-995;
    iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995
    # Проверка статуса NAT;
    iptables -L -t nat

    9. Команды Linux: создание и запись ISO образов.Наверх

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

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

    Команды Linux необходимые для работы с пользователями и группами пользователей.
    # Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы);
    id
    # Показать информацию о пользователе Mut@NT;
    finger Mut@NT
    # Показывает последних зарегистрированных пользователей;
    last
    # Показывает имя текущего пользователя и время входа;
    who
    # Добавление нового пользователя Mut@NT;
    useradd Mut@NT
    # Добавление группы ITShaman;
    groupadd ITShaman
    # Добавляет пользователя Mut@NT в группу ITShaman (для Debian-подобных дистрибутивов);
    usermod -a -G ITShaman Mut@NT
    # Добавляет пользователя Mut@NT в группу ITShaman (SuSE);
    groupmod -A Mut@NT ITShaman
    # Удаление пользователя Mut@NT;
    userdel Mut@NT
    # Удаление группы ITShaman;
    groupdel ITShaman

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

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

    # Показать все загруженные процессы;
    ps axjf
    # Показать PID определенного процесса – sshd;
    pgrep -l sshd
    # Показать PID вашей оболочки;
    echo $$
    # Показать PID процесса использующий порт 22;
    fuser -va 22/tcp
    # Показывает PID процесса имеющего доступ к /home;
    fuser -va /home
    # Показывает список процессы, которые используют /home;
    lsof /home
    # Выводит на экран текущее состояние процесса httpd;
    killall 0 httpd
    # «Убить» процесс с PID 4712;
    kil 4712
    # Посылает процессу с PID`ом 4712 сигнал TERM - завершить процесс;
    killall TERM 4712
    # Посылает процессу с именем httpd сигнал HUP - остановить процесс;
    killall HUP httpd
    # “Убить” все процессы имеющие доступ к /home;
    fuser -k -TERM -m /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.

    Более простой вариант настройки:

    # Очень удобная настройка Runlevels (необходима установка пакета sysv-rc-conf);
    sysv-rc-conf

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

    # Показывает список всех скриптов с соответствующими им Runlevels;
    chkconfig --list
    # Показывает разрешенные Runlevels только отдельного скрипта, в нашем случае udev;
    chkconfig --list udev
    # Выставление скрипту udev значений Runlevels по-умолчанию (для Debian-подобных дистрибутивов);
    update-rc.d udev defaults
    # Добавление скрипту udev Runlevels 3 и 5;
    chkconfig udev --level 35 on
    # Изменить параметры для скрипта udev (для Debian-подобных дистрибутивов);
    update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6
    # Отключение у udev всех Runlevels;
    chkconfig udev off
    # Отключение у udev всех Runlevel (для Debian-подобных дистрибутивов);
    update-rc.d -f udev remove

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

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

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

    13.2 Работа с модулями ядраНаверх

    # Список всех модулей загруженных в ядро;
    lsmod
    # Загрузка модуля на примере isdn;
    modprobe isdn
    # Создание сжатого образа ядра системы;
    make
    # Компиляция модуля;
    make modules
    # Установка модуля;
    make modules_install
    # Установка в ядро системы;
    make install

    14. Команды Linux: работа с LiveCD.Наверх

    # смена root-окружения на /mnt. После этого коневой раздел, примонтировнный к /mnt, будет использоваться как родной;
    chroot /mnt

    15. Команды Linux: конвертирование различной информации;

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

    # Выводит список всех доступных кодировок;
    iconv -l
    # Смена кодировки. Был файл file_cp1251.txt с кодировкой cp1251, а в итоге получился файл file_utf8.txt с кодировкой utf8;
    iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt

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

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

    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 Конвертирование аудиоНаверх

    # Копирование треков с AudioCD в текущую директорию wav-файлами;
    cdparanoia -B
    # Конвертирование wav-файлов в mp3 с качеством 256 kb/s;
    lame -b 256 in.wav out.mp3
    # Конвертирование wav-файлов в Ogg Vorbis с качеством 256 kb/s;
    oggenc in.wav -b 256 out.ogg

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

    # Выбор принтера по-умолчанию. В примере выбран принтер Canon LBP-2900;
    export PRINTER=lbp2900
    # Распечатать на принтере Canon LBP-2900 две копии файла name.txt;
    lpr #2 name.txt
    # Удаление всех задач с принтера по-умолчанию;
    lprm -