Команды Linux. Шпаргалка. Кратко

Приведенные команды будут одинаково верно работать во многих дистрибутивах, таких как: ASPLinuxDebianGentooUbuntuALTLinux и во многих других.

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 ubuntu66.ru # Показать информацию о доменом имени ubuntu66.ru;
export http_proxy=http://your.proxy:port # Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;
wget https://ubuntu66.ru/ads.gif # Скачать файл https://ubuntu66.ru/ads.gif в текущую папку;
wget —convert-links -r https://ubuntu66.ru/ # Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 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 ubuntu66.ru # Показывает IP-адрес введенного сайта;

 

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

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

   du -ah – вывод размера (в байтах) всех файлов и подкаталогов текущего каталога (размер файлов по умолчанию выводится в блоках, для вывода в байтах надо
применить опцию –h);
locate primer # Поиск всех файлов с именем primer;

2.2 Права доступа
sudo chmod 0777 /home/ # Изменение прав доступа к директории только для /home. 0777 – разрешение на чтение/запись/исполнение для всех групп;
sudo chmod -R 0777 /home/ # Рекурсивное изменение прав доступа к директории /home. 777 – разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;
sudo chown ubuntu66:human /home/primer.txt # Изменение владельца и группы только для файла /home/primer.txt;
sudo chown -R ubuntu66 /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 # Показывает свободное место на разделах:

    df -T – вывод списка файловых систем с указанием их типа;
df ~ – вывод информации по файловой системе, в которой находится домашний каталог.
Для того, чтобы вместо информации об использовании блоков выводить информацию об использовании индексных дескрипторов, надо применить опцию –i;
# 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;

7.4 Проверка (ремонт) файловой системы
# fsck -y -f /dev/sda1 # проверить файловую систему в /dev/sda1. Производится только на отмонтированной файловой системе. -f проверить раздел, даже если он был отключён корректно, -y на все вопросы в процессе проверки ответ YES ;

 

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;

8.5 Работа с помощью утилиты ip из пакета iproute2

# ip link list # Просмотр списка сетевых интерфейсов;
ip address show # Просмотр списка IP-адресов;
ip route show # Просмотр списка маршрутов;
ip rule list # Просмотр списка правил маршрутизации;
ip route list table local # Просмотр спика правил маршрутизации из таблицы loсal;
ip route list table main # Просмотр спика правил маршрутизации из таблицы main;

8.6 Перезапуск сети

sudo /etc/init.d/networking restart Перезапуск сетевых интерфейсов;

8.7 Мониторинг сети

# sudo tcpdump -i eth0 -c 100 — n # Перхват сетевых пакетов на сетевом интерфейсе eth0 количеством 100 с выводом ip адресов вместо имени;
traceroute ubuntu66.ru # Показать маршрут следования пакетов до сайта ubuntu66.ru;
sudo iftop -i eth0 # мониторинг сетевого трафика на интерфейсе eth0 в режиме реально времени ();
nmap –P0 –p 21,80 <ip> # Проверка состояния портов 21 и 80 на определенном ip адресе с помощью утилиты nmap;
hping3 -S -p 80 -c 2 <ip> # Отправка 2-х пакетов с флагом syn на 80 порт определенного ip для проверки состояния порта с помощью утилитьы hping3;

 

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 ubuntu66 # Показать информацию о пользователе ubuntu66;
last # Показывает последних зарегистрированных пользователей;
who # Показывает имя текущего пользователя и время входа;
useradd ubuntu66 # Добавление нового пользователя ubuntu66;
groupadd Human # Добавление группы Human;
usermod -a -G Human ubuntu66 # Добавляет пользователя ubuntu66 в группу Human (для Debian-подобных дистрибутивов);
groupmod -A ubuntu66 Human # Добавляет пользователя ubuntu66 в группу Human (SuSE);
userdel ubuntu66 # Удаление пользователя ubuntu66;
groupdel Human # Удаление группы Human;

 

11. Команды Linux: работа с процессами.
Все запущенные процессы имеют уникальные номера — PID.
ps axjf # Показать все загруженные процессы;

   ps -ux – вывод подробной информации о процессах, запущенных пользователем;
ps -e – вывод краткой информации о всех процессах, запущенных в системе;
ps -ef – вывод подробной информации о всех процессах, запущенных в системе;
ps -a – вывод краткой информации о всех процессах, запущенных пользователями;
pgrep -l sshd # Показать PID определенного процесса – sshd;
echo $$ # Показать PID вашей оболочки;
fuser -va 22/tcp # Показать PID процесса использующий порт 22;
# fuser -va /home # Показывает PID процесса имеющего доступ к /home;
lsof /home # Показывает список процессы, которые используют /home;

# kill –l # вывод списка всех доступных сигналов;
# killall 0 httpd # Выводит на экран текущее состояние процесса httpd;
kil 4712 # «Убить» процесс с PID 4712;

# kill –9 521 # принудительно завершить процесс с идентификатором 521.
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 videoin.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 videoout.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 — # Удаление всех задач с принтера по-умолчанию;