Общие команды Linux
uname -a
|
Показать версию ядра Linux;
|
arch
|
отобразить архитектуру компьютера
|
lsb_release -a
|
На экран выводиться информация о версии операционной системы Debian и оснваных на ней дистрибутивах;
|
man hier
|
Описание иерархии файловой системы (для чего нужна каждая директория в linux);
|
clear
|
Очищение экрана терминала;
|
wall Привет
|
Отправляет на терминалы других пользователей сообщение "Привет";
|
date
|
Показывает текущую дату и время;
|
cal -3
|
Показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь);
|
uptime
|
Показать текущее время и работу системы без перезагрузки и выключения;
|
hostname
|
Показать сетевое имя компьютера;
|
whois linux.org
|
Показать информацию о доменом имени linux.org
|
http://your.proxy
|
Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;
|
http://itshaman.ru/images/logo_white.png
|
Скачать файл http://itshaman.ru/images/logo_white.png в текущую папку;
|
http://www.linux.org/
|
Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 5 уровней в глубину;
|
pppconfig
|
Создание и настройка Dial-Up соединения для выхода в Интернет по модему;
|
pppoeconf
|
Создание и настройка выхода в Интернет через ADSL-модем;
|
history | tail -50
|
Показать последние 50 набранных команд;
|
passwd
|
Меняет пароль текущего пользователя;
|
shutdown -h hours:minutes &
|
запланировать выключение системы
shutdown -c отменить запланированное выключение
shutdown -r now перезагрузить систему
|
shutdown -h now
|
Выход из Linux;
|
poweroff
|
Выход из Linux;
|
last reboot
|
Cтатистика перезагрузок;
|
winecfg
|
Настройка Wine — НЕэмулятор WinAPI
|
host itshaman.ru
|
Показывает IP-адрес введенного сайта;
|
init 0
|
выключить систему
|
telinit 0
|
выключить систему
|
logout
|
завершить сессию
|
whoami
|
имя текущего пользователя
|
sudo dmidecode -q
|
информация об аппаратном обеспечении системы, в соответствии с SMBIOS/DMI.
|
lspci -tv
|
PCI устройства
|
lsusb -tv
|
USB устройства
|
lsmod
|
Отобразит список загруженных модулей ядра.
|
tail /var/log/dmesg
|
Отобразит сообщения ядра полученные при последней загрузке системы.
|
tail /var/log/messages
|
Покажет все сообщения о ходе загрузки системы, а также другие сообщения о статусе работающей системы.
|
|
|
2. Команды Linux: работы с файлами и директориями
2.1 Директории и файлы
pwd
|
Выводит текущий путь
|
ls
|
Выводит список файлов и каталогов по порядку;
ls -F показать файлы и директории
ls -l показать подробности о файлах и директориях
ls -a показать скрытые файлы
|
sed
|
Замена подстроки во всех файлах папки
Чтобы заменить слово во всех файлах определенной папки, с помощью sed
sed -i 's/что_менять/на_что_менять/' /path/to/files/*
Недавно я переносил папку своего веб-сервера, в котором установлено более 10 хостов. И чтобы поправить пути во всех файлах, я воспользовался этой командой.
sed -i 's/docs/sites/' /etc/apache2/sites-available/*
|
ls -laX
|
Выводит форматированный список всех файлов и директорий, включая скрытые;
|
touch /home/primer2
|
Создание пустого файла /home/primer2
|
cat /proc/cpuinfo информация о процесоре
cat /proc/interrupts прерывания
cat /proc/meminfo вся информация которая относится к памяти
cat /proc/swaps вся информация про swap
cat /proc/version версия ядра и другая информация
cat /proc/net/dev сетевые интерфейсы и статистика
cat /proc/mounts смонтированные устройства
cat /proc/partitions доступные разделы
cat /proc/modules загруженные модули ядра
|
|
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
|
/home/Mut@NT/primer.txt
|
Cоздает символическую ссылку /home/primer к файлу /home/Mut@NT/primer.txt;
|
mkdir /home/Mut@NT/shaman
|
Создание директории с именем shaman;
|
rmdir /home/Mut@NT/shaman
|
Удаление директории с именем shaman;
|
/home/Mut@NT/shaman
|
Удаление директории с вложенными фалами;
|
cp -la /dir1 /dir2
|
Копирование директорий;
|
mv /dir1 /dir2
|
Переименование директории;
|
/home/Mut@NT/
|
Выводит на экран размер заданной директории. Можно использовать для определения размера файлов;
|
locate primer
|
Поиск всех файлов с именем primer
|
find / -name '*html' -print | xargs grep -l 'www.example.com' | less -O pages
|
команда xargs принимает на вход имена файлов от find и последовательно запускает grep -l для обработки каждого файла, вне зависимости от того, сколько файлов нашлось. Команда grep -l печатает имя файла, если в нем удалось в нем обнаружить указанный фрагмент текста, а затем прекращает анализ этого файла. Утилита less позволяет вам просматривать результаты по страницам и сохранить список в файл с названием pages. Результатом работы этой команды будет список файлов, которые содержат строку «www.example.com»
|
find / -name file1 — найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1 — найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name "*.bin" — найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'*
find /usr/bin -type f -atime +100 — найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10 — найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней
find / -name *.rpm -exec chmod 755 '{}' \; — найти все фалы и директории, имена которых оканчиваются на '.rpm', и изменить права доступа к ним
find / -xdev -name "*.rpm" — найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п.
locate "*.ps" — найти все файлы, содержащие в имени '.ps'. Предварительно рекомендуется выполнить команду 'updatedb'
whereis halt — показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt'
2.2 Права доступа
chmod 0777 /home/
|
[sudo] Изменение прав доступа к директории только для /home. 0777 — разрешение на чтение/запись/исполнение для всех групп;
|
chmod -R 0777 /home/
|
[sudo] Рекурсивное изменение прав доступа к директории /home. 777 — разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;
|
chmod ugo+rwx directory1
|
добавить полномочия на директорию
|
chmod go-rwx directory1
|
отобрать у группы и всех остальных все полномочия на директорию directory1.
|
|
|
chown Mut@NT:ITShaman /home/primer.txt
|
Изменение владельца и группы только для файла /home/primer.txt;
|
Mut@NT /home/
|
Изменение владельца для всего содержимого директории /home;
|
|
600 Файл недоступен
644 Доступ всем для чтения (например, документы HTML)
666 Файл может прочитан и модифицирован (для файлов HTML, изменяемых посредством скриптов)
755 Файл может быть прочитан и запущен кем угодно (например, скрипты)
777 Доступен для записи и запуска кому угодно (не рекомендуется)
|
s -lh
|
просмотр полномочий на файлы и директории в текущей директории
|
ls /tmp | pr -T5 -W$COLUMNS
|
вывести содержимое директории /tmp и разделить вывод на пять колонок
|
directory1 ugo(User Group Other)+rwx(Read Write eXecute)
|
всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1
|
chown user1 file1
|
назначить владельцем файла file1 пользователя user1
|
chown -R user1 directory1
|
назначить рекурсивно владельцем директории directory1 пользователя user1
|
chown user1:group1 file1
|
сменить владельца и группу владельца файла file1
|
chmod u+s /bin/binary_file
|
назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.
|
chmod u-s /bin/binary_file
|
снять SUID-бит с файла /bin/binary_file.
|
|
chmod g+s /home/public — назначить SGID-бит директории /home/public.
chmod g-s /home/public — снять SGID-бит с директории /home/public.
chmod o+t /home/public — назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
chmod o-t /home/public — снять STIKY-бит с директории /home/public
|
|
|
chgrp group1 file1
|
сменить группу-владельца файла file1 на group1
|
Специальные атрибуты файлов
chattr +a file1 — позволить открывать файл на запись только в режиме добавления
chattr +c file1 — позволяет ядру автоматически сжимать/разжимать содержимое файла.
chattr +d file1 — указавет утилите dump игнорировать данный файл во время выполнения backup'а
chattr +i file1 — делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
chattr +s file1 — позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
chattr +S file1 — указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
chattr +u file1 — данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
lsattr — показать атрибуты файлов
Команды 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.1 Просмотр установленных пакетов
rpm -qa
|
Показать список установленных пакетов RPM в системе;RPM — дистрибутивы
|
dpkg -l |more
|
DEB — дистрибутивы Показать список установленных пакетов DEB в системе;
|
apt-cache search имя пакета
|
Ищет в индексах наличее доступного пакета и выводит на экран краткую информацию о нужном пакете (очень полезная команда для поиска и установки программ из консоли);
|
apt-cache showpkg имя пакета
|
Полная информация о указанном пакете;
|
|
|
4.2 Установка и удаление пакетов
RPM — дистрибутивы
rpm -i pkgname.rpm
|
Установка RPM пакета pkgname.rpm;
|
rpm -e pkgname
|
Удаление RPM пакета pkgname;
|
dpkg -i *.rpm
|
Установка всех пакетов в директории;
|
DEB — дистрибутивы
apt-get update
|
Обновление списка доступных пакетов из Internet;
|
apt-get upgrade
|
Обновление доступной версии установленных пакетов в системе;
|
apt-get install pkgname
|
Установка DEB пакета pkgname;
|
apt-get remove pkgname
|
Удаление DEB пакета pkgname;
|
dpkg -i *.deb
|
Установка всех пакетов в директории;
|
Команды Linux: мониторинг работы и просмотр логов.
top
|
Информация в реальном времени о загруженных процессах, потребление ОЗУ;
|
pstree
|
Отобразит иерархический список запущенных процессов.
|
htop
|
Более расширенная on line-статистика о загруженных процессах (разработчик http://htop.sourceforge.net);
|
dmesg
|
Показывает log-файл загрузки ОС и нахождения новых устройств;
|
mpstat 1
|
Показывает расширенную статистику потребления ресурсов системы в процентах (для некоторых дистрибутивов необходима установка пакета sysstat);
|
vmstat 2
|
Показать расширенную статистику по использованию виртуальной памяти;
|
iostat 2
|
Показать расширенную статистику прерываний по устройствам;
|
Команды 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-устройства;
|
dmidecode
|
[sudo] Показать информацию о версии BIOS компьютера;
|
gtf 1024 768 75
|
Выводит строку ModeLine для Вашего монитора на параметрах экрана 1024x768x75Hz;
|
Команды Linux: жесткие диски и файловая система. Информация о файловой системе и жестком диске
fdisk -l
|
Информация о всех подключенных жестких и сменных дисках;
|
hdparm -I /dev/sda
|
[sudo] Полная информация о IDE/ATA жестких дисках;
|
smartctl -a /dev/sda1
|
Выводит SMART-информацию о разделе жесткого диска /dev/sda1 (необходима установка пакета smartmontools);
|
blkid
|
[sudo] Выводит UUID всех доступных накопителей информации в системе;
|
hdparm -tT /dev/sda
|
sudo] Показывает производительность жесткого диска;
|
|
|
Монтирование разделов жесткого диска
mount | column -t
|
Показывает полную информацию о примонтированных устройсвах;
|
cat /proc/partitions
|
Показывает только примонтированные разделы жесткого диска;
|
df
|
Показывает свободное место на разделах;
|
mount /dev/sda1 /mnt
|
[sudo] Монтирует раздел /dev/sda1 к точке монтирования /mnt;
|
mount -t auto /dev/cdrom /mnt/cdrom
|
[sudo] Монтирует большинство CD-ROM`ов;
|
mount /dev/hdc -t iso9660 -r /cdrom
|
[sudo] Монтирует IDE CD-ROM;
|
mount /dev/scd0 -t iso9660 -r /cdrom
|
[sudo] Монтирует SCSI CD-ROM;
|
mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
|
[sudo] Монтирование FreeBSD разделов в Linux;
|
mount -t smbfs -o username=vasja,password=pupkin //pup/Video
|
[sudo] Монтирование сетевых ресурсов (SMB);
|
mount -t iso9660 -o loop /home/file.iso /home/iso
|
[sudo] Монтирование ISO-образов;
|
mount /dev/sdb1 -t vfat -o rw /mnt
|
[sudo] Монтирование раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точки монтирования /mnt с возможностью записи;
|
umount /mnt
|
[sudo] Отмонтирует раздел от точки монтирования /mnt;
|
fuser -km /mnt/hda2
|
принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем
|
umount -n /mnt/hda2
|
выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске
|
mount /dev/fd0 /mnt/floppy — монтировать флоппи-диск
mount /dev/hdc /mnt/cdrecorder - монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)
mount -o loop file.iso /mnt/cdrom - смонтировать ISO-образ
mount -t vfat /dev/hda5 /mnt/hda5 — монтировать файловую систему Windows FAT32
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — монтировать сетевую файловую систему Windows (SMB/CIFS)
mount -o bind /home/user/prg /var/ftp/user — «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user
Команды Linux: настройка сети. Конфигурация сети
ifconfig
|
Показать параметры всех сетевых;
|
ifconfig eth0
|
Показать параметры сетевого интерфейса eth0;
|
ethtool eth0
|
[sudo] Показывает состояние сетевого интерфейса eth0 (для некоторых дистрибутивов требуется установка пакета ethtool). Команда ethtool применяется только для проводных подключений, не работает с беспроводными интерфейсами;
|
ethtool -s eth0 speed 100 duplex full autoneg off
|
[sudo] Принудительно задать скорость сетевому интерфейсу 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;
|
ifconfig eth0 up
|
[sudo] Запустить сетевой интерфейс eth0;
|
ifconfig eth0 down
|
[sudo] Отключить сетевой интерфейс eth0;
|
ifconfig eth0 hw ether 00:01:02:03:04:05
|
Смена MAC адреса;
|
/etc/init.d/dhcpd restart
|
[sudo]# Перезагрузка DHCP клиента;
|
|
|
Маршрутизация , netstat
route -n
|
Выводит на экран таблицу маршрутизации;
|
netstat -rn
|
Выводит на экран таблицу маршрутизации;
|
netstat -p --inet
|
Показать активные соединения
|
netstat -lp --inet
|
Показать прослушиваемые порты в системе (и кто их слушает)
|
netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n
|
|
time netstat -at
|
|
|
|
Управление портами (брандмауэр)
netstat -an | grep LISTEN
|
Показывает список всех открытых портов;
|
lsof -i
|
Показывает список всех открытых портов в сеть Internet;
|
netstat -tup
|
[sudo] # Активные соединения с интернетом;
|
socklist
|
Показывает все открытые сокеты;
|
netstat -anp --udp --tcp | grep LISTEN
|
[sudo] # Список приложений, которые открывают порты;
|
iptables -L -n -v
|
[sudo] Показывает статус firewall (статус iptables);
|
iptables -P INPUT ACCEPT
|
[sudo] Открывает доступ ко всем портам;
|
iptables -P FORWARD ACCEPT
|
[sudo] Открывает доступ ко всем портам;
|
iptables -P OUTPUT ACCEPT
|
[sudo] Открывает доступ ко всем портам;
|
iptables -X
|
[sudo] Удаляет все цепочки;
|
|
|
Управление NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
Поднятие" NAT на интерфейсе eth0
|
iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22
|
Перенаправление порта 20022, который использется для ssh;
|
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: пользователи и группы.
id
|
Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы);
|
finger Mut@NT
|
Показать информацию о пользователе Mut@NT;
|
last
|
Показывает последних зарегистрированных пользователей;
|
who
|
Показывает имя текущего пользователя и время входа;
|
useradd Mut@NT
|
Добавление нового пользователя Mut@NT
useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
useradd user1 — создать пользователя user1
|
groupadd ITShaman
|
Добавление группы ITShaman;
groupadd group_name — создать новую группу с именем group_name
groupdel group_name — удалить группу group_name
groupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_name
|
usermod -a -G ITShaman Mut@NT
|
Добавляет пользователя Mut@NT в группу ITShaman (для Debian-подобных дистрибутивов);
groupmod -A Mut@NT ITShaman
# Добавляет пользователя Mut@NT в группу ITShaman (SuSE);
|
userdel Mut@NT
|
Удаление пользователя Mut@NT;
userdel -r user1 — удалить пользователя user1 и его домашний каталог
|
groupdel ITShaman
|
Удаление группы ITShaman;
|
pwck
|
проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
|
grpck
|
проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
newgrp [-] group_name — изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd
|
Команды 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;
|
killall TERM 4712
|
[sudo] Посылает процессу с PID`ом 4712 сигнал TERM — завершить процесс;
|
killall HUP httpd
|
[sudo] Посылает процессу с именем httpd сигнал HUP — остановить процесс;
|
fuser -k -TERM -m /home
|
[sudo] “Убить” все процессы имеющие доступ к /home;
|
lsof -p $$
|
Отобразит какой процесс работает с файлом или каталогом.
|
lsof /home/user1
|
Отобразит какой процесс работает с файлом или каталогом в конкретной директории.
|
Важные сигналы посылаемые процессам:
Команды 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.
Более простой вариант настройки:
sysv-rc-conf
|
[sudo] Очень удобная настройка Runlevels (необходима установка пакета sysv-rc-conf);
|
Ручной вариант настройки:
chkconfig --list
|
Показывает список всех скриптов с соответствующими им Runlevels;
|
chkconfig --list udev
|
Показывает разрешенные Runlevels только отдельного скрипта, в нашем случае udev;
|
update-rc.d udev defaults
|
[sudo] Выставление скрипту udev значений Runlevels по-умолчанию (для Debian-подобных дистрибутивов);
|
chkconfig udev --level 35 on
|
[sudo] Добавление скрипту udev Runlevels 3 и 5;
|
update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6
|
[sudo] Изменить параметры для скрипта udev (для Debian-подобных дистрибутивов);
|
chkconfig udev off
|
[sudo] Отключение у udev всех Runlevels;
|
update-rc.d -f udev remove
|
[sudo] Отключение у udev всех Runlevel (для Debian-подобных дистрибутивов);
|
13. Команды Linux: Работа с ядром и модулями.
uname -a
|
Показать версию ядра Linux;
uname -m покажет архитектуру машины
uname -r версия ядра
|
lsmod
|
Список всех модулей загруженных в ядро
|
modprobe isdn [sudo]
|
Загрузка модуля на примере isdn;
|
make
|
Создание сжатого образа ядра системы;
|
make modules
|
Компиляция модуля;
|
make modules_install
|
[sudo] Установка модуля;
|
make install
|
[sudo] Установка в ядро системы;
|
14. Команды Linux: работа с LiveCD.
chroot /mnt
|
[sudo] смена root-окружения на /mnt. После этого коневой раздел, примонтировнный к /mnt, будет использоваться как родной;
|
15. Команды Linux: конвертирование различной информации;
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. Команды Linux: печать на принтере.
export PRINTER=lbp2900
|
Выбор принтера по-умолчанию. В примере выбран принтер Canon LBP-2900;
|
lpr #2 name.txt
|
Распечатать на принтере Canon LBP-2900 две копии файла name.txt;
|
lprm -
|
Удаление всех задач с принтера по-умолчанию.
|
|
|
Работа с дисками
df -h
|
Показать все смонтированные устройства хранения данных
|
ls -lSr |more
|
покажет все файлы в текущей директории в отсортированном по размеру списке
|
du -sh dir1
|
Покажет сколько дискового пространства занимает конкретная директория “dir1″
|
smartctl
|
smartctl -A /dev/hda Вывод информации, поддерживает ли диск SMART.
smartctl -s on /dev/hda Включаем SMART, если выключен.
smartctl -c /dev/hda Проверяем какие возможности SMART поддерживает диск и какие установлены параметры.
smartctl -H /dev/hda Статус состояния диска и список атрибутов проверок.
smartctl -A /dev/hda Статус состояния диска и список атрибутов проверок.
smartctl -t offline /dev/hda Запускаем offline тест.
smartctl -l selftest /dev/hda Смотрим, есть ли ошибки.
smartctl -r ioctl -i /dev/hda Смотрим более детально.
|
badblocks -v /dev/hda
|
Проводит проверку поверхности диска на читаемость и записываемость.
|
fsck /dev/hda
|
Проводит проверку диска и пытается по возможности восстановить работоспособность дисковой подсистемы.
|
СЕТЬ.
Iptraf
|
Снифер
|
Iftop
|
Снифер
|
tcptrack -i eth1
|
Снифер
|
Ss ; ss -l
|
Снифер
|
iftraf
|
Снифер
|
ssh -X Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1">Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1 wireshark
|
Снифер
|
EtherApe
|
Снифер
|
nmap
|
|
dhclient eth0
|
Включить на интерфейсе eth0 режим dhcp
|
route -n
|
Показать таблицу роутинга
|
route add -net 0/0 gw IP_адрес_шлюза
|
Задать шлюз
|
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
|
настроить статический маршрут для сети 192 .168.0.0/16
|
route del 0/0 gw IP_адрес_шлюз
|
удалить статический маршрут
|
echo “1” > /proc/sys/net/ipv4/ip_forward
|
активировать ip маршрутизацию
hostname Показать имя хоста
|
ip link show
|
Показать информацию о всех сетевых интерфейсах
ip link show eth0 Показать информацию интерфейса eth0
|
mii-tool eth0
|
Показать параметры интерфейса eth0
ethtool eth0 Показать статистику интерфейса eth0
|
|
|
Иные комманды
sudo apt-get clean
|
очистит локальный кеш пакетов.
sudo aptitude purge Wormux — Удалить пакеты и их файлы конфигурации.
sudo apt-get purge Ещё можно попробовать sudo apt-get autoremove/ sudo aptitude purge **** — Удалить пакеты и их файлы конфигурации.
|
lshw
|
список оборудования
|
|
|
|
|
|
|
ifconfig Показать конфигурацию всех сетевых интерфейсов
ifconfig eth0 Показать конфигурацию сетевого интерфейса eth0
ifup eth0 Активировать сетевой интерфейс eth0
ifdown eth0 Отключить сетевой интерфейс eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Задать конфигурацию IP адреса
ifconfig eth0 promisc Позволяет получать все пакеты, независимо от того были ли они предназначены для хоста или нет. (Это позволяет анализировать сетевой трафик.)
21 порт => FTP
22 порт => SSH
23 порт => Telnet
25 порт => Порт SMTP отвечающий за передачу почты
43 порт => Порт клиента WHOIS
53 порт => Система преобразования имени хоста
80 порт => Стандартный порт HTTP Веб севрера
110 порт => Порт POP отвечает за приём почты
995 порт => Защищённое SSL/TLS соединение POP
143 порт => IMAP Протокол приёма почты
993 порт => Защищённое соединение IMAP
443 порт => Защищённое HTTP соединение (SSL для https:// )
3306 порт => Mys QL? Сервер
631 порт => Протоколы сетевой печати
5900 порт => Система удаленного доступа к компьютеру VNC (Virtual Network Computing)
Планирование заданий
CronTab — это утилита позволяющая в определенный день и час автоматически запускать различные программы или скрипты.
crontab -e Изменит Ваш crontab файл или создаст новый.
crontab -l Отобразит содержимое существующего crontab файла.
crontab -r Удалит Ваш crontab файл.
crontab -v Отобразит когда в последний раз Вы изменяли свой crontab файла.
Структура файла с заданиями для CronTab.
* * * * * command
— — — — — | | | | |
| | | | +—– День недели (0 — 6) (Sunday=0)
| | | +——- Месяц года (1 — 12)
| | +——— День месяца (1 — 31)
| +———– Час дня запуска (0 — 23)
+————- Минута часа для запуска (0 — 59)
command запускаемая программа или скрипт.
Значок * задаёт параметр (день, год, месяц, час).
Пример
01 * * * * command запуск программы или скрипта каждый час в одну минуту.
* 6 * * * command запуск программы или скрипта каждый день в 6 часов утра.
Значения могут быть числом, трех-буквенным названием, а так же диапазоном например запись «1-5» в поле day будет означать «с понедельника по пятницу». Значения могут отделяться запятыми: «1,15,31» в поле day будет запускать указанную команду 1-го, 15-го и 31-го числа каждого месяца.
Все пять полей времени допускают использование символа звездочка — «*», который обозначает «использовать любое допустимое значение» для этого поля.
Файлы с заданиями можно найти тут:
/usr/lib/cron
Основной каталог команд, связанных со временем.
/usr/spool/cron/crontabs
Каталог файлов регулярных действий.
/usr/lib/cron/log
Учетная информация.
/usr/lib/cron/cron.allow
Список пользователей, которым разрешено выполнять команду crontab.
/usr/lib/cron/cron.deny
Список пользователей, которым запрещено выполнять команду crontab.
Манипуляции с текстом
cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt - общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан
grep Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug»
grep ^Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug»
grep [0-9] /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие цифры
grep Aug -R /var/log/* — отобрать и вывести на стандартное устройство вывода строки, содержащие «Augr», во всех файлах, находящихся в директории /var/log и ниже
sed 's/stringa1/stringa2/g' example.txt — в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода.
sed '/^$/d' example.txt - удалить пустые строки из файла example.txt
sed '/ *#/d; /^$/d' example.txt - удалить пустые строки и комментарии из файла example.txt
echo 'esempio' | tr '[:lower:]' '[:upper:]' — преобразовать символы из нижнего регистра в верхний
sed -e '1d' result.txt — удалить первую строку из файла example.txt
sed -n '/string1/p' — отобразить только строки содержашие «string1»
sed -e 's/ *$//' example.txt - удалить пустые символы в в конце каждой строки
sed -e 's/string1//g' example.txt - удалить строку «string1» из текста не изменяя всего остального
sed -n '1,8p;5q' example.txt - взять из файла с первой по восьмую строки и из них вывести первые пять
sed -n '5p;5q' example.txt — вывести пятую строку
sed -e 's/0*/0/g' example.txt - заменить последовательность из любого количества нулей одним нулём
cat -n file1 — пронумеровать строки при выводе содержимого файла
cat example.txt | awk 'NR%2==1' — при выводе содержимого файла, не выводить чётные строки файла
echo a b c | awk '{print $1}' - вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
echo a b c | awk '{print $1,$3}' - вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
paste file1 file2 - объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
paste -d '+' file1 file2 - объединить содержимое file1 и file2 в виде таблицы с разделителем «+»
sort file1 file2 — отсортировать содержимое двух файлов
sort file1 file2 | uniq - отсортировать содержимое двух файлов, не отображая повторов
sort file1 file2 | uniq -u — отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
sort file1 file2 | uniq -d - отсортировать содержимое двух файлов, отображая только повторяющиеся строки
comm -1 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1'
comm -2 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2'
comm -3 file1 file2 - сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
Преобразование наборов символов и файловых форматов
dos2unix filedos.txt fileunix.txt — конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)
unix2dos fileunix.txt filedos.txt — конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)
recode ..HTML < page.txt > page.html — конвертировать содержимое тестового файла page.txt в html-файл page.html
recode -l | more — вывести список доступных форматов
Анализ файловых систем
badblocks -v /dev/hda1 — проверить раздел hda1 на наличие bad-блоков
fsck /dev/hda1 — проверить/восстановить целостность linux-файловой системы раздела hda1
fsck.ext2 /dev/hda1 или e2fsck /dev/hda1 — проверить/восстановить целостность файловой системы ext2 раздела hda1
e2fsck -j /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же
fsck.ext3 /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1
fsck.vfat /dev/hda1 или fsck.msdos /dev/hda1 или dosfsck /dev/hda1 — проверить/восстановить целостность файловой системы fat раздела hda11
Форматирование файловых систем
mkfs /dev/hda1 — создать linux-файловую систему на разделе hda1
mke2fs /dev/hda1 — создать файловую систему ext2 на разделе hda1
mke2fs -j /dev/hda1 — создать журналирующую файловую систему ext3 на разделе hda1
mkfs -t vfat 32 -F /dev/hda1 — создать файловую систему FAT32 на разделе hda1
fdformat -n /dev/fd0 - форматирование флоппи-диска без проверки
mkswap /dev/hda3 — создание swap-пространства на разделе hda3
swap-пространство
mkswap /dev/hda3 - создание swap-пространства на разделе hda3
swapon /dev/hda3 — активировать swap-пространство, расположенное на разделе hda3
swapon /dev/hda2 /dev/hdb3 — активировать swap-пространства, расположенные на разделах hda2 и hdb3
Создание резервных копий (backup)
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' — копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/
Сеть
ifconfig eth0 promisc — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
ifconfig eth0 -promisc — отключить promiscuous-режим на интерфейсе eth0
dhclient eth0 — активировать интерфейс eth0 в dhcp-режиме.
route -n
netstat -rn — вывести локальную таблицу маршрутизации
route add -net 0/0 gw IP_Gateway — задать ip-адрес шлюза по умолчанию (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 — добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
route del 0/0 gw IP_gateway — удалить ip-адрес шлюза по умолчанию (default gateway)
echo "1" > /proc/sys/net/ipv4/ip_forward — разрешить пересылку пакетов (forwarding)
hostname — отобразить имя компьютера
host http://www.linuxguide.it или host 62.149.140.85 — разрешить имя http://www.linuxguide.it хоста в ip-адрес и наоборот
ip link show - отобразить состояние всех интерфейсов
mii-tool eth0 - отобразить статус и тип соединения для интерфейса eth0
ethtool eth0 - отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения
netstat -tupn - отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения
netstat -tupln — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, слушающих порты
tcpdump tcp port 80 — отобразить весь трафик на TCP-порт 80 (обычно — HTTP)
iwlist scan — просканировать эфир на предмет, доступности беспроводных точек доступа
iwconfig eth1 — показать конфигурацию беспроводного сетевого интерфейса eth1
Microsoft Windows networks(SAMBA)
nbtscan ip_addr
nmblookup -A ip_addr - разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машине
smbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протокол
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему
IPTABLES (firewall)
iptables -t filter -nL
iptables -nL — отобразить все цепочки правил
iptables -t nat -L — отобразить все цепочки правил в NAT-таблице
iptables -t filter -F или iptables -F — очистить все цепочки правил в filter-таблице
iptables -t nat -F — очистить все цепочки правил в NAT-таблице
iptables -t filter -X — удалить все пользовательские цепочки правил в filter-таблице
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT — позволить входящее подключение telnet'ом
iptables -t filter -A OUTPUT -p tcp --dport http -j DROP — блокировать исходящие HTTP-соединения
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT — позволить «прокидывать» (forward) POP3-соединения
iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" — включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT»
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE — включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 — перенаправление пакетов, адресованных одному хосту, на другой хост
Мониторинг и отладка
ps -eafw — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
ps -e -o pid,args --forest — вывести PID'ы и процессы в виде дерева
pstree — отобразить дерево процессов
kill -9 98989 или kill -KILL 98989 — «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)
kill -TERM 98989 — корректно завершить процесс с PID 98989
kill -1 98989 или kill -HUP 98989 - заставить процесс с PID 98989 перепрочитать файл конфигурации
lsof -p 98989 - отобразить список файлов, открытых процессом с PID 98989
lsof /home/user1 — отобразить список открытых файлов из директории /home/user1
strace -c ls >/dev/null - вывести список системных вызовов, созданных и полученных процессом ls
strace -f -e open ls >/dev/null — вывести вызовы бибилотек
watch -n1 'cat /proc/interrupts' - отображать прерывания в режиме реального времени
last reboot — отобразить историю перезагрузок системы
last user1 — отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
lsmod — вывести загруженные модули ядра
free -m - показать состояние оперативной памяти в мегабайтах
smartctl -A /dev/hda - контроль состояния жёсткого диска /dev/hda через SMART
smartctl -i /dev/hda — проверить доступность SMART на жёстком диске /dev/hda
tail /var/log/dmesg - вывести десять последних записей из журнала загрузки ядра
tail /var/log/messages - вывести десять последних записей из системного журнала
Другие полезные команды
apropos …keyword — выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
man ping — вызов руководства по работе с программой, в данном случае, — ping
whatis …keyword — отображает описание действий указанной программы
mkbootdisk --device /dev/fd0 `uname -r` — создаёт загрузочный флоппи-диск
gpg -c file1 — шифрует файл file1 с помощью GNU Privacy Guard
gpg file1.gpg — дешифрует файл file1 с помощью GNU Privacy Guard
wget -r http://www.example.com — загружает рекурсивно содержимое сайта http://www.example.com
wget -c http://www.example.com/file.iso — загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии
echo 'wget -c http://www.example.com/files.iso' | at 09:00 — начать закачку в указанное время
ldd /usr/bin/ssh — вывести список библиотек, необходимых для работы ssh
alias hh='history' — назначить алиас hh команде history
whereis ping — вывести полный путь к исполняемому файлу программы и справки к ней.