Наиболее используемые команды Linux, которые надо знать
Монтирование и диски
Монтирование форточных шар:
-N
- брать пароль из файла
mount -t smbfs -o username=user,password=pass //192.168.0.1/path /mnt/path mount -t cifs //192.168.0.1/path /mnt/path -o user=user mount_smbfs -N -I 192.168.0.1 //user@host/path /mnt/path
При возникновении ошибки mount error(5): Input/output error
:
mount.cifs //192.168.0.1/path /mnt/path -o username=user,password=pass,sec=ntlm
Узнать UUID разделов:
ls -l /dev/disk/by-uuid/ blkid
Cоздать label ("метку") раздела:
e2label /dev/sda1 "метка"
Посмотреть смарт:
smartctl -a /dev/sda
Чекдиск:
fsck /dev/sda1
Симлинк для FTP:
mount --bind /path /ftp/path
Автозапуск
update-rc.d
Скопировать скрипт в /etc/init.d/
, перейти туда и выполнить:
update-rc.d file_name defaults 99
Чтобы удалить скрипт из автозагрузки, перейти в /etc/init.d/ и выполнить:
update-rc.d -f file_name remove
chkconfig
Скопировать в /etc/init.d/, затем:
Добавить файл в автозагрузку
chkconfig --add script.sh
Влючить автозагрузку для файла:
chkconfig script.sh on
Список файлов автозагрузки:
chkconfig --list
Вылючить автозагрузку для файла:
chkconfig script.sh off
Права и файлы
Сделать файл исполняемым:
chmod +x file_name
Дать права:
chmod -R 777 /home/path/ 7 - rwx - читать, писать, выполнять 6 - rw- - читать, писать 5 - r-x - читать, выполнять 4 - r-- - читать 3 - -wx - писать, выполнять 2 - -w- - писать 1 - --x - выполнять 0 - --- - ничего нельзя делать rwxrwxrwx это 777 rw-r--r-- это 644
Дать права только на файлы для чтения:
find /path -type f -exec chmod 660 {} \;
Дать права только на каталоги для просмотра подкаталогов:
find /path -type d -exec chmod 770 {} \;
Зачрутить ftp пользователя user в домашнем каталоге:
chmod a-w /home/user
Удалить не пустой каталог:
rm -rf /path/catalog
Поиск:
find /path -name file find /path -name 'fil*'
MySQL
Создать базу test в кодировке utf8:
mysql -u root -p CREATE DATABASE `test` CHARACTER SET utf8 COLLATE utf8_general_ci;
Дамп всех баз мускула:
mysqldump -uroot -p --all-databases > bases.sql
Дамп базы test:
mysqldump -uroot -p test > /path/test.sql
Восстановление базы test из файла:
mysql -u root -p -f test > /path/test.sql
Пользователи и группы
Создать пользователя и добавить в группу:
adduser user group
Добавить существующего пользователя в группу:
usermod -a -G group user
Список групп пользователя:
user grep user /etc/group
Убить все процессы пользователя:
killall -u user
Сменить владельца каталога:
chown user:group -R /path/
-R
- рекурсивно
Запустить скрипта от имени пользователя:
user sudo -u user '/path'
Запустить приложение от другого пользователя:
su - username -c "/path/file start"
Сеть
Просмотр влЮченных машин подсети:
nmap -sP 192.168.0.0/24
Сниф 25 порта на eth0:
tcpdump port 25 -i eth0
Сниф с записью в файл:
tcpdump -i eth0 -n > /path/file
Пример снифа:
tcpdump -i eth0 -n host 192.168.0.1 and not host 192.168.0.10 and not port 22
-n
- не резолвить
host 192.168.0.1
- слушать только для этого IP
and not host 192.168.0.10
- исключить трафик с этого хоста
and not port 22
- исключить трафик по этому порту
Список всех открытых портов:
netstat -at
Таблица маршрутизации:
netstat -nr
Отсортировать по заданному порту:
netstat -antp | grep 80
-a
- все соединения
-t
- только tcp
-n
- не резолвить
-p
- процесс, занимающий порт
Передать файлы по SSH:
scp -P 22 /откуда/файл user@host:/path
Подключиться к нестандартному порту SSH:
ssh -p 1010 username@hostname
Проверить запись MX домена:
dig domen.ru MX
Провенить NSы:
nslookup -type=NS domen.ru
Дабвить дефлтный шлюз:
route add default gw 192.168.0.1 eth0
Добавить маршрут через IP:
route add -net 192.168.0.0/16 gw 10.0.0.1
Добавить маршрут через интерфейс:
route add -net 192.168.0.0/16 dev eth0
Маршрут до отдельного хоста:
route add -host 192.168.0.1 gw 10.0.0.1
Удалить маршрут:
route del 192.168.0.1 route del -net 192.168.0.0/24 eth0 route del -net 192.168.0.0 netmask 255.255.255.0 eth0
Время и синхронизация
Настроить часы:
date MMDDhhmmCCYY.ss
MM
— месяц, DD
— день месяца, hh
— часы, mm
— минуты, CCYY
— 4 цифры года, ss
— секунды
Просмотреть временя с аппаратных часов:
hwclock
Синхронизация времени с аппаратными часами:
Хардванрное время в соответствии с системным:
hwclock --systohc
Системное время в соответствии с хардварным:
hwclock --hctosys
Синхронизировать время с этим хостом:
sntp -P no -r 192.168.0.1 или ntpdate 192.168.0.1
Сменить часовой пояс:
dpkg-reconfigure tzdata
Системные команды
Вывести из файла строку со словом "text":
grep -rnw text /path/file
Вывести все раскомментированные строки:
egrep -v '^#|^$' /path/file
Посмотреть запущен ли процесс:
ps -aux | grep squid ps -e | grep squid
Узнать версию дистрибутива:
cat /etc/issue
Архивы и сборка
Запаролить архив:
zip -e -r name.zip name/
Распаковать архив в каталог:
tar zxvf name.tar.gz -C /path
Сборка и установка из исходников
Распаковать:
tar zxvf name.tar.gz
Собрать:
cd name make
Установить:
make install
Бэкап
dd
Забэкапить корневой раздел:
dd if=/dev/sda1 bs=8096 | gzip -9cf > root.gz
Восстановить корневой раздел:
gunzip -c /path/root.gz | dd of=/dev/sda1 bs=8096
tar
Забэкапить корневой раздел:
tar -cvpzf /path/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/home --exclude=/mnt --exclude=/sys /
--exclude=/lost+found
- исключит каталог lost+found (от каталога в котором выполняется команда)
Восстановить корневой раздел:
tar -zxvpf /path/backup.tgz -C /
Пакеты
Установить пакет:
dpkg -i name.deb
Удалить пакет:
dpkg -r name.deb
Прикрутить ключ репозитория:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 60487016493B3065
Инструменты
Включить\выключить сайт в апаче:
a2ensite site.ru a2dissite site.ru
Включить\отключить модуль в апаче:
a2enmod module a2dismod module
Проверить работоспособность SSH ключа:
ssh -T user@host -i /path/to/key