Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/soft/cli.md
Ниже — старая, неактуальная версия.
Как начать пользоваться командной строкой
Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.
Думаю, что в данном случае тебе поможет не рыба, а удочка, так что держи пасту. Если после прочтения у тебя будут какие-то вопросы, или по-прежнему непонятно, почему команды не работают, пиши в наш уютный тред, разберемся.
Краткий мануал чайника по командной строке:
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd — наждать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (ааа как вернуться назад? Ctrl + F7)
- Linux: если ты линуксоид, ты и так знаешь
Во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).
[ctrl+c] — прерывает выполнение команды, например, если она долго тупит
Важно: клавиша Esc не работает в командной строке. Клавиши Ctrl + C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».
Линукс и мак
В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a] чтобы перейти в начала строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.
Буфер обмена
В командной строке не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).
Текущий каталог
В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd:
cd / — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский кталог
cd ../.. — переходит на 2 уровня выше
cd ~ — перейти в свой домашний каталог (/home/anon например)
cd ~/test — перейти в /home/anon/test
В Windows, сначала надо перейти на нужный диск командой c:, d:, e: и так далее. Потом использовать cd или chdir:
d: - перейти на диск d:
cd — перейти в корневой каталог
cd windowssystem32
cd ..
cd ....
Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак ~ обозначает «домашний каталог» (это /home/username или /Users/username). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или (Windows) обозначает корневой каталог.
Очистка экрана
В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).
Список файлов
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе (ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l, либо stat file.txt
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей
Подсказка
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (--help или /?):
В линукс: ls --help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q,
для прокрутки используй стрелки и PgUp/PgDn)
В Windows: dir /? — выведет справку по команде dir
В Windows: help выведет подсказку по основным командам
Виды команд
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
В линуксе: echo $PATH
В windows: echo %PATH%
В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.
В Windows PATH — это всякие системные папки вроде c:windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:program filesautocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php, то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:php, и не прописал этот путь в PATH, то набрав php, оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».
Печалька.
Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:phpphp.exe
Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:
Линукс: php my.php
Windows: c:phpphp.exe my.php
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
Линукс: php /some/dir/my.php
Windows: c:phpphp.exe d:filesmy.php
В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан
Просмотреть текстовый файл: cat file.txt
Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less
В просмотрщике работают стрелки и q для выхода (escape не работает).
Удалить файл: rm file.txt
Скопировать файл: cp file.txt copy.txt
Переместить/переименовать файл: mv file.txt copy.txt
Скопировать в другую папку: cp file.txt /some/other/directory
Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
Вывести последние 10 строк файла: cat file.txt | tail -10
Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog
Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*'
Узнать текущее время: date
Создать папку: mkdir folder
Удалить папку: rm -r folder
Померять, сколько времени выполнялась команда: time [команда]
Узнать свой id пользователя: id
Показать список запущенных процессов: ps -lax
Показать что-то вроде диспетчера задач: top (для выхода q)
Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi
Подробнее о работе команд можно узнать с помощью параметра --help, дописанного после команды.
Больше команд — Windows
Попрактиковаться в комнадной строке в Windows можно так:
help — выводит список полезных команд
dir — выводит файлы в каталоге
Создать текстовый файл: copy con file.txt[enter]ввести текст[enter][ctrl+z][enter] — файл создан
Просмотреть текстовый файл: type file.txt
Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход)
Удалить файл: del file.txt
Скопировать файл: copy /b file.txt copy.txt
Переименовать файл: ren file.txt copy.txt
Запустить команду и сохранить вывод в файл: dir /? > file.txt
Создать текстовый файл с одной строкой текста: echo lalala lololo > file.txt
Дописать строчку в конец файла: echo boom >> file.txt
Создать папку: mkdir folder
Удалить папку: rmdir folder
Узнать текущее время: time и date (ctrl+с для выхода)
Подробнее о работе команд можно узнать с помощью параметра /?, дописанного после команды.
Команды для работы с сетью Интернет
В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у
тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Пропинговать (проверить связь) с сервером: ping google.com
Узнать IP по имени домена: nslookup yandex.ru
Показать список открытых с компьютера соединений: netstat (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение)
Проверить путь до какого-то сервера или узла сети:
- в Windows:
tracert google.com - в linux:
traceroute google.com(не работает? пиши/usr/sbin/tracerouteили пропиши уже себе sbin в PATH)
Больше информации
Используй ключи --help и /?
Гугли мануал по командной строке windows/linux в интернете.
http://archive-ipq-co.narod.ru
В этой статье мы постарались систематизировать основные команды Linux. Команды, которые вы увидите в этом списке, одинаково верно работают в разных дистрибутивах, включая Debian, Gentoo, Ubuntu, ASPLinux, ALTLinux и т. д. Главная цель статьи — создать список основных команд Linux, что упростит как изучение, так и эксплуатацию этой операционной системы.
Все команды Linux разбиты на тематические подразделы с краткими описаниями. Список команд будет обновляться и дополняться.
1. Общие команды Linux
Здесь собраны Linux-команды, которым не нашлось место в других разделах.
# uname -a # Показывается версия ядра Linux; # lsb_release -a # На экран выводится информация о версии ОС и основанных на ней дистрибутивах; # clear # Очищается экран терминала; # cat /etc/SuSE-release # На экран выводится информация о версии ОС SuSE; # man hier # Описывается иерархия файловой системы (для чего необходима каждая директория в Linux); # wall Привет # На терминалы других пользователей отправляется сообщение «Привет»; # date # Отображается текущая дата и время; # cal -3 # Отображается в удобной форме предыдущий, текущий и следующий месяц; # uptime # Отображается текущее время и работа системы без выключения и перезагрузки; # hostname # Выводится сетевое имя компьютера; # whois linux.org # Показывается информация о домене linux.org; # export http_proxy=http://your.proxy:port # Меняется переменная окружения http_proxy для использования интернета посредством proxy-сервера; # wget --convert-links -r http://www.linux.org/ # Сайт копируется целиком, конвертируются ссылки для автономной работы. Копирование производится на глубину 5-ти уровней; # wget http://itshaman.ru/images/logo_white.png # Файл http://itshaman.ru/images/logo_white.png скачивается в текущую папку; # pppconfig # Команда нужна для создания и настройки соединения Dial-Up при выходе в интернет по модему; # pppoeconf # Команда для создания и настройки выхода в сеть через ADSL-модем; # !! # Обеспечивается выполнение последней команды; # history | tail -50 # Отображаются последние 50 набранных команд; # exit # Сеанс текущего пользователя завершается; # passwd # Пароль текущего пользователя меняется; # shutdown -h now # Для выхода из Linux; # poweroff # Для выхода из Linux; # reboot # Система перезагружается; # last reboot # Выводится статистика перезагрузок; # winecfg # Для настройки Wine — неэмулятора WinAPI; # host itshaman.ru # Для отображения IP-адреса введённого сайта.2. Команды Linux для работы с директориями и файлами
В этом списке вы увидите команды Linux, которые предназначены для создания и удаления директорий и файлов. Также список включает команды навигации между файлами, команды для назначения прав доступа и владельца.
2.1 Файлы и директории
# pwd # Выводится текущий путь; # ls # Выводится список каталогов и файлов по порядку; # ls -laX # Выводится отформатированный список всех директорий и файлов, в том числе скрытых; # cd # Для перехода в домашнюю директорию; # cd /home # Для перехода в директорию /home; # touch /home/primer2 # Создаётся пустой файл /home/primer2; # tail /var/log/messages # Выводится конец файла. Это удобно, если вы работе с большими файлами и логами; # cat /home/primer2 # Показывается содержимое файла; # nano /home/primer2 # Обеспечивается редактирование файла; # gedit /home/primer2 # Ещё одна Linux-команда для редактирования файла; # echo "Последняя строчка" | sudo tee -a /home/primer2 # К концу файла добавляется "Последняя строчка"; # cp /home/[email protected]/primer.txt /home/primer.txt # Копируется /home/[email protected]/primer.tx в home/primer.txt; # mkdir /home/[email protected]/shaman # Создаётся директория с именем shaman; # rmdir /home/[email protected]/shaman # Удаляется директория с именем shaman; # rm -rf /home/[email protected]/shaman # Удаляется директория со вложенными фалами; # ln -s /home/[email protected]/primer.txt /home/primer # Cоздаётся символическая ссылка к файлу /home/[email protected]/primer.txt; # cp -la /dir1 /dir2 # Для копирования директории; # mv /dir1 /dir2 # Для переименовывания директории; # du -sh /home/[email protected]/ # На экран выводится размер заданной директории. Команда подходит и для определения размера файлов; # locate primer # Выполняется поиск файлов с именем primer.2.2 Права доступа
# [sudo] chmod 0777 /home/ # Меняются права доступа к директории. В данном случае 0777 – это разрешение на чтение/запись/исполнение для всех групп; # [sudo] chown [email protected]:ITShaman /home/primer.txt # Меняются владелец и группы, но только для файла /home/primer.txt; # [sudo] chmod -R 0777 /home/ # Происходит рекурсивное изменение прав доступа к директории. Значение 0777 мы уже описали выше. Права 0777 будут иметь все вложенные файлы и директории; # [sudo] chown -R [email protected] /home/ # Для всего содержимого директории меняется владелец.3. Команды Linux: работаем с архивами
# tar cf primer.tar /home/primer.txt # Создаётся tar-архив с именем primer.tar; # tar cjf primer.tar.bz2 /home/primer.txt # Создаётся tar-архив со сжатием Bzip2 и именем primer.tar.bz; # tar czf primer.tar.gz /home/primer.txt # Cоздаётся tar-архив со сжатием Gzip и именем primer.tar.gz; # tar xf primer.tar # В текущую папку распаковывается архив primer.tar; # tar xjf primer.tar.bz # Распаковывается tar-архив с Bzip2; # tar xzf primer.tar.gz # Распаковывается tar-архив с Gzip.4. Команды Linux для установки программ
4.1 Просмотр установленных пакетов
RPM-дистрибутивы
# rpm -qa # Отображается список пакетов RPM, установленных в системе.DEB–дистрибутивы
# dpkg -l |more # Для показа списка пакетов DEB, установленных в системе; # apt-cache search имя пакета # Для поиска в индексах доступного пакета и вывода на экран краткой информации о нужном пакете (это весьма полезная команда, обеспечивающая поиска программ из консоли); # apt-cache showpkg имя пакета # Для отображения полной информации об указанном пакете.4.2 Установка и удаление пакетов
RPM-дистрибутивы
# [sudo] rpm -i pkgname.rpm # Устанавливается RPM-пакет pkgname.rpm; # [sudo] dpkg -i *.rpm # Устанавливаются все пакеты в директории; # [sudo] rpm -e pkgname # Удаляется RPM-пакет pkgname.DEB-дистрибутивы
# [sudo] apt-get update # Обновляется список доступных пакетов из интернета; # [sudo] apt-get upgrade # Обновляется доступная версия установленных пакетов в системе; # [sudo] dpkg -i *.deb # Устанавливаются все пакеты в директории; # [sudo] apt-get install pkgname # Устанавливается DEB-пакет pkgname; # [sudo] apt-get remove pkgname # Удаляется DEB-пакет pkgname.5. Команды Linux для мониторинга работы и просмотра логов
Здесь собраны команды Linux нужные для мониторинга работы ОС. Все показания, полученные с их помощью, выводятся на экран в режиме реального времени. Число, которое стоит после команды, обозначает интервал между выводом информации.
# top # Для получения информации о загруженных процессах, потреблении ОЗУ; # htop # Расширенная онлайн-статистика о загруженных процессах; # dmesg # Отображение log-файла загрузки операционной системы и нахождения новых устройств; # mpstat 1 # Отображается расширенная статистика потребления ресурсов в процентах (для некоторых дистрибутивов нужна установка пакета sysstat); # iostat 2 # Показывается расширенная статистика прерываний по устройствам; # vmstat 2 # Расширенная статистика по применению виртуальной памяти.6. Команды Linux для отображения информации об устройствах
# lsdev # Установленные устройства (для некоторых дистрибутивов потребуется пакет procinfo); # cat /proc/cpuinfo # Полная информация о модели процессора; # cat /proc/meminfo # Расширенная информация о занимаемой ОС; # watch -n1 'cat /proc/interrupts' # Данные о прерываниях; # grep SwapTotal /proc/meminfo # Размер раздела, который выделен под swap; # free -m # Используемые и свободные ОЗУ и Swap-файл (-m указывает, что отображать данные надо в Мб); # lshal # Полный список всех устройств, а также их параметров; # lspci -tv # Показ обнаруженных PCI-устройств; # cat /proc/devices # Все устройства в системе (названия взяты из директории /proc/devices); # lsusb -tv # USB-устройства; # [sudo] dmidecode # Версия BIOS; # gtf 1024 768 75 # Вывод строки ModeLine для монитора на параметрах экрана 1024x768x75Hz.7. Команды Linux для жёстких дисков и файловой системы
7.1 Информация о жёстком диске и файловой системе
# fdisk -l # Все подключенные жесткие и сменные диски; # smartctl -a /dev/sda1 # Вывод SMART-данных о разделе жесткого диска /dev/sda1 (нужен пакет smartmontools); # [sudo] hdparm -I /dev/sda # IDE/ATA жёсткие диски; # [sudo] blkid # Вывод UUID всех доступных накопителей в системе.7.2 Производительность жёстких дисков
# [sudo] hdparm -tT /dev/sda # Отображение производительности жёсткого диска.7.3 Монтирование разделов жёсткого диска
# mount | column -t # Примонтированные устройства; # cat /proc/partitions # Только примонтированные разделы; # df # Свободное место на разделах; # [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 iso9660 -o loop /home/file.iso /home/iso # Монтаж ISO-образов; # [sudo] mount -t smbfs -o username=vasja,password=pupkin //pup/Video # Монтаж сетевых ресурсов (SMB); # [sudo] mount /dev/sdb1 -t vfat -o rw /mnt # Монтаж раздела с файловой системой FAT 16/32 к точке монтирования /mnt с возможностью записи; # [sudo] umount /mnt # Демонтаж раздела от точки монтирования /mnt;8. Команды Linux для настройки сети
8.1 Конфигурация сети
# ifconfig # Параметры всех сетевых; # ifconfig eth0 # Параметры сетевого интерфейса eth0; # [sudo] ethtool eth0 # Состояние сетевого интерфейса eth0 (Может потребоваться пакет ethtool). Команда применяется только для проводных подключений (с беспроводными интерфейсами не работает); # [sudo] ethtool -s eth0 speed 100 duplex full autoneg off # Принудительное задание скорости сетевому интерфейсу 100 Mbit и режима Full duplex и отключение автоматического определения; # ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Задание основного IP-адреса сетевому интерфейсу eth0; # ip addr add 192.168.50.254/24 dev eth0 # Аналогично; # ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Задание дополнительного IP-адреса сетевому интерфейсу eth0; # ip addr add 192.168.51.254/24 dev eth0 label eth0:1 # Аналогично; # [sudo] ifconfig eth0 up # Запуск сетевого интерфейса eth0; # [sudo] ifconfig eth0 down # Его отключение; # ifconfig eth0 hw ether 00:01:02:03:04:05 # Для смены MAC-адреса; # [sudo] /etc/init.d/dhcpd restart # Для перезагрузки DHCP клиента; # ping 192.168.0.2 # Для проверки сетевого соединения. Пингуется IP-адрес 192.168.0.2.8.2 Маршрутизация
# route -n # Для вывода на экран таблицы маршрутизации; # netstat -rn # Аналогично.8.3 Управление портами (брандмауэр)
# lsof -i # Показывается список всех открытых портов в сеть интернет; # netstat -an | grep LISTEN # Отображение списка всех открытых портов; # [sudo] netstat -tup # Вывод активных соединений с интернетом; # socklist # Открытые сокеты; # [sudo] netstat -anp --udp --tcp | grep LISTEN # Выводится список приложений, открывающих порты; # [sudo] iptables -P INPUT ACCEPT # Открытие доступа ко всем портам; # [sudo] iptables -P FORWARD ACCEPT # То же самое; # [sudo] iptables -P OUTPUT ACCEPT # То же; # [sudo] iptables -L -n -v # Статус firewall (статус iptables); # [sudo] iptables -X # Удаляются все цепочки.8.4 Управление NAT
# [sudo] iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Чтобы «поднять» NAT на интерфейсе eth0; # [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995 # Перенаправить диапазон портов 993-995; # [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22 # Перенаправить порт 20022, используемый для ssh; # iptables -L -t nat # Для проверки статуса NAT.9. Команды Linux для создания и записи образов ISO
# cdrecord -scanbus # Отображение всех доступных CD-ROM; # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc #Создание образов ISO с диска CD-ROM.10. Команды Linux: группы и пользователи
Эти команды Linux необходимы для работы с пользователями и группами пользователей.
11. Команды Linux для работы с процессами
Обратите внимание, что все процессы, которые запущены, имеют PID — уникальные номера.
# ps axjf # Все загруженные процессы; # pgrep -l sshd # PID конкретного процесса – sshd; # fuser -va 22/tcp # PID процесса использующего 22-й порт; # echo $$ # PID вашей оболочки; # fuser -va /home # PID процесса; # lsof /home # Список процессов; # killall 0 httpd # Текущее состояние процесса httpd; # kil 4712 # С помощью этой команды вы «убьёте» процесс с PID 4712; # [sudo] killall TERM 4711 # Команда посылает процессу с PID`ом 4711 сигнал TERM, завершающий процесс; # [sudo] killall HUP httpd # Процесс с именем httpd получает сигнал HUP, останавливающий процесс; # [sudo] fuser -k -TERM -m /home # «Убиваются» все процессы, обладающие доступом к /home.Ещё раз про важные сигналы, которые можно послать процессам:
• 1 — HUP; остановка процесса;
• 2 — INT; прерывание процесса;
• 3 — QUIT; выход;
• 9 — KILL; чтобы «убить» процесс;
• 15 — TERM; завершение процесса.12. Команды Linux: Runlevels
После того, как происходит загрузка ядра Linux, загружаются разные демоны и приложения, например, NetworkManager, Evolution и прочие. Результат мы видим на рабочем столе после загрузки. При этом загрузка каждой службы выполняются скриптом, которые находятся в /etc/init.d.
Runlevels – это целое число, определяющее «уровень загрузки».
Уровни бывают:
• Runlevels=0; выключение компьютера;
• Runlevels=1; работа в режиме Single-User;
• Runlevels=2; текстовый режим (сеть не поддерживается);
• Runlevels=3; текстовый режим но уже с поддержкой сети;
• Runlevels=4;
• Runlevels=5; графический режим;
• Runlevels=6; осуществляется перезагрузка компьютера.Таким образом, скрипты, которые загружаются лишь в текстовом режиме с поддержкой сети, — это Runlevels=3.
Упрощённый вариант настройки:
# [sudo] sysv-rc-conf #Чрезвычайно удобная настройка Runlevels, правда, нужен пакет sysv-rc-conf.А вот ручной вариант настройки:
# chkconfig --list # Список всех скриптов с соответствующими Runlevels; # chkconfig --list udev # Разрешенные Runlevels только отдельного скрипта, у нас это udev; # [sudo] update-rc.d udev defaults # Скрипту udev выставляются значения Runlevels по умолчанию; # [sudo] chkconfig udev off # У udev отключаются все Runlevels; # [sudo] update-rc.d -f udev remove # Аналогично для Debian; # [sudo] chkconfig udev --level 35 on # Для добавления скрипту udev Runlevels 3 и 5; # [sudo] update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6 # Для изменения параметров для скрипта udev.13. Команды Linux для работы с ядром и модулями
13.1 Работа с ядром системы
# uname -a # Отображение версии ядра Linux.13.2 Работа с модулями ядра
# lsmod # Вывод списка всех модулей, загруженных в ядро; # [sudo] modprobe isdn # Для загрузки модуля на примере isdn; # make # Создаётся сжатый образ ядра; # [sudo] make modules_install # Устанавливается модуль; # make modules # Производится компиляция модуля; # [sudo] make install # Для установки в ядро системы.14. Команды Linux для работы с LiveCD
# [sudo] chroot /mnt # Происходит смена root-окружения на /mnt. Далее корневой раздел, который примонтировн к /mnt, используется как родной.15. Команды Linux для конвертирования данных
15.1 Конвертирование текста
# iconv -l # Вывод списка всех кодировок, которые доступны; # iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt # Смена кодировки. Например, был файл file_cp1251.txt (кодировка cp1251), а получился файл file_utf8.txt (кодировка utf8).15.2 Конвертирование PDF в JPEG
# convert name.pdf name-%03d.jpg # Конвертация name.pdf в постраничные изображения JPEG (может понадобиться пакет imagemagick); # convert *.jpeg name.pdf # Конвертация изображений JPEG в PDF (может потребоваться пакет imagemagick).15.3 Конвертирование видео
# mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI15.4 Конвертирование аудио
# cdparanoia -B # Треки с AudioCD копируются в текущую директорию wav-файлами; # oggenc in.wav -b 256 out.ogg # Wav-файлы конвертируются в Ogg Vorbis с качеством 256 kb/s; # lame -b 256 in.wav out.mp3 # Wav-файлы конвертируются в mp3 с качеством 256 kb/s.16. Команды Linux для печати на принтере
# export PRINTER=lbp2900 # Выбирается принтер по умолчанию. У нас это Canon LBP-2900; # lprm - # С принтера по умолчанию удаляются все задачи; # lpr #2 name.txt # На принтере распечатываются две копии файла name.txt.Вот и всё, узнать больше всегда можно на курсе «Администратор Linux»!
В терминале Linux можно делать практически что угодно: настраивать систему, устанавливать и удалять приложения, управлять дисками и файлами и даже разговаривать с коровами.
Команды Linux для навигации в терминале
&&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так:первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введитеalias длинная_команда короткая_команда.cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введитеcd адрес_папки, и терминал будет работать с файлами, которые там находятся.clear. Очищает окно терминала от всех сообщений.history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так:ваша_команда.man. Отображает руководство по программам и командам Linux. Введитеman имя_пакетаилиman ваша_команда.whatis. Отображает краткое описание какой-либо программы. Введите команду и название программыwhatis имя_пакета.
Команды Linux для получения прав суперпользователя
Для выполнения множества действий в системе, например для установки и удаления программ, вам понадобятся права администратора, или суперпользователя root, как его называют в Linux.
sudo. Эта команда даст вам права суперпользователя. Введитеsudoперед нужной командой (например,sudo apt upgrade), чтобы выполнить её от имени администратора. Система спросит у вас пароль.sudo su. После этой команды все введённые вами команды будут исполняться от имени суперпользователя, пока вы не закроете терминал. Используйте её, если вам нужно выполнить много команд с правами администратора.sudo gksudo. Команда для запуска с правами администратора приложения с графическим интерфейсом. Например, если вы хотите переместить или изменить системные файлы, введитеsudo gksudo nautilus(укажите тот файловый менеджер, которым пользуетесь).sudo !!. Эта команда запустит ранее введённую команду с правами администратора. Полезно, если вы набрали команду безsudo.
Не выполняйте от имени суперпользователя команд, которых не понимаете.
Команды Linux для управления пакетным менеджером
Установку и удаление приложений в Linux выполняют пакетные менеджеры. В Ubuntu и Debian пакетный менеджер называется apt, в Fedora — dnf, в Arch и Manjaro — pacman. Они загружают приложения из сетевых репозитариев, источников пакетов. Давать им команды следует с правами суперпользователя.
apt (Debian/Ubuntu/Mint)
sudo apt install имя_пакета. Установить нужный пакет.sudo apt-add-repository адрес_репозитария. Добавить сторонний репозитарий.sudo apt update. Обновить сведения о пакетах.sudo apt upgrade. Обновить все пакеты до самых свежих (выполнять послеapt update).sudo apt remove имя_пакета. Удалить ненужный пакет.sudo apt purge имя_пакета. Удалить ненужный пакет со всеми зависимостями, если хотите освободить больше места.sudo apt autoremove. Удалить все ненужные зависимости, бесхозные пакеты и прочий мусор.
dnf (Red Hat/Fedora/CentOS)
sudo dnf install имя_пакета. Установить нужный пакет.sudo dnf config-manager --add-repo адрес_репозитария. Добавить сторонний репозитарий.sudo dnf upgrade. Обновить все пакеты до самых свежих.sudo dnf remove имя_пакета. Удалить ненужный пакет.sudo dnf autoremove. Удалить все ненужные зависимости.
pacman (Arch/Manjaro)
sudo pacman -S имя_пакета. Установить нужный пакет.sudo yaourt -S имя_пакета. Установить пакет из AUR, если его нет в основном репозитарии.sudo pacman -Sy. Обновить сведения о пакетах.sudo pacman -Syu. Обновить все пакеты до самых свежих.sudo pacman -R имя_пакета. Удалить ненужный пакет.sudo pacman -Rs имя_пакета. Удалить ненужный пакет со всеми зависимостями.
Вы можете устанавливать и удалять сразу несколько пакетов, просто перечисляя их через пробел.
sudo apt install firefox clementine vlc
Если вы хотите установить какой-то пакет, но не знаете его точного названия, введите несколько первых букв имени пакета и дважды нажмите Tab. Пакетный менеджер покажет все пакеты, названия которых начинаются одинаково.
Команды Linux для управления процессами
kill. Эта команда служит для принудительного завершения процессов. Нужно ввестиkill PID_процесса. PID процесса можно узнать, введяtop.xkill. Ещё одна команда для завершения процессов. Введите её, затем щёлкните по тому окну, которое нужно закрыть.killall. Убивает процессы c определённым именем. К примеру,killall firefox.top. Отображает перечень запущенных процессов, сортируя в зависимости от потребления ресурсов CPU. Своего рода терминальный «Системный монитор».
Команды Linux для управления файлами
Просмотр и изменение файлов
cat. Когда команда используется с одним текстовым файлом (вот так:cat путь_к_файлу), она отображает его содержимое в окне терминала. Если указать два и больше файлов,cat путь_к_файлу_1 путь_к_файлу_2, она склеит их. Если ввестиcat путь_к_файлу_1 > новый_файл, она объединит содержимое указанных файлов в новый файл.chmod. Позволяет изменять права доступа к файлу. Может пригодиться, если вы хотите внести изменения в системный файл.chown. Изменяет владельца файла. Следует выполнять с правами суперпользователя.file. Выводит информацию об указанном файле.nano. Открывает простой текстовый редактор. Можно создать новый текстовый файл или открыть существующий:nano путь_к_файлу.rename. Переименовывает файл или несколько файлов. Команду можно использовать и для массового переименования файлов по маске.touch. Изменяет дату последнего открытия или модификации указанного файла.wget. Загружает файлы из интернета в терминальную папку.zip. Распаковывает и сжимает архивы.
Создание и удаление файлов и папок
mkdir. Создаёт новую папку в текущей терминальной папке или в указанной папке:mkdir путь_к_папке.rmdir. Удаляет указанную папку.rm. Удаляет файлы. Может удалить как отдельный файл, так и группу, соответствующую определённым признакам.
Копирование и перемещение файлов
cp. Создаёт копию указанного файла в папке терминала:cp путь_к_файлу. Или вы можете указать назначениеcp путь_к_файлу путь_для_копии.mv. Перемещает файл из одной папки в другую. Вы можете указать имя для перемещаемого файла. Забавно, но в Linux эта команда может использоваться и для переименования файлов. Просто укажите ту же папку, где находится файл, и другое имя.
Поиск файлов
find. Поиск файлов по определённым критериям, таким как имя, тип, размер, владелец, дата создания и модификации.grep. Поиск текстовых файлов, содержащих определённые строки. Критерии очень гибко настраиваются.locate. Поиск файлов и папок, чьи названия подходят запросу, и отображение их путей в файловой системе.
Команды Linux для работы с разделами
lsblk. Эта команда демонстрирует, какие диски есть в вашей системе и на какие разделы они поделены. Также команда отображает имена ваших разделов и накопителей, в формате sda1, sda2 и так далее.mount. Монтирует накопители, устройства или файловые системы Linux, чтобы вы могли с ними работать. Обычно устройства подключаются автоматически, как только вы щёлкнете по ним в файловом менеджере. Но иногда может понадобиться примонтировать что-то вручную. Вы можете подключать что угодно: диски, внешние накопители, разделы и даже ISO-образы. Эту команду нужно выполнять с правами суперпользователя. Чтобы примонтировать имеющийся диск или раздел, введитеmount sdX.umount. Демонтирует файловые системы. Командаumount sdXотключит файловую систему внешнего носителя, чтобы вы могли извлечь его.dd. Эта команда копирует и преобразовывает файлы и разделы. У неё множество различных применений. Например,dd if=/dev/sda of=/dev/sdbсделает точную копию раздела sda на разделе sdb.dd if=/dev/zero of=/dev/sdXзатрёт содержимое указанного носителя нулями, чтобы информацию было невозможно восстановить. Аdd if=~/Downloads/ubuntu.iso of=/dev/sdX bs=4Mсделает загрузочный носитель из скачанного вами образа с дистрибутивом.
Команды Linux для управления системой
df. Отображает объём вашего диска, и сколько на нём осталось свободного места.free. Отображает объём доступной и занятой оперативной памяти.uname. Отображает сведения о системе Если ввестиuname, терминал сообщит только Linux. Но командаuname -aвыводит сведения об имени компьютера и версии ядра.uptime. Сообщает, как долго запущена ваша система.whereis. Отображает расположение исполняемого файла нужной программы.whoami. Называет имя пользователя.
Команды Linux для управления пользователями
useradd. Регистрирует нового пользователя. Введитеuseradd имя_пользователя, и пользователь будет создан.userdel. Удаляет учётную запись и файлы пользователя.usermod. Изменяет учётную запись пользователя. Может переместить домашнюю папку пользователя или назначить дату, когда учётная запись будет заблокирована.passwd. Изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи.
Команды Linux для управления сетью
ip. Многофункциональная команда для работы с сетью. Командаip address showвыводит сведения о сетевых адресах,ip routeуправляет маршрутизацией и так далее. Давая командыip link set ethX up,ip link set ethX down, можно включать и выключать соединения. У командыipмного применений, так что перед её использованием лучше ознакомиться с руководством или ввестиip --helpping. Показывает, подключены ли вы к сети, и помогает определить качество связи.
И ещё кое-что
Напоследок — главные команды Linux. Они выводят на экран корову, которая может разговаривать с вами (не спрашивайте, что употребляют разработчики).
cowsay что_угодно. Корова произнесёт то, что вы ей скажете.fortune | cowsay. Корова выдаст умную (или не очень) мысль или цитату.cowsay -l. Выводит список всех животных, которые могут быть отображены в терминале. Если вы вдруг не любите коров.fortune | cowsay -f животное_из_списка. Животное на ваш выбор начинает сыпать цитатами, иногда уместными.sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ru. Заставит весь зоопарк говорить по-русски. Без этого животные цитируют Твена и Уайльда в оригинале.
Это далеко не все команды Linux. Если вам нужно узнать в деталях параметры и способы применения команд Linux, вы можете воспользоваться встроенным руководством. Наберите man ваша_команда или ваша_команда --help.
При переходе с Виндовс на Линукс и наоборот, для тех, кто знаком с командной строкой, может пригодиться небольшая справка по соответствию консольных команд этих операционных систем. Естественно, полного соответствия, за редким исключением, не бывает, и в приведенной ниже таблице собраны команды, идентичные по результатам выполнения или функционально близкие.

