Рубрики
Linux Программирование

Командная строка Linux

Прочитано: 183

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

xterm &#Запуск терминала в отдельном окне (запуск фонового процесса);
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 --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 example.ru #Показывает IP-адрес введенного сайта;

2. Работы с файлами и директориями

В этом разделе собраны команды 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/user/primer.txt /home/primer.txt #Копирует /home/user/primer.tx в home/primer.txt;
ln -s /home/user/primer.txt /home/primer #Cоздает символическую ссылку /home/primer к файлу /home/user/primer.txt;
mkdir /home/user/example #Создание директории с именем example;
rmdir /home/user/example #Удаление директории с именем example;
rm -rf /home/user/example #Удаление директории с вложенными фалами;
cp -la /dir1 /dir2 #Копирование директорий;
mv /dir1 /dir2 #Переименование директории;
du -sh /home/user/ #Выводит на экран размер заданной директории. Можно использовать для определения размера файлов;
locate primer #Поиск всех файлов с именем primer;

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

[sudo] chmod 0777 /home/ #Изменение прав доступа к директории только для /home. 0777 – разрешение на чтение/запись/исполнение для всех групп;
[sudo] chmod -R 0777 /home/ #Рекурсивное изменение прав доступа к директории /home. 777 – разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;
[sudo] chown user:group /home/primer.txt #Изменение владельца и группы только для файла /home/primer.txt;
[sudo] chown -R user /home/ #Изменение владельца для всего содержимого директории /home;
chmod -R 755 /home/user #Смена прав, -R рекурсивно, т.е. изменит и то, что внутри каталога
   #7 - rwx - читать, писать, выполнять
   #6 - rw- - читаь, писать
   #5 - r-x - читать, выполнять
   #4 - r-- - читать
   #3 - -wx - писать, выполнять
   #2 - -w- - писать
   #1 - --x - выполнять
   #0 - --- - ничего нельзя делать
  #Первая цифра означает применения прав для владельца,
  #Вторая - для группы,
  #Третья - права для всех остальных.
chown -R user:group /home/user #Поменяет владельца и группу каталога и содержимое
find /home/example -type f -exec chmod 664 {} \; #рекурсивное применение правил для всех файлов в «/home/example»
find /home/example -type d -exec chmod 775 {} \; #рекурсивное применение правил для всех директорий и поддиректорий в «/home/example»

3. Работа с архивами

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. Установка программ

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 необходимые для мониторинга работы операционной системы. Все показания выводятся на экран в реальном времени. Число, стоящее после команды означает интервал между выводом информации.

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

6. Информация об устройствах

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. Жесткие диски и файловая система

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. Настройка сети

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

ifconfig #Показать параметры всех сетевых интерфейсов;
ip a #или выводит те же параметры всех сетевых интерфейсов;
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 [-antp] #Выводит на экран таблицу маршрутизации;
ss [-antp] #или команда выводит такую же таблицу маршрутизации;

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. Создание и запись ISO образов

cdrecord -scanbus #Показывает все доступные CD-ROM;
dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc #Создание ISO образов с диска CD-ROM;
#из пакета squashfs-tools
mksquashfs /mnt/1 /home/root-fs.sqfs -no-duplicates #Создание образа диска из директории /mnt/1 в файл root-fs.sqfs;
unsquashfs -d /mnt/1 -f /home/root-fs.sqfs #Распаковать образ root-fs.sqfs в директорию /mnt/1;
mount /home/root-fs.sqfs -o loop /mnt/1 #Присоединить образ root-fs.sqfs к директории /mnt/1 только для чтения, после отсоединить umount /mnt/1;

10. Пользователи и группы

Команды Linux необходимые для работы с пользователями и группами пользователей.

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

11. Работа с процессами

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

ps axjf [-eaf] #Показать все загруженные процессы;
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. 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. Работа с ядром и модулями

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

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

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

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

14. Работа с LiveCD

[sudo] mount --bind /proc /media/hd-root/proc #подключение системного раздела;
[sudo] mount --bind /sys /media/hd-root/sys #подключение системного раздела;
[sudo] mount --bind /dev /media/hd-root/dev #подключение системного раздела;
[sudo] chroot /media/hd-root #смена root-окружения на /hd-root. После этого раздел, примонтировнный к /hd-root, будет использоваться как родной;

15. Конвертирование различной информации

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

iconv -l #Выводит список всех доступных кодировок;
iconv -f cp1251 -t UTF-8 -o file_cp1251.txt > 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. Печать на принтере

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

17. Сканер портов

nmap -P0 -p1-65535 localhost #Cканировать порты на локальной машине

18. Настройка таблиц маршрутизации

iptables -I INPUT -p tcp -m multiport --port xxx,...,yyy -j DROP #Закрыть порт входящий
iptables -I OUTPUT -p tcp -m multiport --port xxx,...,yyy -j DROP #Закрыть порт исходящий
iptables -I INPUT -p tcp -m multiport --port xxx,...,yyy -j ACCEPT #Открыть порт входящий
iptables -I OUTPUT -p tcp -m multiport --port xxx,...,yyy -j ACCEPT #Открыть порт исходящий

19. Датчики напряжений и температур, скорость вращения вентиляторов

apt-get install lm-sensors sensors-detect sensors

20. Сравнение файлов по содержимому

meld input1 input2

21. Работа с сервисами

[sudo] service --status-all #вывод всех сервисов
[sudo] service <service_name> [status|restart|start|stop] #состояние, перезагрузка, старт, стоп сервиса
[sudo] systemctl list-units -t service --no-legend -all #вывод всех сервисов
[sudo] systemctl [enable|disable|status|restart|start|stop|...] <unit|units> #управление сервисами

Материалы

Добавить комментарий

Ваш адрес email не будет опубликован.

13 − 9 =