sonyps4.ru

Команды в терминале linux. Терминальные команды в Linux

Если вы уже не совсем новичок в Ubuntu и уже немного освоились в своей системе, то, наверное, достаточно часто используете терминал. Современные системы Linux позволяют сделать практически все с помощью графических утилит начиная от установки программного обеспечения, до тонкой настройки системы. Но терминал тоже не теряет свою актуальность. При достаточном уровне знаний, в терминале действия выполняются намного быстрее и эффективнее.

Например, вам не нужно искать пункты меню, кликать несколько раз мышкой, выполнять поиск программы по системе и так далее. Достаточно просто набрать одну команду, передать ей нужные параметры и компьютер выполнит все нужные действия. Просто и быстро. Ситуацию делают еще интереснее возможности комбинации команд, перенаправления вывода одной команды в другую и так далее. Но тема сегодняшней нашей статьи не возможности терминала Linux, а настройка терминала в Ubuntu.

Сначала мы рассмотрим как улучшить внешний вид и удобность использования эмулятора терминала, используемого по умолчанию в Ubuntu - Gnome Terminal, а затем рассмотрим как улучшить командную оболочку.

Вы можете запустить терминал из главного меню или нажав сочетание клавиш Ctrl+Alt+T :

По умолчанию в системе терминал выглядит не очень красиво. Но ситуацию можно исправить с помощью установки другой темы Unity, например, Numix:

Но в этой статье будет рассмотрена ручная настройка терминала Ubuntu, без установки тем. Для того чтобы настроить внешний вид терминала откройте контекстное меню, кликнув в любой области терминала, откройте пункт Профили и выберите Параметры профиля :

На вкладке основные вы можете настроить размеры окна терминала, а также шрифт:

Для настройки шрифта установите галочку использовать другой шрифт и выберите нужный шрифт из списка, например, Dejavu Sans Mono Book:

Самая интересная для нас вкладка Цвета, здесь мы выберем нужные нам цвета для окна терминала, а также настроим прозрачность. Но чтобы разблокировать настройку снимите галочку Использовать цвета из системной темы :

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

Теперь терминал выглядит вполне приемлемо, но это еще не все. Хотелось бы еще поговорить о командной оболочке.

Настройка командной оболочки Ubuntu

По умолчанию в Ubuntu используется командная оболочка Bash. Она была изобретена еще в далеких 80х годах для операционной системы Unix в лаборатории Bell Labs. Понятное дело, что с тех пор она была модифицирована и очень сильно улучшена, написана свободная реализация Bash, которую вы сейчас используете и так далее. Но все принципы остались те же.

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

Одна из таких оболочек - fish, или Frendly Interactive Shell. Рассмотрим вкратце ее преимущества. Очень важным моментом fish есть полная подсветка синтаксиса, каждая правильно введенная команда выделяется одним цветом, неизвестная другим, а правильный путь к файлу подчеркивается, таким образом, вы сразу понимаете правильно ли набрали команду, еще не нажимая Enter. Также здесь очень удобный поиск ранее введенных команд в истории, достаточно набрать первые несколько символов команды и начать листать кнопкой вверх, чтобы увидеть все ранее вводимые команды, начинающиеся с этих символов. Более того, когда вы начинаете набирать команду, то оболочка предлагает вам последнюю выполненную команду, начинающуюся на такие символы, достаточно нажать стрелку вправо, и команда готова к запуску. Автодополнение здесь намного лучше чем в Bash, fish дополняет не только команды и адреса файлов, но и опции команд, а это может быть очень полезно для новичков.

А про скрипты Fish вообще говорить не стоит, они намного легче и проще. Намного проще осваиваются новичками и легче для опытных пользователей, поскольку скрипты Bash славятся своей сложностью.

Если вы еще не уверенны, нужно ли ставить оболочку Fish в своей системе, вас никто не заставляет удалять Bash, вы можете просто установить fish и проверить ее возможности, может вам тоже понравиться. Настройка консоли Ubuntu должна включать установку нормальной оболочки.

Для установки Fish в Ubuntu наберите:

sudo apt install fish

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

