Как работать на линуксе ubuntu. Как работает Linux: от нажатия кнопки включения до рабочего стола. Комментарии и отзывы

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

В целом загрузку среднестатистического дистрибутива Linux можно разделить на пять стадий:

  1. Загрузчик.
  2. Запуск и первичная инициализация ядра.
  3. Обнаружение оборудования, загрузка драйверов и подключение файловых систем.
  4. Запуск системных служб (демонов).
  5. Старт графической или консольной пользовательской сессии.

Мы пройдемся по всем стадиям и узнаем, что происходит во время загрузки типичного дистрибутива Linux, немного отклонившись в сторону BSD, macOS и Android по пути. Во многих случаях это позволит понять, почему процесс загрузки Linux именно такой, какой есть.

1. Загрузчик

Все начинается с загрузчика, которому во время старта машины BIOS передает управление. В старые времена, когда Linux был не так популярен, в качестве загрузчика использовался LILO (Linux Loader) - простой, очень примитивный и не позволяющий менять конфигурацию загрузки на лету. Фактически конфигурационный файл был вшит в сам загрузчик, и его приходилось переустанавливать после каждой смены настроек: обновил ядро, забыл переустановить, и твой ноутбук больше не грузится.

Сегодня загрузкой Linux практически в любом дистрибутиве занимается Grub , изначально разработанный для операционной системы GNU/Hard. Grub гораздо сложнее LILO и фактически сам является полноценной ОС. Он не просто читает конфиг загрузки (обычно это /boot/grub/grub.cfg) прямо с диска, но и позволяет исправить этот конфиг на месте. Grub имеет встроенную командную строку, работает с десятком различных файловых систем и позволяет формировать сложные цепочки загрузки.

Как только пользователь выбирает нужный пункт меню (либо по истечении тайм-аута), Grub находит связанный с этим пунктом меню образ ядра Linux на диске (обычно это файл /boot/vmlinuz), а также закрепленный за ним образ initramfs (о нем чуть позже), загружает их в память и передает управление ядру.


Почему vmlinuz?

Название файла с образом ядра имеет исторические корни. Изначально образ ядра классического UNIX назывался просто unix, но, когда появилась версия ядра для процессоров с защитой памяти, чтобы избежать путаницы, название сменили на vmunix. Буква z вместо x на конце, в свою очередь, означает, что образ сжат с помощью утилиты gzip (алгоритм Deflate, тот же, что в классическом ZIP).

2. Ядро и initramfs

Получив управление, ядро начинает первичную инициализацию: запускается подсистема управления памятью, настраивается обработчик прерываний, инициализируются необходимые для дальнейшей работы ядра структуры данных. Когда эта работа будет закончена, ядро распаковывает архив initramfs (обычно он имеет имя вида /boot/initramfs-linux.img и представляет собой архив cpio, сжатый с помощью gzip) в файловую систему в оперативной памяти (tmpfs), делает ее корневой файловой системой и запускает скрипт /init (в различных дистрибутивах имя может отличаться).

Initramfs включает в себя базовый набор компонентов Linux-дистрибутива: стандартные системные каталоги /bin , /lib , /etc и так далее, простейший командный интерпретатор (обычно ash), набор команд BusyBox, несколько вспомогательных библиотек и набор модулей ядра (драйверов), предназначенных для работы с различными накопителями и файловыми системами.



Смысл существования initramfs в том, чтобы решить проблему курицы и яйца: загрузить драйверы для подключения реальной корневой файловой системы до того, как она будет подключена. Именно это и происходит, когда система запускает скрипт /init . Он определяет установленные в систему накопители, загружает в ядро драйверы для работы с ними, а затем подключает нужный раздел нужного накопителя (о том, какой именно, ядро узнает благодаря переданному при загрузке параметру root) к корню, перекрывая таким образом содержимое initramfs. Затем скрипт запускает /sbin/init , с которого и начинается следующий шаг загрузки ОС.



Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

У любого пользователя может возникнуть интерес попробовать операционную систему Linux . Так когда-то было и со мной. В интернете куча литературы, но всегда остаётся актуальным вопрос: «С чего начать?». Кто-то видел линукс у друзей, кто-то нашёл видео или читал статьи в интернете, но всё это чаще готовые варианты. А если вы сами хотите установить такую ОС к себе на компьютер, то у вас возникнет куча вопросов. Первый вопрос который меня волновал – выбор дистрибутива…

