Что такое cli в linux

Обновлено: 07.07.2024

При использовании графического интерфейса имеет больше смысла

В некоторых случаях графическое приложение является очевидным выбором. Например, если вы пишете письмо другу, использовать инструмент, такой как LibreOffice Writer, гораздо проще и быстрее, чем пытаться набрать букву в редакторе командной строки, например, vi или emacs. LibreOffice Writer обеспечивает хороший интерфейс WYSIWYG («то, что вы видите, что вы получаете»), функции макета, возможность добавлять таблицы, изображения и ссылки, а также проверку орфографии.

Имея это в виду, придумывание причины когда-либо использовать CLI может показаться бесполезным занятием. Фактически, многие люди вообще обходятся без использования терминала; Вы можете легко выполнить большинство задач, даже не видя CLI. Большинство средних пользователей Windows, вероятно, даже не знают, что опция командной строки существует.

При использовании CLI имеет больше смысла

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

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

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

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

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

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

Лучшее из обоих миров: использование графического интерфейса и интерфейса командной строки

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

Когда все, что у вас есть, это молоток, все выглядит как гвоздь; однако в Linux у вас нет only молотка: у вас есть все инструменты, которые вы можете себе представить, когда используете GUI и CLI.

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

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

Справедливости ради отметим, что термины GUI, CLI и TUI популярны не только в Linux-среде. Эти слова – часть общекомпьютерного жаргона, и их можно услышать в любых технических обсуждениях, а не только в тех, которые связаны с Linux.

GUI – графический интерфейс пользователя

GUI (Graphical User Interface) - приложением или графическим приложением называют практически любую программу, управление которой осуществляется посредством мыши, тачпада или сенсорного экрана. В рабочем окне отрисованы иконки и другие виджеты, и взаимодействие с программой представляет из себя, в сущности, последовательность нажатий курсором.


GIMP: GUI-приложение для обработки изображений

В Linux возможность графически взаимодействовать с операционной системой предоставляется так называемой средой рабочего стола. Поверх неё можно пользоваться GUI-приложениями, такими как GIMP, VLC, Firefox, LibreOffice, файловый менеджер и т.д. для решения различных задач.

5w+3lnMayBgAAAABJRU5ErkJggg==

VLC: медиапроигрыватель с GUI

Именно GUI открыл мир компьютеров для обычных пользователей; без него информационные технологии оставались бы уделом гиков.

CLI – интерфейс командной строки

CLI (Command Line Interface) – это программа в командной строке, которая читает вводимые команды и выполняет запрошенные действия. В целом, любая программа, которой можно пользоваться через команды из терминала, попадает в эту категорию.

sO3a6MB0cHEAAAAASUVORK5CYII=

APT: пакетный менеджер с CLI в Debian-based дистрибутивах

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

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

Ушёл ли CLI в прошлое? Вовсе нет. У командной строки есть свои преимущества, особенно если речь идёт о настройке Linux на глубинном уровне: поднятии сетевого брандмауэра, организации локальной сети или даже управлении пакетами.

Со всеми этими вопросами можно разобраться и с помощью GUI-программ, но CLI даёт более прямой и прицельный доступ к операционной системе. В любом случае, работа GUI-приложений также основана на обращении к ОС с помощью команд (которые прописаны в их программном коде).

Многие известные утилиты с GUI представляют из себя графическую обёртку для инструментов CLI. Например Handbrake, популярный медиа-конвертер с открытым исходным кодом, является GUI-надстройкой над CLI-приложением ffmpeg.

9uAczEvCZUVAAAAAElFTkSuQmCC

Рабочее окно Handbrake

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

TUI – текстовый пользовательский интерфейс

Этот термин встречается реже, чем первые два. TUI (Text User Interface) – это наполовину CLI и наполовину GUI. Непонятно, что это значит? Разберёмся поподробнее.

Как было сказано выше, работа со старыми компьютерами была целиком основана на CLI. Однако некоторый ограниченный спектр возможностей GUI можно имитировать и в текстовом терминале. Это и будет TUI: в отличие от интерфейса командной строки, в нём представлено больше виджетов и доступно управление как и с клавиатуры, так и с помощью мыши.

