ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

8 минут чтени€

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

—амых распространенных оболочек не много:

  • The Bourne Shell - /bin/sh
  • The Bourne again shell - /bin/bash
  • The Korne shell - /bin/ksh
  • The C shell - /bin/csh
  • Tom’s C shell - /bin/tcsh

Ќаиболее признанной и распространенной оболочкой €вл€етс€ bash. ѕоэтому в дальнейшем и в данной статье мы будем рассматривать именно ее.

ѕосмотрим несколько основных команд:

  • cat вывод содержимого файла в консоль;
  • cd переход в каталог;
  • ls вывод содержимого каталога;
  • echo вывод текста в консоль;
  • touch - обновление времени редактировани€ файла, а так же данна€ команда позвол€ет нам создать новый файл;
  • file справка по файлу;
  • whatis справка по названию;
  • history вывод истории команд;
  • env вывод переменных среды;
  • pwd текущий каталог;
  • export задание переменной;
  • unset - отключение переменной;

ƒл€ начала можно посмотреть, кака€ оболочка используетс€ в текущий момент. ¬ большинстве случаев это будет оболочка bash, котора€ €вл€етс€ самой попул€рной оболочкой и самой используемой. ѕри помощи данной оболочки мы взаимодействуем с операционной системой. Ёто не просто командна€ строка, но, а также цела€ программируема€ среда. —о своими сценари€ми, переменными, со своим синтаксисом, т.е все эти оболочки ведут себ€ по-разному. ”видеть какую оболочку использует наш конкретный дистрибутив мы можем, посмотрев файл /etc/passwd/

/etc/passwd/

Ќа картинке видно много пользователей, можно увидеть, что пользователь Jenkins использует оболочку /bin/bash/. Ёто нормальна€ ситуаци€ дл€ Ubuntu т. к. в данной операционной системе данна€ оболочка используетс€ по умолчанию. ≈сли нам необходимо мы можем посмотреть глобальные настройки данной оболочки, которые располагаютс€ /etc/profile.

cat /etc/profile

¬ данном файле много настроек, но необходимо знать €зыки программировани€ дл€ того, чтобы редактировать файл. ≈динственное, что интересует в рамках данной стати это PS1 строчки, которые показывают, как должна выгл€деть строка-приглашение.

≈сли мы посмотрим, строка приглашение выгл€дит им€ пользовател€, тильда, смотр€ где мы находимс€ перечисл€ет нам. ћы можем настроить, каждую новую строчку так, чтобы не показывал им€ пользовател€, показывал полный путь, относительный путь и еще много чего, хоть пусть туда врем€ выводит. Ёто уже така€ детальна€ настройка внешнего вида оболочки bash.

≈сли мы перейдем в домашнюю директорию пользовател€, то там мы можем найти файл .profile с локальными настройками командной оболочки. ‘айл в линуксе который начинаетс€ с точки, €вл€етс€ скрытым. ѕосмотреть такие файлы можно командой ls a.

Ќу и посмотрим, что у данного файла есть внутри cat .profile

cat .profile

ћы оп€ть видим некий сценарий и ссылку на некий файл ~/.bashrc. ¬ котором уже наход€тс€ настройки внешнего вида этой оболочки.

ћы так же его можем посмотреть cat .bashrc.

cat .bashrc

«десь уже более пон€тные и расширенные настройки, например, сколько хранитс€ истори€ команд, каким шрифтом выдел€ть что-то. Ќапример, мы можем сделать, так чтобы оболочка выдел€ла путь к файлу определенным цветом, им€ пользовател€ другим цветом и т.д. все это делаетс€ в данном файле. —интаксис в данной статье мы не разбираем.

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

¬ернемс€ к вопросу базовых команд.  оманда echo выводит информацию в консоль. —интаксис просто набираем: echo hello и получим в консоли hello. “.е. командна€ оболочка, распознает первое слова как команду, а второе как аргумент данной команды. ≈сли нам необходимо вывести в консоль несколько слов подр€д, то их необходимо вз€ть в кавычки.

ћожно выполнить две команды одна за другой, например, echo hello; ls. ¬ данном случае сначала напечатаетс€ слово hello, а затем выведетс€ список файлов.

ћы можем создать свою команду, прив€зать команду к какому-нибудь псевдониму внутри оболочки т.е. создать такие ссылки и прив€зать действующую команду с новой. » нова€ команда уже будет вызывать команду echo.

ƒл€ примера возьмем команду storm. ѕри попытке ввода оболочка не понимает и начинает искать команду или исполн€емый пакет. Ќо мы можем создать такой файлик, который будет что-то делать. ≈сть така€ команда cat, она используетс€ дл€ вывода текста из файла на экран. Ќо она может действовать и в обратную сторону с экрана текст передавать в файл, дл€ этого необходимо изменить направление передачи, например, cat> storm. » теперь все, что мы введем будет внесено в файл storm, оп€ть же дл€ примера echo и случайный набор букв. «атем нажимаем ctrl+c и прерываем ввод. ≈сли мы посмотрим, что сохранилось в файлике storm то мы увидим, все то, что ввели в консоль. ƒалее сделаем файл storm исполн€емым chmod +x storm. ћожно видеть, что теперь при просмотре списка файлов командой ls данный файл подсвечиваетс€ зеленым, согласно настройкам программной оболочки. ≈сли мы попробуем теперь выполнить команду, которую мы придумали, то оп€ть ничего не выйдет, потому, что у нас оболочка по-умолчанию ищет исполн€емые файлы, которые мы пишем, как команды по определенному пути. ј все эти пути можно посмотреть в переменных среды.

ѕеременные среды это определЄнные переменные, которые могут показать определенные настройки текущей операционной системы. ћы данные настройки можем посмотреть командой env.

env

¬ выводе команды мы можем найти вот такую строчку

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

«десь указан путь, по которому будут искатьс€ переменные. —оответственно мы так же можем увидеть и другие настройки его среды, €зык, его домашнюю папку и т.д. так как у нас по указанному выше пути ищутс€ исполн€емые файлы мы не можем вз€ть и запустить команду не пойми откуда. Ќо мы можем ее запустить, использу€ полный путь к исполн€емому файлу. „тобы посмотреть, где мы находимс€, можно воспользоватьс€ командой pwd, она покажет путь. ¬ моем случае /root. ” нас получитс€ /root/storm

/root/storm

«апустилс€. —ледовательно, команда вывела тот текст, который мы изначально туда поместили. ¬от это у нас получаетс€ полный путь к файлу /root/storm.

¬ведем еще раз команду ls a.

ls Цa.

ћы видим скрытые файлы начинающиес€ с "." , а так же еще два символа "." и ".." .

ѕервый символ точки - это просто текуща€ папка. “.е. если сделать cd . , то мы останемс€ в текущей директории. ј если cd .. то это означает подн€тьс€ на уровень выше по иерархии каталогов в файловой системе.

ћожно обнаружить, что при нахождении в домашней папке /root, под пользователем root, мы видим значок домашней папке ~. Ёто происходит потому, что в переменных дл€ данного пользовател€ данна€ папка прописана, как домашн€€.

“еперь с учетом выше сказанного можно запустить нашу команду более кратко ./storm

Ёто называетс€ путь из текущей папки, где "." указывает на текущую папку. “аким образом мы можем запускать файлы.

≈ще раз вернемс€ к переменным среды. Ќапример, мы можем добавить переменную ABC = 123, т.е. мы задали символьной последовательности ABC значение 123. ѕока это не переменна€, мы просто задали слову число. „тобы это превратить в переменную есть команда export. ¬оспользуемс€ export ABC.

export ABC

» мы видим, что наша переменна€ добавилась. “еперь можно с данной переменной работать, например, можно ее указывать в качестве аргумента какой-либо команды. Ќапример, echo $ABC, здесь "$" указывает, что мы обращаемс€ к переменной. ¬ результате по€витс€ на экране 123.

ћы можем отменить данную переменную, командой unset ABC. —нова смотрим перечень переменных env и видим, что переменна€ ABC исчезла.

ћожем поработать с другой переменной среды PATH.

Ќапример написать "PATH=$PATH:." , т.е. к текущему значению $PATH мы через двоеточие, как это показано в выводе команды env добавл€ем текущую папку в виде точки. Ёто означает, что у мен€ теперь будут запускатьс€ файлы из той директории, котора€ обозначена точкой. ƒиректорию, в которой находимс€ можно посмотреть pwd.

√рупповые символы:

—оздадим несколько файлов с помощью команды touch.

touch

≈сли мы хотим вывести файлы, которые заканчиваютс€ на txt, мы вводим ls *.txt. “.е. значок звездочки замен€ет любое количество символов. ¬озможен, например, еще такой вариант команды, мы получим аналогичный результат ls *.t*

ls *.t*

≈сть значок вопросительного знака, который замен€ет только один символ. –аботает по аналогии выше.

ћожно запросить информацию о диапазоне. Ќапример, ls [1-4].txt, результатом вывода данной команды будет 4 файла.

¬се эти символы можно комбинировать. ћы можем создать некую последовательность. Ќапример, touch {6,7,8}.txt соответственно созданы 3 файла, 6.txt, 7.txt, 8.txt.

—имволов достаточно много, но вот эти самые основные.


—правочные команды

 оманда uname показывает кака€ операционна€ система.

uname

Ќу € думаю и так, всем пон€тно, что Linux. ≈сли ввести с ключиком a, то мы получим более информативный вариант Linux jenkins 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux. ѕлюс дополнительные параметры, верси€, издание и другое.

 оманда File на примере нашего файла storm.

storm

ћы можем увидеть, что данный файл - это обычный текст. ≈сть еще справочна€ похожа€ команда whatis запрос.

 оманда history - показывает историю ввода команд. „тобы повторить, какую-нибудь команду можно двигать стрелочкой вверх на клавиатуре, а также можно перебирать стрелочкой вниз.  огда мы используем данный функционал, мы как раз двигаемс€ по истории команд.

≈ще полезный функционал, если написать пару символов и нажать дважды кнопку табул€ции, то операционна€ система постараетс€ дописать команду или файл, или выдаст возможные варианты, если вариантов нет просто допишетс€ название файла или команды.

» сама€, пожалуй, важна€ команда это команда man, она позвол€ет открывать мануалы по той или иной команде.