Терминал является невероятно важной частью рабочего стола Linux. Как бы вы ни привыкли наводить и щелкать в командной строке, в какой-то момент вам придется окунуться в темные воды терминала и задействовать его. Не бойтесь, терминал не так страшен, как его малюют, и уделив время на изучение основ, вы обнаружите, что определенные задачи в нем решаются гораздо быстрее и эффективнее.nnКак и следует ожидать, терминал по сути выдает доступ к командной оболочке Linux, то есть работает так же и использует тот же язык (Bash). Это означает, что в терминале можно сделать то, что вы обычно делаете в командной строке, причем не расставаясь с относительным комфортом рабочего стола. Так что обучение работе с терминалом — и Bash — вдвойне выгодно, поскольку дает вам первое представление о работе с базовой оболочкой Linux. И на следующих нескольких уроках вы именно этим и займетесь: как освоить работу с терминалом.nnЭта серия уроков основана на Ubuntu, так что для начала откройте Dash и наберите ‘terminal’ в поле поиска. Терминал вы, ес-те ст вен но, най де те, но за од но уви ди те и два пунк та под на зва ни-ем UXTerm и XTerm. Это проливает свет на тот факт, что существует несколько эмуляторов терминала, которые можно запускать для взаимодействия с оболочкой. Различия между ними, конечно, есть, но в принципе они делают одно и то же.nnНа этом уроке мы придерживаемся терминала по умолчанию, который на самом деле является эмулятором gnome-terminal — технически это эмуляция сессии TeleTYpe (TTY). Он обладает всей необходимой функциональностью, но стоит отметить и XTerm и UXTerm как бо лее ми ни ма ли ст ские ин ст ру мен ты, не тре бую щие для запуска никаких зависимостей. И если основной терминал почему-либо отказывает, взамен можно использовать их. Кстати, единственная разница между ними состоит в том, что UXTerm поддерживает расширенный набор символов Unicode.n
Как работает Bash
Оболочка Linux использует оболочку Bash и командный язык для выполнения задач, с относительно простым синтаксисом для каждой команды: имя утилиты команда -опция.nnЧасть команды имя утилиты — это отсылка к инструменту, который вы хотите запустить: например, Is служит для просмотра содержимого каталога, а apt-get — для запуска инструмента управления пакетами APT. В части команда вы конкретно указываете, что утилита должна сделать, например, apt-get install предписывает утилите управления пакетами выполнить установку именованного пакета, например: apt-get install vlc.nnВ части -опция можно установить один или несколько параметров-«флажков», чтобы задать определенные параметры. Каждому флагу предшествует один или два дефиса (—), а полезнее всех опция —help, которая дает краткое описание утилиты плюс перечисляет все доступные команды и параметры, например, ls -l.nnФлаг -l велит инструменту вывода каталога предоставить подробную информацию о содержимом папки, включая: права доступа; владельца файла; время последнего изменения и его объем в байтах. Утилиты можно запускать без каких-либо команд или параметров — например, ls сама по себе выдает простой список всех папок и файлов в каталоге. Можно также запустить утилиты с комбинацией команд и/или параметров.n
Ограниченный доступ
Откройте терминал, и вы увидите нечто вроде username@pc-name:~$. Это показывает, что вы вошли в оболочку под своей учетной записью. А значит, у вас есть доступ к ограниченному числу команд — можно, например, напрямую работать с ls, но нельзя установить пакет с помощью apt-get, поскольку эта команда требует прав root. Права достигаются одним из двух способов — ес ли вы пользователь с правами админист ратора, как пользователь по умолчанию в Ubuntu, то можно предварить вашу команду командой sudo, например, sudo apt-get install vlc. Вам предложат ввести пароль учетной записи, а затем команда выполнится. Вы об на ру жи те, что мо же те и дальше запускать команды через sudo без повторного ввода пароля (пять минут), пока терминал открыт. В некоторых дистрибутивах можно войти в терминал пользова те ля root с по мощью su — вам предложат ввести пароль пользова те ля root, послече го вы увидите следующее приглашение: root@pc-name:~$. Войдя, вы сможете вводить команды без ограничений.nnМы ре ко мен ду ем ис поль зо вать ко ман ду sudo, а не этот вариант, и если вы работаете в Ubuntu, то обнаружите, что su во обще не работает, поскольку пароль учетной записи root заблокирован по соображениям безопасности.nnПри установке некоторых дистрибутивов или добавлении новых пользователей в Ubuntu вы можете обнаружить, что ваша учетная за пись поль зо ва те ля по умол ча нию в груп пу sudo не до бав-лена. Чтобы решить эту проблему, откройте терминал в учетной записи, которая действительно имеет доступ root (или, если поддерживается, воспользуйтесь командой su) и введите sudoadduser <имяпользователя> sudo. Той же командой можно добавить пользователя в другие группы,есди перечислить все группы, в которые вы хотите его добавить, например: sudo adduser <username> adm sudo lpadmin sambashare.nnЕще один удобный инструмент — gksudo; он позволяет запускать настольные приложения с привилегиями root. Это наиболее полезно, когда требуется просмотреть систему с правами root с помощью диспетчера файлов: gksudo nautilus. Обязательно оставляйте терминал открытым на все время выполнения приложения, в противном случае оно при закрытии терминала закроется тоже. Закончив, закройте окно программы, затем нажмите Ctrl+c в терминале, что прерывает запущенную программу и возвращает вас в командную строку.nnМы уже об су ж да ли флаг —help, но есть и другие инструменты помощи, которые тоже можно использовать. Во-первых, есть whatis — который можно ввести с любой командой, чтобы получить крат кое опи са ние его и лю бых ука зан ных эле мен тов: на пример, whatis apt-get install vlc опи шет ин ст ру мент apt-get, ар гу мент install [установка] и что такое пакет vlc. Флаги игнорируются.nnЕсли вы ищете полноценное руководство, то инструмент man предоставляет доступ к онлайн-руководству вашего дистрибутива. Запуск man intro выдает большое и подробное введение в командную строку. После этого нажмите q, чтобы вернуться в терминал. Для дополнительных советов по навигации по руководству наберите man man или в сочетании с именем инструмента, например, man ls.nnТе перь, ко гда вы сде ла ли свои пер вые ша ги в мир тер ми на ла, посмотрите врезку (Ваши первые команды терминала, вверху), где вы найдете ряд полезных для работы команд управления пакетами. На следующем уроке мы рассмотрим перемещение по файловой системе из терминала и запуск программ, и изучим полезные сочетания клавиш, помогающие ускорить взаимодействие с командной строкойn
Ускорение ввода текста
Невзирая на степень вашего умения быстро печатать, командная строка все равно может оказаться удручающе затратной по времени. К счастью, в терминале немало удобных сочетаний клавиш. Давайте посмотрим, как легко получить доступ к ранее использовавшимся командам и увидеть предложения:n
- » Стрелки вверх/вниз Просмотр истории команд.
- » history Просмотр истории команд.
- » Ctrl+r Поиск по истории команд. Введите буквы, чтобы сузить поиск до ближайшего совпадения, и придержите клавиши Ctrl + r, чтобы увидеть другие совпадения.
- » Tab Посмотреть подсказку или автозавершение слова или пути, если вы его целиком не помните. Нажатие ~+Tab автоматически вставит имя пользователя, @+Tab — имя хоста, а $+Tab — переменную.
Флаг —help можно использовать с любой командой, для выяснения, что она делает и какие аргументы использовать.
Ваши первые команды терминала
Хотя для установки и управления программным обеспечением можно обойтись комбинацией Software Center и панели управления Software & Updates Ubuntu, часто быстрее воспользоваться семейством инструментов Advanced Package Tool (APT). Вот несколько основных способов их применения (применение sudo см. ниже):n
- » $ apt-cache pkgnames Перечисляет все доступные пакеты в исходниках, указанных в списках источников в файле /etc/apt/sources.list.
- » $ sudo add-apt-repository ppa:<имярепозитория> Добавляет в список исходников указанный репозиторий Launchpad PPA.
- » $ sudo apt-get update Получает свежие списки пакетов (включая обновленные версии) из всех перечисленных репозиториев.
- » $ sudo apt-get install <пакет> Устанавливает названный пакет. Также скачивает и устанавливает все требуемые зависимости пакетов.
- » $ apt-get remove <package> Удаляет установленный пакет. Используйте apt-get purge <пакет>, чтобы удалить все файлы настройки пакета, и apt-get autoremove, чтобы удалить уже не нужные пакеты, уста-нов ленные другими пакетами.
- » $ sudo apt-get upgrade Обновляет все установленное программное обеспечение — перед этим запустите sudo apt-get update.
Другие полезные команды apt-get включают apt-get check — инструмент проверки нарушенных зависимостей, и apt-get autoclean, который ликвидирует Deb-файлы удаленных пакетов.n
Пакет apt-cache также умеет отыскивать указанные пакеты или выявлять зависимости пакета.