Итак, давайте сначала посмотрим что из себя представляет этот самый терминал. Найти его можно набрав «терминал» в строке поиска, или комбинацией клавиш Ctrl+Alt+T. Запустив его вы увидите примерно такое окошечко: Знакомьтесь, это и есть терминал. Он создан для того, чтобы выполнять текстовые команды, поэтому отложите свою мышку в сторону и пододвиньте поближе клавиатуру1). Управление терминаломДавайте выполним какую-нибудь командочку, например: lsb_release -a 2> /dev/null | grep -P "(?<=Codename:)(.*)" На выходе получим кодовое имя нашего дистрибутива: Набирать такие команды с клавиатуры посимвольно немного неудобно, поэтому давайте сразу разберёмся с основами управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш Ctrl+C и Ctrl+V в терминале не работают, вместо них используется старая добрая пара Ctrl+Insert с Shift+Insert или же сочетания с Shift: Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки. Что ж, теперь вы умеете целиком копировать команды из руководств. Кстати, в большинстве руководств и инструкций вы встретите именно терминальные команды. Это связано с тем, что, графических оболочек очень много, и объяснить, как выполнить какое-то действие для каждой из них бывает очень непросто. А терминал - один для всех, и одна и та же команда работает во всех оболочках (естественно, кроме команд по настройке самой оболочки). К тому же, намного проще дать одну команду, чем объяснить где и как 10 раз нажать мышкой.
Однако, часто всё-таки команды приходится набирать вручную, а не вставлять откуда-то. И вот тут на помощь приходит великолепное свойство терминала, называемое автодополнением. Наберите в терминале символы
А теперь попробуйте набрать только Удобно, не правда ли? Особенно, если привыкнуть. Автодополнение в терминале работает практически везде, и не только для команд, но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора, да и вообще, терминал без автодополнения - это не терминал. Еще одна хитрость. Откройте терминал нажмите сочетание клавиш Ctrl+R и начните набирать нужную команду. Терминал автоматически подставит подходящие варианты из набранных ранее команд. Работа с файламиНачну рассказ наверно с того, что в любой момент времени работы в терминале вы находитесь в некотором каталоге. При запуске терминала текущей директорией является домашний каталог пользователя, но потом вы конечно можете её поменять. Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:
Текущий каталог - это то, что между символами
При запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ /home/логин_пользователя
У меня это
Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда cd Музыка Видите, текущее местоположение изменилось: На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть
Музыка и музыка - эта два совершенно разных имени.
После команды cd /etc/apt
Хочу сразу обратить внимание на несколько важных особенностей. Во-первых, при наборе путей так же работает автодополнение по Tab, это очень удобно. Во-вторых, использовать различные небуквенные символы и пробелы напрямую при наборе путей нельзя. Например, для того, чтобы перейти в каталог, содержащий в имени символ пробела, надо при наборе пути к такому каталогу перед пробелом поставить символ обратного слеша cd Каталог\ с\ плохими\ символами\ в\ имени\<\> Установка обратного слеша перед некоторыми символами называется экранированием. Кстати, при использовании автодополнения все слеши расставляются автоматически. Кроме того, можно просто заключить путь в двойные кавычки: cd "Каталог с плохими символами в имени<>" Но в этом случае автодополнение работать не будет.
Заменитель адреса домашнего каталога cd ~/Музыка
А для перемещения непосредственно в домашний каталог достаточно просто набрать Для перемещения на каталог выше можно использовать команду cd .. Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так: cd ../..
В принципе, всё можно как угодно комбинировать, в разумных пределах, конечно. Ну и напоследок про cd -
Как перемещаться по каталогам в первом приближении вроде разобрались, теперь же я расскажу про некоторые другие полезные операции. Посмотреть содержимое текущего каталога можно командой Обычно командам можно передавать различные модификаторы, например: Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога.
Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имен файлов в качестве аргументов. Например, команда cat ~/text.txt Получение справки
Начинающих пользователей Linux очень часто любят пугать так называемыми манами. Дело в том, что man команда Например: man ls Появится собственно текст справки3), разбитый на разделы. Перемещаться по нему можно с помощью стрелок и клавиш PgUp и PgDown, а для выхода просто нажмите Q.
Кроме man-страниц у многих утилит4) есть встроенная справка, которую обычно можно посмотреть, запустив программу с ключом утилита --help Например: ls --help
Есть и другие способы получения помощи, например похожая на История введённых командНапоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. А посмотреть всю историю можно командой history У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды:
А повторить предыдущую набранную команду можно просто написав два восклицательных знака Мне кажется, что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу повседневных операций, но описание всего этого выходит далеко за рамки данной статьи. Разные полезности терминалаНа всякий случай немного коснусь ещё одной темы. Бывает так, что вы что-то запустили в терминале и хотите прервать работу этого чего-то. Обычно это сделать очень просто, достаточно нажать на клавиатуре сочетание клавиш Ctrl+C6).
Есть и другие управляющие сочетания, например Ctrl+D посылает сигнал конца файла запущенному приложению, а без запущенных утилит делает тоже, что и терминальная команда Если у вас сложилось впечатление, что терминал - это какая-то примитивная программа, способная выполнять очень простые команды, то это ложное впечатление. На самом деле есть очень много консольных утилит с богатейшими возможностями. Например, как уже упоминалось выше, серверные версии Ubuntu поставляются без графической оболочки. С помощью только консольных утилит можно настроить и управлять сложнейшими многофункциональными серверами. И напоследок, в качестве примера, рассмотрим простой консольный файловый менеджер. Помните, в одной из предыдущих глав мы установили в нашу систему Midnight Commander. Введите в терминале команду mc и увидите, что получится: У пользователей постарше, успевших поработать в DOS, это окно может вызвать острый приступ ностальгии.
КонсольНе путайте терминал с консолью. Для работы консоли графическая оболочка не нужна совсем. Именно так работают серверные версии Ubuntu. Терминал - это только одна из программ, которые эмулируют работу консоли. В «настоящую» консоль можно попасть набрав комбинацию клавиш Ctrl+Alt+Fx (где Fx - клавиши от F1 до F6). После этого нужно ввести свой логин и пароль (пароль никак отображаться не будет, ни звездочками, ни черточками - вообще никак). Обратно в графическую оболочку - Ctrl+Alt+F7. Все, что говорилось по отношению к терминалу, действительно и для консоли. Все команды терминала - работают в консоли. Более того, терминал был создан для того, чтобы была возможность использовать консольные утилиты при работе в графической оболочке. Вы, наверное, подумали: а зачем эта консоль нужна, если есть терминал? Приведу только два примера:
top посмотреть номер зависшего процесса и командой kill -9 номер процесса завершить зависший процесс. На этом, пожалуй, закончим краткое введение в богатейший мир консольных команд Linux и рассмотрим еще некоторые особенности этой многогранной операционной системы: |
|
cd
.cd
является частью терминала, а для всех остальных команд можно легко найти основной исполняемый файл, набрав в терминале
which командаИ даже
which
- это тоже отдельная программа. Если вы вникните во всё это - то, надеюсь, начнёте лучше понимать Linux в целом и терминал в частности. Но если вы считаете всё это слишком сложным, то можете просто использовать терминал когда потребуется и ни о чём не думать.--help
всегда встроена в саму программу, а man
и info
берут информацию из отдельных файлов документации, которые не всегда поставляются вместе с приложением. Зачастую, правда, их можно поставить отдельно с помощью соответствующего пакета с припиской -doc
, но об установке пакетов я ещё не говорил, так что просто имейте это ввиду.sudo rm -rf /*Кстати, знакомьтесь, эта команда удалит абсолютно все файлы с вашего компьютера. Именно поэтому не стоит её никогда выполнять. Даже если вы прервёте её выполнение на середине - систему вы восстановить уже не сможете. Я пишу это лишь затем, чтобы показать, что несмотря на всю мощь терминала (или благодаря ей) при выполнение консольных команд самое главное - это внимательность пользователя. Никогда не выполняйте команд, назначения которых вы не понимаете. Например, команда
echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'делает ровно то же, что и упоминаемая выше
rm -rf /*И самое ужасное, что запустив её вы даже ничего не заметите до тех пор, пока она не закончит работу и вы не обнаружите пропажу абсолютно всех своих файлов. Так что всегда будьте внимательны!