Я перерыл кучу литературы, но мнения разделялись, да и разделяются до сих пор. Кто-то обеими руками за Debian , кто-то за Mandriva , RedHat и т.д. В настоящее время существует более 1300 сборок ОС Linux и выбор одной конкретной из них заставляет закоренелого виндузятника глубоко задуматься. Я пробовал ставить разные, но это не всегда удавалось в силу конфликтов оборудования да и просто неопытности. Первый удачно установившийся дистрибутив был OpenSuse 11.1, потомDebian . Загвоздка в том, что у этих дистрибутивов разная файловая структура, программы и прочее. Это ещё сильней запутало меня, но я продолжал эксперименты до тех пор, пока не остановил свой выбор на Ubuntu . О ней и пойдёт речь.

Я думаю стоит отметить, что Ubuntu основана на дистрибутиве Debian , который в свою очередь является весьма популярным у системных администраторов. Что значит «основана»? Я попробую провести параллель с ОС Windows . Представьте себе обычный лицензионный диск Windows . Представили? А теперь представьте какую-либо сборку, пусть даже пресловутый ZverDVD . Так вот,Ubuntu является «сборкой» Debian ’a , которая имеет обновлённое ядро, патчи (заплатки), собственные программы и репозитории. Позже я расскажу про всё это в отдельности. Я думаю не стоит слишком углубляться в отличия Ubuntu от Debian , добавлю лишь, что дистрибутив этот весьма популярен и новые версии Ubuntu выходят каждые полгода (в апреле и октябре). И всё же, почему Ubuntu ? Да просто она отвечает тем требованиям, которые ставит перед новой ОС начинающий пользователь.

  1. Простота и лёгкость в установке . Я хочу вставить диск, установить, посмотреть и чтобы не было лишних танцев с бубном (хотя при дальнейшей работе без танцев с бубном не обойдётся). Отмечу, что работая в Windows вы можете являться простым пользователем и не заморачиваться как и что работает, а в случае возникновения нечастых проблем или затруднений просто обратиться к знающим и понимающим людям, которые могут вам помочь. В случае с линуксом вам придётся во многом самостоятельно разбираться и самому стать «знающим» человеком. Но не стоит бояться, вы же не за этим сюда пришли. Как бы то ни было вы всегда можете задать вопрос, а мы в свою очередь постараемся вам помочь.
  2. Чтобы всё работало . Установили? Вот вам и рабочий стол и менюшки всякие и программы многие, и браузер, и пакет офисных программ и апплет настройки сети (однако мы будем учиться работать без него и настраивать сеть вручную). Есть даже проигрыватель, но он не умеет по умолчанию воспроизводить многие форматы аудио\видео, я объясню позже почему так и как это решить.
  3. Не хочу ничего потерять. На разделе с ОС Windows много приложений и документов которые я не хочу потерять при установке Linux . Ubuntu предложит вам разделить жёсткий диск на части, сбережёт Windows или любую другую ОС и установит свой загрузчик, который умеет грузить как Windows так и Linux . Современные дистрибутивы Linux , считая Ubuntu имеют замечательную возможность – запуск с диска или флешки без установки на жёсткий диск компьютера. Дистрибутивы, умеющие это делать, называются LiveCD /LiveDVD (сиречь «живой диск»). Я советую перед первой установкой сначала попробовать запустить ОС с установочного диска . Так вы будете точно знать, что конкретный дистрибутив справиться с железом вашего компьютера и не возникнет проблем при установке. Кстати велика вероятность, что при запуске Ubuntu с диска LiveCD вы сможете, вбив настройки сети, пользоваться интернетом и сетью. Вы сможете работать с текстовыми документами и таблицами. Сможете просматривать картинки и прочее-прочее. Просто попробуйте загрузиться с диска. Не стоит забывать что работа с LiveCD это всё-таки не работа в полноценной, установленной на жёсткий диск операционной системе, так что готовьтесь к «тормозам» при чтении с компакт-диска в попытке открыть ту или иную программу.

