Справочник 70 основных команд Linux: полное описание с примерами
Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.
В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.
В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.
Справочная информация / документация
man
(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:
whatis
whereis
codedokode / 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 \windows\system32 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. Просмотреть эту переменную можно так:
В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.
В Windows PATH — это всякие системные папки вроде c:\windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php , то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php , оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».
Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:\php\php.exe
Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:
Линукс: php my.php Windows: c:\php\php.exe my.php
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
Линукс: php /some/dir/my.php Windows: c:\php\php.exe d:\files\my.php
В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.
Попрактиковаться в линукс в командной строке можно на таких командах:
Создать текстовый файл: 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 можно так:
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)
Гугли мануал по командной строке windows/linux в интернете.