Если же вы хотите, чтобы эта оболочка использовалась по умолчанию, откройте Параметры профиля , и перейдите на вкладку и там отметьте Запускать команду как оболочку входа и Запускать другую команду вместо моей оболочки. Дальше в поле пропишите адрес файла оболочки fish: /usr/bin/fish:

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

Для того чтобы изменить приглашение выполните:

set fish_greeting "Have a lot of fun"

Можно не передавать никакой фразы, и тогда приглашение останется пустым.

В Fish нет файла.bashrc. Но зато есть каталог с настройками и функциями ~/.config/fish/. Там вы найдете все функции, которые могут вызываться из оболочки, а также можете добавить туда свои функции, например создадим алиас для команды rm с помощью функции:

vi .config/fish/functions/rm.fish

function rmi
rm -i $argv
end

Конечно, как и раньше осталась возможность использовать команду:

alias rmi "rm -i"

Ее нужно добавить в конец файла.config/fish/config.fish

Еще одной замечательной особенностью этой оболочки есть возможность настройки через графический интерфейс. Просто наберите:

В открывшимся окне браузера вы можете очень просто настроить общую цветовую схему, а также формат приветствия не вникая в термины bash и коды цветов.

Ubuntu – это современная полнофункциональная операционная система основанная на базе ядра Linux. Слово Ubuntu расшифровывается с южноафриканского языка как “человечность”.

Ubuntu распространяется полностью бесплатно. Скачать самую свежую версию вы можете на официальном сайте . Скачивая Ubuntu вы получаете набор всех основных необходимых для работы приложений, а недостающие приложение можно скачать из специальных хранилищ – репозиториев. Ubuntu поддерживается и финансируется фирмой Canonocal, но помимо этого огромный вклад в развитие проекта вносит сообщество – обычные люди, которые пытаются улучшить используемые ими инструменты и приложения.

Отличительной особенностью операционных систем на базе Linux является то, что они ориентированы на использование консоли. Большинство повседневных действий удобнее выполнять с помощью команд терминала Ubuntu. Если, например, в Windows для того, чтобы установить программу вы скачиваете ее с Интернета, а также самостоятельно устанавливаете все необходимые библиотеки, то в Ubuntu в этом нет необходимости. В Ubuntu установочные файлы содержат только само ПО, оставляя вопрос предоставления необходимых библиотек на совесть системы. При установке приложения через консоль автоматически устанавливаются дополнительные пакеты, необходимые для работы данного приложения.

Для того, чтобы попасть в терминал Ubuntu наживаем сочетание клавиш Ctrl + Alt + T

Все команды в терминале делятся на несколько групп в зависимости от того, какую задачу нам надо решить:

  1. Управление файлами и каталогами
  2. Поиск файлов
  3. Работа с файлами
  4. Управление процессами
  5. Архивирование и сжатие файлов
  6. Управление пользователями
  7. Управление системой
  8. Работа с датой и временем
  9. Получение справки

Команды для управления файлами и каталогами

Синтаксис Назначение Опции Описание
cd [каталог] Изменяет текущий каталог Нет Команда cd без имени каталога изменяет текущий каталог на домашний каталог
пользователя. В противном случае cd изменяет каталог на указанный в команде. Команда cd является встроенной командой командного процессора Bash.
chgrp [–cfvR] группа файлы Изменяет группового владельца одного или нескольких файлов. –c выводит только файлы с измененным групповым владельцем.

