Современные пользователи персональных компьютеров привыкли к графическому интерфейсу. Однако иногда приходится использовать интерфейс командной строки, то есть вводить определенные команды вручную. Например, в случае отсутствия графической оболочки, при восстановлении и настройке системы и т. д. Более того, с помощью командной строки некоторые действия выполнять быстрее и удобнее, чем с помощью привычного графического интерфейса.

Командная строка — это очень мощное средство управления системой. Некоторые начинающие пользователи боятся работать в консоли, считая, что это слишком сложно и непонятно. На самом деле это не так, достаточно освоить некоторые приемы работы и несколько простых команд и с остальными командами разобраться будет значительно проще. Графический интерфейс получил широкое распространение не так уж и давно — в конце прошлого века. А до этого все пользователи компьютеров работали с командной строкой.

В любом случае, пользователям Linux стоит освоить работу в консоли, эти навыки им обязательно пригодятся в дальнейшем. В этой статье мы рассмотрим работу с консолью и терминалом, а также основные часто применяемые команды Linux, не претендуя на полноту, поскольку полное их описание с примерами может занять не один том.

Чтобы получить доступ к консоли, находясь в графическом режиме, нужно нажать комбинацию клавиш Ctrl+Alt+F1. Далее нужно будет ввести логин и пароль, как при загрузке системы. Можно открыть несколько консолей, с помощью комбинаций клавиш Ctrl+Alt+F2, Ctrl+Alt+F3 и т.д. (до F6) и запускать в них различные программы одновременно. Для возврата в графическое окружение нужно нажать Alt+F7, при этом консоли остаются открытыми и программы, запущенные в них, будут продолжают работать.

Для работы с командной строкой непосредственно в графическом режиме существуют специальные программы — эмуляторы терминалов. Есть множество подобных программ: gnome-terminal — стандартный терминал в GNOME, konsole — стандартный терминал в KDE, xterm, tilda и т. д. Для открытия стандартного терминала в Ubuntu Linux нужно нажать комбинацию клавиш Ctrl+Alt+T, либо кликнуть на иконку терминала на панели. В других системах возможно придется запускать программу терминала через меню, для удобства можно установить иконку запуска терминала на панель или рабочий стол. Чтобы получить удаленный доступ к компьютеру через терминал, можно воспользоваться программами telnet или ssh, которые будут рассмотрены ниже. А в Windows программой PuTTY, которую можно скачать здесь: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Рис. 1. Эмулятор терминала Konsole.

Рис. 1. Эмулятор терминала Konsole

Команды в Linux состоят из нескольких частей: собственно самой команды, ключей (опций) и параметров, которые могут быть обязательными и необязательными. Например, в команде ls -la /var/www (далее команды будем выделять жирным шрифтом): ls — это команда, la — это ключи, которые чаще всего отделяются знаком минус «-», а параметром в данном случае является каталог /var/www. Ключи бывают короткие и длинные: короткие состоят из одной буквы и отделяются одним минусом «-», длинные ключи отделяются двумя минусами «--». Короткие ключи можно объединять в один, например команды ls -l -a -t -r и ls -latr идентичны. Наиболее популярные длинные ключи: --help и --version. Набрав ключ --help после любой команды (например ls --help), мы получим краткую справку о ней. Ключ --version служит для вывода версии программы.

Обратите внимание, что команды, ключи, имена файлов в Linux зависят от регистра. То есть, LS и ls — это разные команды, если вместо ls набрать LS, то эффект будет неожиданным. Длинные команды удобно набирать, используя клавишу «Tab», которая служит для автодополнения, достаточно набрать первые буквы из названия команды и нажать эту клавишу. Если есть несколько команд, которые начинаются с введенных символов, то они отобразятся на экране, в этом случае нужно набрать еще один или несколько символов и опять нажать «Tab». Аналогично клавиша «Tab» может быть использована для быстрого набора параметров, имен длинных файлов и т.д. C помощью курсорных клавиш можно просматривать и редактировать уже введенные команды.

Также можно использовать следующие сочетания клавиш:

Ctrl+C — прервать работу программы (обратите внимание, что в графическом окружении эта же комбинация клавиш используются для копирования).

