среда, 4 марта 2009 г.

10 забавных и/или полезных вещей, которые можно сделать в командной строке Ubuntu

Использовать мышь в виртуальной консоли
Это аккуратный хак, благодаря которому в виртуальной консоли появится прямоугольный курсор, так что текст можно легко копировать и вставлять. Просто используйте Synaptic, чтобы установить gpm. Установив утилиту, откройте окно терминала и напечатайте "sudo /etc/init.d/gpm", чтобы запустить программу. В будущем gpm будет стартовать автоматически при загрузке.

Затем переключитесь в виртуальную консоль, чтобы увидеть плоды своего труда. Сейчас у вас должен быть прямоугольный курсор, который движется по всему экрану. Вы можете выделять текст обычным способом. Чтобы вставить его, щёлкните средней кнопкой мыши (в большинстве мышей это колесо прокрутки; если у вашей мыши всего две кнопки, нажатие на правую вставит текст).

Некоторое ПО, которое предлагает текстовые меню, также откликается на такие нажатия мыши (к примеру, текстовый веб-браузер Lynx, см.ниже). Проверьте в справке по команде, нужна ли специальная опция для поддержки gpm.

Видеть календарь
Вы, вероятно, уже поняли, что нажатие на панель с часами в правом верхнем углу рабочего стола Ubuntu покажет календарь. Чтобы увидеть эту же штучку в командной строке, напечатайте cal. Безо всяких аргументов команды, она покажет текущий месяц. Если вы хотите, перевернуть ось календаря (чтобы дни показывались вертикально, а не горизонтально), напечатайте ncal. Чтобы увидеть текущий месяц и предыдущий со следующим, напечатайте cal -3 (по некоторым причинам, эта опция не работает с ncal).

Чтобы посмотреть календарь на весь год, напишите год сразу после команды: cal 2010. Чтобы увидеть календарь на декабрь любого года, напишите cal dec и год (вы можете писать jan, mar и т.д.).

Обе команды (cal и ncal) могут использоваться для поиска исторических дат. Для поиска дня подписания Декларации независимости напечатайте cal july 1776. Если вам серьёзно надо узнать точные даты, уходящие вглубь тысячелетий, то у вас могут быть проблемы с переключением между Юлианским и Григорианским календарями; за подробностями обращайтесь к странице руководства по cal.

Создать текстовые баннеры
Запустите Synaptic, поищите и установите figlet. После этого напечатайте в терминале следующее:

figlet "Ubuntu Kung Fu"

Вывод состоит из символов, букв и других знаков. Доступны даже разные шрифты (см. /usr/share/figlet). Файл с расширением .flf содержит шрифт. Для использования другого шрифта, просто укажите его имя после опции -f в командной строке (без расширения файла):

figlet -f lean "Ubuntu Kung Fu"

Хотите верьте, хотите нет, но figlet использовался очень серьёзно (ну, в действительности, его старший брат под названием banner). Во времена сетевых матричных принтеров и листовой бумаги команда использовалась для того, чтобы чётко определить, кто какой документ прислал на печать. Текстовый баннер появлялся в начале каждого напечатанного документа, так что становилось понятно, где нужно было отрывать лист.

Я люблю добавлять команду figlet в конец моего файла .bashrc, так что программа запускается каждый раз, когда я вхожу в виртуальную консоль или открываю окно терминала. Просто напечатайте "gedit ~/.bashrc", чтобы открыть файл в Gedit и добавьте в новой строке команду целиком. Если вы хотите, чтобы появилось предложение, а не одно слово, убедитесь, что взяли это предложение в кавычки (вот так: figlet -f small "Greetings Professor Falken").

Может, вы захотите взглянуть на другую утилиту, неудачно названную toilet, которая делает точно то же самое, но в ней можно изменять цвет. Установив её, попробуйте следующее:

toilet -f mono12 -F gay "Ubuntu Kung Fu"

Визуальное представление файлов/директорий
Если вы не знакомы (а даже если и хорошо знакомы), можете легко потеряться во время просмотра файловой системы. Можно использовать pwd для быстрого напоминания текущей директории, но можно использовать команду tree. Для начала вы должны установить её, используя Synaptic -- поищите и установите tree. Затем просто напечатайте "tree" в приглашении командной строки. Вот что я увидел в своей тестовой системе, когда ввёл эту команду в домашней директории:

.
|-- Desktop
| |-- gnome-terminal.desktop
| `-- synaptic.desktop
|-- Documents
| |-- accounts08.ods
| `-- brochure.pdf
|-- Examples -> /usr/share/example-content
|-- Music
| `-- tom gold-magic.mp3
|-- Pictures
| |-- barbecue.jpg
| `-- disneyland.jpg
|-- Public
|-- Templates
`-- Videos

Должно быть очевидным, что здесь находится. Директории (Desktop, Documents, Music и т.д.) представлены как ветки виртуального дерева и файлы (или поддиректории) -- как ветки второго уровня. Здесь этого не видно, однако очень полезным является то, что всё раскрашено в цвета, использующиеся в стандартной консоли. Так, директории светло-синие, файлы с изображениями и mp3-файлы зелёные и т.д. Чтобы просмотреть только директории без файлов в них (возможно, это более полезно), используйте опцию -d: tree -d. Чтобы отфильтровать результаты для определённых типов файлов или файлов с определённым названием, используйте опцию -P. К примеру, для поиска .doc файлов вам надо напечатать следующее:

tree -P *.doc

Или чтобы искать файлы, которые содержат в своём имени "disneyland", вам надо напечатать следующее:

tree -P *disneyland*

И так как всего этого недостаточно, у tree есть козырь в рукаве: она может выводить всё как html-файл. Это может оказаться полезным, если вам надо быстро создать вывод директории с файлами в сети. Предположим, у вас есть веб-сайт под названием http://www.example.com и локальная директория, которая содержит локальную копию сайта, -- /home/keir/website. Следующая команда выведет файл под названием index.html, который содержит визуальное дерево представления файлов, из которых состоит сайт, включая гиперссылки на сами файлы:

$ tree -H http://www.example.com -T "Click a file to download" /home/keir/website/ > index.html

В первую очередь мы обеспечиваем URL, которым будут предваряться ссылки. Это может быть часть пути на сервере (например, www.example.com/files; отметьте, что вы не должны включать концевой слэш). Затем мы с опцией -T указываем заголовок страницы -- он может быть каким угодно, но держитесь подальше от символов типа "!", которые имеют специфичные для командной строки функции. После этого мы указываем местонахождение файлов. И в конце концов мы перенаправляем вывод в файл index.html.

Просматривать PDF в командной строке

Если вы хотите просмотреть PDF, просто используйте программу Evince: evince filename.pdf -- так вы запустите программу-просмотрщик PDF. Если вы действительно хотите просмотреть PDF в окне терминала (или, возможно, в виртуальной консоли), для начала вам понадобится сконвертировать его в текст. Чтобы сделать это, используйте программу pdftotext: pdftotext filename.pdf -- эта команда создаст файл .txt с содержимым PDF. Для его показа используйте команду less: less filename.txt. Чтобы извлечь изображения из PDF, используйте команду pdfimages. Вам нужно указать имена файлов для изображений и использовать опцию -j, чтобы убедиться, что фотоизображения будут выведены как JPEG. К примеру, вот это:

pdfimages -j filename-pdf pictures

извлечёт изображения как JPEG и даст им имена, начинающиеся с "pictures". Так что первое будет называться pictures-001.jpg, второе -- puctures-002.jpg и т.д

Отражать команды и вывод на разных окнах терминала
Для того чтобы получить содержимое одного терминала в другом, для начала запустите сессию screen в нём. Screen позволяет вам создавать сессию командной строки, независимую от любого другого существующего терминала или виртуальных консолей (так что если окно закроется, сессия будет всё ещё работать в фоне).

Чтобы запустить его, просто напечатайте screen. Затем откройте новое окно терминала и добавьте его к текущей сессии, напечатав "screen -x". Теперь попробуйте что-нибудь напечатать, чтобы увидеть, каков эффект. Чтобы отсоединиться от сессии (в одном или обоих терминалах), нажмите Ctrl+A и затем d. Запомните, что если вы отсоедините оба терминала, сессия screen всё ещё будет работать в фоне. Чтобы завершить её, вам надо переподключиться к screen(напечатать "screen -r") и затем нажать Ctrl+d (или просто напечатать "exit" в приглашении).

Эта хитрость работает и в виртуальной консоли: вы можете запустить сессию screen в терминале, и она "отзеркалится" в приглашении виртуальной консоли, после того как вы присоедините её, используя команду screen -x.
Комбинируя этот приём с удалённым соединением по SSH, вы можете не только создавать сессию (используя screen), которая сохранится на удалённом компьютере, даже если SSH-соединение потеряется (это полезно, если вы запускаете команды, которым нужно некоторое время для выполнения задачи, или если у вас неустойчивое соединение), но вы также можете создавать схему, посредством которой всё, что вы вводите, будет отражено в окне терминала удалённого компьютера (просто попросите пользователя, сидящего за удалённым компьютером, открыть терминал и напечатать screen -x, после того как вы запустите screen в сессии SSH). Это превосходная возможность для дистанционного обучения.

Поместить вывод консоли и файлы в буфер обмена
Было бы очень полезно быстро отправить конфигурационный файл или вывод консольной команды в буфер обмена для вставки его на страницу веб-форума или для чего-то подобного, не так ли? В общем, это то, для чего сделана утилита xclip. Она может быть установлена с помощью Synaptic. После установки вы можете перенаправлять файлы в xclip, так что они станут содержимым буфера обмена. Команда

xclip < /etc/fstab

добавит содержимое конфигурационного файла /etc/fstab в буфер обмена. Или вы можете подать вывод команды на конвейер:

dmesg | xclip

поместит вывод команды dmesg в буфер обмена (dmesg показывает вывод системного лога и может быть полезным при диагностировании проблем). Есть одна оговорка. Файлы, переданные по конвейеру, помещаются в буфер выбора, который отличается от стандартного буфера обмена ("вырезать и вставить") из меню "Правка" большинства приложений. Содержимое xclip можно вставить, поместив курсор в соответствующее место и нажав на среднюю кнопку мыши (что означает нажатие на колесо прокрутки, если в вашей мыши оно есть, если его нет, нажмите одновременно левую и правую кнопки). Теоретически использование опции xclip -selection должно бы позволить пользователю добавлять новые данные к первоначальному буферу обмена, но не похоже, что это работает -- возможно, из-за того, как настроен рабочий стол в Ubuntu. Если честно, я считаю это больше особенностью, а не багом: xclip оставит любой существующий буфер обмена нетронутым.

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

espeak "Ubuntu Kung Fu"

Как говорят, это не самый совершенный в мире синтезатор речи (такое чувство, что "Speak & Spell" как раз об этом), но поиграть с ним может быть забавно. Просто печатайте "espeak", нажимайте "Ввод" -- и всё, что вы напишете после этого, будет произнесено. Чтобы выйти, нажмите Ctrl+d. Для переключения голосов используйте опцию -v. Но для начала вам нужно найти доступные голоса, сделать это можно напечатав "espeak --voices=en" (отметьте, что перед "voices" два дефиса). К примеру, чтобы фразу "How about a nice game of chess?" произнёс ямайский голос, напечатайте это:

espeak -s 140 -v en-westindies "How about a nice game of chess?"

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

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

sudo rm /etc/motd
sudo touch /etc/motd

что удалит содержимое файла "совета дня" (message of the day, motd -- прим.пер), который отвечает за это сообщение.
Конечно, вместо того чтобы удалять содержимое файла, вы могли бы заменить текст в нём на что-нибудь другое -- это простой текстовый файл. Откройте его в Gedit, напечатав "gksu gedit /etc/motd", и измените содержимое на что вам угодно.

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

Существуют два конкурирующих текстовых браузера -- links и lynx. Links, пожалуй, лучший из них, потому что он понимает фреймы, и поэтому шаблон страниц немного правильней, но оба они всего лишь в загрузке через Synaptic от тебя (a download away, как в расхожей фразе "a step away" ("в шаге от...", то есть очень близко) -- прим.пер.).

После запуска любой из программ нажмите g, чтобы ввести URL (в lynx вам также понадобится писать http://, если адрес не начинается с www.). Когда страница загрузится, используйте клавиши Page Up и Page Down для прокрутки. Используйте клавиши курсора "вверх"/"вниз", чтобы проходить по ссылкам, пока не найдёте желаемую, а затем нажмите "Ввод", для перехода по ней. Чтобы вернуться на страницу назад, нажмите клавишу курсора "влево". Чтобы загрузить файл, на который есть ссылка, выделите её и нажмите d. Вы можете искать слова на странице, используя слэш (/), так же, как и в страницах руководства по Linux.

Нажатие Ecs в links вызовет элементарное меню; используйте клавиши курсора для навигации по нему и нажимайте "Ввод" для выбора опции. Закончив работу, нажмите q для выхода из программы. Если links запущен в окне терминала, вы сможете использовать мышь для нажатия на ссылки.

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

От автора перевода: буду благодарна за помощь в исправлении ошибок.

*Данный текст является переводом оригинальной статьи и не является официальным. Ссылки работоспособны на момент публикации.

Комментариев нет:

Отправить комментарий