Этот урок переехал в мой гитхаб: 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.AVI
15.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 --help
ping
. Показывает, подключены ли вы к сети, и помогает определить качество связи.
И ещё кое-что
Напоследок — главные команды 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 — будет интерпретировано как одна и та же команда. При работе в командной строке Линукс соблюдение регистра символов строго обязательно.