–v подробно сообщает об изменениях группового владельца.
–R рекурсивно изменяет группового владельца файлов во всех подкаталогах.
Для изменения группового владельца одного или более файлов введите chgrp с именем
группы, а за ним – имена файлов (группового владельца можно также изменить и с помощью
команды chown).
chmod [–cfvR] права_доступа файлы Изменяет права доступа одного или нескольких файлов. –c выводит только файлы с измененными правами доступа.
–f подавляет вывод сообщений об ошибках.
–v выдает подробную информацию об изменениях прав доступа.
–R рекурсивно изменяет права доступа файлов во всех подкаталогах
Для эффективного применения chmod необходимо знать, как задавать права доступа. Один из
способов предполагает конкатенацию по одной букве из каждой из следующих таблиц
в порядке их следования (Кто/Действие/Доступ):
Кто Действие Доступ
u пользователь + добавить r чтение
g группа – удалить w запись
o другие = назначить x выполнить
a все s установить ID пользователя
chown имя_пользователя:имя_группы файлы Изменяет владельца или группового владельца файла. –c выводит только файлы с измененными владельцами.
–f подавляет вывод сообщений об ошибках.
–v выдает подробную информацию об изменениях владельцев.
–R рекурсивно изменяет владельцев файлов во всех подкаталогах.
Чтобы сделать пользователя владельцем одного или более файлов, введите команду chown с
именем пользователя, а за ним – именами файлов. Для изменения группового владельца,
добавьте к имени пользователя после точки новое имя группы.
cp [опции] исходный_файл файл_назначения
cp [опции] исходные_файлы каталог_назначения
Копирует файлы и каталоги. –a сохраняет все атрибуты файла.
–b создает перед копированием резервную копию файла.
–d копирует ссылку, но не файл, на который указывает эта ссылка.
–i запрашивает подтверждение перед перезаписью файлов.
–l создает жесткие ссылки вместо копирования файлов.
–p сохраняет владельцев, права доступа и метку времени файла.
–R рекурсивно копирует файлы во всех подкаталогах.
Команда ср копирует один файл в другой. Можно также копировать несколько файлов из
одного каталога в другой.
ln [опции] существующий_файл новое_имя Устанавливает жесткие или символические ссылки (псевдонимы) для файлов и каталогов –b выполняет резервное копирование файлов перед их удалением.
–d создает жесткую ссылку на каталог (это может сделать только root).
–f удаляет существующий файл с именем новое_имя.
–help выводит справку по команде.
–s создает символическую ссылку.
–v формирует подробную выходную информацию
Команда ln назначает новое имя существующему файлу. С помощью опции –s можно
создать символические ссылки, известные во всех файловых системах. Для символической
ссылки можно просмотреть связанную с ней информацию с помощью команды ls –l. В
противном случае ls –l выводит два отдельных файла – для файла и его жесткой ссылки.
ls [опции] [имя_каталога] Выводит оглавление каталога –a выводит все файлы, в том числе и с именами, начинающимися с точки (.).
–b выводит непечатные символы в именах файлов в восьмеричном коде.
–c сортирует файлы по времени их создания.
–d выводит каталоги так же, как и обычные файлы (а не выводит их оглавление).
–f выводит оглавление каталога без сортировки (именно так, как оно хранится на диске).
–i выводит информацию об индексных дескрипторах inode.
–l выводит список файлов в длинном формате с подробной информацией.
Команда ls выводит оглавление указанного каталога. Если имя каталога опущено, ls
выводит оглавление текущего каталога. По умолчанию ls не отображает файлы, имена
которых начинаются с точки (.); чтобы увидеть все файлы, наберите ls –a. Подробную
информацию о файлах (включая размер, владельца и группового владельца и права на чтение
– запись – выполнение) можно получить с помощью команды ls –l.
mkdir [опции] имя_каталога Создает каталог. –m доступ назначает новому каталогу указанные права доступа.
–p создает родительские каталоги, если они не существуют.
Команда mkdir создает указанный каталог.
mv [опции] источник назначение Переименовывает файлы и каталоги или перемещает их из одного каталога в другой. –b создает резервные копии файлов, которые перемещаются или переименовываются.
–f удаляет существующие файлы, не запрашивая подтверждение.
–i запрашивает подтверждение перед перезаписью существующих файлов.
–v выводит имя файла перед его перемещением
Команда mv либо переименовывает файл, либо перемещает его в другой каталог. Команда
работает как с обычными файлами, так и с каталогами.
pwd Выводит текущий рабочий каталог. Нет Команда pwd выводит текущий рабочий каталог. Она является встроенной командой
командного процессора Bash.
rm [опции] файлы Удаляет один или более файлов –f удаляет файлы без запроса подтверждения.
–i запрашивает подтверждение перед удалением файлов.
–r рекурсивно удаляет файлы во всех подкаталогах, содержащихся в каталоге.
–v выводит имена файлов перед их удалением.
Команда rm удаляет указанные файлы. Для удаления файла вы должны иметь право на запись
в каталог, содержащий этот файл.
rmdir [опции] каталог Удаляет указанный каталог (при условии, что он пуст). –p удаляет все становящиеся пустыми родительские каталоги Команда rmdir удаляет пустые каталоги. Если каталог не пуст, необходимо удалить все
файлы вместе с каталогом с помощью команды rm –r.
touch [опции] файлы Изменяет метку времени файла –с предписывает touch не создавать файл, если он не существует.
–d время использует указанное время.
–r файл использует отметку времени указанного файла.
–t ММДДччмм[[ВВ]ГГ][.сс] использует указанную дату и время.
Команда touch позволяет изменить дату и время последней модификации
файла (эта информация хранится вместе с файлом). При вводе touch без опций в качестве
метки времени файла используются текущие дата и время. Если указанный файл не
существует, touch создает новый файл размером 0 байт.

