Прочитано: 153
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> #управление сервисами
Материалы