Ctrl+Shift+C — скопировать выделенную информацию в буфер, для выделения можно использовать мышь.

Ctrl+Shift+V — вставить информацию из буфера. Для вставки текста также удобно использовать среднюю кнопку мыши (колесо прокрутки), предварительно выделив текст.

Ctrl+S — приостановить вывод на терминал.

Ctrl+Q — возобновить вывод на терминал. Хотя обычно для этого можно использовать любую клавишу. Иногда помогает если терминал «завис».

Ctrl+Z — остановить работу программы. Для продолжения нужно набрать команду fg (либо bg для продолжения работы программы в фоновом режиме).

Ctrl+D — выход из терминала, закрытие консоли, разрыв соединения с удаленным компьютером.

Теперь перейдем непосредственно к рассмотрению команд Linux.

Информационные команды

man команда — выводит подробную информацию о команде Linux, ключах и т.д. Например: man date.

К сожалению не все руководства переведены на русский, возможно потребуются начальные знания английского.

date — выводит текущую дату и время.

uname -a — выводит информацию о системе.

who — выдает список пользователей, которые сейчас находятся в системе. Не стоит пугаться, если будет найдено несколько пользователей на персональном компьютере, это вовсе не означает, что его взломали хакеры. Обратите внимание на их имена. Каждый открытый терминал, включая графический, система считает отдельным пользователем.

w — аналогично who показывает пользователей в системе, но, кроме этого, отображает еще дополнительную информацию - какие команды выполняют пользователи, и насколько загружен процессор.

free — вывод информации об оперативной памяти.

top — выводит информацию о процессах, о загрузке процессора, о распределении памяти.

df -h — выводит информацию о жестких дисках.

uptime — отображает время работы системы, количество пользователей, загрузку процессора.

pwd — показывает текущий каталог.

time — измеряет время работы программы, например time ls.

echo — выводит строку текста на стандартное устройство вывода. echo Привет — выведет слово «Привет», echo * - отобразит список файлов текущей директории. echo $[2+3] — выведет сумму чисел 2 и 3.

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

ls — выводит список файлов в текущем каталоге. Чтобы отобразить список файлов в любом каталоге, нужно набрать путь к каталогу после команды, например: ls /usr/bin. Некоторые ключи команды ls:

-a — показать скрытые файлы;

-s — указать размер файлов в блоках;

-t — сортировка по времени модификации файлов, сначала новые файлы;

-X — сортировка по расширению названия файлов, файлы без расширения выводятся вначале;

-l — расширенный формат вывода: показывает атрибуты, владельцев и группу файлов, размер, дату и время их создания;

-r — изменить порядок сортировки на обратный. Например, команда

ls -lat /etc выведет содержимое каталога /etc в расширенном виде и с сортировкой по времени создания файлов.

cp — копирование файлов. cp doc1 doc2 — создаст копию файла doc1 под именем doc2.

rm — удаление файлов. rm doc — удалит файл doc. rm * - удалит все файлы в текущем каталоге. rm *doc — удалит все файлы, которые заканчиваются на doc. Ключ -i используется для подтверждения удаления каждого файла, ключ -r для удаления каталогов и файлов внутри этих каталогов.

rmdir — удаление директории. rmdir alex — удалит каталог alex.

Нужно быть очень осторожным с командами rm и rmdir, особенно в режиме суперпользователя, поскольку можно удалить не только свои, но и системные файлы, что может привести к краху системы.

pwd — вывод текущей директории.

mkdir — создание новой директории. mkdir alex — создаст каталог alex.

mv — перемещение или переименование файлов. mv new old — переименует файл new в old.

cat — соединение файлов или вывод файлов на стандартное устройство вывода. cat doc — выведет файл doc. 

cat /proc/cpuinfo — выдаст подробную информацию о процессоре, cat /proc/version — о версии ядра Linux.

touch — создание пустого файла.

touch doc — создаст файл doc. find — поиск файлов. find / -name "doc*" - найдет все файлы, которые начинаются с doc.

ln — создание ссылки на файл. ln file1 file2 — создаст жесткую ссылку. Ключ -s используется для создания символической ссылки.