Команды для поиска файлов

Синтаксис Назначение Опции Описание
find [путь] [опции] Выводит список файлов, удовлетворяющих заданному набору критериев.–depth обрабатывает сначала текущий каталог, затем его подкаталоги. –maxdepth n ограничивает поиск n уровнями вложенности каталогов.
–follow обрабатывает каталоги, указанные символическими ссылками.
–name шаблон находит файлы с именами, соответствующими шаблону.
–ctime n сравнивает файлы, модифицированные точно n дней назад.
11
–user имя находит файлы, владельцем которых является указанный пользователь.
–group имя находит файлы, владельцем которых является указанная группа.
–path шаблон находит файлы, с путями, соответствующими шаблону
Команда find удобна для поиска всех файлов, удовлетворяющих заданному набору
критериев. Если ввести find без аргументов, будет выведен список всех файлов во всех
подкаталогах текущего каталога. Для отображения всех файлов с именами,
заканчивающимися на.gz, введите find . –name “.gz”
locate шаблон Выводит все файлы из периодически обновляемой базы данных, которые соответствуют
заданному шаблону.
Нет Команда locate производит поиск в базе данных файлов тех имен, которые удовлетворяют
указанному шаблону. Ваша Linux–система настроена на периодическое обновление базы
данных файлов. Если вы не уверены, где находится файл, просто введите locate, а за ним
часть имени файла.
whereis [опции] команда Производит поиск исходного текста, двоичного файла и man-страницы для команды –b производит поиск только двоичных файлов.
–m производит поиск только man-страниц.
–s производит поиск только исходных текстов.
Команда whereis производит поиск в обычных каталогах (где находятся двоичные файлы,
man-страницы и исходные файлы) двоичных файлов, man-страниц и исходных файлов для
заданной команды.
which команда Производит поиск заданной команды в каталогах, перечисленных в переменной среды PATH. Нет Команда which производит поиск в каталогах, перечисленных в переменной среды PATH,
файла, который запускается в результате ввода указанной команды. Это удобный способ
проверки, что именно выполняется при вводе конкретной команды.

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

