AKKAD - Web-Студия 

Блог

<<   Блог   Основные команды Linux/Unix - Справочник команд Линукс/Юникс

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

1. Общие команды 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 akkad.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
# Копирование директорий;


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] 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;


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
# Показывает свободное место на разделах;


[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.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 -
# Удаление всех задач с принтера по-умолчанию;