- Покоряй и Властвуй: Укрощение терминала
- Содержание
- Что такое Терминал?
- Зачем нужен Терминал?
- Нужно ли мне использовать Терминал?
- Должен ли я использовать Терминал?
- Работа в терминале Linux для начинающих
- Что такое терминал Linux?
- Как открыть терминал Linux?
- Выполнение команд в терминале
- Выводы
- Linux=Terminal?
- Тестовое окружение
- Создаем рабочий стол
- Вместо заключения
Покоряй и Властвуй: Укрощение терминала
Содержание
Автор: Филип Рейер (Philip Reyer)
Ты сидишь в кабинете доктора почти час. Каждая секунда кажется бесконечностью. Беспокойство охватывает тебя изнутри. В коридоре две медсестры обсуждают результаты обследования, и их мрачные лица не выглядят многообещающими. Ты гадаешь, что же такое они нашли, надеясь, что это не опасно для жизни. Ты очень много можешь потерять: семью, работу, хорошую машину. Ты вскакиваешь, как только доктор заходит в кабинет, держа в руке папку с результатами и сосредоточенно рассматривая данные. Он поднимает взгляд и смотрит прямо тебе в глаза. “Простите, но результаты показывают, что ваша болезнь неизлечима”. Твоё сердце останавливается, осознавая, что только смерть вылечит тебя. Всё, для чего ты работал … всё пропало.
Мой первый опыт работы с терминалом компьютера был похожим. Я очень боялся вводить команды вручную. При появлении любой строки на экране я беспокоился, что что-то не так. Что, если я ошибся при вводе команды, и это сломает компьютер? Впрочем, со временем это беспокойство сменилось уверенностью, что я мог бы с этого начать.
Знаете, что я думаю, когда слышу слово “терминал”? Я думаю, что это неприятное слово. И я не удивляюсь этому, когда вижу некоторые способы установок чего-либо в Linux. Я дрожу от страха, когда мне говорят запустить Терминал. Но есть ли причина бояться ввода набора символов и могущественных технических слов? Это разумный страх? Почему многие испытывают страх перед переходом на Linux из-за “возможности использования командной строки”? Позвольте развеять ваши страхи и помочь вам узнать терминал немного лучше.
Что такое Терминал?
Терминал — это приложение, которое позволяет вам общаться с компьютером, используя текстовые команды. Это означает, что для выполнения программ вам не нужно использовать сочетание клавиш или графический интерфейс. Это называется командной строкой. Вместо щелканья по кнопкам и значкам вы вводите текстовые команды. Например, чтобы обновить вашу систему, нужно ввести:
Существует множество других команд, которые используются для запуска различных программ. В первые дни существования Linux большая часть вещей делалась только в командной строке. Это одна из причин, покоторой большинство обычных людей не перешло или не хочет переходить на Linux. Правда в том, что примитивные методы использования только командной строки остались в прошлом. Linux стал удобным средством работы для всех, а не только для профессионалов. Так зачем, если Linux, в частности Ubuntu, стал настолько удобным, по-прежнему пользоваться терминалом?
Зачем нужен Терминал?
Терминал может стать вашим лучшим другом. Он поговорит с вами, когда у вас возникнет проблема. Он расскажет вам, в чем ошибка. Может не так, как это делают люди, но в очень схожей манере. Позвольте немного прояснить. Когда вы щелкаете по значку на рабочем столе или кнопке, компьютер получает некие команды. Вы не видите этого, потому что это происходит в фоне. Например, если я нажму кнопку «обновить», чтобы обновить систему, всё, что я увижу, — это строку текущего состояния, показывающую время, оставшееся до конца обновления. Но, если я введу “sudo apt-get update” (эквивалент в командной строке), я увижу очень длинный и подробный список веб адресов, на которых мой компьютер ищет обновления.
Вы возможно думаете: “Зачем мне нужно это видеть?” Ответ прост: это показывает происходящие за кулисами действия. Всё-таки, зачем это нужно знать? Если возникнет проблема с установкой, и это помешает завершить её, в терминале появятся сообщения об ошибках, которые я не увижу в случае графического интерфейса. Если всё, что я увижу, будет “Простите, установка Gobbledy Plus не может быть завершена”, я не пойму, что пошло не так. Но, если устанавливать программу через терминал, появятся сообщения об ошибках, информируя меня о проблеме. Это даст возможность их исправить или получить помощь. Но использование терминала — это не для всех.
Нужно ли мне использовать Терминал?
Хотя Терминал очень полезен во многих ситуациях, я не рекомендую его каждому. Это может быть слишком сложно для новичков, и они могут случайно испортить свою систему. Но, если у вас проблемы с компьютером: не запускается программа или не удается её установить, — вы можете скопировать вывод команды c терминала на веб сайт, чтобы получить помощь от других людей.
Должен ли я использовать Терминал?
Не нужно постоянно использовать терминал в Ubuntu, он нужен только, когда случаются какие-либо проблемы. Даже являясь продвинутым пользователем, я редко его использую. Просто потому, что, если в вашей машине есть запаска, нет нужды пользоваться ею постоянно. Вы используете её, только если прокололи колесо.
Надеюсь, вы не будете больше боятся терминала. Вместо этого вы будете рассматривать его как инструмент, с которым можно легко обращаться. Терминал очень полезен, но не нужно пользоваться только им. Нам не следует бояться неизвестности. Если мы будем бояться, мы никогда не познаем ничего нового.
Источник
Работа в терминале Linux для начинающих
Все новички Linux уже, наверное, слышали про терминал, или как его еще называют командную строку. Ведь присутствие и сложность терминала — это один из основных аргументов оппонентов Linux. Возможно, вы уже сталкивались с командной строкой в Windows на практике и уже знаете что это такое.
Действительно, в операционной системе Linux есть терминал, где вы можете выполнять нужные вам команды, чтобы очень эффективно управлять своей системой. Но это вовсе не обязательно, многим вполне достаточно графического интерфейса. Сейчас использование терминала отошло на второй план, но он остается основным средством для доступа к удаленным серверам и инструментом для профессионалов.
Терминал Linux намного интереснее, чем командная строка Windows и в этой статье будет подробно рассмотрена работа в терминале Linux для начинающих, а также что такое терминал 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=Terminal?
Несколько десятилетий прошло с момента релиза первого рабочего стола пользователя, где с помощью манипулятора-мыши появилась возможность выбирать различные части интерфейса, взаимодействовать с ними, вводить данные. Это был прорыв, определивший, как будет выглядеть пользовательское взаимодействие с современной операционной системой еще долгие годы. Сегодня без этой фичи сложно представить пользовательскую операционную систему. Визуальный рабочий стол стал для большинства пользователей основным способом знакомства с компьютерными технологиями и операционной системой.
Для более продвинутого администрирования системы пользователю так или иначе придется сделать шаг назад и обратиться к специализированному и менее визуализированному интерфейсу — консоли. В разных операционных системах этот интерфейс может называться по разному. В текущей статье обратимся к Terminal-у в ОС Linux. Операционная система Linux до сегодняшнего дня сохраняет особое отношение к Terminal-у, без него не получится установить приложение, настроить часы, осуществить поиск машин в сети и так далее. Начинающему пользователю или администратору может быть сложно ориентироваться в мире Terminal без окон, поэтому цель данной статьи — рассказать, как можно заполучить от операционной системы хотя бы примитивный рабочий стол и даже запустить приложение, которое требует наличия окон, в терминале.
Тестовое окружение
Для демонстрации настроек и работы с системами операционной системы Linux будем использовать Ubuntu 20.04 Server версию. Необходимо установить базовую систему и создать обычного пользователя. В результате должно получиться нечто похожее на снимок ниже:
Для подготовки лабораторной операционной системы также потребуется установить дополнительное ПО на сервер. Это будет Xvfb и Xpra (их описание будет в статье далее). Установить их можно соответствующими командами:
apt-get update && apt-get -y install xvfb imagemagick (последний нужен для корректного преобразования памяти в картинку)
apt-get update && apt-get -y install xpra
Проверка и отчасти демонстрация результатов может производиться на любом хосте в сети с сервером. Для тестов в качестве второй машины использовалась операционная система Kali Linux, включенная в локальную сеть вместе с Ubuntu сервером.
Создаем рабочий стол
Инструменты xpra и xvfb были созданы в первую очередь для тестирования ОС и её окружения. Однако, с появлением целого сообщества этих инструментов, их использование значительно расширилось.
xvfb — приложение, которое создано для работы с графикой на тех системах, где даже на уровне железа может и не быть видеокарты или другого устройства вывода. Все операции инструмент проводит в оперативной памяти. Применение инструмента нашлось в рендеринге, фоновых операциях с графикой. Стоит заметить, что это ПО даёт только лишь возможность взглянуть на экран, но не имеет инструментов для взаимодействия с его интерфейсами. Поэтому, чтобы картинка менялась, придется немного покодить для автоматизации. К примеру, для браузера можно использовать скрипты для Selenium.
Продемонстрируем, как можно выстроить работу с помощью xvfb . Главной единицей взаимодействия для данной тулзы является устройство Screen или просто экран. По умолчанию существует только один экран с разрешением 1280x1024x8 (ШиринаХВысотаХГлубина). Выполним следующие команды на сервере:
1. Установим X11 приложения — apt install x11-apps . Нам понадобится калькулятор для демонстрации интерфейса.
2. Откроем экран для отрисовки калькулятора:
3. Запустим калькулятор на созданном экране — DISPLAY=$DISPLAY /usr/bin/xcalc &
4. Создадим из экрана картинку, которую можно будет просмотреть на клиенте —
Выполним команду на клиенте, чтобы увидеть результат:
Выглядит не слишком современно, но это уже больше, чем просто консоль. На снимке слева — калькулятор, который был захвачен из xvfb буфера, а справа — оригинальный калькулятор, который был запущен в клиентской системе. Вообщем-то ничего важного при визуализации потеряно не было, как будто просто черно-белый экран. Проверим, что можно сделать с помощью других инструментов.
Xpra в противовес инструменту xvfb имеет полный функционал по взаимодействию с системой. Можно сказать, это своеобразный аналог VNC, который может использовать в качестве транспорта протокол ssh, tcp и несколько других, достаточно лишь настроить на целевой системе сервер для приема соединения, а на клиенте использовать верный протокол для взаимодействия. Оставим эту настройку для читателя (тестирование на виртуальных машинах не рекомендуется, так как у ПО есть проблемы с поддержкой, виртуальные машины просто зависают). А в качестве второго эксперимента проведем печать интерфейса приложения прямо из запущенного контейнера Docker.
Для проведения этого теста нам понадобится установить Docker для операционной системы Ubuntu. Инструкции к его установке можно найти вот здесь. В инструкции достаточно подробное описание, потому перейдем сразу к этапу создания Image, который будет использоваться для контейнера целевой машины. Для создания контейнера нам нужно сделать файл “Dockerfile” и наполнить его следующими данными:
Для завершения эксперимента нужно снова запустить команды для создания файла png и скопировать его на клиентскую машину. В результате получаем такой же скриншот:
Вместо заключения
В очередной раз операционная система Linux доказала свою многогранность и возможность применять различные неожиданные решения. Новичкам нужно только найти правильный набор ПО, и с ним можно будет решить любую задачу — даже просмотр пользовательского интерфейса на сервере, в котором нет видеокарты.
Данная статья была написана в преддверии старта курса Administrator Linux. Basic от OTUS. Узнать подробнее о курсе и посетить бесплатный урок можно по этой ссылке.
Источник