Вы всегда можете оставить в комментариях свои замечания и пожелания по доработке, изменению или исправлению статьи. Мы работаем для вас!

Что такое Ubuntu ? Ubuntu - это современная полнофункциональная операционная система, основанная на ядре Linux. В переводе с южноафриканского языка зулу слово Ubuntu примерно означает «человечность».

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

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

О ресурсе

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

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

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

Небольшая аннотация

Что же вы сможете узнать из этого руководства? Ну во-первых я расскажу, как поставить Ubuntu на ваш компьютер - единственной операционной системой или же рядом с Windows. Далее я немного коснусь пользовательского интерфейса и основных элементов управления системой. А затем постараюсь последовательно рассказать про все необходимые основы использования Ubuntu. Кстати, во многих статьях присутствует достаточно много сносок . В них содержится дополнительная информация или же просто различные комментарии к основному содержимому. Вы вполне можете пропускать их при прочтении. Они не нужны для понимания основного материала руководства, но зачастую полезны в качестве разъяснения некоторых специфических вопросов, которые вполне могут у вас возникнуть.

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

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

В руководстве описывается версия Ubuntu с долгосрочной поддержкой - Ubuntu 10.04 LTS «Lucid Lynx» .

Современные версии Ubuntu сильно отличаются от «Lucid Lynx» пользовательским интерфейсом и предустановленными программами, так что для них это руководство практически не актуально.

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