Синтаксис Назначение Опции Описание
cat [–benstvA] файлы Копирование содержимого файла на стандартное устройство вывода (экран). –b нумерует непустые строки.
–e отображает каждый символ конца строки (в виде $) и все неотображаемые символы.
–n нумерует все выводимые строки, начиная с 1.
–s заменяет несколько пустых строк на одну пустую строку.
6
–t отображает символы табуляции в виде ^I.
–v показывает неотображаемые символы.
–A отображает все символы (в том числе неотображаемые).
Обычно команда cat применяется для вывода содержимого файла или для конкатенации
нескольких файлов в один. Например, cat filel file2 f ile3 > all объединяет три
файла в один файл с именем all.
file [опции] файлы Выводит тип данных файла на основе правил, определенных в файле /usr/lib/magic
(известного под названием магического файла (magicfile)).
–c выводит в сформатированном виде указанный магический файл (или файл по умолчанию)
и завершает работу.
–m файл1 [: файл2: … ] указывает другие магические файлы.
–z просматривает сжатые файлы.
Для определения типа данных в указанных файлах команда file использует правила,
заданные в файле /usr/lib/magic. Например, с помощью команды file вы можете
проверить тип каждого файла в каталоге /usr/lib следующим образом:
file * | more
grep [опции] шаблон файлы Осуществляет поиск в одном или более файлах строк, соответствующих регулярному
выражению (шаблону поиска).
–N (где N– число) выводит N строк вблизи строки, содержащей образец.
–c выводит количество строк, содержащих образец поиска.
–f файл читает опции из указанного файла.
–i игнорирует регистр букв.
–l выводит имена файлов, содержащих образец.
–n выводит номера строк рядом со строками, содержащими образец.
–q возвращает код состояния, но ничего не выводит.
–v выводит строки, не содержащие образец.
–w сравнивает только целые слова.
Команда grep осуществляет поиск шаблона в указанных файлах. Обычно команда grep
используется для поиска заданной последовательности символов в одном или нескольких
текстовых файлах.
less [опции] имена_файлов Поэкранно отображает текстовые файлы (с возможностью листания назад). –? выводит список команд, которые можно использовать в less.
–p текст выводит первую строку, в которой найден текст.
–s сжимает несколько пустых строк в одну пустую строку.
Команда less поэкранно отображает указанные файлы. В отличие от more, файл можно
листать назад с использованием клавиш b, или . Для просмотра команд
управления less при просмотре файла с помощью less нажмите.
more [опции] имена_файлов Выполняет поэкранный просмотр текстовых файлов. +N (где N – число) выводит файл, начиная с указанного номера строки.
+ /шаблон начинает с отображения двух строк перед шаблоном.
–s выводит вместо нескольких пустых строк одну пустую строку.
Команда more выполняет поэкранное отображение указанных файлов. Для просмотра
команд, которые можно использовать в more, нажмите во время просмотра файла. Для
более удобного просмотра файла применяйте команду less.
wc [опции] [файлы] Выводит количество байт, слов и строк, находящихся в файле –c выводит только количество байт.
–w выводит только количество слов.
–l выводит только количество строк.
Команда wc выводит количество байт, слов и строк, находящихся в файле. Если входной
файл не указан, wc читает данные из стандартного устройства ввода.

Команды для управления процессами

Синтаксис Назначение Опции Описание
kill [опции] id_процесса Посылает сигнал процессу. –Nсигнала (где Nсигнала – номер или имя) посылает указанный сигнал.
–l выводит номера и имена сигналов.
Команда kill посылает сигнал процессу. Сигналом по умолчанию для kill является сигнал
TERM Обычно этот сигнал предназначен для завершения процесса. Например, kill –9
123 завершает выполнение процесса с идентификатором 123. Для просмотра
идентификаторов процессов воспользуйтесь командой ps. Для просмотра списка имен и
номеров сигналов введите kill –l.
ps [опции] Отображает состояние процессов (программ), выполняющихся в системе. Обратите внимание, что в отличие от других команд опции команды ps не имеют префикса
“–”.
a отображает процессы других пользователей.
f отображает дерево процессов.
j выводит выходные данные, используя формат заданий.
l выводит данные в длинном формате, с детальной информацией о каждом процессе.
m выводит информацию об использовании памяти каждым процессом.
u выводит имя пользователя и время запуска.
x выводит процессы, не связанные ни с каким терминалом.
Команда ps отображает состояние процессов, выполняющихся в системе. Команда ps без
параметров формирует список процессов, запущенных вами. Для просмотра списка всех
процессов, выполняемых в системе, введите ps ax (или ps aux, если вам нужна подробная
информация по каждому процессу).
top [q] Выводит список выполняющихся в данный момент процессов, упорядоченных по доле
использования процессорного времени.
q предписывает выполнение top с максимально возможным приоритетом (для этого вы
должны быть привилегированным пользователем).
d интервал указывает интервал в секундах между обновлениями информации.
Команда top формирует полноэкранный отчет о выполняемых процессах с учетом их доли
использования процессорного времени. По умолчанию top обновляет информацию каждые 5
секунд. Для прекращения выполнения top нажмите или .

Команды для архивирования и сжатия файлов