iNxsQgQhYAJG4oxpg4IoQQgghpE0q2w1UGXwAgNddq6HPXyBzliypZgMgbv5Lx76t0nIAq18RQgghhLRN1fYDleMPCMxfIKmblXzRsohWaHJXfrMBEDd1BRqmci0IcMQBhBBCCCFtJjX+QA3zF1S2JGAJS1hJiwJtq4v9f3I9fLLWEkkRAAAAAElFTkSuQmCC

Links: терминальный браузер

TUI – это сокращение для text-based user interface (текстовый пользовательский интерфейс) или terminal user interface (терминальный пользовательский интерфейс). Слово "текстовый" в этом словосочетании означает, что всё показанное на экране, в сущности, представляет собой большой текст – набор символов, с помощью которого имитируются различные элементы управления, а слово "терминальный" – что обратиться к этому интерфейсу возможно только из терминала.

TUI-приложения не так популярны, как GUI и CLI, но примеров можно найти множество. Так, к этой категории относятся текстовые браузеры и текстовые игры.

ADdgX4hOwBHuAAAAAElFTkSuQmCC

Ещё один случай, когда TUI может встретиться – это если в процессе установки кодеков на Ubuntu необходимо принять EULA или сделать выбор из нескольких предложенных вариантов настройки. TUI сложнее в управлении, чем GUI и часто требует обучения, но пользоваться им всё-таки проще, чем командной строкой.

Выводы

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

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

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

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

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

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

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров - возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

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

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

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

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

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

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе "rm съела мою курсовую" никому не будут интересны. Подробнее в этой статье.

10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки - это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

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

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

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

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее - тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

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

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную - пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

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

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

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

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill - достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

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

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

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

29. su / sudo

Su и sudo - это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +"%j %V", выведет день в году и номер недели в формате ISO.

31. alias

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

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

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

34. sleep

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

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

35. useradd / userdel / usermod

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

36. passwd

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

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

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

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

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита - ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping - это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

Если у вас медленный интернет, то вам, наверное, было бы интересно знать, сколько трафика использует какая-либо программа в Linux или какая программа потребляет всю скорость. Теперь это можно сделать с помощью утилиты nethogs. Для того чтобы задать сетевой интерфейс используйте опцию -i.

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее - тут.

Выводы

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

Современный пользователь почти всегда работает с графическим интерфейсом (GUI — graphical user interface), в котором взаимодействие между человеком и компьютером происходит в основном с помощью кликов мышью по графическим объектам: кнопкам, пунктам меню, текстовым полям и др. Однако так было не всегда.

Первые интерфейсы были текстовыми, команды отдавались словами, которые писались в так называемой командной строке. Такой текстовый способ взаимодействия между человеком и компьютером называется интерфейсом командной строки (CLI — command line interface).

CLI – устаревшая технология с точки зрения рядового пользователя. Однако в ряде профессиональных IT-областей CLI остается востребованным и более удобным, чем GUI. Например, на серверах, в том числе веб-серверах. Так разработчик может развернуть программный сервер на удаленном компьютере и загрузить туда файлы сайта.

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

С командной строкой все не так. Здесь надо знать команды, уметь ими пользоваться, иметь представление об особенностях работы ОС. Однако CLI дает больше возможностей для управления, чем любой GUI. Это и понятно, написать программу без GUI проще. Разработка к ней графического интерфейса – отдельная история. Поэтому через CLI обычно доступно больше системных программ.

Интерфейс командной строки – это абстрактное понятие. Так же как графический интерфейс пользователя. Не существует конкретных программных продуктов под названием CLI или GUI. Однако есть различные реализации как одного, так и другого. В Linux наиболее популярными GUI на сегодняшний день можно назвать различные оболочки для Gnome, а также KDE. У Windows свой GUI, который претерпевает изменения от версии к версии.

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

Bash запускается в текстовом режиме или его эмуляторе – специальной программе, открывающейся в графическом режиме, но которая представляет собой текстовое окно. В последних версиях GNU/Linux такая программа-эмулятор обычно называется "Терминал".

