Полезные команды Linux

Материал из darklurker wiki
Перейти к: навигация, поиск

Директории

/bin	        //в этом каталоге находятся основные исполняемые файлы, жизненно необходимые для функционирования системы
/boot	        //содержит ядро операционной системы и карты загрузки, а также конфигурационные файлы загрузчиков ( lilo, grub )
/dev	        //содержит файлы, которые являются интерфейсом с периферийными устройствами
/etc	        //содержит основные файлы настроек приложений Linux
/home	        //содержит домашние папки пользователей
/lib	        //содержит основные библиотеки, необходимые для нормальной работы системы
/lost+found	//информация, восстановленная при проверке файловой системы на наличие ошибок
/media	        //точки монтирования отключаемых устройств (usb-диски, CD, floppy)
/mnt	        //точки монтирования ISO-образов, сетевых файловых систем, других постоянных файловых систем
/opt	        //альтернатива usr, для коммерческого ПО или ПО, не входящего в основной дистрибутив
/proc	        //внутри этого каталога находится виртуальная файловая система proc, создаваемая ядром Linux "на лету". Содержит общую информацию о системе и подробную о процессах.
/root	        //домашний каталог пользователя root
/sbin	        //утилиты суперпользователя
/srv	        //файлы, выкладываемые для доступа всевозможных внешних служб (например , tftp )
/sys	        //внутри этого каталога также находится виртуальная файловая система, только она содержит подробную информацию о процессах
/tmp	        //в этом каталоге находятся временные файлы, используемые запущенными в данный момент процессами
/usr	        //программы, библиотеки и другие данные пользовательских приложений
/var/log        //содержит файлы журналов

Пути конфигураций

/etc/sysconfig/iptables                 //набор правил iptables
/etc/sysconfig/selinux                  //конфигурация selinux
/etc/sysconfig/network-scripts/         //конфигурация сетевых интерфейсов
/etc/ssh/sshd_config                    //конфигурация ssh сервера
/etc/httpd/conf/httpd.conf              //основная конфигурация apache
/etc/httpd/conf.d/                      //конфиги доп. хостов apache
/etc/yum.repos.d/                       //дополнительные репозитории yum

Права на запись/чтение

4 read
2 write
1 execute

own | group | other

chown -R user:group /var/www //cмена владельца файла/директории
chmod 777 file1 //rwx для всех

Grep и Sed

grep test /var/log/messages  //отобрать и вывести строки, содержащие test
grep ^test /var/log/messages //отобрать и вывести строки, начинающиеся на test
grep [0-9] /var/log/messages //отобрать и вывести строки, содержащие цифры
grep -v '^#' /etc/mysql/my.cnf //вывод конфига без комментариев
grep -r "test" /etc/apache2/  //рекурсивный вывод всего, где есть test
cat /var/log/messages | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}  //вывод всех IP-адресов(only) в логе, без -o ключа вывод строк с IP-адресами
cat /tmp/test | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq -c  //вывод всех IP адресов с сортировкой и подсчетом уникальных
-v   //инвертирует поиск, выдает все, кроме значения после v
-n   //номер строки в файле
-w   //точное имя того, что ищем
sed 's/stringa1/stringa2/g' 1.txt   //заменить «string1» на «string2»
sed '/^$/d' 1.txt      //удалить пустые строки из файла
sed '/ *#/d; /^$/d' 1.txt    //удалить пустые строки и комментарии из файла 1.txt
sed -r 's/^[^СИМВОЛ]+//' file  //удалить строки до символа
sed -e 's/^СИМВОЛ//' file1.txt > output.txt  //удалить первый символ вначале всех строк

Процессы, мониторинг ресурсов, отладка

ps -eafw //запущенные процессы, ресурсы (единожды)
ps -e -o pid,args --forest //вывести PID'ы и процессы в виде дерева
pstree //дерево процессов
kill -9 1234 //убить процесс на смерть (без соблюдения целостности данных)
kill -TERM 1234 //корректно завершить процесс 
last reboot //история ребутов
last user1 //история юзера
lsmod //загруженные модули ядра
free -m //оперативная память в мегабайтах
smartctl -A /dev/hda //состояние жёсткого диска /dev/hda через SMART
tail /var/log/dmesg //10 последних записей из журнала загрузки ядра
tail /var/log/messages //10 последних записей из системного журнала
cat /proc/cpuinfo //отобразить информацию о процессоре
cat /proc/interrupts //показать прерывания
cat /proc/meminfo //проверить использование памяти
cat /proc/swaps //показать файл(ы) подкачки
cat /proc/version //вывести версию ядра
cat /proc/net/dev //показать сетевые интерфейсы и статистику по ним
cat /proc/mounts //отобразить смонтированные файловые системы

Создание алисасов и прочее

alias hh='history' //назначить алиас hh команде history

Манипуляции с директориями и файлами