tar — программа для работы с архивами. tar -zxvf file.tar.gz — распакует архив file.tar.gz. tar -cvf my.tar myfile — заархивирует файл myfile, создав архив my.tar. 

more — вывод файлов с остановкой для просмотра, в отличие от cat, который выводит весь файл сразу. Можно прокручивать текст построчно, с помощью клавиши ввода или постранично с помощью пробела.

less — программа для просмотра файлов аналогичная more, но позволяет прокручивать текст вверх и управлять с помощью курсорных клавиш.

nano — простой полноэкранный текстовый редактор. Рекомендуется для новичков, поскольку содержит минимум функций и основные команды отображаются на экране.

vi — довольно мощный текстовый редактор, но он имеет свою нестандартную систему команд, поэтому требует время на освоение.

mc (Midnight Commander) — мощный файловый менеджер, аналог Norton Commander для DOS или FAR для Windows. Позволяет удалять, копировать, переименовывать, просматривать, редактировать файлы, менять их атрибуты и т. д. Midnight Commander обычно не входит в стандартный набор системных программ, поэтому его нужно устанавливать отдельно. Но он настоятельно рекомендуется к использованию, поскольку сильно упрощает работу с файлами.

Рис. 2. Midnight Commander в gnome-terminal

Рис. 2. Midnight Commander в gnome-terminal

Установка и удаление программ

Для установки и удаления программ используются различные утилиты, в зависимости от версии дистрибутива Linux. В основанных на Debian дистрибутивах (Ubuntu, Linux Mint и т. д.) для этой цели используются команды apt-get или aptitude. Первый вариант упрощенный, второй имеет большую функциональность. Некоторые действия, например, установку и удаление, нужно выполнять от root, либо использовать команду sudo.

sudo apt-get update — получение нового списка пакетов.

sudo apt-get upgrade — обновить программы, перед этим нужно обновить список пакетов, выполнив предыдущую команду. Обе команды желательно выполнять периодически (часто это делается автоматически), а также перед установкой новых программ.

sudo apt-get install mc — установка программы mc.

sudo apt-get remove mc — удаление программы mc. В дистрибутивах, основанных на Red Hat, где используются RPM-пакеты, часто используют менеджер yum.

yum update — обновление системы.

yum install mc — установка программы mc.

yum remove mc — удаление программы mc. Есть и другие пакетные менеджеры и варианты установки программного обеспечения.

Сетевые команды и работа с удаленными компьютерами

ping — проверка связи с определенным адресом в сети. ping google.com — проверка доступности сайта google.com, также можно использовать IP-адрес: ping 192.168.1.5. Если ответа нет, то это не означает на 100%, что нет связи, иногда работу этой команды блокируют в сети.

traceroute — показывает маршрут прохождения трафика. Например: traceroute google.com. Позволяет определить, на каком участке сети возникают проблемы.

telnet — подключение к удаленному компьютеру. Дает возможность выполнять команды на другом компьютере. В основном используется во внутренней сети, поскольку трафик не шифруется. Пример: telnet 192.168.1.1.

ssh — подключение к удаленному компьютеру по шифрованному каналу. ssh alex@site.com — подключение к серверу site.com пользователя alex. Для подключения через нестандартный порт используется ключ -p, например

ssh -p 12345 root@111.222.123.123 — подключение к серверу 111.222.123.123 пользователя root через порт 12345.

ftp — подключение к удаленному компьютеру по протоколу передачи файлов. ftp site.com — подключение к серверу site.com.

sftp — команда аналогична ftp, но соединение происходит по шифрованному протоколу.

route -n — показывает таблицу маршрутизации.

ifconfig — информация о сетевых соединениях и их настройка.

hostname — отображает или изменяет сетевое имя компьютера.

whois сайт или IP-адрес — выводит информацию о домене, владельце доменного имени или IP-адреса, например whois google.com или whois 8.8.8.8.

dig — выводит информацию о DNS, например dig google.com. Можно обратиться к любому DNS-серверу, указав его следующим образом: dig @8.8.8.8 google.com. Для получения информации с DNS-сервера можно также воспользоваться программами host и nslookup, указав после них доменное имя или IP-адрес, но эти утилиты имеют урезанную функциональность, по сравнению с dig.