| Описание | Команда CMD Windows | Команда Linux |
| Вызов справочной системы | HELP | apropos, man, whatis |
| Вызов командного интерпретатора (оболочки) | CMD | bash, csh, sh |
| Очистка экрана | CLS | clear, reset |
| Вывод сообщения на экран | ECHO | echo |
| Пауза в работе | PAUSE | sleep |
| Настройка параметров терминала | MODE | stty |
| Установка значений переменных окружения (указание путей к каталогам) | PATH, SET, SETx | env, set |
| Изменение системной даты | DATE | date |
| Изменение системного времени | TIME | date |
| Выход из командной строки | EXIT | exit |
| Работа с файлами и каталогами | ||
| Отображение списка файлов и каталогов | DIR | dir, ls |
| Создание каталога | MKDIR | mkdir |
| Удаление каталога | RMDIR | rmdir |
| Удаление файла | DEL, ERASE | rm |
| Переход в другой каталог | CD | cd |
| Копирование файлов или каталогов | COPY, XCOPY | cp |
| Переименование файла | REN, RENAME | mv |
| Перемещение файлов | MOVE | mv |
| Поиск файла | WHERE | find, locate |
| Вывод на экран содержимого файла | TYPE, MORE | cat, less, more |
| Сравнение содержимого двух файлов | COMP, FC | cmp, diff, diff3, sdiff |
| Сортировка строк в текстовом файле | SORT | sort |
| Изменение атрибутов файла | ATTRIB | chmod |
| Создание символьной ссылки на файл или каталог | MKLINK | ln |
| Резервное копирование данных | ROBOCOPY | cpio, tar |
| Вызов текстового редактора | EDIT (нет в Windows Vista и старше) | vi |
| Работа с томами и разделами | ||
| Создание разделов | FDISK | fdisk |
| Управление разделами | DISKPART | parted, partx |
| Форматирование диска, создание файловой системы | DISKPART, FORMAT | mformat, mkfs |
| Проверка файловой системы | CHKDSK | fsck |
| Управление системой. | ||
| Отобразить список процессов | TASKLIST, QUERY PROCESS | ps |
| Уничтожить процесс | TASKKILL | kill, killall |
| Перезагрузить компьютер | SHUTDOWN | shutdown, reboot |
| Выключить компьютер | SHUTDOWN | shutdown, halt |
| Выполнить команду от имени другого пользователя | RUNAS | sudo |
| Отобразить имя компьютера | HOSTNAME | hostname |
| Пользователи и группы. | ||
| Создать нового пользователя | NET USER | useradd |
| Изменить параметры пользователя | NET USER | usermod |
| Изменить пароль пользователя | NET USER | passwd |
| Удалить пользователя | NET USER | userdel |
| Создать новую группу пользователей | NET GROUP | groupadd |
| Изменить параметры группы | NET GROUP | groupmod |
| Удалить группу | NET GROUP | groupdel |
| Отобразить список активных пользователей | QUERY USER | users |
| Работа с сетью. | ||
| Работа с таблицей соответствия IP и MAC адресов ARP | arp | arp |
| Конфигурация протокола IP | IPCONFIG, NETSH | ifconfig, ip |
| Работа с таблицей маршрутизации | ROUTE | route |
| Опрос узла по протоколу ICMP | PING | ping |
| Клиент Telnet | TELNET | telnet |
| Работа с DNS-сервером в интерактивном режиме | NSLOOKUP | dig, nslookup |
| Трассировка маршрута к удаленному узлу | TRACERT | traceroute |
| Отобразить статистику сетевых соединений | NETSTAT | netstat |
Строчные и заглавные буковки для команд командной строки Виндовс воспринимаются одинаково, ECHO и echo — будет интерпретировано как одна и та же команда. При работе в командной строке Линукс соблюдение регистра символов строго обязательно.


