Шпаргалка по Linux командам

Linux > Шпаргалка по Linux командам
11.12.2014 11:12:24



Статья:

du -s /usr/share/man/* | sort -nr | head -n4 | cut -f2
env- показ переменных окружения, свои ,
type set - инфо встроенв оболочку\ внешняя программа
export переменная- установка переменной окружения
LANG=ru

touch создать файл
df -h занимаемое место
pwd - вывод текущий каталог
mkdir создать каталог
free информация по памяти
echo ~ показать текущий каталог текущего пользователя
ls -Q список файлов и дирректорий с показом пробелов
ls -l список файлов\каталогов с правами и атрибутами
rm \ \ \ удалить файл начинающийся с пробела

горячие клавиши bash командной строки:
META A-- alt+a ESC,a
ctrl+a курсор в начало строки ctrl+e в конец
alt+b +f перемещение по границам слов b-назад f-вперёд
ctrl+y вставка содержимого буфера в командную строку
ctrl+k - вырезать в буфер строку от курсора до конца строки
ctrl+u - вырезать в буфер строку от курсора до начала строки
alt+d вырезать слово справа от курсора
ctrl+d =DELETE
ctrl+_ отменить операцию
ctrl+L очистить терминал

alt+l alt+u преобразовать к нижнему и верхнему регистру все символы слова справа от курсора
alt+с преоброзовать к верхнему регистру только первый символ слова

часть слова\команды + табуляция - автодополнение команды

пэйджеры(постраничный просмотр) - more,less

man 5 passwd - вызов спарвки по 5 категории- форматы(man man - подробнее о системе справки0
history 30 - вывести последние 30 команд (!номер команды - вызов команды)

df -h | tail -n1 - вывести последнюю строку из результата df
more файл - читать файл
cat файл1 файл2 > получаем слитый файл из этих двух
cat -n /etc/services | tail -n3 вывести последние 3 строки
cat -n /etc/services | tail -n +595 вывести строки начиная с 595 строки
tail -n0 -f /var/log/syslog - вывести записи в режиме реального времени с журнала (растущий)
logger -p mail.crit -t LOGGER "hello" - послать сообщение syslog (у)
less /var/log/syslog (F - режим (аналог tail -f))
head -n15 /etc/passwd | cut -f 1,7 -d : - взять первые 15 строк сверху и вывести 1 и 7 столбец
head -n15 /etc/passwd | sort -k7 -t: - взять первые 15 строк сверху ,сортировка по 7 столбцу
head -n15 /etc/passwd | cut -f 1,7 -d : | tr : \\t -взять первые 15 строк сверху и вывести 1 и 7 столбец и заменть : на табуляцию в выводе
head -n15 /etc/passwd | cut -f 1,7 -d : | tr : \\t | tr a-z A-Z -взять первые 15 строк сверху и вывести 1 и 7 столбец и заменть : на табуляцию в выводе и заменить маленькие буквы большими
head -n15 /etc/passwd | tr -s a-z0-9

wc имя-файла - статистика по файлу
Система отвечает строкой в следующем формате:
l w c файл
где l - число строк в файле;
w - число слов в файле;
c - число символов в файле.
(например ipset -L blacklist | wc - статистика по выводу (число строк,слов,символов) из списка iptables)

umask - текущая маска
umask 77 - установить маску

ps auxwww | less вывод процессов
vmstat 3 состояние памяти, обновление каждые 3 секунды
su -l (- --login) предоставляет среду, как если бы пользователь непосредственно регистрировался в системе
useradd -m user добавить пользователя и создать ему домашний каталог
useradd -m -s /bin/bash user добавить пользователя и создать ему домашний каталог и назначить ему shell
useradd -m -s /bin/bash -u 1111 user добавить пользователя и создать ему домашний каталог и назначить ему shell установить gid,uid и группу=1111
passwd user - установка пароля для пользователя user
usermod -s /bin/sh user сменить shell у ползователя user
getent passwd user вывести группу пользователя user
groupadd developer добавить новую группу developer
id user вывод информации о uid,gid, группы пользователя user
gpasswd -a user developers добавить пользователя user в группу developers
usermod -g 1112 user модифицировать пользователя user и присвоить его группе индификатор 1112
usermod -L user блокировка пользователя
usermod -U user разблокировка пользователя
groupdel developers удаление группы developers(первичную группу адалить не возможно)
 
who кто находится в системе
fuser -v /dev/tty1 посмотреть pid и пользователя кто на данном терменале
fuser -k -1 /dev/tty1 всех кто сидит на данном терминале отключаем
userdel -rf user удаление пользователя из системы и его каталоги

df статистика о заполнености файловых систем
LANG= df выравнивание заголовков(utf8 для россиян)
LANG= df -h человекоудобная форма вывода
LANG= df -h -t ext4 получить информацию о файловых системах которые имеют только тип ext4
LANG= df -h ~ посмотреть например свободное место домашнего каталога пользователя, оперделит в какой файловой системе находится
каталог пользователя и выдаст информацию только по ней

du -sh /home сколько занимает каталог home
init 0 выключение системы
init 6 перезагрузка системы
/dev/ каталог устройств (там все жёсткие диски) например ls /dev/sd* вывод дисков

Подключим новый жёсткий диск например для резервных копий:
1. Просмотр доступных дисков ls /dev/sd*
2. Создадим дирректорию например в корне mkdir /backup будит точкой монтирования
3. Смонтировать можно только блочные устройства, создаём файловую систему mkfs.ext4 -L backup /dev/sdb (backup это метка)
4. Собственно монтируем mount /dev/sdb /backups/ (что монтируем и куда монтируем) , просмотр что смотрировано команда mount
5. /etc/mtab смонтированные файловые системы /proc/mounts тоже содержит информацию о смотрированных разделах и дисках
6. umount /backup отмонтирование файловой системы
7.Например создание разделов fdisk /dev/sdb нажав на m получим справку
- нажав на кнопку p получим вывод разделов, имеющихся на диске
- нажав на кнопку n запускаем создание разделов - обратить внимание на последний цилиндр (сколько создаём - вычислем колическто целиндров на 1GB например)
- в случае расширенного раздела - создаём сначало раширенноый раздел(контейнер) а затем опять n и создаём логический раздел
- установка нужного типа раздела кнопка t (например , для linux 83, linux swap - 82, ntfs - 7)
- чтобы записать изменени я набираем w
8.Например подключение swap: mkswap /dev/sdb1 И выполним swapon /dev/sdb1 (sdb1 это раздел на втором диске с кодом 82 при разбивке linux своп)
Например создание ntfs - mkfs.ntfs -qQ /dev/sdb2
ext4 - mkfs.ext4 /dev/sdb3
9. Автозагрузка файловых систем /etc/fstab
-подключение свопа /dev/sdb1 none swap sw 0 0 (разделаем табами)
-подключаем ext4 /dev/sdb5 /backup auto user 0 2
- проверка например mount /backup и проверка в /proc/mounts
 
Показывает дерево процессов.
Примеры:
ps
ps xa | less ps -e ps xaf pstree
ps xa | grep cupsd pgrep cupsd

kill -l просмотреть список и номера сигналов
kill PID_программы_bash kill -9 PID_программы_bash
killall firefox (по имени)
killall -1 firefox тоже закроет программу
kill -9 убить жёстко процесс от 11 сигнала нет защиты вообще
kill -15 мягко убить процесс

Задания:
jobs посмотреть задания
bg %1 перевести задание на задний план №1
kill -CONT %2 послать сигнал второму заданию - задание запущено
fg - перевести задание на передний план
% вывести задание отмеченное + на передний план
kill -STOP %1 Первое задание остановлено
kill -9 %1 Первое задание убито
kill %2 Послать 15 сигнал и завершить работу 2 задания

СЕТЬ:
ifconfig - вывести информацию о сетевых интерфейсах
ifconfig eth0 - вывести информацию о сетевов интерфейсе eth0
netstat -a --inet вывод информации о сетевых сокетах
route -n поглядеть таблицу маршрутизации
route add default gw IPшлюза - добавить маршрут по умолчанию и шлюз
route add -host 192.168.1.2 gw IPшлюза добавить маршрут хосту
route add -net 10.5.4.0/24 gw IPшлюза добавить маршрут к сети
/etc/resolv.conf описывает как происходит преобразование имён (/etc/hosts тоже содержит соотвествие IP и доменного имени)
/etc/nsswitch.conf - конфигурационный файл cистемных баз данных и переключателя сервисов имен
arp вывод arp таблицы (мак\ip) в пределах одного сегмента локальной сети
ping - пинговать со статистикой
ping -c10 -i .3 ya.ru послать 10 пакетов с интервалом 0.3 секунды (статистика по времени кругового путешествия rtt)
arping - пинговать в одном сегменте локальной сети с помощью arp
traceroute ya.ru посмотереть маршрут следования пакета и его статистику до цели
tracepath ya.ru посмотереть маршрут следования пакета +выяснить mtu на каждам отрезке пути
netstat посмотреть статистику и другую информацию
netstat -rn Посмотреть таблицу маршрутизации (работает в том числе и на freebsd)
netstat -i Посмотреть статистику по интерфейсам
netstat -apn --inet посмотреть сетевых демонов
netstat -s | more посмотреть совокупный отчёт сколько принято, сколько ошибок и тд по протоколам
nslookup host dig три программы для обращения к dns серверам
host ya.ru - вывод Ip по имени хоста
host -t mx gmail.com - выясним параметры почтового сервера
host ya.ru 8.8.8.8 - получить информацию о доменном имени через 8.8.8.8 - сервера DNS
tcpdump -i eth0 трасировка захват пакетов и просмотр их

/dev/null чёрная дыра в системе
cat /dev/cdrom > /dev/null например проверить диск в cdrom - если ошибок при выводе нет , нет и ошибок
dd if=/dev/sda of=/dev/null bs=16M count=54 - например оценить скорость копирования с устройства /dev/sda
losetup -a посмотреть чт она данный момент связанные устройства
losetup используется для связывания цикл устройств с обычными файлами или блочных устройств (установить и контролировать цикл устройства)
losetup -d /dev/loop0 отцепить связанное устройство

nc yandex.ru 80
HEAD / HTTP/1.0 Посмотреть заголовки отдаваемые сервером
nc -l 5000 > /home/file открыть 5000 порт , на нём слушать и перенаправить в файл /home/file
cat /home/file2 | nc 127.0.0.1 5000 передать файл по Ip и порту 5000
cmp file1 file2 сравнить 2-а файла

/etc/network/interfaces описывает сетевые интерфейсы
/etc/init.d/networking start|stop - перезагрузка сетевых интерфейсов.

комрессоры и архиваторы:
gzip(компрессор),bzip2(компрессор)
gzip -v файл сжатие файла
gunzip -v файл.gz разжатие файла
bzip2 -v файл сжатие файла
bunzip2 файл разжатие файла
zcat /var/log/syslog.3.gz | head -n1 вывести сжатый файл в стандартный поток (на экран) - Только первую строчку
zcat /var/log/syslog.3.gz | tail -n1 вывести сжатый файл в стандартный поток (на экран) - Только последнюю строчку
zcat /var/log/syslog.3.gz | tail -n +3000 | head -n1 вывести сжатый файл в стандартный поток (на экран) - получить 3000 строку
zcat /var/log/syslog.3.gz | wc -l вывести сжатый файл в стандартный поток (на экран) - получить число строк в сжатом файле

tar (c f t x v Z z j) - архиватор
c - создать
t- проверить
x- экстракт
Z - сжать копрессом
z- сжать gzip
j- сжать bzip2
создать архив sudo tar cf etc.tar /etc/
проверить архив tar tf etc.tar > /dev/null
разархивировать архив tar xf etc.tar в свой текущий каталог
разархивировать архив tar xf etc.tar.gz в свой текущий каталог
tar vxf etc.tar etc/resolv.conf - извлечь только etc/resolv.conf

/etc/apt/sources.list - список репозиториев программного обеспечения
dpkg -i путь к пакету - установка автономного пакета
apt-get dist-upgrade обновление полное
apt-get install links - например установка браузера
apt-get remove имя программы - удаление программы

компиляция:
на примере брайзера links
./configure --help | less посмотреть опции компиляции
CFLAGS="-march=native -pipe -O2 -mfpmath=sse" ./configure --enable-utf8 например компиляция links , в итоге
создаётся управляющий файл Makefile - цели кторорые надо достич
make -j2 (jколичество потоков) компиляция распалелинная
make install - установка
hash -r (возможно понадобится , чтобы местарасположение исполняемых файлов привести к ожиданиям bash например)

Выполнение программ по расписанию:
общесситемная таблица cron находится в /etc/crontab
0 */12 * * * пример каждый 12 час
0 1-23/2 * * * пример каждый нечётный час
0 0-23/2 * * * пример каждый чётный час
0 1-23/2 * * 1-4,6 пример каждый нечётный час с понедельника по четверг и в субботу
crontab -u root -e редактирование задания root пользователя
0 */1 * * * /home/www/backup.sh > /dev/null 2>&1 - пример запуска скрипта
crontab -l просмотреть задание
crontab -r удалить задания

