Работа в командной оболочке Linux

На сегодняшний день для операционной системы (ОС) Linux существует целый ряд систем, обеспечивающих полноценное и эффективное графическое окружение, упрощающее восприятие, использование, а иногда даже управление ОС. Однако, для администрирования и полного контроля системы самым незаменимым инструментом в Linux, как впрочем и других Unix-подобных систем, является командная оболочка. Стоит заметить, что в умелых руках и с должным уровнем опыта работа «в консоли» выполняется с большей скоростью и производительностью, чем в графической среде.

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

Какие бывают оболочки

Командных оболочек существует множество, но самой первой была Bourne shell – «оболочка Борна». Она была создана Стивеном Борном. Эта оболочка появилась ещё в 7-м издании UNIX и исполняемым файлом для неё является sh. Обычно он находится в каталоге /bin. Синтаксис  Bourne shell напоминает язык Алгол 68, поскольку на основе этого языка оболочка и создавалась.

На сегодняшний день в Linux стандартной оболочкой является Bourne again shall – «возрождённая оболочка Борна» и исполняемым файлом является bash, который также находится в каталоге /bin и чаще всего в виде символической или жёсткой ссылки под именем sh.

Существую и другие командные оболочки, но они менее распространены. Так, например, оболочка C shell (sch) имеет Си-подобный синтаксис, заимствованный из языка Си. Эта оболочка имеет свободную версию tsch, которая используется по-умолчанию в системе FreeBSD. Кстати, именно в ней  впервые появилось автодополнение кода.

Стоит упомянуть также и о Z shell (zsh) – это тоже свободная и современная оболочка. Отличается от остальных своей интерактивностью.

Основы работы в командной оболочке

Администрирование ОС, а уж тем более Linux не может обойтись без написания сценариев. Это просто необходимо для избавления от выполнения автоматических и рутинных действий в задачах администрирования. Но и написание самого сценария в оболочке требует знания некоторых приёмов для более быстрого и удобного редактирования кода.

Очень многие для редактирования команд в оболочке используют клавиши перемещения курсора. Это отталкивает от работы с консолью, поскольку на лишние телодвижения которых можно и нужно избегать тратится много времени. Для sh-совместимых командных оболочек, таких как sh и bash, существуют некоторые приёмы, которые следует использовать.

Например, больше всего времени тратится на набор одного и того же текста. Но клавиатурная комбинация <Ctrl + P> даёт возможность вернуться к ранее использованным командам и задействовать их снова, предварительно отредактировав.

Комбинация <Ctrl + E> перемещает курсор в конец строки, а комбинация <Ctrl + A> в её начало. Одни только эти базовые приёмы экономят много времени, а процесс написания сценариев, да и вообще администрирования становится более увлекательным, если можно так выразиться.

Нажатием сочетания клавиш <Ctrl + R> можно «отмотать» в прошлое историю использованных команд, при этом используя поиск. По каждому введённому символу ищется соответствие в истории команд.

Классическим приёмом для просмотра истории команд является использование клавиши <Стрелка вверх>.

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

$ cut -d: -f7 < /etc/passwd | sort -u

Здесь ключ -d задаёт символ разделителя, а ключ -f – указывает поля , которые нужно включать в вывод.

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

$ sort -t: -k3,3 -n /etc/group1
root:х:0:
bin:х:1:daemon
daemon:x:2:

В приведённом выше примере вывод содержимого файла /etc/group1. Для форматирования вывода и сортировки данных здесь используются ключи -t – для установки разделителя полей, и -k – для задания сортировочного ключа. В данном случае сортируются записи с разделителем «двоеточие» по третьему полю, содержащему идентификатор группы. Наиболее часто с утилитой sort используются следующие ключи:

Ключ команды Значение
-b Не учитывать в сортировке символы пробелов
-f Не учитывать буквенные регистры
-k Ключ сортировки (номера столбцов)
-n Поля сравниваются как целые числа
-r Обратный порядок сортировки
-t Установить разделитель полей (по умолчанию — пробельный символ)
-u Помещать в вывод только уникальные записи

Основные команды для работы с файлами и каталогами

Никакое системное администрирование не обходится без работы с файловой системой, т. е. с файлами и каталогами.

Для создания файла часто используют команду cat. Вообще, эта утилита  изначально предназначена для перенаправления потоков, но именно поэтому её возможности удобно использовать для создания файлов:

$ cat > my_newfile

В данном случае на вход команды направляется стандартный ввод, а результат команды, т. е. её вывод — в новый файл.

Утилиту cat можно ещё использовать и для копирования, однако, для этого лучше подходит утилита cp:

$ cp [options] source destination

Файлы, или каталоги  source будут скопированы в файл или каталог destination. Причём, если  destination существует, то он будет перезаписан. Использование ключа -i позволяет выдавать подтверждение в таких случаях. Также для этой команды доступны некоторые полезные опции:

Опция Значение
-p Сохраняет права доступа, а также время изменения файла. При отсутствии этой опции для файла будут назначены полномочия, соответствующие запустившему команду пользователю.
-R или -r Сохранение исходного дерева каталогов, если source – это каталог, то все подкаталоги будут также скопированы.
-d Сохранение символических ссылок. Иначе будет скопирован сам файл.
-f Перезапись файлов без дополнительный подтверждений.

Для перемещения/переименования файлов осуществляется командой mv:

$ mv oldname newname

У неё такой же синтаксис как и у cp и для этой команды также полезно использование ключа -i.

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

$ rm -rv folder

Дополнительный ключ -v используется здесь для вывода списка удалённый файлов и каталогов. Также для использования этой команды полезно использование опции -i.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: