среда, 20 июля 2011 г.

Команды Linux для работы в консоли

Памятка себе на первое время :)


В этой статье представлены многие базовые команды Linux. Для удобства команды разделены по разделам.
Цель с одной стороны чисто практическая. С другой стороны цель в том, чтобы показать мощь и красоту UNIX. Красота и лаконичность CLI. Удобство работы с консолью.

Например, любому пользователю виндовс приходилось заниматься нудной и скучной работой по переименованию файлов. В Linux всё намного проще:

# перевести все имена файлов и директорий в текущем каталоге в нижний регистр
for x in *; do mv "$x" "`echo $x | tr [A-Z] [a-z]`"; done


# удалить пробелы в именах файлов и директорий. Заменить пробелы символом подчёркивания '_':
for x in *; do mv "$x" `echo $x | sed -e 's/ /_/g'`; done

for x in *; do mv "$x" ${x// /_}; done # то же (чистый bash)



Также, грамотное применение wget может вполне заменить многие платные качалки сайтов виндовс.

На более серьёзном уровне применяются скрипты. Составление скриптов упрощает администрирование системы и экономит время. Достаточно единожды написать скрипт - чтобы затем просто пользоваться им. И не забываем основное правило: Linux is about to share!


Общие команды для работы с консолью


# clear # Очистить экран терминала;
# !! # Выполнить последнюю команду;
# history | tail -50 # Показать последние 50 набранных команд;
# history -d13 # Удалить 13 строку из истории;
# !somestring # Повторить последнюю команду, которая начиналась с somestring
# env # Вывести в консоль текущие переменные среды
# exit # Завершить сеанс текущего пользователя / закрыть консоль;



Команды для работы с железом


# cat /proc/devices # Показать все устройства в системе (из каталога /proc/devices);
# lspci -tv # Показать PCI-устройства в системе;
# lsusb -tv # Показать USB-устройства в системе;

# gtf 1024 768 75 # Вывести строку из ModeLine для монитора (для параметров экрана 1024x768x75Hz);

# cat /proc/cpuinfo # Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.);
# cat /proc/meminfo # Показать расширенную информацию о занимаемой оперативной памяти;
# cat /proc/partitions # Показать только примонтированные разделы жесткого диска;




# fdisk -l # информация о всех подключенных жестких и сменных дисках;
# [sudo] hdparm -I /dev/sda # Полная информация о IDE/ATA жестких дисках;
# smartctl -a /dev/sda1 # Вывести SMART-информацию о разделе жесткого диска /dev/sda1 (требуется пакет smartmontools);
# [sudo] blkid # Вывести UUID всех доступных накопителей информации в системе;
# [sudo] hdparm -tT /dev/sda # Показать производительность жесткого диска;
# fsck -y # проверить загрузочную файловую систему и исправить ошибки, если имеются



# mount | column -t # Показать полную информацию о примонтированных устройсвах;
# df -h # Показать свободное место на разделах;
# [sudo] mount /dev/sda1 /mnt # Примонтировать раздел /dev/sda1 к точке монтирования /mnt;

# [sudo] mount -t auto /dev/cdrom /mnt/cdrom # Примонтировать CD-ROM;
# [sudo] mount /dev/hdc -t iso9660 -r /cdrom # Примонтировать IDE CD-ROM;
# [sudo] mount /dev/scd0 -t iso9660 -r /cdrom # Примонтировать SCSI CD-ROM;
# [sudo] mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt # Примонтировать FreeBSD раздел в Linux;
# [sudo] mount -t smbfs -o username=vasja,password=pupkin //pup/Video # Примонтировать сетевой ресурс (SMB);
# [sudo] mount -t iso9660 -o loop /home/file.iso /home/iso # Примонтировать ISO-образ;
# [sudo] mount /dev/sdb1 -t vfat -o rw /mnt # Примонтировать раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точке монтирования /mnt с возможностью записи;
# [sudo] umount /mnt # Отмонтировать раздел от точки монтирования /mnt;



Команды для работы с операционной системой


# uname -a # Показать версию ядра Linux;
# date # Показать текущую дату и время;
# uptime # Показать текущее время, время непрерывной работы системы;
# cal -3 # Показать календарь;
# shutdown -h now # Выход из Linux;
# poweroff # Выход из Linux;
# reboot # Перезагрузка системы;
# last reboot # Cтатистика перезагрузок;
# xdpyinfo # Вывести общую информацию об оконной системе (модули и расширения, разрешение экрана, глубина цвета...)



Команды для работы с процессами


# top # Информация в реальном времени о загруженных процессах, потребление ОЗУ;
# htop # Вывести расширенную статистику о загруженных процессах;

# free -m # Информация о используемой и свободной ОЗУ и Swap-файле, в Мбайт;

# ps axjf # Показать все загруженные процессы;
# ps -afx # Показать дерево процессов
# pstree -p # Показать дерево процессов

# pgrep -l sshd # Показать PID определенного процесса – sshd;
# echo $$ # Показать PID вашей оболочки;
# fuser -va 22/tcp # Показать PID процесса использующий порт 22;
# fuser -va /home # Показывает PID процесса имеющего доступ к /home;
# lsof /home # Показывает список процессы, которые используют /home;
# killall 0 httpd # Выводит на экран текущее состояние процесса httpd;
# kill -9 4712 # «Убить» процесс с PID 4712;
# [sudo] killall TERM 4712 # Посылает процессу с PID`ом 4712 сигнал TERM - завершить процесс;
# [sudo] killall HUP httpd # Посылает процессу с именем httpd сигнал HUP - остановить процесс;
# [sudo] fuser -k -TERM -m /home # «Убить» все процессы имеющие доступ к /home;



Команды для работы пользователями, группами, правами доступа


# exit # Завершить сеанс текущего пользователя;
# passwd # Меняет пароль текущего пользователя;
# last # Показать список пользователей, входивших в Вашу систему в последнее время

# su # стать суперпользователем (требуется быть в группе wheel) (set user)
# sudo # запустить команду, обычно от имени суперпользователя (set user and do)
# lsof # посмотреть список открытых файлов (List open files)

# [sudo] chmod 0777 /home/ # Изменение прав доступа к директории только для /home;
# [sudo] chmod -R 0777 /home/ # Рекурсивное изменение прав доступа к директории /home;

# [sudo] chown tiger:tigris sample.txt # Сменить владельца(tiger) и группу(tigris), для файла sample.txt;
# [sudo] chown -R tiger /home/ # Сменить владельца для всего содержимого директории /home;

# id # Показать сводную информацию по текущему пользователю (логин, UID, GID, группы);
# finger tiger # Показать информацию о пользователе tiger;
# last # Показать последних зарегистрированных пользователей;
# who # Показать имя текущего пользователя и время входа;
# useradd tiger # Добавить пользователя tiger;
# groupadd tigris # Добавить группу tigris;

# usermod -a -G tigris tiger # Добавить пользователя tiger в группу tigris;

# userdel tiger # Удалить пользователя tiger;
# groupdel tigris # Удалить группу tigris;



Команды для управления файлами и директориями:


# pwd # Вывести текущий путь;
# ls # Вывести список файлов и каталогов, из текущей папки;
# ls -laX # Выводит форматированный список всех файлов и директорий, включая скрытые;
# cd / # Перейти в корень;
# cd ~ # Перейти в домашнюю директорию;
# cd /home # Перейти в директорию /home;
# touch /home/sample.txt # Создать файл /home/sample.txt;

# ln -s /home/username/sample.txt /home/primer
# Cоздать символическую ссылку /home/primer к файлу /home/username/sample.txt;

# mkdir /home/username/somedir # Создать папку somedir;
# rmdir /home/username/somedir # Удалить папку somedir;
# rm -rf /home/username/somedir # Удалить папку с вложенными фалами;
# cp -la /dir1 /dir2 # Копировать директорий;
# mv /dir1 /dir2 # Переименовать папку в dir2;

# du -sh /home/tiger/ # Вывести в консоль размер директории tiger;
# du -hs * # Вывести размер всех папок и файлов, из текущей;



# cd .. подняться на директорию вверх 



Команды для просмотра файлов и форматирования вывода


# cat /home/sample.txt # Показать содержимое файла /home/sample.txt;
# tac /home/sample.txt # Показать содержимое файла /home/sample.txt, в обратном порядке;
# od text2 # Посмотреть дамп файла text2 (в 16-ричном виде)
# wc text1.txt # Посмотреть размер файла text1.txt
# dmesg | tail -n15 | head -n 6 # Вывести 6 первых строк из 15 последних строк, из dmesg



Получение справочной информации. Команды для поиска файлов


man # стандартная команда для просмотра справочного руководства
whatis mount # искать справочные страницы для имени mount
apropos mount # искать слово mount в справочных страницах
info mount # вывести справку о mount, в формате справочных страниц Free Software Foundation

# locate primer # Поиск всех файлов с именем primer по БД (требуется пакет slocate);
# find . -name '*foo*' # искать файлы имена которых содержат foo, начиная с текущей папки (и во всех вложенных в нее)



Команды для просмотра логов


# dmesg # Показывает log-файл загрузки ОС и нахождения новых устройств;
# dmesg | tail # Показать 10 последних строк, из dmesg;
# tail /var/log/messages # Выводит конец файла. Удобно при работе с логами и большими файлами;
# tail -f /var/log/messages # лог системы в реальном времени (остановить через Ctrl+C)

# :>file # То же, что и cat /dev/null > file, но короче. "Обнулить" файл.
# head -c 0 > ./имя_файла # "обнулить" размер файла
# echo -ne >file # "обнуление" файла
# egrep -v "^#|^[:blank:]*$" file # просмотреть файл, без комментариев и пустых строк



Команды для работы с архивами


# tar cf primer.tar /home/sample.txt # Создать tar-архив с именем sample.tar, добавить sample.txt;
# tar czf primer.tar.gz /home/sample.txt # Cоздать tar-архив с сжатием Gzip по имени primer.tar.gz;
# tar cjf primer.tar.bz2 /home/sample.txt # Cоздать tar-архив с сжатием Bzip2 по имени primer.tar.bz;
# tar xf sample.tar # Распаковать архив sample.tar в текущую папку;
# tar xzf sample.tar.gz # Распаковать tar-архив с Gzip;
# tar xjf sample.tar.bz # Распаковать tar-архив с Bzip2;



Команды для работы с сетью


# hostname # Показать сетевое имя компьютера;
# whois linux.org # Показать информацию о доменом имени linux.org;
# host thenewhost.com # Показать IP-адрес введенного сайта;

# wget http://someaddr.com/images/hallo.png
# Скачать файл hallo.png в текущую папку;

# wget --convert-links -r http://www.linux.org/
# Полностью копировать сайт, конвертировать ссылки для автономной работы (копирование выполняется на 5 уровней в глубину);



# ifconfig # Показать параметры всех сетевых интерфейсов;
# ifconfig eth0 # Показать параметры сетевого интерфейса eth0;
# ping 192.168.0.2 # Проверить доступность сетевого соединения. Пропинговать IP адрес 192.168.0.2;

# ifconfig eth0 hw ether 00:01:02:03:04:05 # Сменить MAC адрес, для eth0;
# [sudo] /etc/init.d/dhcpd restart # Перезагрузить DHCP клиент;

# netstat -rn # Вывести таблицу маршрутизации;
# route -n # Вывести таблицу маршрутизации, вместе с открытыми сокетами;

# netstat -an | grep LISTEN # Показывает список всех открытых портов;
# lsof -i # Показывает список всех открытых портов в сеть Internet;
# [sudo] netstat -tup # Активные соединения с интернетом;
# [sudo] iptables -L -n -v # Показать статус firewall (статус iptables);

Комментариев нет:

Отправить комментарий