Операционная система Linux является достойным аналогом Windows. Если Вы до этого не работали в ее среде, то следует учесть несколько нюансов, свойственных только ей.
Во время выполнения процедуры регистрации в операционной системе Linux, она автоматически производит следующие операции:
начинается процесс стандартно с проверки логина пользователя и пароля;
затем определяется вся палитра набора, состоящего из переменных окружения;
завершает этот процесс запуск интерпретатора команд. Именно он и именуется оболочкой операционной системы.
Основная масса дистрибутивов Linux по умолчанию использует два типа оболочек:
sh;
bash.
На самом деле палитра оболочек намного шире, но используются они гораздо реже, чем описанные выше. Сменить установленную по умолчанию не сложно, а можно и просто запускать ее с помощью командной строки.
Команда в операционной системе Linux является строкой символов. Она состоит из имени команды и необходимых аргументов, которые разделяются пробелами. Аргументы позволяют команде использовать добавочные параметры, диктующие характер ее поведения. Для примера приведем стандартную команду:
echo 12345
На экране возникнет цепочка символов 12345, которые являются аргументом данной команды.
Команды, которые входят в состав собственно оболочки, определяются как встроенные. Они бывают:
общие;
специфические.
Общие свойственны любой . Специфические не будут работать в рамках не родной ОС.
Существует целый спектр команд, не зависящих от действующей оболочки. Они реализуются в виде отдельных программных модулей, которые стандартны только для выбранного вами дистрибутива Linux. Аргументами могут служить также опции или ключи. Данные строки символов состоят из тире и одного или нескольких символов. В качестве примера можно привести следующую:
ls -l
Ключи позволяют объединять различные аргументы. В итоге вы получите идентичные команды:
ls -l -d
ls -ld
Работа в командной строке Linux требует неукоснительного соблюдения ряда правил, которые актуальны лишь в информационной среде этой операционной системы:
строчные и заглавные буквы для Linux - это разные символы. В Windows каталог TEMP и каталог Temp – то же самое, в Linux – нет. Это правила справедливо для всего: команд, их ключей, имен пользователей, паролей и т.п. Консольные команды:
ps -a
и
ps -A
выдадут вам разные результаты;
введя в командной строке ключ –help Вы сможете получить справку по большинству команд:
1. ps –help: выдаст вам справку по команде ps, именно она владеет полной информацией и работает с полным списком запущенных Вами процессов;
2. встроенная система для получения справок man – предоставит дополнительную справку;
3. man ps - выведет на экране полную по команде ps;
не забывайте, что результат отдельных программ напрямую зависит от ваших прав в рамках ОС. Команда su ответственна в операционной системе прав root используйте. Она отвечает за смену пользователя в текущем сеансе работы с ОС. Если пользователь не задан, то автоматом выбирается root.
Для всех пользователей ОС Linux большую помощь окажет файловый менеджер mc. Это аналог FAR или Norton Commander. В настоящее время этот полезный модуль есть во всех дистрибутивах Linux. Есть одно но: установка его по умолчанию есть не везде. Он поможет Вам решить многие периодически возникающие проблемы.
Вывод информации на экран в ОС Linux, также имеет свои особенности. Рассмотрим основные:
если текст ушел за пределы экрана, то исправить положение легко с помощью комбинации клавиш SHIFT и PAGE UP или PAGE DOWN;
если требуется приостановить вывод информации на экран – CTRL-S;
если требуется приостановки отмена – CTRL-Q;
если Вам требуется вывести большой объем текста в постраничном режиме, то используйте команду less, которую добавляют к основной командой:
у нас в наличие текстовый файл mytxt размером на 12 экранов. Для стандартного вывода текста на экран можно воспользоваться командой cat < имя файла>
cat mytxt
После выполнения этой команды вы увидите быстро промелькнувший текст и
последний (двенадцатый) экран вывода. Можно применить комбинации клавиш
SHIFT-PAGEDOUN или SHIFT-PAGEUP для просмотра текста, но можно
воспользоваться и less. Получим цепочку:
cat mytxt | less
Символ | означает объединение в цепочку выполнения команды выдачи текста cat и команды управления постраничным выводом less. После отображения на экране первой страницы текста, вывод будет приостановлен до нажатия PAGE DOWN или ENTER. Последняя комбинация приведет к постраничному перемещению;
клавиша Q Для отвечает за завершение постраничного вывода.
Linux позволяет формировать цепочки из нескольких команд. Если нужно вывести на экран в постраничном режиме все строки, содержащие слово mail. Для поиска можно воспользоваться командой
grep <строка поиска>
Получим союз из трех команд:
cat mytxt | grep mail | less
Многие дистрибутивы ОС Linux позволяют вместо less применять more.
Если Вам необходимо использовать одновременно несколько дистрибутивов, то существуют закрепленные для переключения комбинации клавиш: CTRL - ALT - F1...F6. Чтобы перейти в графическую оболочку смело жмите CTRL-ALT-F7.
Если требуется запустить второй графический сервер в ОС Linux на одном компьютере примените команду startx 1 -- :1.
За переход во второй графический терминал отвечает комбинация Alt+F8., а Alt+F7 возвращает в первый. Linux позволяет работать за раз с до 64 графических терминалов (startx 2 -- :2 и т. д.).
exit завершенит текущий сеанс работы с терминалом.
Linux позволяет создать специальный журнал текущей консольной сессии. В нем отпечатается все, что Вы вводили в рамках отдельной сессии. Вы сможете проверить, что вводилось посредством клавиатуры и что отображалось в итоге на экране .
Используется следующую команду:
script < имя файла журнала >
exit прекратит запись в журнале.
Если Вам необходимо выключить или перезагрузить Ваш компьютер в ОС Linux, то сделать эту процедуру можно по-разному:
shutdown: она может похвалиться широкой палитрой опций, что позволяет Вам сделать:
1. быструю перезагрузку без проверки файловой системы;
2. процедуру перезагрузки в требуемое время;
3. имитировать и отменять уже запущенный или ранее отложенный процесс перезагрузки;
shutdown --help выведет весь список возможностей;
restart приведет к перезагрузке ОС сразу же:
shutdown -r now;
halt – выключение питания:
shutdown -h now.
Для основной массы дистрибутивов существует целый ряд короткие команды:
reboot – перезагрузка;
halt – выключение;
init – изменяет текущий уровень запуска ОС командой, отвечающей за запуск и завершение процессов в Linux; для тех же целей разработаны и специальные скрипты. Они хранятся в /etc/inittab. Уровень 0 – обеспечит выключение, а уровень 6 – перезагрузку. Соответственно:
для выключения:
init 0;
для перезагрузки:
init 6;
init используется и для изменения уровня запуска ОС. Рассмотрим уровни более детально:
1 – однопользовательский режим. Доступ разрешен пользователю root;
2 –многопользовательский режим без поддержки сетевых функций;
3 – с поддержкой сети;
4 – зарезервировано;
5 – с использованием графической оболочки.
init 3 позволит завершить действие графической оболочки. В итоге она закроется и система перейдет на уровень запуска 3. Для возврата нужно ввести:
init 5
По умолчанию уровень запуска определяется initdefault из /etc/inittab. Для запуска системы в случае необходимости поддержки графической оболочки применяйте команду:
id:5:initdefault:
Если 5 заменить на 3, то графическая оболочка при старте системы не запустится. Никогда не устанавливайте уровень запуска системы по умолчанию со значениями от 0 до 6.
В ОС Linux доступен просмотр списка задач с помощью команды ps. Без уточняющих параметров она отобразит список процессов, запущенных во время текущего сеанса работы. ps --help стандартно выдаст полный список опций.
Пример:
Cписок всех процессов, запущенных в системе:
ps -A - выдаст список процессов с идентификаторами (PID) и их именами
или:
ps -ax - выдаст тот же список процессов, но с полной строкой запуска
список задач, порожденных пользователем user:
ps -U user
список задач, связанных с текущим терминалом:
ps T
список задач, связанных с терминалом N:
ps t ttyN
Если список задач большой, а нас интересует состояние одной или нескольких задач, можно воспользоваться grep:
ps -U root | grep ppp - выдать список задач, содержащих "ppp" в имени
top отображает на экране данные об использовании ресурсов компьютера.