cp -a /tmp/dir1 . //копировать директорию с содержимым в текущую директорию
cp -a dir1 dir2 //копировать директорию dir1 в директорию dir2
ln -s file1 lnk1* //создать символическую ссылку на файл или директорию
ln file1 lnk1 //создать физическую ссылку на файл или директорию
mkdir -p /tmp/dir1/dir2 //создать папку 'dir2' и все промежуточные 
mkdir -p /dir1/{dir2,dir3}/ //создать несколько папок под {} в dir1
find /dir1/ -maxdepth 4 -type f -exec rm {} \; //удалить все файлы по пути, но не папки 
-maxdepth //определяет количество подпапок
rm -f /tmp/dir1/* //удалить все файлы в в директории

Архивы

tar option archive.tar files
tar -tf archive.tar //просмотр содержимого архива
tar -xvf archive.tar //распаковать архив
tar -xvfz archive.tar.gz //распаковать сжатый архив
tar -C "test" -xvf archive.tar //распаковать в другую директорию
tar --totals -cvf archive.tar file1 file2 //создать архив
tar --totals -cvfz archive.tar.gz file1 file2 //создать сжатый архив
-A //присоединить существующий архив к другому
-c //создать новый архив
-d -diff //проверка различия между архивами
-d —delete //удалить из существующего архива файл
-r //присоединить файлы к концу архива
-t //сформировать список содержимого архива
-u //обновить архив более новыми файлами с тем же именем
-x //извлечь файлы из архива
-p //сохранение прав доступа
-v //подробный вывод
-z //сжать gzip
-j //сжать bzip2

Пользователи и группы

groupadd group_name //создать группу 
groupdel group_name //удалить группу 
groupmod -n new_group_name old_group_name //переименовать
useradd -c "comment" -g admin -d /home/user1 user1 //создать  user1 с параметрами
useradd user1 //создать пользователя user1
userdel -r user1 //удалить пользователя user1 и его домашний каталог
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 //изменить атрибуты
passwd //сменить пароль
passwd user1 //сменить пароль пользователя user1 (только root)
chage -E 2005-12-31 user1 //установить дату окончания действия УЗ user1
pwck //проверка системных файлов УЗ. /etc/passwd и /etc/shadow
grpck //проверяет корректность системных файлов учётных записей. /etc/group
newgrp [-] group_name //изменяет первичную группу текущего пользователя


Базовые iptables команды

iptables -t таблица -nL //посмотреть правила
iptables -t таблица -F //очистка правил
iptables -t filter -A INPUT -p tcp --dport 123 -j ACCEPT //разрешить входящий порт
iptables -t filter -A OUTPUT -p tcp --dport 123 -j DROP //запретить входящий порт
iptables -t filter -A FORWARD -p tcp --dport 123 -j ACCEPT //разрешить прокидывать порт
iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" //журналирование
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //NAT преобразование на интерфейс
iptables -t nat -A PREROUTING -d ip1 -p tcp -m tcp --dport 22 -j DNAT --to-destination ip2:port

SSH

ssh -t user@availhost ssh user@notavailhost //ssh тунель через хост посередине
ssh -i /home/user/keys/id_rsa user@host     //использование ключа из другой директории
scp TargetFile user@host:/path/to/dir/           //копирование файлов с локальной машины на хост
scp user@host:/directory/SourceFile TargetFile   //копирование файлов с хоста на локальную машину

Сетевая команда nmap

nmap host //скан распростр. портов
nmap -O host //скан узла, версия ОС
nmap –sP host //скан узлов в сети
nmap -p22,80 host //скан определенных портов
nmap -sU -p U:53 host //скан udp порта
--reason //причина, по которой порт открыт
nmap -p22 -iL file.txt //сканирование из файла ip
nmap -p22 -sT host //скан с tcp соединения
nmap -p22 -sS host //SYN сканирование
nmap -sT -T 5 -p 1-5000 localhost //пример сканирования себя
-sT //tcp
-sS //SYN
-Pn //сканировать, даже если не отвечает на пинг
-sV //версии сервисов
полная инфа здесь

Сетевая команда netcat

nc -vn host 22 //проверка открытого tcp-порта 22
nc -vnz host 22 //то же, но выводится только статус
nc -vnzu host 5550 //проверка открытого udp-порта 5550 
-z //выводит только статус
nc -l 80 > /tmp/temp.log //сервер, пересылка в лог
tail -f /tmp/temp.log | nc hostip 80 //клиент, чтение и лог на сервер
-l //для прослушки входящих соединений
-n //не резолвит
-s //локальный IP интерфейса для отправки пакетов
-v //подробный режим
-u //использовать UDP 
-w //таймаут закрытия сессии

Сетевая команда tcpdump

tcpdump -D //доступные сетевые интерфейсы
tcpdump -O host //полная инфа об узле
tcpdump -i eth0 //захват трафика на eth0, можно не указывать
tcpdump host 1.2.3.4 //трафик с определенного ip
tcpdump ip dst hostip //пакеты направленные на конкретный ip
tcpdump dst host host.com //пакеты направленные на конкретный хост 
src //отобразит ответные пакеты
tcpdump src port 25 //трафик от нас по порту
tcpdump -s 0 -A host //содержимое ip пакетов ASCII 
tcpdump -vv -i eth0 port 80 //захват конкретного порта
tcpdump portrange 21-23 //захват нескольких портов
tcpdump -vv arp //arp пакеты
tcpdump -i enp0s3 port not 22 and not stp //захват трафика на интерфейсе, не отображае порты ssh и stp
tcpdump port http and https //захват http и https трафика
-v -vv -vvv //подробный вывод
and //добавить хост
not //не отображать
-q //сокращенная инфа
-t //не показывать время
-n //не резолвить

Сетевая команда netstat

netstat
-l //прослушиваемые порты
-a //все открытые порты/сокеты
-t //tcp соединения
-u //udp соединения
-p //программа использующая порт/сокет
-n //не резолвить
-s //статистика 
-r //route
-c 5 //через кол-во секунд

Linux CheatSheet

Доступен по ссылке

Обои на рабочий стол с командами