Синтаксис Назначение Опции Описание
tar [опции] файлы_или_каталоги Создает архив файлов или извлекает файлы из архива. –c создает новый архив.
–d сравнивает файлы из архива с файлами из текущего каталога.
–r добавляет файлы в архив.
–t выводит оглавление архива.
–x извлекает файлы из архива.
–C каталог извлекает файлы в указанный каталог.
–f файл читает архив не с ленты, а из указанного файла.
–L n определяет емкость ленты равной n килобайт.
–N дата архивирует только файлы новее указанной даты.
–T файл архивирует или извлекает файлы с именами, указанными в файле файл.
–v выводит подробные сообщения.
–z сжимает или распаковывает архив с помощью gzip.
–j сжимает или распаковывает архив с помощью bzip2.
Команда tar создает архив файлов или извлекает файлы из существующего архива
gunzip [опции] файлы Распаковывает zip-файлы. См. опции для gzip. Команда gunzip распаковывает сжатые файлы (имеющие расширение.gz или.Z). После
распаковки gunzip заменяет сжатые файлы их распакованными версиями и удаляет из имен
файлов расширение.gz или.Z. Команда gunzip эквивалентна команде gzip с опцией –d.
gzip [опции] файлы Сжимает один или более файлов. –c выводит выходной файл на стандартное устройство вывода и сохраняет исходный файл.
–d распаковывает файл (то же самое, что и gunzip).
–h выводит справку по команде.
–l выводит содержание сжатого файла.
–n не сохраняет исходное имя и метку времени.
–r рекурсивно сжимает файлы во всех подкаталогах.
–v формирует подробные выходные данные.
–V выводит номер версии.
Команда gzip сжимает файлы с помощью алгоритма сжатия Лемпеля–Зива (Lempel–Ziv)
LZ77. После сжатия файла gzip заменяет исходный файл его сжатой версией и добавляет к
имени файла.gz.

Команды для управления пользователями

Синтаксис Назначение Опции Описание
sudo useradd [имя пользователя] Добавление пользователя в систему -b Базовый каталог. Это каталог, в котором будет создана домашняя папка пользователя. По умолчанию /home
-d Название домашнего каталога. По умолчанию название совпадает с именем создаваемого пользователя.
-e Дата, после которой пользователь будет отключен. Задается в формате ГГГГ-ММ-ДД. По умолчанию отключено.
-f Количество дней, которые должны пройти после устаревания пароля до блокировки пользователя, если пароль не будет изменен (период неактивности). Если значение равно 0, то запись блокируется сразу после устаревания пароля, при -1 – не блокируется. По умолчанию -1.
Эта команда создаст в системе нового пользователя. Чтобы изменить настройки создаваемого пользователя, вы можете указанные опции
sudo passwd [имя пользователя] Изменение пароля -d Удалить пароль пользователю. После этого пароль будет пустым, и пользователь сможет входить в систему без предъявления пароля.
-e Сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
-i Заблокировать учетную запись пользователя по прошествии указанного количества дней после устаревания пароля.
-n Минимальное количество дней между сменами пароля.
-x Максимальное количество дней, после которого необходимо обязательно сменить пароль.
-l Заблокировать учетную запись пользователя.
-u Разблокировать учетную запись пользователя.
Изменить пароль пользователю можно при помощи утилиты passwd.
sudo groupadd [название группы] Создание группы пользователей -g Установить собственный GID.
-p Пароль группы.
-r Создать системную группу.
Программа groupadd создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию.

Подписывайтесь на нашу

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

Действительно, в операционной системе Linux есть терминал, где вы можете выполнять нужные вам команды, чтобы очень эффективно управлять своей системой. Но это вовсе не обязательно, многим вполне достаточно графического интерфейса. Сейчас использование терминала отошло на второй план, но он остается основным средством для доступа к удаленным серверам и инструментом для профессионалов.

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

Применение терминала началось очень давно. Еще до того как была создана DOS и не существовало никакого графического интерфейса. В далеких восьмидесятых годах операционная система Unix только начинала развиваться. Пользователям нужно каким-то образом взаимодействовать с системой и самый простой способ - это использование команд. Вы вводите команду, система вам возвращает ответ.