echo 'init 6' | at now +2 min через 2 минуты будит выполнена попытка перезагрузки
echo 'init 6' | at now +4 week через 4 недели будит выполнена попытка перезагрузки
atq - посмотреть очередь команд
at -c номер задания просотреть задание с номером
atrm 1 удалить задание с номером 1
atq | cut -f1 | xargs atrm удалить сразу все задания
batch выполнит задание, тогда когда нагрузка системы упадёт

регистрация событий в системе журналирование:
конфиг : /etc/rsyslog.conf
все конфиги лежат по пути /etc/rsyslog.d/

логротация:
/etc/logrotate.conf основной конфигурационный файл
/etc/logrotate.d/ дирректория , где лежат конфигурационные файлы
dpkg -S /etc/logrotate.d/speech-dispatcher - показать какому пакету принадлежит данный конфигурационный файл

/etc/udev/rules.d/70-persistent-net.rules можно поментья для двух интерфейсов eth0 eth1 местами для адаптеров
reboot
ldd /bin/ls - выяснить, какие библиотеки использует данный исполнительный файл(программа)

export Name=io - экспортирует переменную Name и присваивает ей значение
env | less посмотеть переменные окружения

ntpdate ru.pool.ntp.org получить точное время(установить) и на сколько были сдвинуты системные часы
/usr/sbin/ntpdate ru.pool.ntp.org
apt-get install ntp - установка ntpd сервера
ntptrace - посмотртеь состояние ntp сервера (stratum 16 озночает , то сервер ещё статистику не обновил)
ntpq -p проверка запросов (Состояние синхронизации)
ntpdc -c monlist (Состояние синхронизации)
whereis ntpdate - узнать путь к исполнительному файлу - по команде

