02 января 2013

Терминальные команды в Linux

Введение в терминал

Среди всех элементов системы Linux самым важным, пожалуй, является командная строка (bash-Bourne Again Shell) или Терминал:



Начинающим пользователям кажется, что они ни когда не прибегнут к помощи командной строки, а некоторые её просто боятся. Однако чем больший опыт они приобретают, тем чаще обращаются к терминалу.
С помощью командной строки можно выполнять действия, которые были бы не мыслимы при работе с графическим пользовательским интерфейсом. Оказывается, что многие действия гораздо быстрее и эффективнее выполнять, пользуясь командной строкой.
Командная строка используется во всех OS: Windows, MacOS X и Linux.
Многие начинающие пользователи могут возразить: "Так ведь в Windows мы не пользуемся командной строкой". И будут не правы, т.к. все действия по установке/удалению программ или другие системные изменения незримо протекают в терминале, не говоря уже о системных администраторах, которые очень часто прибегают к услугам командной строки.
Изначально окно терминала было отображено в первых мониторах компьютеров, ещё до того, как появились графические программы (GUI) и пока в обозримом будущем не видно чтобы его могло заменить что-то другое.

Терминальные команды

В системе Linux используются тысячи команд, которые совсем не обязательно знать простому пользователю, но иметь общее представление и знать некоторые, часто используемые, просто необходимо, т.к. волей - неволей вы с ними столкнётесь при настройке системы или установке нужной программы, отсутствующей в Центре приложений и т.д.
Я использую системы Ubuntu/Linux Mint и на их основе будут задействованы примеры, но думаю, что кроме команды sudo, остальное  применительно и к другим системам Linux.
В Ubuntu/Linux Mint окно терминала открывается нажатием клавиш Ctrl+Alt+T.

Обновление программ

Многие пользователи, наверное, выполняли не раз такие команды в терминале:

sudo apt-get update
sudo apt-get upgrade

Давайте разберём их более детально, чтобы понять что они собой представляют.
Прежде всего хотелось бы заметить, что  все команды написаны на английском языке и не просто "от фонаря", а в каждой заложен определённый смысл для её применения. И то что командная строка Linux очень чувствительна к регистру. Иными словами, данные команды написаны в нижнем регистре (строчными буквами), но если вы введёте идентичную команду, но в верхнем регистре (прописными буквами), то выполнить её не получится. Это нужно запомнить.

Команда sudo, это по сути аббривеатура, состоящая из следующих слов: super user do, что в переводе с английского буквально означает следующее:  super user - суперпользователь (администратор), do - делает. Т.е. когда данная команда присутствует в общей команде, то командной строке даётся понять, что выполнять её может суперпользователь (администратор), тот пользователь, который при установке системы был зарегистрирован и ввёл свой пароль:



Команда apt-get, которая следует после  sudo и пробела, состоит из двух слов через чёрточку, которая объединяет эти два слова в одну команду и буквально означает в переводе: склонен-выполнить.

Команда update, в переводе - обновление.

Итак  sudo apt-get update в преводе буквально - суперпользователь склонен-выполнить обновление.

После ввода данной команды и нажатия клавиши Enter, терминал запрашивает пароль. После ввода пароля и вновь нажатия Enter, начнётся процесс обновления списка пакетов.

Примечание. У терминала есть особенности после ввода команды с sudo, а именно когда вы вводите пароль, то он не отображается ни буквами, ни символами, поэтому нужно всегда обращать внимание на раскладку клавиатуры, в которой вы вводите пароль и другая, это после выполнения первой команды с присутствием sudo, последующие команды (даже если в них есть sudo), больше не требует ввода пароля в течении определённого времени (сохраняет открытой sudo-сессию) в этом же окне терминала, т.е подразумевая, что терминалом продолжает пользоваться суперпользователь (администратор).

Команда sudo apt-get upgrade очень похожа на предыдущую команду, где upgrade - модернизировать, усовершенствовать (систему). Данная команда, как правило выполняется после команды обновления. После того как команда выполнена, она выдаёт в терминале возможные пакеты для установки, т.е. модернизации, усовершенствования системы. Пользователю остаётся согласиться или нет с установкой данных пакетов.

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

Далее мы рассмотрим команды на установку и удаления программ (пример):

sudo apt-get install chromium-browser

sudo apt-get remove chromium-browser

Как видно команды очень похожи между собой, за исключением одного слова выделенного красным. В первой команде install - установить chromium-browser, а во второй remove - удалить chromium-browser

Таким образом устанавливаются и удаляются приложения (программы) и др. файлы в системе.
Если вы нашли на одном из сайтов похожую команду на установку программы и установили её, но программа вам не подошла и вы хотите удалить, достаточно в команде на установку изменить  install на remove и выполнить в терминале, как программа удалится.

Установка программ из стороннего репозитория

Теперь рассмотрим команды на установку и удаление программ с добавлением стороннего репозитория (пример):

sudo add-apt-repository ppa:upubuntu-com/gtk+3.6
sudo apt-get update
sudo apt-get install flatstudiodark-gtk

Прежде всего давайте выясним зачем подключать сторонний репозиторий? Репозиторий, это хранилище файлов на сайте разработчика. В данном случае, третьей командой мы хотим установить тему оформления, но её нет в Центре приложений, а значит нам нужно прежде подключить хранилище (репозиторий) с темой (первая команда), где add - добавить, ppa:upubuntu-com/gtk+3.6 - название репозитория, затем второй командой обновить список пакетов и уже третьей - установить сам пакет с темой.

Если данное приложение (в конкретном случае тема оформления) вам не понравилось и вы решили удалить его, то вы можете изменить команды на установку, чтобы они выглядели командами на удаление:

sudo apt-get remove flatstudiodark-gtk
sudo add-apt-repository --remove ppa:upubuntu-com/gtk+3.6
sudo apt-get update

Прежде нужно выполнить команду на удаление пакета с программой, где меняем install на remove, затем удаляем хранилище (репозиторий), добавив в команду --remove - удалить, т.к. хранилище теперь без надобности и обновляем систему последней командой.

Запуск графических программ с правами администратора.

Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести следующую команду:

gksudo nautilus

или

gksu nautilus

Где ввод пароля, в данном случае, будет происходить в графическом окне, а не в терминале.

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

gksu nautilus /usr/share/themes

В данной команде косой чертой (/) - слешем указывается терминалу, что нужно перейти в следующую за ним папку.

Запуск программ из терминала командой

В системе Linux вы можете запустить любую программу из терминала установленную в вашей системе, главное знать её правильное название. Многие программы состоят из одного слова-названия, а некоторые из двух или трёх слов. Например: Nautilus; Ubuntu Tweak; Gnome Tweak Tool. Если мы введём в терминал название команд так, как они написаны, то не сможем открыть ни одно из приложений. Ещё раз повторюсь, что терминал очень чувствителен к регистру, т.е. команду нужно вводить только в нижнем регистре (строчными буквами) и обязательно монолитной, через чёрточку, если она состоит из нескольких слов (примеры):

nautilus

ubuntu-tweak

gnome-tweak-tool

Таким образом вы сможете открыть приложения, но если вы закроете терминал, то закроется и программа вместе с ним. Чтобы этого не происходило, необходимо дописать команду exit на закрытие терминала после открытия программы через пробелы и разделительный знак &:

nautilus & exit

ubuntu-tweak & exit

gnome-tweak-tool & exit

Через разделительный знак & можно включать несколько команд на выполнение (открытие), объединив их в одну команду:

nautilus & ubuntu-tweak & gnome-tweak-tool & exit

Создание каталогов (папок) и размещение в них файлов

Многие из вас устанавливали флажки для отображения в трее  раскладки клавиатуры посредством терминальных команд:

mkdir ~/.icons

mkdir ~/.icons/flags

cd ~/.icons/flags

wget http://suservice.net/icons/flags2/{ru,us}.png

Теперь давайте детально разберём каждую из приведённых команд.

Команда mkdir ~/.icons - создаёт скрытый каталог (папку) в Домашней папке под названием icons.

mk - сокращённо от make - сделать, создать. dir - сокращённо directoria - каталог, папка. ~ - знак тильда всегда обозначает Домашнюю папку пользователя. / - обозначение папки. .icons - обозначает название создаваемой папки, а точка впереди всегда указывает на то, что данная папка скрытая.

Команда mkdir ~/.icons/flags также создаёт папку под названием /flags в скрытой папке /.icons и Домашней папке - ~.

Команда cd ~/.icons/flags делает переход в папку /flags, которая в свою очередь находится в Домашней папке - ~ и в скрытой папке /.icons.
cd - c - обозначение перехода, d - directoria - каталог (папка).

Команда wget http://suservice.net/icons/flags2/{ru,us}.png загружает файлы флажков в папку /flags, в которую мы перешли на предыдущем этапе.
wget - сокращённо от wweb - сеть, get - получать, т.е получить файлы из сети и ставится всегда перед URL адресом через пробел. В данном случае перед http://suservice.net/icons/flags2/{ru,us}.png, с которого и загружаются файлы с флажками.

Убить процесс командой

Прежде всего давайте выясним, что такое процесс?

При запуске системы запускается множество процессов, о которых пользователь зачастую даже и не подозревает. Но многие процессы мы видим на экране монитора, сами их запускаем и управляем ими, это открытые программы. Лучше всего нам об этом раскажет программа top, запущенная в терминале:



Иногда так случается, что какой-то процесс в системе дал сбой или попросту "зависла" какая-то программа и кнопка закрытия не реагирует, либо кнонопка закрытия отсутствует вовсе (виджет conky). На этот случай в Linux есть очень хорошая команда - "убийца":

pkill

p - сокращённо от process (процесс), kill - убивать.
Но сама по себе эта команда не работает, ей нужен аргумент, т.е. либо номер процесса, который отображён в колонке PID (см. снимок терминала) после выполнения команды top, либо название процесса в колонке COMMAND. Не переживайте, команда не убьёт саму программу, она только остановит процесс выполнения. Если это графическая программа, то она просто закроется. Для эксперимента я выбрал самый безобидный процесс, который при закрытии ни чему не повредит. Итак выполните следующую команду:

pkill gnome-terminal

Окно терминала исчезло, т.е. был "убит" (остановлен) процесс, отображающий программу на экране монитора.

xkill - убивает видимый процесс и работает сама по себе, т.е. после выполнения команды кликните образовавшимся крестиком вместо курсора на любой видимой программе (окне), как оно закроется.

Заключение

Мною были подобраны команды для разбора, с которыми обычно сталкивается простой пользователь при настройке системы.
Если кто-то хочет глубже узнать о терминальных командах, я вам рекомендую скачать бесплатный справочник Скотта Граннемана "Linux. Карманный справочник". Просто наберите в Google Скотт Граннеман и дайте поиск.


Удачи.