Верхняя часть окна сообщит Вам итоговые данные о состоянии системы:
текущее время;
время с момента загрузки системы;
число пользователей в системе;
число процессов в условиях разных состояниях;
данные об использовании памяти и процессора.
Ниже выводится таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна. Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h выводит справку по командам, которые позволяют изменить формат отображаемых данных и управлять некоторыми параметрами процессов в системе:
s или d - изменить интервалл обновления окна.
z - цветное/черно-белое отображение
n или # - количество отображаемых процессов
Можно отсортировать список процессов по использованию процессора (P), памяти (M), времени выполнения (T) и т.п.
Однако, есть и более полезные команды, которые позволяют управлять процессами в интерактивном режиме:
k - снять (kill) задачу. По этой команде будет запрошен идентификатор процесса (PID), после ввода которого, процесс будет завершен.
r - изменить текущий приоритет задачи (renice). Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение приоритета (отображается в колонке NI). Диапазон значений приоритетов - от минус 20 (наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только пользователь root.
Для выхода из top нажмите q
Команда kill
Принудительное завершение процесса и изменение его приоритета можно выполнить и без команды top.
Процессы в Linux позволяют обмениваться "сигналами" с ядром и другими процессами. При получении сигнала процессом, управление запускает подпрограмму для его обработки. Если ее нет, то или ядру. Linux оперирует специальной командой kill. Именно она делает возможной опцию послать заданному процессу любой сигнал. Список сигналов можно получить по команде:
kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов. Послать определенный сигнал выбранному процессу с помощью ввода в командной строке:
kill <-номерсигнала> номер PID выбранного процесса
Например, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:
ps -A | grep mc
Пусть PID= 11597.
Посылаем сигнал SIGQUIT (номер 3):
kill -3 11597
После чего процесс mc обработает сигнал GIGQUIT и нормально завершится. Однако, если mc "завис", то, естественно, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый ядром операционной системы, и принудительно завершающий указанный процесс:
kill -9 11597
Если в команде kill номер сигнала не указан, то тогда используется SIGKILL, предыдущую команду можно было ввести как kill PID:
kill 11597
Завершение процесса прерывает и запущенные в нем процессы.
Для завершения процесса по имени используется команда killall:
killall mc - завершить процесс, в имени которого есть "mc";
killall -u user - завершить процессы, порожденные пользователем user.
Команды nice и renice измененяют приоритет процессов. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки shell. Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:
nice -<число> команда
nice -4 mc - запустит mc с приоритетом = 8+4=12
Команда renice используется для изменения приоритета уже запущенного процесса:
renice <число> -p PID
renice 4 -p 11597 - установить значение приоритета для процесса mc (PID=11597) равным 4.
После выполнения, renice выдаст строку результата:
11597: old priority 12, new priority 4 - старый приоритет 12, новый приоритет 4
Задание нулевого и отрицательного числа приоритета допустимо лишь для пользователя с правами root.

Все новички 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 интересуюсь всем, что связано с информационными технологиями и современной наукой.




Top