Однако кроме этого во многих дистрибутивах Linux можно перейти из графического в текстовый режим работы, нажав Ctrl + Alt + F1 (вместо F1 может быть от F2 до F6). Обычно Ctrl + Alt + F7 возвращает обратно в графический режим.

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

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

Итак, отметим основные преимущества интерфейса командной строки:

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

Текстовый интерфейс менее требовательный к ресурсам, чем графический.

Бывает, что графический режим просто не нужен, например, на серверах.

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

Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.

Используйте командную строку Linux как профессионал

Давайте выясним, что такое командная строка Linux и как вы можете ее использовать.

Что такое CLI?

CLI обозначает интерфейс командной строки. Другими словами, это инструмент, который вы используете для запуска команд. Это звучит просто, потому что это так. Описание того, чем CLI мог на этом закончить. Однако есть несколько частей этой головоломки, которые могли бы использовать дальнейшие объяснения.

CLI фактически состоит из:

Зачем использовать CLI?

Если вы используете Linux на настольном компьютере, шансы на то, что вам понадобится использовать CLI, не так велики, как если бы вы работали на сервере. Однако, если вы работаете на сервере Linux, вы будете использовать командную строку. На рабочем столе CLI (чаще всего) является полностью необязательным.

Однако использование CLI является эффективным средством обработки многих задач. Кроме того, он делает вашу жизнь более эффективной, а также обеспечивает уровень гибкости рабочего стола, которого вы не найдете в инструментах с графическим интерфейсом. Хотя вы найдете инструмент с графическим интерфейсом для каждой задачи, которую вам нужно запустить в Linux, некоторые из этих графических интерфейсов не охватывают всего, что предлагает опция CLI. Например: большинство рабочих столов Linux используют pulseaudio для звука.

Из стандартного инструмента настройки звука вы можете сделать несколько вещей. Однако вы не можете перезапустить демон pulseaudio. В некоторых случаях (например, при использовании инструмента записи звука Audacity), иногда необходимо перезапускать pulseaudio. Вместо перезагрузки компьютера вы можете открыть эмулятор терминала и выполнить команду

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

Как запускать команды

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

Поскольку команда является глобальной, вам не нужно указывать полный путь к команде

Параметр -l указывает ls также перечислять информацию, такую ​​как разрешения, владелец, группа, размер, дата создания, и имя. Вы также можете добавить скрытые файлы (файлы, начинающиеся с.) С помощью опции -a с помощью команды

Чтобы сделать эту последнюю команду более эффективной, вы можете комбинировать опции вместе, как в

Разрешения команд

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

без уведомления, что у вас нет разрешения на это.

Чтобы запустить команду, требующую прав администратора, вам необходимо использовать такой инструмент, как sudo . Для успешной перезагрузки компьютера Linux из CLI эта команда будет

Sudo означает «super user do» и позволяет обычным пользователям запускать команды с привилегиями суперпользователя. Всегда используйте sudo с осторожностью. Например, если вы введете команду

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

Не запускайте sudo rm -rf/, если вы не хотите полностью стереть весь жесткий диск, данные, операционную систему и все.

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

Команды, которые каждый новичок хочет знать

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

Чтобы создать новый каталог (он же папка), используйте команду mkdir . Например, если вы хотите создать новый каталог с именем data в своем домашнем каталоге, откройте эмулятор терминала и введите команду

(что означает «распечатать рабочий каталог»). Это распечатает каталог, в котором вы сейчас работаете.

Если вы хотите переименовать файл или каталог, вы фактически используете команду перемещения mv . Скажем, вы хотите переименовать вновь созданный каталог data в документы . Для этого выполните команду

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

Чтобы удалить папку

/docs , используйте команду rm . Тем не менее, вы не могли просто запустить команду

/docs является каталогом, и мы должны указать команде rm , она будет удалять не только файл. Для этого мы используем параметр r (для «рекурсивного»). Эта команда будет

Ваше путешествие ждет

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

Читайте также: