- Основы работы с терминалом Linux
- Эмулятор терминала
- Оболочка Linux
- Командная строка
- Выполнение команд
- Запуск команд без опций и аргументов
- Запуск команд с аргументами
- Команды с опциями
- Команды с опциями и аргументами
- Переменные окружения
- Просмотр переменных
- Значения переменных
- Установка значений переменных
- Linux=Terminal?
- Тестовое окружение
- Создаем рабочий стол
- Вместо заключения
- 10 приёмов работы в терминале Linux, о которых мало кто знает
- №1. Переход в предыдущую директорию
- №2. Повтор последней команды
- №3. Многократное выполнение команды до её успешного завершения
- №4. Просмотр сведений о ходе передачи файла
- №5. Планирование заданий
- №6. Вывод данных в виде таблицы
- №7. Полезные комбинации клавиш
- №8. Сжатие, разбиение и шифрование файлов
- №9. Стресс-тест батареи ноутбука
- №10. Переименование или перемещение файлов
- Итоги
Основы работы с терминалом Linux
В данной статье речь пойдёт о терминале и командах Linux. Терминал, или командная строка – это стандартный способ взаимодействия с сервером Linux.
Примечание: Для выполнения примеров, приведённых в статье, нужен сервер Linux. Данное руководство выполнено на сервере Ubuntu 14.04, но подходит для любого другого современного дистрибутива Linux.
Эмулятор терминала
Эмулятор терминала – это программа, которая позволяет использовать терминал в графической среде. Большинство людей используют ОС с графическим пользовательским интерфейсом (GUI), потому эмулятор терминала необходим многим пользователям Linux-сервера.
Наиболее популярными эмуляторами являются:
- Mac OS X: iTerm 2
- Windows: PuTTY
- Linux: Terminal, KDE Konsole, XTerm
Каждый эмулятор терминала имеет свой индивидуальный набор функций.
Оболочка Linux
В системе Linux оболочкой называется интерфейс командной строки, который интерпретирует команды пользователя и файлы сценариев. Существует несколько поулярных оболочек (например, оболочка Борна (sh) и оболочка С (csh)). Каждая оболочка имеет свой собственный набор функций и по-своему интерпретирует команды, но все оболочки обеспечивают перенаправление ввода и вывода, установку переменных и тестирование.
Примечание: Данное руководство выполнено в оболочке bash, которая является оболочкой по умолчанию большинства дистрибутивов Linux.
Командная строка
Впервые входя на сервер, вы видите Message of the Day (MOTD), сообщение, которое включает в себя различную информацию, например, версию дистрибутива Linux, установленную на сервер. После этого вы получаете доступ к командной строке (или к оболочке командной строки), с помощью которой можно запускать команды.
Стандартная командная строка Ubuntu 14.04 выглядит так:
Она содержит следующие данные:
- 8host – имя текущего пользователя;
- webapp – имя хоста;
– текущий каталог (в bash символ тильды соответствует домашнему каталогу, путь к нему – /home/8host).
Ниже приведён пример командной строки пользователя root, который находится в каталоге /var/log.
Обратите внимание: данная строка заканчивается символом #, это стандартный символ командной строки пользователя root. В Linux root является суперпользователем, который имеет все привилегии и может выполнить любую задачу на сервере.
Выполнение команд
Команды можно выполнять с помощью командной строки, указав имя файла (бинарного файла или сценария). По умолчанию в системах Linux установлено много стандартных команд, которые позволяют перемещаться по файловой системе, устанавливать программное обеспечение и пакеты, настраивать систему и приложения и т.п.
Каждая запущенная команда является отдельным процессом. Если команда выполняется на переднем плане (по умолчанию все команды выполняются именно так), то пользователь не сможет работать с терминалом, пока команда не будет выполнена.
Важно отметить, что в системе Linux почти всегда учитывается регистр, включая имена файлов и каталогов, команды, аргументы и опции. Если что-то не работает, проверьте написание команды.
Рассмотрим несколько базовых примеров запуска команд.
Запуск команд без опций и аргументов
Чтобы запустить команду без аргументов и опций, просто введите саму команду и нажмите RETURN.
В таком случае команда выполнит своё стандартное действие. У каждой команды индивидуальное поведение по умолчанию. К примеру, команда cd без аргументов откроет домашний каталог текущего пользователя. Команда ls без аргументов выведет список файлов и каталогов, хранящихся в текущем каталоге.
Запуск команд с аргументами
Многие команды принимают аргументы, или параметры, которые могут влиять на их поведение. К примеру, в качестве аргумента команды cdчасто используется имя каталога, в который нужно перейти. Например, чтобы перейти в /usr/bin, нужно ввести:
Сначала нужно ввести саму команду, а после неё указать аргументы. Перейдя в новый каталог, путь в командной строке изменится.
Команды с опциями
Большинство команд имеют список опций, или флагов, которые позволяют изменять поведение команды.
Опции указываются после команды через дефис. Они бывают верхнего и нижнего регистра. Некоторые опции начинаются с двух дефисов (–). После одного дефиса можно указать несколько опций подряд, а после двух дефисов обычно идёт одна опция, состоящая из нескольких символов (обычно это описательное слово).
Для примера рассмотрим некоторые опции команды ls:
- -l: включает подробный листинг, который предоставляет дополнительные детали (права доступа, права собственности, размер файлов и т.п.).
- -a: выводит полный список файлов, которые хранятся в каталоге (включая скрытые файлы).
Флаг -l команде ls передаётся так:
Такая команда выведет много дополнительной информации о файлах.
Как уже говорилось, опции можно группировать. Например, вы можете передать команде ls флаги -l и –a одновременно. Для этого можно запустить:
Но лучше скомбинировать их так:
Теперь команда выведет подробные данные обо всех файлах, включая скрытые.
Команды с опциями и аргументами
Опции и аргументы почти всегда можно комбинировать, запуская команду.
К примеру, чтобы просмотреть полное содержимое каталога /home, можно использовать:
Такая команда вернёт подробные данные о каждом файле заданного каталога.
Переменные окружения
Переменные окружения – это значения, которые влияют на выполнение команд и процессов. При первом запуске сервера система установит несколько переменных окружения в соответствии с конфигурационными файлами по умолчанию.
Просмотр переменных
Чтобы просмотреть все переменные окружения, установленные для определённой сессии терминала, используйте env:
Вывод этой команды обычно очень объёмен. Найдите в нём запись PATH:
Переменная окружения PATH – это разделённый двоеточиями список каталогов, в которых оболочка будет искать исполняемые программы или сценарии при выполнении команды. Например, команда env находится в каталоге /usr/bin, но при выполнении команды не нужно указывать путь к ней, поскольку он уже указан в переменной PATH.
Значения переменных
Чтобы извлечь значение переменной, укажите перед её именем $.
Например, чтобы вывести значение переменной PATH, можно использовать команду echo:
Чтобы узнать значение переменной HOME (по умолчанию это домашний каталог текущего пользователя), попробуйте перейти в домашний каталог:
Если запрашиваемая переменная не установлена, терминал вернёт пустую строку.
Установка значений переменных
Чтобы установить значение переменной окружения, введите имя переменной, поставьте символ =, а затем укажите нужное значение:
Обратите внимание, что если вы устанавливаете существующую переменную, её исходное значение будет перезаписано. Если переменная не существует, она будет создана.
Bash предоставляет команду export, которая экспортирует переменные, после чего дочерние процессы используют их значения. Проще говоря, эта команда позволяет использовать сценарии, которые ссылаются на экспортированные переменные окружения в текущей сессии.
Также на существующие переменные можно ссылаться при установке переменной. К примеру, если вы установили приложение в /opt/app/bin, вы можете добавить этот каталог в конец переменной PATH с помощью такой команды:
Теперь запросите значение переменной PATH:
Имейте в виду: установленные таким образом переменные окружения будут действительны только для текущего сеанса. То есть если вы выйдете из системы или перейдёте в новую сессию, внесенные в окружение изменения не сохранятся.
Примечание: Больше о работе с переменными можно узнать в руководстве «Чтение и установка переменных среды и оболочки на сервере Linux».
Источник
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. Узнать подробнее о курсе и посетить бесплатный урок можно по этой ссылке.
Источник
10 приёмов работы в терминале Linux, о которых мало кто знает
Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.
№1. Переход в предыдущую директорию
Все мы используем команду cd .. для перехода в родительскую директорию. А для перехода к предыдущей директории можно использовать команду cd — . Этот приём похож на кнопку «Назад».
Тут мы сначала находились в директории Downloads , затем переместились в директорию Home , и, наконец, снова вернулись в директорию Downloads .
№2. Повтор последней команды
Для того, чтобы повторить предыдущую команду, просто введите !! . В этом примере мы повторим предыдущую команду с правами суперпользователя.
Этот приём весьма полезен именно в ситуациях, подобных рассмотренной, когда команду, введённую ранее, надо выполнить с правами суперпользователя.
№3. Многократное выполнение команды до её успешного завершения
Для того, чтобы выполнять команду до тех пор, пока она не будет успешно завершена, используйте код возврата команды в такой конструкции:
Команда в этом примере будет повторяться до тех пор, пока не будет найден файл run.sh и его содержимое не будет выведено на экран.
№4. Просмотр сведений о ходе передачи файла
Для того, чтобы наблюдать за ходом передачи файла, воспользуйтесь командой pv :
№5. Планирование заданий
Планировать задания в Linux можно с помощью команды at :
Для того, чтобы посмотреть ожидающие выполнения задания, воспользуйтесь командой atq .
№6. Вывод данных в виде таблицы
Вызвав команду ls , или что-нибудь ещё, выводящее данные на экран, можно столкнуться с длинными списками, для просмотра которых требуется продолжительный скроллинг. То, что выводится на экран, легко можно организовать в виде таблицы с помощью команды column -t . Например:
Вот как выглядит то, что у нас получилось.
Вывод команды, организованный в виде таблицы
№7. Полезные комбинации клавиш
Команда clear очищает экран терминала. Комбинация клавиш Ctrl + L позволяет добиться того же самого быстрее.
Комбинация клавиш Alt + . позволяет перемещаться по ранее введённым командам. Комбинация клавиш Ctrl + U убирает из строки всё то, что уже в неё введено. Например, можете это попробовать для очистки введённого в командной строке пароля.
Для инкрементального обратного поиска по истории команд используйте комбинацию клавиш Ctrl + R .
№8. Сжатие, разбиение и шифрование файлов
Передача больших файлов между компьютерами — задача непростая. Упростить её можно, сжав файлы с помощью команды zip , или, если файлы ну просто очень большие, создав многотомный архив. Если при этом файлы нужно ещё и зашифровать — воспользуйтесь ключом -e .
№9. Стресс-тест батареи ноутбука
Хотите узнать, как долго батарея вашего ноутбука продержится при полной нагрузке на процессор? Попробуйте следующую команду:
№10. Переименование или перемещение файлов
Если вам нужно быстро переименовать или переместить множество файлов с суффиксами — попробуйте команду следующего вида:
Вот как её можно расшифровать:
Ниже приведён пример переименования файлов с определённым расширением в пакетном режиме:
Итоги
Мы рассказали о нескольких приёмах взаимодействия с командной строкой Linux. Надеемся, вы нашли здесь то, что поможет вам упростить и ускорить повседневную работу.
Уважаемые читатели! Что вы добавили бы к нашему списку неочевидных полезностей командной строки Linux?
Источник