Linux command
|
|
Dima | Дата: Понеділок, 06.02.2012, 23:08 | Повідомлення # 16 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Просмотр содержимого файлов Команда Описание # cat file1 Отобразить содержимое файла начиная с первой строки [man] # head -2 file1 Отобразить две первые строки файла [man] # less file1 Аналогична команде "more" но позволяет перемещаться по содержимому вперед и назад [man] # more file1 Отобразить содержимое файла постранично [man] # tac file1 Отобразить содержимое файла начиная с последней строки [man] # tail -2 file1 Отобразить две последнии строки файла [man] # tail -f /var/log/messages Отобразить в реальном времени что добавляется в фаил [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:09 | Повідомлення # 17 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Манипуляции с текстом Команда Описание # cat example.txt | awk 'NR%2==1' при выводе содержимого файла, не выводить чётные строки файла [man] # echo a b c | awk '{print $1}' вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции [man] # echo a b c | awk '{print $1,$3}' вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции [man] # cat -n file1 пронумеровать строки при выводе содержимого файла [man] # comm -1 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1' [man] # comm -2 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2' [man] # comm -3 file1 file2 сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах [man] # diff file1 file2 сравнить два файла [man] # grep Aug /var/log/messages из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие "Aug" [man] # grep ^Aug /var/log/messages из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, начинающиеся на "Aug" [man] # grep [0-9] /var/log/messages из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие цифры [man] # grep Aug -R /var/log/* отобрать и вывести на стандартное устройство вывода строки, содержащие "Aug", во всех файлах, находящихся в директории /var/log и ниже [man] # paste file1 file2 объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m [man] # paste -d '+' file1 file2 объединить содержимое file1 и file2 в виде таблицы с разделителем "+" [man] # sdiff file1 file2 распечатка несоответствий в файлах в виде таблицы построчного сравнения [man] # sed 's/string1/string2/g' example.txt в файле example.txt заменить "string1" на "string2", результат вывести на стандартное устройство вывода [man] # sed '/^$/d' example.txt удалить пустые строки и комментарии из файла example.txt [man] # sed '/ *#/d; /^$/d' example.txt удалить пустые строки и комментарии из файла example.txt [man] # sed -e '1d' exampe.txt удалить первую строку из файла example.txt [man] # sed -n '/string1/p' отобразить только строки содержашие "string1" [man] # sed -e 's/ *$//' example.txt удалить пустые символы в в конце каждой строки [man] # sed -e 's/string1//g' example.txt удалить строку "string1" из текста не изменяя всего остального [man] # sed -n '1,5p' example.txt взять из файла с первой по восьмую строки и из них вывести первые пять [man] # sed -n '5p;5q' example.txt вывести пятую строку [man] # sed -e 's/00*/0/g' example.txt заменить последовательность из любого количества нулей одним нулём [man] # sort file1 file2 отсортировать содержимое двух файлов [man] # sort file1 file2 | uniq отсортировать содержимое двух файлов, не отображая повторов [man] # sort file1 file2 | uniq -u отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) [man] # sort file1 file2 | uniq -d отсортировать содержимое двух файлов, отображая только повторяющиеся строки [man] # echo 'word' | tr '[:lower:]' '[:upper:]' преобразовать символы из нижнего регистра в верхний [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:09 | Повідомлення # 18 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Манипуляции с текстом Команда Описание # dos2unix filedos.txt fileunix.txt конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки) [man] # recode ..HTML < page.txt > page.html конвертировать содержимое тестового файла page.txt в html-файл page.html [man] # recode -l | more вывести список доступных форматов [man] # unix2dos fileunix.txt filedos.txt конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки) [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:09 | Повідомлення # 19 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Анализ файловой системы Команда Описание # badblocks -v /dev/hda1 проверить раздел hda1 на наличие bad-блоков [man] # dosfsck /dev/hda1 проверить/восстановить целостность файловой системы fat раздела hda1 [man] # e2fsck /dev/hda1 проверить/восстановить целостность файловой системы ext2 раздела hda1 [man] # e2fsck -j /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же [man] # fsck /dev/hda1 проверить/восстановить целостность linux-файловой системы раздела hda1 [man] # fsck.ext2 /dev/hda1 проверить/восстановить целостность файловой системы ext2 раздела hda1 [man] # fsck.ext3 /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1 [man] # fsck.vfat /dev/hda1 проверить/восстановить целостность файловой системы fat раздела hda1 [man] # fsck.msdos /dev/hda1 проверить/восстановить целостность файловой системы fat раздела hda1 [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:09 | Повідомлення # 20 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Форматирование файловой системы Команда Описание # fdformat -n /dev/fd0 форматирование флоппи-диска без проверки [man] # mke2fs /dev/hda1 создать файловую систему ext2 на разделе hda1 [man] # mke2fs -j /dev/hda1 создать журналирующую файловую систему ext3 на разделе hda1 [man] # mkfs /dev/hda1 создать linux-файловую систему на разделе hda1 [man] # mkfs -t vfat 32 -F /dev/hda1 создать файловую систему FAT32 на разделе hda1 [man] # mkswap /dev/hda3 создание swap-пространства на разделе hda3 [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:10 | Повідомлення # 21 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Файловая система SWAP Команда Описание # mkswap /dev/hda3 создание swap-пространства на разделе hda3 [man] # swapon /dev/hda3 активировать swap-пространство, расположенное на разделе hda3 [man] # swapon /dev/hda2 /dev/hdb3 активировать swap-пространства, расположенные на разделах hda2 и hdb3 [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:10 | Повідомлення # 22 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Создание резервных копий (Backup) Команда Описание # find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 поиск в /var/log всех файлов, имена которых оканчиваются на '.log', и создание bzip-архива из них [man] # find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt', и копирование их в другую директорию [man] # dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' сделать "слепок" локального диска в файл на удалённом компьютере через ssh-туннель [man] # dd if=/dev/sda of=/tmp/file1 бэкапит содержимое жесткого диска в файл file1 [man] # dd if=/dev/hda of=/dev/fd0 bs=512 count=1 создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск [man] # dd if=/dev/fd0 of=/dev/hda bs=512 count=1 восстановить MBR с флоппи-диска на /dev/hda [man] # dump -0aj -f /tmp/home0.bak /home создать полную резервную копию директории /home в файл /tmp/home0.bak [man] # dump -1aj -f /tmp/home0.bak /home создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak [man] # restore -if /tmp/home0.bak восстановить из резервной копии /tmp/home0.bak [man] # rsync -rogpav --delete /home /tmp синхронизировать /tmp с /home [man] # rsync -rogpav -e ssh --delete /home ip_address:/tmp синхронизировать через SSH-туннель [man] # rsync -az -e ssh --delete ip_addr:/home/public /home/local синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием [man] # rsync -az -e ssh --delete /home/local ip_addr:/home/public синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием [man] # tar -Puf backup.tar /home/user создать инкрементальную резервную копию директории '/home/user' в файл backup.tar с сохранением полномочий [man] # ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/ [man] # ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home [man] # tar cf - . | (cd /tmp/backup ; tar xf - ) копирование одной директории в другую с сохранением полномочий и линков [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:10 | Повідомлення # 23 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| CDROM Команда Описание # cd-paranoia -B Перенести аудио-треки с компакт-диска в wav-файлы. [man] # cd-paranoia -- Перенести три аудио-трека с компакт-диска в wav-файлы. [man] # cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force Очистить перезаписываемый компакт-диск. [man] # cdrecord -v dev=/dev/cdrom cd.iso Записать ISO-образ на компакт-диск. [man] # gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - Записать сжатый ISO-образ на компакт-диск. [man] # cdrecord --scanbus Сканировать системную шину, чтобы найти идентификаторы каналов SCSI. [man] # dd if=/dev/hdc | md5sum Посчитать контрольную сумму MD5 на устройстве, например, компакт-диске. [man] # mkisofs /dev/cdrom > cd.iso Создать ISO-образ компакт-диска. [man] # mkisofs /dev/cdrom | gzip > cd_iso.gz Создать сжатый ISO-образ компакт-диска. [man] # mkisofs -J -allow-leading-dots -R -V Создать ISO-образ из содержимого директории. [man] # mount -o loop cd.iso /mnt/iso Смонтировать ISO-образ компакт-диска в файловую систему. [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:10 | Повідомлення # 24 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Сети (LAN / WiFi) Команда Описание # dhclient eth0 включить на сетевом интерфейсе 'eth0' режим DHCP [man] # ethtool eth0 отобразить статистику по сетевому интерфейсу eth0 [man] # host www.example.com разрешить имя www.example.org хоста в ip-адрес и наоборот [man] # hostname отобразить имя компьютера [man] # ifconfig eth0 отобразить настройку сетевой карты eth0 [man] # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Настроить IP адрес и маску подсети для сетевого интерфейса eth0 [man] # ifconfig eth0 promisc перевести интерфейс eth0 в promiscuous-режим для "отлова" пакетов (sniffing) [man] # ifdown eth0 отключить сетевой интерфейс 'eth0' [man] # ifup eth0 включить сетевой интерфейс 'eth0' [man] # ip link show отобразить статус связи всех сетевых интерфейсов [man] # iwconfig eth1 показать конфигурацию беспроводного сетевого интерфейса eth1 [man] # iwlist scan просканировать эфир на предмет, доступности беспроводных точек доступа [man] # mii-tool eth0 отобразить статус связи для сетевого интерфейса 'eth0' [man] # netstat -tup отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения [man] # netstat -tupl отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, слушающих порты [man] # netstat -rn показать таблицу маршрутизации, как командой "route -n" [man] # nslookup www.example.com разрешить имя www.example.org хоста в ip-адрес и наоборот [man] # route -n вывести локальную таблицу маршрутизации [man] # route add -net 0/0 gw IP_Gateway задать ip-адрес шлюза по умолчанию (default gateway) [man] # 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 [man] # route del 0/0 gw IP_gateway удалить ip-адрес шлюза по умолчанию (default gateway) [man] # echo "1" > /proc/sys/net/ipv4/ip_forward разрешить пересылку пакетов (forwarding) [man] # tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80 (обычно - HTTP) [man] # whois www.example.com Выдаёт результаты для whois (регистратор домена, владелец сервера, проч.) [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:11 | Повідомлення # 25 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Microsoft Windows networks (samba) Команда Описание # mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему [man] # nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba [man] # nmblookup -A ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba [man] # smbclient -L ip_addr/hostname отобразить ресурсы, предоставленные в общий доступ на windows-машине [man] # smbget -Rr smb://ip_addr/share подобно wget может получить файлы с windows-машин через smb-протокол [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:11 | Повідомлення # 26 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| IPTABLES (firewall) Команда Описание # iptables -t filter -L отобразить все цепочки правил [man] # iptables -t nat -L отобразить все цепочки правил в NAT-таблице [man] # iptables -t filter -F очистить все цепочки правил в filter-таблице [man] # iptables -t nat -F очистить все цепочки правил в NAT-таблице [man] # iptables -t filter -X удалить все пользовательские цепочки правил в filter-таблице [man] # iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT позволить входящее подключение telnet'ом [man] # iptables -t filter -A OUTPUT -p tcp --dport http -j DROP блокировать исходящие HTTP-соединения [man] # iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT позволить "прокидывать" (forward) POP3-соединения [man] # iptables -t filter -A INPUT -j LOG --log-prefix включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT" [man] # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами. [man] # 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 перенаправление пакетов, адресованных одному хосту, на другой хост [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:11 | Повідомлення # 27 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Мониторинг и отладка Команда Описание # free -m показать состояние оперативной памяти в мегабайтах [man] # kill -9 process_id "убить" процесс с PID process_id(номер, на "PS-EF") "на смерть" (без соблюдения целостности данных) [man] # kill -1 process_id заставить процесс с PID process_id(номер, на "PS-EF") перепрочитать файл конфигурации [man] # last reboot отобразить историю перезагрузок системы [man] # lsmod вывести загруженные модули ядра [man] # lsof -p process_id отобразить список файлов, открытых процессом с PID [man] # lsof /home/user1 отобразить список открытых файлов из директории /home/user1 [man] # ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды) [man] # ps -e -o pid,args --forest вывести PID'ы и процессы в виде дерева [man] # pstree отобразить дерево процессов [man] # smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART [man] # smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda [man] # strace -c ls >/dev/null вывести список системных вызовов, созданных и полученных процессом ls [man] # strace -f -e open ls >/dev/null вывести вызовы бибилотек [man] # tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра [man] # tail /var/log/messages вывести десять последних записей из системного журнала [man] # top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных) [man] # watch -n1 'cat /proc/interrupts' отображать прерывания в режиме реального времени [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:11 | Повідомлення # 28 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| Другие полезные команды Команда Описание # alias hh='history' назначить алиас hh команде history [man] # apropos ...keyword выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду [man] # chsh изменить командную оболочку (на след. логин в системе) [man] # chsh --list-shells Отображение командных оболочек (не работает в Ubuntu), заменяется "less /etc/shells" [man] # gpg -c file1 шифрует файл file1 с помощью GNU Privacy Guard [man] # gpg file1.gpg дешифрует файл file1 с помощью GNU Privacy Guard [man] # ldd /usr/bin/ssh вывести список библиотек, необходимых для работы ssh [man] # man ping вызов руководства по работе с программой, в данном случае, - ping [man] # mkbootdisk --device /dev/fd0 `uname -r` создаёт загрузочный флоппи-диск [man] # wget -r www.example.com загружает рекурсивно содержимое сайта www.example.com [man] # wget -c www.example.com/file.iso загрузить файл www.example.com/file.iso с возможностью останова и продолжения в последствии [man] # echo 'wget -c www.example.com/files.iso' | at 09:00 начать закачку в указанное время [man] # whatis ...keyword отображает описание действий указанной программы [man] # who -a показывает пользователей, залогинившихся на данной машине, выводит: время последней загрузки системы, мёртвые (зомби) - процессы, процессы логина в ОС, активные процессы, созданные init (демоны), уровень выполнения, последнюю дату смены настроек часов [man]
|
|
| |
Dima | Дата: Понеділок, 06.02.2012, 23:17 | Повідомлення # 29 |
Лейтенант
Група: Адміністратори
Повідомлень: 47
Статус: Offline
| # su -c 'yum update' update all packets
|
|
| |