wget — программа для загрузки файлов, страниц, сайтов из интернета. wget http://site.com — загрузить главную страницу site.com. wget -r -l 10 -k http://site.com — загрузит сайт полностью.

lynx, links, links2 (3 отдельные команды) — текстовые браузеры, позволяют просматривать сайты прямо из консоли.

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

su — смена пользователя. su alex — сменит пользователя на alex. Набрав su без параметров, вы получите права суперпользователя (root), при этом символ подсказки $ сменится на #.

В этом режиме не стоит находиться постоянно, а лучше вообще его не использовать, а пользоваться командой sudo.

Для выхода из сессии и возврата к предыдущему пользователю нужно набрать exit.

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

sudo rm file — удалит файл, созданный любым пользователем.

sudo -i или sudo -s — аналоги команды su.

Использовать команду sudo нужно также очень внимательно и только в случае необходимости.

passwd — смена пароля текущего пользователя. passwd alex — смена пароля пользователя alex.

adduser или useradd — добавить нового пользователя. adduser katya — добавит пользователя katya. После набора команды нужно ввести пароль. Для выполнения команды нужно быть суперпользователем.

userdel — удалить пользователя. userdel vasya — удалит пользователя vasya.

groupadd — создание новой группы. groupadd students — создаст группу students.

groupdel — удаление группы. groupdel students — удалит группу students.

chmod — изменить права доступа файла или каталога. chmod 644 file — установит права 644 на файл. chmod +x file — даст файлу права на выполнение.

chown — изменить хозяина файла. chown alex file — в результате выполнения этой команды хозяином файла станет alex.

chgrp — изменение группы файла. chgrp students laba1 — смена группы файла laba1 на students.

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

ps — вывести список процессов. ps axu — посмотреть все процессы. ps axu | grep win — отобразить все процессы, где встречаются символы «win».

kill — убить программу, после команды указывается номер программы (идентификатор процесса — PID), который можно узнать с помощью команды ps. Пример: kill 1234.

killall команда — завершает все процессы, запущенные с помощью указанной команды.

bg — продолжить работу программы в фоновом режиме, например после комбинации клавиш Ctrl+Z. После команды может быть указан PID:

bg 1234.fg — продолжить выполнение программы в обычном режиме, также может быть указан PID.

Прочие команды Linux и языки программирования

Некоторые команды из этого списка могут отсутствовать в стандартных дистрибутивах, их можно установить отдельно.

sed — мощная утилита для обработки текста.

awk — язык для обработки текста.

grep — утилита поиска текста с использованием регулярных выражений, часто используется в связке с другими командами. grep '^a' 'text.txt' — покажет все строки в файле text.txt, которые начинаются с буквы а.

emacs — продвинутый текстовый редактор, обладающий большим количеством функций, вплоть до встроенных игр. Для опытных пользователей.

gcc — компилятор языка C, с помощью которого можно получить исполняемые файлы программ, которые распространяются в исходных кодах. Или откомпилировать свои программы.

gcc hello.c -o privet — компиляция программы hello.c, результатом компиляции будет программа с названием privet. По умолчанию (без опции -o) выходной файл будет называться a.out. GCC — это целый набор компиляторов (GNU Compiler Collection). Кроме C есть поддержка программ на C++, Fortran, Ada, Objective-C, Java и Go.

g++ - компилятор языка C++ из GCC. perl — мощный скриптовый язык.

python — вызов интерпретатора языка Python. Это современный и мощный язык, который может быть рекомендован начинающим.

exit — завершение текущей сессии, может применяться для отключения от удаленного компьютера, закрытия терминала.

shutdown -h now — команда завершения работы системы, выключения компьютера. Аналогом является команда halt. Если вместо ключа -h использовать ключ -r, то произойдет перезагрузка системы. Можно указать время, через которое будет выполнена команда. Now означает сейчас.

shutdown -r +10 — перезагрузка компьютера через 10 минут. Ключ -с отменяет выполнение команды. Для выполнения команды нужно иметь права root.

reboot — перезагрузка компьютера, аналог shutdown -r.

Популярные публикации

Самые популярные публикации по теме
за все время