В этом посте собраны нужные, базовые команды Linux, которые используются часто в работе, их очень много, со временем большинство из них запоминаются.
$ cat /proc/version //подробная информация о версии текущего ядра
$ cat /proc/mounts //вывод смонтированных файловых систем
$ cat /proc/net/dev //вывод информации о сетевых устройствах
# hdparm -i /dev/sda //вывод характеристик жесткого диска /dev/sda
# hdparm -tT /dev/sda //измерение скорости чтения данных с устройства /dev/sda
$ lspci -tv //вывод устройств на шине PCI
Переход:
Копирование:
Кодировки:
Ссылки:
Вывод содержимого:
Создание и переименование:
Поиск:
Выключение:
# init 0
# shutdown -h now
# shutdown -h 20:00 & //выключение назначено на 20:00
Перезагрузка:
# reboot
# shutdown -r now
# shutdown -r 20:00 & //перезагрузка назначена на 20:00
Завершение текущей сессии:
# logout
Вывод на экран архитектуры компьютера:
$ arch
$ uname -m
Календарь и время:
$ cal //вывод текущего дня и месяца
$ cal 1976 //вывод календаря 1976 года
$ cal -hjy jan 2013 //вывод порядковых номеров дней года
$ date //вывод текущего времени
$ date //вывод текущего времени
# date 011623342013.06 //установить дату и время в значение МесяцДеньЧасМинутаГод.Секунда
# clock -w //запись текущей системной даты в BIOS
# clock -w //запись текущей системной даты в BIOS
Информация о системе:
$ cat /proc/cpuinfo //подробная информация о процессоре
$ cat /proc/meminfo //подробная информация о памяти
$ cat /proc/swaps //подробная информация о файле(-ах) подкачки
$ free //краткая информация о состоянии памяти
$ cat /proc/version //подробная информация о версии текущего ядра
$ cat /proc/mounts //вывод смонтированных файловых систем
$ cat /proc/net/dev //вывод информации о сетевых устройствах
# hdparm -i /dev/sda //вывод характеристик жесткого диска /dev/sda
# hdparm -tT /dev/sda //измерение скорости чтения данных с устройства /dev/sda
$ lspci -tv //вывод устройств на шине PCI
$ lsusb -tv //вывод устройств на шине USB
Uname:
$ uname -s //вывод имени ядра
$ uname -n //вывод имени машины в сети, либо cat /etc/hostname
$ uname -r //вывод номера выпуска ОС
$ uname -v //вывод версии ядра
$ uname -o //вывод имени операционной системы
$ uname -a //печать всей информации
Информация о дисковом пространстве:
$ df -h //вывод информации о состоянии памяти на
смонтированных разделах
# du -sh /bin //вывод занятой памяти каталога /bin
Работа с файлами и каталогами:
$ pwd //вывод текущего каталога
Переход:
# cd /home/Downloads //переход в каталог Downloads
# cd .. //подняться на уровень выше по иерархической лестнице
# cd ../.. //подняться на два уровня выше по иерархической лестнице
$ cd //перейти в домашний каталог
# cd ~user //перейти в домашний каталог пользователя user
Копирование:
# cp -a dir_1 dir_2 //копировать каталог dir_1 в dir_2
# cp file_1 file_2 //копировать file_1 в file_2
# cp -a /tmp/dir . //копировать каталог dir и его содержимое в текущий каталог
# cp/tmp/dir/* . //копировать только файлы каталога /tmp/dir/ в текущий каталог
Кодировки:
$ iconv -l //вывод всех доступных кодировок
# iconv -c -f utf-8 -t windows-1251 inputFile > outputFile //конвертирование inputFile с кодировкой utf-8 в outputFile с кодировкой windows-1251
Ссылки:
# ln -s /home/Downloads/someFileOrDir ./link //создание в текущем каталоге символической ссылки на каталог или файл someFileOrDir
# ln /home/Downloads/someFileOrDir ./link //создание в текущем каталоге жесткой ссылки на каталог или файл someFileOrDir
Вывод содержимого:
$ ls //вывод содержимого текущего каталога
$ ls -F /bin //вывод содержимого каталога /bin с указанием '/' - для каталогов, '|' - для имени FIFO, '*' - для исполняемых файлов
$ ls -l //вывод содержимого каталога в одноколоночном формате: тип, права доступа, количество ссылок, владелец, группа, размер (байт), временной штамп, имя
$ ls -a //вывод ВСЕХ каталогов и файлов (даже скрытых)
Создание и переименование:
$ mkdir dir_1 //создание каталога dir_1 в данном каталоге
$ mkdir dir_1 dir_2 //создание каталогов dir_1 и dir_2 в данном каталоге
$ mkdir -p /path/to/dir //создать иерархию каталогов
$ mv oldfile newfile //переименование или перемещение файла oldfile в newfile
Удаление:
# rm -rf /dir //рекурсивное удаление каталога со всем его содержимым без запроса на подтверждение
# rm -f file //удаление file без запроса на подтверждение
# rm /dir //удаление каталога /dir
Поиск:
$ find /home -user UserName //найти все каталоги и файлы, принадлежащие пользователю UserName, поиск начинается с каталога /home и в каталогах выше уровнем
$ find /bin -name someFileOrDir //поиск каталогов и файлов и именем someFileOrDir начиная с каталога /bin
$ whereis man //вывод полных путей к бинарным файлам, исходным кодам и руководствам файла man
$ which man //вывод полного пути до файла man
Монтирование файловых систем:
# mount /dev/sda1 /mnt/disk1 //монтирование устройства sda1 в каталог /mnt/disk1, последний каталог должен существовать
# mount -o loop /path_to_file/file.iso /mnt/cdrom //монтирование образа в каталог /mnt/cdrom
# mount -t vfat /dev/sda2 /mnt/disk2 //монтирование раздела с файловой системой FAT32
# mount /dev/cdrom /mnt/cdrom //монтирование cdrom'а
# mount /dev/fd0 /mnt/floppy //монтирование мягких (гибких) дисков
# mount /dev/sdc1 /mnt/usbdisk //монтирование USB-устройства
# umount /dev/sdb //размонтирование устройства /dev/sdb
# fuser -km /mnt/sdb //размонтировать устройство, если оно заблокировано процессом
# umount -n /mnt/sdb //размонтирование устройства без записи в mtab
Пользователи и группы:
# useradd UserName //создание пользователя UserName
# groupadd [group_name] //создание группы с именем group_name
# useradd -c «This is first user» -g admin -d /home/NewUser -s /bin/bash NewUser //создание пользователя и именем NewUser, находящийся в группе admin (параметр -g), со своей домашней директорией /home/NewUser (параметр -d), с оболочкой bash (параметр -s) и комментарием к пользователю «This is first user»
# usermod -c «Hahaha» -g system -d /home/dir -s /bin/sh unknownuser //изменение пользователя
# groupmod -n group_name new_group_name //переименование группы group_name в new_group_name
# groupmod -n group_name new_group_name //переименование группы group_name в new_group_name
# userdel -r UserName //удаление пользователя UserName и его домашнего каталога
# groupdel [group_name] //удаление группы group_name
# chage -E2016-11-30 user //установка даты окончания действия пользователя user (yyyy-mm-dd)
$ passwd //смена пароля текущего пользователя
# passwd UserName //смена пароля пользователя UserName
Права доступа и атрибуты файлов:
# chown UserName /file_name //назначить пользователя UserName владельцем файла /file_name
# chown UserName:UserGroup /file_name //назначить пользователя UserName и группу UserGroup владельцами файла /file_name
# chmod ugo+rwx /dir // установка полных прав доступа (ReadWriteExecute) для всех (UserGroupOther) на каталог /dir, аналог chmod 777 /dir
# chgrp new_group file //смена группы владельца на new_group файла file
# chgrp new_group file //смена группы владельца на new_group файла file
# chmod o-t /home/User //удаление Sticky-бита на каталог /home/User
Анализ файловой системы:
# badblocks -v /dev/sda1 //проверка раздела /dev/sda1 на наличие bad-блоков
# fsck /dev/sda1 //проверка и восстановление целостность файловой системы раздела /dev/sda1
# fsck.ext2 /dev/sda1 //проверить и восстановить целостность файловой системы ext2 раздела /dev/sda, аналогично и для (msdos, vfat, ext3, ext4)
# dosfsck /dev/sda1 //аналог fsck.msdos /dev/sda1, аналогично (e2fsck, e2fsck -j для ext3)
Просмотр содержимого файлов:
$ cat file //вывод содержимого начиная с первой строки
$ tac file //вывод содержимого начиная с последней строки
$ more file //вывод содержимого файла постранично
$ less file //аналогично more, но позволяет двигаться по содержимому файла назад и вперед
$ tail -2 file //вывести две последние строки файла
Работа с текстом:
$ cat -n file //вывод содержимого файла с нумерацией строк
$ cat file | awk 'NR%2==1' //вывод нечетных строк файла, аналогично для четных (вместо единицы ноль)
$ comm -3 file1 file2 //сравнение содержимого файлов, удаляя одинаковые строки
$ comm -1 file1 file2 //сравнение содержимого файлов, не отображая строки file1, аналогично параметр -2 для file2
$ grep [0-9] file //вывод строк файла, содержащих цифры
$ grep ^Yes file //вывод строк файла, начинающихся с «Yes»
$ grep Yes file //вывод строк файла, содержащих сочетание символов «Yes»
$ grep Yes -R /home/* //вывод строк всех файлов каталога /home содержащих сочетание символов «Yes»
$ sed 's/first/second/g' file //замена first на second файла file, и вывод его содержимого
$ sed '/*#/d; /^$/d' file //удаление пустых строк и комментариев файла file, аналог '/^$/d'
$ sed -e '1d' file //удаление первой строки из file
$ sed -n '/string/p' //отображение строк содержащих string
$ sed -e 's/*$//' file //удаление пустых символов в конце каждой строки
$ sed -n '5p;5q' file //вывод пятой строки
$ sed -n '2,5p' file //вывод строк со второй по пятую
$ sed -e 's/00*/0/g'file //замена последовательности нулей одним нулем
$ sort file1 file2 //вывод отсортированного содержимого file1 и file2
$ sort file1 file2 | uniq //вывод отсортированного содержимого file1 и file2 исключая повторные значение (параметр -d — повторяющиеся значения, -u — уникальные)
$ echo 'word' | tr '[:lower]' '[:upper:]' //перевод символов из нижнего регистра в верхний
Возможно звуковое уведомление, если сначала от хоста нет ответа, а потом ответ пришел:
С помощью комбинации клавиш Ctrl+| можно смотреть статистику выполнения, не прерывая пинг.
Вывод информации об интерфейсах:
Назначения адреса интерфейсу:
# ifconfig eth0 192.168.1.20 //назначение ip-адреса
Ping — программа проверяющая доступность хостов.
Простейший пример команды ping:
$ ping example.com //посылаются пакеты с интервалом в 1 секунду
Изменение интервала отправки пакетов:
$ ping -i 5 example.com //5 секунд
$ ping -i 0.2 example.com //200 миллисекунд (5 пакетов в секунду)
# ping -i 0.1 example.com //100 миллисекунд нижний предел, возможен только для суперпользователя
Перед проверкой удаленного хоста желательно проверить локальный хост, это возможно тремя способами:
$ ping 0
$ ping localhost
$ ping 127.0.0.1
Также возможен контроль количества посылаемых пакетов:
$ ping -c 10 example.com //отправляем 10 пакетов
# ping -c 10 -i 0.2 example.com //отправляем 10 пакетов с интервалом 100мс, команда будет выполняться 1 секунду
Текущая версия ping:
$ ping -V
«Флуд» в сети (отправка большого количества пакетов за минимальное время):
# ping -f localhost
Возможно звуковое уведомление, если сначала от хоста нет ответа, а потом ответ пришел:
$ ping -a example.com
Также можно пропустить ответы от хоста, а выводить только статистику:
$ ping -c 5 -q example.com
Изменение размера отправляемого пакета (по умолчанию 64 byte):
$ ping -s 100 localhost //108 byte
Можно указать время выполнения команды:
$ ping -w 5 localhost //в течении пяти секунд будет пинговаться localhost
С помощью комбинации клавиш Ctrl+| можно смотреть статистику выполнения, не прерывая пинг.
Ifconfig - конфигурирование интерфейсов ядра.
Вывод информации об интерфейсах:
# ifconfig //вывод всех доступных интерфейсов
# ifconfig eth0 //вывод настроек интерфейса eth0
# ifconfig -a //вывод всех интерфейсов, включая отключенные
Включение и отключение интерфейса:
# ifconfig eth0 up //включение
# ifconfig eth0 down //отключение
либо
# ifup eth0 //включение
# ifdown eth0 //отключение
Назначения адреса интерфейсу:
# ifconfig eth0 192.168.1.20 //назначение ip-адреса
# ifconfig eth0 netmask 255.255.255.0 //назначение сетевой маски
# ifconfig eth0 broadcast 192.168.2.255 //назначение бродкаста
# ifconfig eth0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255 //три предыдущие команды в одной
Изменение MTU:
# ifconfig eth0 mtu XX //где XX значение MTU
Promisc mode:
По умолчанию когда сетевая карта получает пакет, она проверяет адрес получателя. В случае если этот адрес отличен от назначенных ей адресов, пакет отбрасывается. В promiscuous mode, карта не отбрасывает данные пакеты. Вместо этого она принимает все пакеты, приходящие через интерфейс. Для установки данного режима требуются привилегии суперпользователя. Большинство сетевых мониторов и анализаторов используют данный режим для захвата пакетов и анализа сетевого трафика.
Promisc mode:
По умолчанию когда сетевая карта получает пакет, она проверяет адрес получателя. В случае если этот адрес отличен от назначенных ей адресов, пакет отбрасывается. В promiscuous mode, карта не отбрасывает данные пакеты. Вместо этого она принимает все пакеты, приходящие через интерфейс. Для установки данного режима требуются привилегии суперпользователя. Большинство сетевых мониторов и анализаторов используют данный режим для захвата пакетов и анализа сетевого трафика.
# ifconfig eth0 promisc //перевод интерфейса eth0 в promiscious mode
# ifconfig eth0 -promisc //перевод eth0 в нормальный режим
Другие полезные команды:
# dhclient eth0 //включение DHCP на сетевом интерфейсе eth0
$ hostname //вывод имени компьютера
$ host example.com //преобразование домена в ip-адрес и наоборот
$ ip link show //вывод статус связи всех сетевых интерфейсов
$ host example.com //преобразование домена в ip-адрес и наоборот
$ ip link show //вывод статус связи всех сетевых интерфейсов
# iwlist scan //поиск беспроводных сетей и точек доступа
# mii-tool eth0 //вывод состояния связи сетевого интерфейса eth0
$ nslookup example.com //ресольвить (разрешить) доменное имя в ip-адрес и наоборот
# route -n //вывод локальной таблицы маршрутизации, аналогично netstat -rn
$ netstat -tup //вывод всех установленных соединений TCP и UDP без разрешения имен в ip-адресах и PID'ы и имена процессов, ожидающих соединений на сетевых портах
# route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 //добавление статического маршрута в сеть 192.168.0.0 через шлюз с ip-адресом 192.168.1.1
# route add -net 0/0 gw IP_Gateway //назначение ip-адреса шлюза по умолчанию (default gateway)
# route del 0/0 gw IP_Gateway //удаление ip-адреса шлюза
# tcpdump tcp port 80 //отлов и вывод трафика на TCP-порт 80 (HTTP)
# echo «1» > /proc/sys/net/ipv4/ip_forward //разрешение пересылки пакетов (форвардинга)
$ whois example.com //вывод информации о доменном имени
GZip/GunZip:
$ gzip file //сжатие файла file в архив file.gz
$ gzip -9 file //поместить файл file в архив-gzip с максимальной степенью сжатия
$ gunzip file.gz //разжимает архив file.gz
BZip/BunZip:
$ bzip2 file //сжатие файла file, архив file.bz2
$ bunzip2 file.bz2 //разжимает архив file.bz2
Tar:
$ tar -cvf archive.tar file1 file2 dir //создать tar-архив с именем archive.tar, содержимое — файлы file1, file2 и каталог dir
$ tar -tf archive.tar //вывод содержимого архива
$ tar -xvf archive.tar //распаковать archive.tar
$ tar -xvf archive.tar -C /home/user //распаковка архива в каталог /home/user
$ tar -cvzf archive.tar.gz dir/* //создать tar-архив из содержимого каталога dir и запаковать его с помощью gzip
$ tar -cvzf archive.tar.gz dir/* //создать tar-архив из содержимого каталога dir и запаковать его с помощью gzip
$ tar -xvzf archive.tar.gz //разжать и распаковать архив archive.tar.gz
$ tar -cvjf archive.tar.bz2 file //создать tar-архив с файлом file и запаковать его с помощью bz2
$ tar -xvjf archive.tar.bz2 -C /home/user //распаковать архив archive.tar.bz2 в каталог /home/user
Zip/UnZip:
$ zip archive.zip file //создание сжатого zip-архива с файлом file
$ zip -r archive.zip file1 file2 dir //запаковать несколько файлов и директорий в zip-архив
$ unzip archive.zip //разжать и распаковать archive.zip
Rar/Unrar:
$ rar a archive.rar file1 file2 //создание rar-архива archive.rar
$ rar x archive.rar //распаковать rar-архив, аналог unrar x archive.rar
Мониторинг и отладка системы:
$ ps //вывод списка процессов, запущенного пользователем
Мониторинг и отладка системы:
$ ps //вывод списка процессов, запущенного пользователем
$ ps -A //краткий список запущенных процессов
$ free //статистика использования памяти
$ last reboot //вывод истории перезагрузок системы
$ lsof /home/user //вывод списка открытых файлов из каталога /home/user
$ lsof -p PROC_ID //вывод списка файлов, открытых процессом с PID PROC_ID
$ lsmod //вывод списка загруженных модулей ядра
$ pstree //вывод дерева процессов
# tail /var/log/messages //вывод десяти последних записей из системного журнала
# tail /var/log/dmesg //вывод десяти последних записей из журнала загрузки ядра
$ top //вывод списка работающих процессов в режиме реального времени
# smartctl -A /dev/sda //проверка состояния жесткого диска через S.M.A.R.T
$ watch -n1 'cat /proc/interrupts' //вывод прерываний в режиме реального времени
$ vmstat 1 //вывод информационного отчета о системе каждую секунду (параметр 1)
$ w username //вывод информации о процессах пользователя username
$ uptime //вывод времени работы системы
Другие полезные команды:
$ alias h='history' //создать псевдоним h, для команды history
$ apropos ...keyword //вывод команд, относящихся к ключевым словам
$ chsh //смена командной оболочки пользователя
$ gpg file.gpg //дешифрация file с помощью GPG
$ ldd /usr/bin/prog_name //вывод списка библиотек, используемых программой prog_name
$ man prog_name //вывод странички руководства prog_name
$ wget -r www.example.com //рекурсивная загрузка содержимого сайта example.com
$ wget -c www.example.com/file //загрузка файла file с возможностью останова и докачки
$ echo 'wget -c www.example.com/file' | at 09:00 //включение закачки в 9:00
$ whatis prog_name //вывод описания действий для prog_name
$ who -a //вывод списка залогиненых пользователей, время последней загрузки системы и прочую информацию
Комментариев нет:
Отправить комментарий