Общие linux команды
Показать сетевое имя компьютера:
hostname
Узнать версию дистрибутива Linux:
1
|
|
Вывести сообщение на все терминалы пользователей:
1
|
|
Описание иерархии файловой системы Linux:
1
|
|
Очищение экрана терминала:
clear
Сбросить настройки терминала и очистить его:
reset
Вывести текущую дату и время:
date
Консольный календарь:
cal
Показать текущее время и работу системы без перезагрузки и выключения:
uptime
Узнать информацию о домене:
whois
Указать для работы прокси сервер:
1
|
|
Скачать файл из интернета в текущую папку:
wget –c http://wikiadmin.net/photo.jpg
Создание и настройка Dial-Up соединения для выхода в Интернет по модему:
pppconfig
Создание и настройка выхода в Интернет через ADSL-модем:
pppoeconf
Выполнить последнюю команду:
!!
Показать последние 10 набранных команд:
1
|
|
Завершить сеанс текущего пользователя:
exit
Изменить пароль пользователя:
passwd
Выключить питание в 20:00 :
shutdown -h 20:00
Выключить питание через 10 мин :
1
|
|
Выключение питания:
poweroff
Перезагрузка системы:
reboot
Cтатистика перезагрузок:
last reboot
Настройка Wine:
winecfg
Генерим пароль на 20 символов
1
|
|
Пользователи и группы
Команды Linux необходимые для работы с пользователями и группами пользователей.
Показывает сводную информацию по пользователю (логин, UID, GID, группы):
id USERNAME
Показать список последних 10 зарегистрированных пользователей:
last –n 10
Показывает имя текущего пользователя и время входа:
who
Добавить нового пользователя USER:
useradd USER
Добавить группу GROUP:
groupadd GRUOP
Добавить пользователя USER в группу GROUP:
usermod -a -G GROUP USER
Добавить пользователя USER в группу GROUP (SuSE):
groupmod -A USER GROUP
Удаление пользователя USER:
userdel USER
Удаление группы GROUP:
groupdel GROUP
Команды Linux для работы с файлами и директориями
Просмотр содержимого текущей дериктории:
ls
Просмотр содержимого дериктории, в том числе и скрытые файлы:
ls -lah
Переход в директорию /var:
cd /var
Создание пустого файла /var/test:
touch /var/test
Вывести на экран содержимое файла /home/test:
cat /home/test
Вывести на экран конец файла. Удобно при работе с логами и большими файлами:
tail /var/log/messages
Редактирование файла /home/test:
nano /home/primer2
Добавить текст в конец файла:
1
|
|
Копирует test в test2:
cp /home/test /home/test2
Cоздать символическую ссылку /home/new к файлу /home/test:
ln -s /home/test /home/new
Создание директории с именем user:
mkdir /home/user
Удаление директории с именем user:
rmdir /home/user
Удаление директории с вложенными фалами:
rm -rf /home/user
Копирование директорий:
cp -la /dir1 /dir2
Переименование директории:
mv /dir1 /dir2
Узнать объём директории:
du -sh /home/user
Поиск всех файлов с именем test
find / -name test
Вернуться в домашнюю директорию:
cd
Права доступа
Доступ для всех к дериктори /home с правами чтение/запись/исполнение:
chmod 0777 /home/
Рекурсивное изменение прав доступа к директории /home и всехе на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777:
chmod -R 0777 /home/
Изменение владельца и группы только для файла /home/test.txt:
chown username:groupname /home/test.txt
Изменение владельца для всего содержимого директории /home:
chown -R username/home/
Архивирование файлов и директорий
Создать tar-архив с именем arch.tar содержащий /home/test.txt:
tar -cf arch.tar /home/test.txt
Распаковать архив arch.tar в текущую папку:
tar -xf arch.tar
Cоздание архива с именем arch.tar.gz использую сжатие gzip:
tar -czf arch.tar.gz /home/test.txt
Распаковать tar-архив использующий сжатие gzip:
tar -xvzf arch.tar.gz
Cоздать tar-архив с именем arch.tar.bz использую сжатие bzip2:
tar -cjf arch.tar.bz2 /home/test.txt
Распаковать tar-архив использующий сжатие bzip2:
tar -xvjf arch.tar.bz
Cоздать tar-архив с именем arch.tar.bz использую сжатие pbzip2 (необходимо отдельно установить это архиватор):
tar -cf arch.tar.bz2 /home/test.txt –use-compress-program pbzip2
Как обнулить файл по крону
Обнулить файл можно просто командой
1
|
|
В cron это можно записать для лога Postfix так:
1
|
|
Обнуляться будет каждый час.
Как убрать все комментарии из конфигурационного файла
Вы можете вывести всё из конфига без решётки, просто выполнив это
1
|
|
если вывод вы перенаправите в файл, то получите конфиг без коментариев
Команды Linux: установка программ
Просмотр установленных пакетов. Показать список установленных пакетов в Gentoo:
equery list
Показать список установленных пакетов rpm в системе:
rpm -qa
Показать список установленных пакетов DEB в системе:
dpkg -l |more
Установка и удаление пакетов
rpm дистрибутивы
Установка RPM пакета pkgname.rpm:
rpm -ihv pkgname.rpm
Удаление RPM пакета pkgname:
rpm -e pkgname
Создание rpm пакетов из tar.gz
1 2 |
|
DEB дистрибутивы
Установка всех пакетов в директории:
dpkg -i *.rpm
Обновление списка доступных пакетов из Internet:
apt-get update
Обновление доступной версии установленных пакетов в системе:
apt-get upgrade
Установка DEB пакета pkgname:
apt-get install pkgname
Удаление DEB пакета pkgname:
apt-get remove pkgname
Установка всех пакетов в директории:
dpkg -i *.deb
Поиск пакета pkgname:
dpkg -S pkgname
Анализ работы системы
Информация в реальном времени о загрузки системы (процессор, память и пр.):
top
Псевдографически оформленная команда top:
htop
Просмотр информации о ходе загрузки системы:
dmesg
Посмотреть расширенную статистику потребления ресурсов системы в процентах ( в некоторых дистрибутивов необходима установка пакета sysstat
mpstat 1
Посмотреть информацию по использованию виртуальной памяти:
vmstat 2
Посмотреть статистику прерываний по устройствам:
iostat 2
Очистить кеш памяти. Зачастую этого делать не нужно, система сама это прекрасно выполняет. Но если сильно хочется…
1 2 |
|
Узнать значение swappiness, который управляет интенсивностью перемещения данных из ОЗУ в swap-память.
cat /proc/sys/vm/swappiness
Если у вас достаточно оперативной памяти и вы хотите чтобы swap-память использовалась только в случае крайней необходимости, то можно установить swappiness в 10. Для текущего сеанса командой:
sudo sysctl vm.swappiness=10
Но после перезагрузки параметр вновь будет установлен в 60. Чтобы установить новое значение в качестве постоянного, нужно открыть файл /etc/sysctl.conf, найти строку vm.swappiness=60 и зменить значение. Если данной строки не будет значит нужно дописать ее в конце файла:
vm.swappiness=10
анализ сетевой активности
Анализ логов веб-сервера. Список самых частых IP
1
|
|
или
1
|
|
На какой домен чаще всего обращаются:
1
|
|
Сколько запросов с какой IP
1
|
|
Загруженность канала
1
|
|
информация об устройствах
Узнать информация об уже установленных устройствах (в некоторых дистрибутивах требует доставить пакет procinfo):
lsdev
Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.):
cat /proc/cpuinfo
Показать информацию о прерываниях:
1
|
|
Информация о используемой и свободной ОЗУ и Swap-файле (-m указывает, что отображать нужно в Мб):
free -m
Показать список всех устройств и их параметров:
lshal
Показать обнаруженные PCI-устройства:
lspci -tv
Показать обнаруженные USB-устройства:
lsusb -tv
Показать информацию о системе взятую из BIOS компьютера (процессор, память, слоты и пр.):
dmidecode
Программа для получения информации о начинки компьютера:
lshw
Информация о файловой системе и жестком диске
Информация о всех подключенных жестких и сменных дисках:
fdisk -l
Полная информация о IDE/ATA жестких дисках:
hdparm -I /dev/sda
Выводит SMART-информацию о разделе жесткого диска /dev/sda1 (необходима установка пакета smartmontools)
smartctl -a /dev/sda1
Производительность жесткого диска
Показывает производительность жесткого диска:
hdparm -tT /dev/sda
Монтирование разделов жесткого диска
Узнать полную информацию о примонтированных устройсвах:
Посмотреть только примонтированные разделы жесткого диска:
cat /proc/partitions
Узнать свободное место на разделах:
df -h
Примонтировать раздел /dev/sda1 к точке монтирования /mnt:
mount /dev/sda1 /mnt
Примонтировать большинство CD-ROM`ов:
mount -t auto /dev/cdrom /mnt/cdrom
Примонтировать IDE CD-ROM:
mount /dev/hdc -t iso9660 -r /cdrom
Примонтировать SCSI CD-ROM:
mount /dev/scd0 -t iso9660 -r /cdrom
Монтирование ISO-образов:
mount -t iso9660 -o loop /home/disc.iso /mnt/cdrom
Монтирование FreeBSD разделов в Linux:
mount -t ufs -o ufstype=ufs2,ro /dev/sda2 /mnt
Монтирование сетевых ресурсов (SMB):
mount -t smbfs -o username=user,password=123 //net/docs
Отмонтирует раздел от точки монтирования /mnt:
umount /mnt
Невозможно отмонтировать устройство. Возникает сообщение device is busy. Для этого можно использовать ключ -l
umount -l /mnt
Стоит учесть, что это грозит потерей данных. Для начала стоит всё-таки поискать, какой процесс занял устройство и удалить его. Выполните:
fuser -m /mnt
Получим его PID. Завершите процесс и уже безопасно отключите устройство.
Просмотр действий с файлами
Данная команда позволит узнать, к какому файлу в домашней папке user прошло обращение:
inotifywait -mr -e open /home/user
То же самое, но с modify расскажет о тех файлах, которые были изменены
inotifywait -mr -e modify /home/user
Конфигурация сети
Показать параметры всех сетевых карт:
ifconfig –a или ip a
Показать параметры сетевого интерфейса eth0:
ifconfig eth0
Задать основной IP адрес сетевому интерфейсу eth0:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
Узнать состояние сетевого интерфейса eth0 (для некоторых дистрибутивов требуется установка пакета ethtool). Команда ethtool применяется только для проводных подключений, не работает с беспроводными интерфейсами:
ethtool eth0
Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение:
ethtool -s eth0 speed 100 duplex full autoneg off
Задать дополнительный IP адрес сетевому интерфейсу eth0:
ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0
Запустить сетевой интерфейс eth0:
ifconfig eth0 up
Отключить сетевой интерфейс eth0:
ifconfig eth0 down
Смена MAC адреса:
ifconfig eth0 hw ether 00:01:02:03:04:05
Перезагрузка DHCP сервера:
/etc/init.d/dhcpd restart
Проверка сетевого соединения. Пингуется IP адрес 192.168.0.1:
ping 192.168.0.1
Маршрутизация
Выводит на экран таблицу маршрутизации:
route -n
Выводит на экран таблицу маршрутизации:
netstat -rn
Управление портами (брандмауэр)
- Показывает список всех открытых портов:
netstat -an | grep LISTEN
Показать список всех открытых портов в сеть Internet:
lsof -i
Узнать все активные соединения с интернетом:
netstat -tup
Посмотреть все открытые сокеты
socklist
Посмотреть список приложений, которые открывают порты:
netstat -anp -udp -tcp | grep LISTEN
Узнать статус IPTABLES:
iptables -Lnv
Открыть доступ ко всем портам:
1 2 3 |
|
Удалить все цепочки:
iptables -X
Управление NAT
Установить NAT на интерфейсе eth0:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Перенаправление порта 22022, который использется для ssh:
iptables -t nat -A PREROUTING -p tcp -d 99.99.99.99 -dport 22022 -j DNAT -to 192.168.0.2:22
Перенаправление диапазона портов 900-1000:
1
|
|
Проверка статуса NAT
iptables -L -t nat
Проверка доменных имён
Проверка обратной зоны
dig -x IP
Проверка записей (на примере mx)
dig aleksdem.com mx
Проверка данных с определённого DNS
dig aleksdem.com @ns1.example.com
проверка порта UDP
проверяем, открыт ли порт 5060 на удалённом хосте 127.0.0.1 :)
nc -uv 127.0.0.1 5060
Отправка письма с вложением
Отправка письма с вложением из консоли:
1
|
|
Просим компьютер сигналить, когда какой-либо из серверов недоступен
Ежесекундно пингуем адрес и, если недоступен, бипер должен выдать сигнал
1
|
|
Внимание, команды beep по умолчанию в системе нет, надо ставить отдельно
apt-get install beep
создание и запись ISO образов
Посмотреть все доступные CD-ROM:
cdrecord -scanbus
Создание ISO образов с диска CD-ROM:
dd if=/dev/hdb of=/tmp/mycd.iso bs=2048 conv=notrunc
работа с процессами
Все запущенные процессы имеют уникальные номера – PID. Показать все загруженные процессы:
ps axjf
ps auxw (like FreeBSD)
Показать PID определенного процесса – sshd:
pgrep -l sshd
Показать PID процесса использующий порт 22:
fuser -va 22/tcp
Показывает PID процесса имеющего доступ к /home:
fuser -va /home
Показывает список процессы, которые используют /home:
lsof /home
Послать процессу с PID-ом 7777 сигнал TERM – завершить процесс:
killall TERM 7777
Послать процессу x.sh сигнал TERM – завершить процесс:
killall term x.sh
Убить все процессы имеющие x.sh
killall x.sh
Послать процессу с именем httpd сигнал HUP – остановить процесс:
killall HUP httpd
Убить все процессы имеющие доступ к /home:
fuser -k -TERM -m /home
Важные сигналы посылаемые процессам:
1 2 3 4 5 |
|
Runlevels
После загрузки ядра Linux начинают загружаться различные демоны и программы, такие как NetworkManager, Evolution и т. д., результат которых мы видим у себя после загрузки на рабочем столе. Загрузка каждой службы осуществляется скриптом. Все скрипты лежат в /etc/init.d. Runlevels – это целое число, которое определяет «уровень загрузки».
Уровни загрузки бывают:
1 2 3 4 5 6 7 |
|
То есть скрипты, которые должны загружаться только в текстовом режиме с поддержкой сети, имеют Runlevels равный 3. Более простой вариант настройки:
Очень удобная настройка Runlevels (необходима установка пакета sysv-rc-conf):
sysv-rc-conf
Показать список всех скриптов с соответствующими им Runlevels:
1 2 |
|
Показать разрешенные Runlevels только отдельного скрипта, в нашем случае sshd:
chkconfig -list sshd
Выставление скрипту sshd значений Runlevels по-умолчанию:
1 2 |
|
Добавление скрипту udev Runlevels 3 и 5:
chkconfig udev -level 35 on
Изменить параметры для скрипта sshd (для Debian-подобных дистрибутивов):
update-rc.d sshd start 20 2 3 4 5 . stop 20 0 1 6
Отключение у sshd всех Runlevels:
chkconfig sshd off
Отключение у sshd всех Runlevel (для Debian-подобных дистрибутивов):
update-rc.d -f udev remove
Работа с ядром и модулями
Узнать текущую версию ядра Linux:
uname -a
Работа с модулями ядра. Список всех модулей загруженных в ядро:
lsmod
Загрузка модуля на примере isdn:
modprobe isdn
Создание сжатого образа ядра системы:
make
Компиляция модуля:
make modules
Установка модуля:
make modules_install
Установка в ядро системы:
make install
Конвертирование различной информации
Выводит список всех доступных кодировок:
iconv -l
Смена кодировки. Был файл cp1251.txt с кодировкой cp1251, а в итоге получился файл utf8.txt с кодировкой utf8:
1
|
|
Конвертирование PDF в JPEG
Конвертируется name.pdf в постраничные JPEG изображения (в некоторых дистрибутивах необходимо установить пакет imagemagick):
1
|
|
Конвертируются JPEG изображения в PDF (в некоторых дистрибутивах необходимо установить пакет imagemagick):
convert name.jpeg name.pdf
Конвертирование видео
1
|
|
Конвертирование аудио
Копирование треков с AudioCD в текущую директорию wav-файлами:
cdparanoia -B
Конвертирование wav-файлов в mp3 с качеством 256 kb/s:
lame -b 256 in.wav out.mp3
Конвертирование wav-файлов в Ogg Vorbis с качеством 256 kb/s:
oggenc in.wav -b 256 out.ogg
Печать на принтере
Выбор принтера по-умолчанию на примере Canon LBP-2900
export PRINTER=lbp2900
Распечатать на принтере Canon LBP-2900 две копии файла name.txt:
lpr #2 name.txt
Удаление всех задач с принтера по-умолчанию:
lprm -