Все ленты — последние статьи

Консольные комманды

 

Общие команды 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

Отобразит какой процесс работает с файлом или каталогом в конкретной директории.

 

Важные сигналы посылаемые процессам:

  • 1 — HUP остановить процесс

  • 2 — INT прервать процесс

  • 3 — QUIT выйти

  • 9 — KILL “убить” процесс

  • 15 — TERM завершить процесс

Команды 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 — вывести полный путь к исполняемому файлу программы и справки к ней.