killall -1 xinetd переконфигурировать суперсервер
lsof -i TCP:chargen вывести сетевое инфо по имени службы(lsof -i TCP:110 например по 110 порту)

если Linux не грузится:
Нажмите Alt+Ctrl+F1 -> Авторизуйтесь указав Логин + Пароль.
Тогда надо проверить и исправить ошибки на винте:
sudo e2fsck -y -f -c /dev/sda1

Немедленная перезагрузка windows через командную строку: shutdown -r -t 0

Проверить установлен и запущен ли сервер BIND- pgrep -l named (посикать по имени процессов)
/etc/resolv.conf прописка dns сервера
named-checkconf проверить конфигурацию
named-checkconf -z проверить конфигурацию, будто бы стратует сам сервер bind
echo $? какой код возвращает, если 0 то всё нормально, если 1 то нет
rndc reload - перечитать конфигурацию зон и загрузить все зоны
rndc reconfig перечитывается конфигурационные файлы и загружаются только новые зоны
rndc flush сбросить кэш DNS сервера

dhcpd -t проверка dhcp сервера
nc вместо telnet nc localhost 25

nc localhost 110 тестирование pop3 сервиса
USER пользователь
PASS пароль
list показать что ест ьв почтовом ящике
retr 1 забрать 1 письмо
dele 1 удалить 1 письмо
quit закончить сеанс

Посмотреть по опредленному порту TCP что работает и какие процессы lsof -i TCP:110

Обновление дистрибутива ubuntu sudo do-release-upgrade

Поиск зомби процессов
1)
top | grep zombie
225 processes: 1 running, 222 sleeping, 2 zombie
2)
ps aux | grep -w Z
root 3994 0,0 0,0 0 0 ?? Z 13июн11 16:23,02 <defunct>
root 3995 0,0 0,0 0 0 ?? Z 13июн11 13:43,28 <defunct>
3)
ps -alx | awk '$10 ~ /STAT|Z/'
Находим родительский процесс:

ps ajx | grep -w Z
root 3994 3992 3992 3992 0 Z ?? 16:23,02 <defunct>
root 3995 3992 3992 3992 0 Z ?? 13:43,28 <defunct>
3-я колонка как раз и показывает pid родительского процесса. Смотрим, что это за процесс:
ps auxww | grep 3992
#kill -9 3992
#top | grep zombie