С тех пор, такой способ ввода использовался во многих системах, в том числе DOS и OS/2 от Apple, пока не был придуман графический интерфейс. Затем текстовый режим терминала был успешно вытеснен, но его до сих пор продолжают использовать там, где это нужно.

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

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

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

TTY - это файл устройства, который создается ядром и предоставляет доступ к терминалу для программ. Это могут быть файлы /dev/tty для постоянных текстовых терминалов и /dev/pts/* для эмуляторов терминалов. Вы можете выполнить команду или отправить сообщение просто записав данные в этот файл, и также получить результат, прочитав данные из этого файла.

Эмулятор терминала - это графическая программа, которая предоставляет вам доступ к tty или pts терминалу. Например, Gnome Terminal, Konsole, Terminix, Xterm и многие другие.

Командная оболочка - устройство tty занимается только передачей и приемом данных, но все эти данные должен еще кто-то обрабатывать, выполнять команды, интерпретировать их синтаксис. Командных оболочек достаточно много, это bash, sh, zsh, ksh и другие, но чаще всего применяется Bash.

Ну и командная строка - это то место куда вы будете вводить свои команды, приглашение терминала для ввода.

Теперь, когда мы разобрались что такое терминал Linux и знаем все основные принципы, перейдем к практике работы с ним.

Как открыть терминал Linux?

Есть несколько способов получить доступ к терминалу. Ваша система инициализации по умолчанию создает 12 виртуальных терминалов. В одном из них - обычно седьмом, запущена ваша графическая оболочка, но все другие могут быть свободно использованы. Для переключения между терминалами можно использовать сочетания Ctrl+Alt+F1-F12. Для авторизации нужно будет ввести логин и пароль.

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

Второй способ позволяет открыть виртуальный терминал прямо в графическом интерфейсе с помощью эмулятора терминала. Эмулятор терминала linux работает с файлами в каталоге /dev/pts/* и еще называется псевдотерминалом, потому что не использует tty.

В Ubuntu вы можете запустить терминал linux нажав сочетание клавиш Ctrl+Alt+T :

Также его можно найти в меню приложений Dash:

Как видите, открыть командную строку в linux очень просто.

Выполнение команд в терминале

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

Вы можете набрать что-либо и убедиться, что это работает:

Чтобы выполнить команду достаточно написать ее и нажать Enter.

Более того, командная оболочка Bash поддерживает автодополнение, поэтому вы можете написать половину команды, нажать TAB и если на такие символы начинается только одна команда, то она будет автоматически дополнена, если же нет, то вы можете нажать два раза TAB, чтобы посмотреть возможные варианты.

Точно такая же схема работает для путей к файлам и параметров команд:

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

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

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

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

$ команда опции параметр1 параметр2...

Опции часто необязательны и уточняют тот или иной аспект работы программы. Они записываются в форме черточка и символ или двойная черточка и слово. Например -o или --output. Приведем пример для команды ls. Без опций и параметров:

С параметром, указывающим какую папку посмотреть:

С опцией -l, вывести в виде списка:

В с опцией и параметром:

Можно комбинировать две опции:

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

Выводы

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

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

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

Среди всех элементов системы Linux самым важным, пожалуй, является командная строка (bash -B ourne A gain Sh ell) или Терминал :

Начинающим пользователям кажется, что они ни когда не прибегнут к помощи командной строки, а некоторые её просто боятся. Однако чем больший опыт они приобретают, тем чаще обращаются к терминалу.
С помощью командной строки можно выполнять действия, которые были бы не мыслимы при работе с графическим пользовательским интерфейсом. Оказывается, что многие действия гораздо быстрее и эффективнее выполнять, пользуясь командной строкой.
Командная строка используется во всех 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 , это по сути аббривеатура, состоящая из следующих слов: s uper u ser do , что в переводе с английского буквально означает следующее: s uper u ser - суперпользователь (администратор), 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

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

Команда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 - сокращённо от w - web - сеть , get - получать , т.е получить файлы из сети и ставится всегда перед URL адресом через пробел. В данном случае перед http://suservice.net/icons/flags2/{ru,us}.png , с которого и загружаются файлы с флажками.

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

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

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

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

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

pkill gnome-terminal

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

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

Заключение

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

№1. Переход в предыдущую директорию

Все мы используем команду cd .. для перехода в родительскую директорию. А для перехода к предыдущей директории можно использовать команду cd - . Этот приём похож на кнопку «Назад».

Test@linoxide:~/Downloads$ cd - /home/eyramm test@linoxide:~$ cd - /home/eyramm/Downloads test@linoxide:~/Downloads$
Тут мы сначала находились в директории Downloads , затем переместились в директорию Home , и, наконец, снова вернулись в директорию Downloads .

№2. Повтор последней команды

Для того, чтобы повторить предыдущую команду, просто введите!! . В этом примере мы повторим предыдущую команду с правами суперпользователя.

$ apt install vlc E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? $ sudo !! sudo apt install vlc vlc is already the newest version (2.2.2-5ubuntu0.16.04.3).
Этот приём весьма полезен именно в ситуациях, подобных рассмотренной, когда команду, введённую ранее, надо выполнить с правами суперпользователя.

№3. Многократное выполнение команды до её успешного завершения

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

While ! ; do sleep 1; done
Например:

$ while ! ./run.sh; do sleep 1; done cat: run.sh: No such file or directory cat: run.sh: No such file or directory linoxide.com
Команда в этом примере будет повторяться до тех пор, пока не будет найден файл run.sh и его содержимое не будет выведено на экран.

№4. Просмотр сведений о ходе передачи файла

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

$ pv access.log | gzip > access.log.gz 611MB 0:00:11 [=> ] 15% ETA 0:00:59

№5. Планирование заданий

Планировать задания в Linux можно с помощью команды at:

Echo wget https://sample.site/test.mp4 | at 2:00 PM
Для того, чтобы посмотреть ожидающие выполнения задания, воспользуйтесь командой atq .

№6. Вывод данных в виде таблицы

Вызвав команду ls , или что-нибудь ещё, выводящее данные на экран, можно столкнуться с длинными списками, для просмотра которых требуется продолжительный скроллинг. То, что выводится на экран, легко можно организовать в виде таблицы с помощью команды column -t . Например:

$ cat /etc/passwd | column -t

Вот как выглядит то, что у нас получилось.


Вывод команды, организованный в виде таблицы

№7. Полезные комбинации клавиш

Команда clear очищает экран терминала. Комбинация клавиш Ctrl + L позволяет добиться того же самого быстрее.

Комбинация клавиш Alt + . позволяет перемещаться по ранее введённым командам. Комбинация клавиш Ctrl + U убирает из строки всё то, что уже в неё введено. Например, можете это попробовать для очистки введённого в командной строке пароля.

Для инкрементального обратного поиска по истории команд используйте комбинацию клавиш Ctrl + R .

№8. Сжатие, разбиение и шифрование файлов

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

$ zip -re test.zip AdbeRdr11010_en_US.exe run.sh Smart_Switch_pc_setup.exe Enter password: Verify password: adding: AdbeRdr11010_en_US.exe (deflated 0%) adding: run.sh (stored 0%) adding: Smart_Switch_pc_setup.exe (deflated 2%)

№9. Стресс-тест батареи ноутбука

Хотите узнать, как долго батарея вашего ноутбука продержится при полной нагрузке на процессор? Попробуйте следующую команду:

$ cat /dev/urandom > /dev/null

№10. Переименование или перемещение файлов

Если вам нужно быстро переименовать или переместить множество файлов с суффиксами - попробуйте команду следующего вида:

$ cp /home/sample.txt{,-old}
Вот как её можно расшифровать:

$ cp /home/sample.txt /home/sample.txt-old
Ниже приведён пример переименования файлов с определённым расширением в пакетном режиме:

$ ls text_comes_here_1.txt text_comes_here_2.txt text_comes_here_3.txt text_comes_here_4.txt $ rename "s/comes_here/goes_there/" *.txt $ ls text_goes_there_1.txt text_goes_there_2.txt text_goes_there_3.txt

Итоги

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

Загрузка...