Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
manual:терминал [2009/11/29 01:16] |
manual:терминал [2010/04/21 18:04] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
Итак, давайте сначала посмотрим что из себя представляет этот самый терминал. Найти его можно в меню //Приложения->Стандартные//. Запустив его вы увидите примерно такое окошечко: | Итак, давайте сначала посмотрим что из себя представляет этот самый терминал. Найти его можно в меню //Приложения->Стандартные//. Запустив его вы увидите примерно такое окошечко: | ||
- | //картинко// | + | {{ .:терминал:terminal.png }} |
Знакомьтесь, это и есть терминал. Он создан для того, чтобы выполнять текстовые команды, поэтому отложите свою мышку в сторону и пододвиньте поближе клавиатуру. | Знакомьтесь, это и есть терминал. Он создан для того, чтобы выполнять текстовые команды, поэтому отложите свою мышку в сторону и пододвиньте поближе клавиатуру. | ||
Строка 15: | Строка 15: | ||
Вот что должно было получиться: | Вот что должно было получиться: | ||
- | //картинко// | + | {{ .:терминал:terminal-test-release.png }} |
Набирать такие команды с клавиатуры посимвольно немного неудобно, поэтому давайте сразу разберёмся с основами управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш <key>C-c</key> и <key>C-v</key> в терминале не работают, вместо них используется старая добрая пара <key>C-Insert</key> с <key>S-Insert</key> или же сочетания с <key>S</key>: <key>C-S-c</key> для копирования и <key>C-S-v</key> для вставки. Что ж, теперь вы умеете целиком копировать команды из руководств. | Набирать такие команды с клавиатуры посимвольно немного неудобно, поэтому давайте сразу разберёмся с основами управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш <key>C-c</key> и <key>C-v</key> в терминале не работают, вместо них используется старая добрая пара <key>C-Insert</key> с <key>S-Insert</key> или же сочетания с <key>S</key>: <key>C-S-c</key> для копирования и <key>C-S-v</key> для вставки. Что ж, теперь вы умеете целиком копировать команды из руководств. | ||
Строка 23: | Строка 23: | ||
А теперь попробуйте набрать только ''apt'' и нажать <key>Tab</key>. Ничего не происходит? А теперь нажмите <key>Tab</key> два раза подряд. Видите, терминал выдал вам список всех команд, начинающихся с ''apt''. | А теперь попробуйте набрать только ''apt'' и нажать <key>Tab</key>. Ничего не происходит? А теперь нажмите <key>Tab</key> два раза подряд. Видите, терминал выдал вам список всех команд, начинающихся с ''apt''. | ||
- | //картинко// | + | {{ .:терминал:terminal-autodop.png }} |
Удобно, не правда ли? Особенно если привыкнуть. | Удобно, не правда ли? Особенно если привыкнуть. | ||
- | Автодополнение в терминале работает практически везде, и не только для команд, но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора команд, да и вообще, терминал без автодополнения - это не терминал. | + | Автодополнение в терминале работает практически везде, и не только для команд, но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора, да и вообще, терминал без автодополнения - это не терминал. |
===== Работа с файлами ===== | ===== Работа с файлами ===== | ||
Строка 35: | Строка 35: | ||
Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки: | Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки: | ||
- | //картинко// | + | {{ .:терминал:terminal-currdir.png }} |
Текущий каталог - это то, что между символами '':'' и ''$''. Кстати, обратите внимание, перед '':'' стоит имя пользователя и имя компьютера, разделённые символом ''@''. Но когда вы запускаете терминал, то между '':'' и ''$'' стоит символ ''~'': | Текущий каталог - это то, что между символами '':'' и ''$''. Кстати, обратите внимание, перед '':'' стоит имя пользователя и имя компьютера, разделённые символом ''@''. Но когда вы запускаете терминал, то между '':'' и ''$'' стоит символ ''~'': | ||
- | //картинко// | + | {{ .:терминал:terminal-currhome.png }} |
- | Я говорил, что при запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ''~'' - это синоним адреса домашней папки текущего пользователя. | + | Я говорил, что при запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ''~'' - это синоним адреса домашней папки текущего пользователя((Но только когда этот символ используется как имя каталога в путях к файлам.)). Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как |
+ | |||
+ | <file>/home/логин_пользователя</file> | ||
+ | |||
+ | У меня это ''/home/malamut''. | ||
Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда ''cd'', выполните, например, команду | Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда ''cd'', выполните, например, команду | ||
Строка 49: | Строка 53: | ||
Видите, текущее местоположение изменилось: | Видите, текущее местоположение изменилось: | ||
- | //картинко// | + | {{ .:терминал:terminal-cd.png }} |
<note important>На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть ''Музыка'' и ''музыка'' - эта два совершенно разных имени.</note> | <note important>На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть ''Музыка'' и ''музыка'' - эта два совершенно разных имени.</note> | ||
Строка 70: | Строка 74: | ||
cd ~/Музыка | cd ~/Музыка | ||
+ | |||
+ | А для перемещения непосредственно в домашний каталог достаточно просто набрать ''cd'' без аргументов. | ||
Для перемещения на каталог выше можно использовать команду | Для перемещения на каталог выше можно использовать команду | ||
Строка 79: | Строка 85: | ||
cd ../.. | cd ../.. | ||
- | Да и вообще, всё можно как угодно комбинировать. Ну и напоследок про ''cd''. Переместиться в предыдущий посещённый каталог можно командой | + | В принципе, всё можно как угодно комбинировать, в разумных пределах, конечно. Ну и напоследок про ''cd''. Переместиться в предыдущий посещённый каталог можно командой |
cd - | cd - | ||
- | В качестве наглядного примера: | + | В качестве наглядного примера использования ''cd'' небольшое путешествие по моему компьютеру: |
- | //картинко// | + | {{ .:терминал:terminal-cd-example.png }} |
Посмотреть содержимое текущего каталога можно командой ''ls'': | Посмотреть содержимое текущего каталога можно командой ''ls'': | ||
- | //картинко// | + | {{ .:терминал:terminal-ls.png }} |
Обычно командам можно передавать различные модификаторы, например: | Обычно командам можно передавать различные модификаторы, например: | ||
- | //картинко// | + | {{ .:терминал:terminal-ls-long.png }} |
- | Мне кажется, что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и полезных приёмов работы в терминале, но их описание выходит далеко за рамки данной статьи. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу полезных действий, но всё это уже подробно описано много раз, поэтому если вы хотите научиться хорошо работать в терминале воспользуйтесь поиском по интернету. | + | Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога. |
- | Напоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторения исполнения введённых ранее команд. А посмотреть всю историю можно командой | + | Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имен файлов в качестве аргументов. Например, команда ''cat'' показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла ''test.txt'', лежащего в вашем домашнем каталоге, то вы могли бы выполнить команду |
+ | |||
+ | cat ~/text.txt | ||
+ | |||
+ | ===== Получение справки ===== | ||
+ | |||
+ | Начинающих пользователей Linux очень часто любят пугать так называемыми манами. Дело в том, что ''man'' - это система справки о командах для терминала. Пользоваться ей очень легко, просто наберите в терминале | ||
+ | |||
+ | man команда | ||
+ | |||
+ | Например: | ||
+ | |||
+ | man ls | ||
+ | |||
+ | Появится собственно текст справки((Или вам сообщат, что справочной страницы для этой команды нет. Хотя в основном информация есть по всем командам, кроме встроенных терминальных, вроде ''cd''.)), разбитый на разделы. Перемещаться по нему можно с помощью стрелок и клавиш <key>PgUp</key> и <key>PgDown</key>, а для выхода просто нажмите <key>q</key>. | ||
+ | |||
+ | Кроме man-страниц у многих утилит((Если вы вдруг не знаете - практически любая консольная команда является на самом деле отдельной программой, а не какой-либо встроенной возможностью терминала. Фактически, только ''cd'' является частью терминала, а для всех остальных команд можно легко найти основной исполняемый файл, набрав в терминале | ||
+ | <code>which команда</code> | ||
+ | И даже ''which'' - это тоже отдельная программа. Если вы вникните во всё это - то, надеюсь, начнёте лучше понимать Linux в целом и терминал в частности. Но если вы считаете всё это слишком сложным, то можете просто использовать терминал когда потребуется и ни о чём не думать.)) есть встроенная справка, которую обычно можно посмотреть, запустив программу с ключом ''%%--help%%'': | ||
+ | |||
+ | утилита --help | ||
+ | |||
+ | Например: | ||
+ | |||
+ | ls --help | ||
+ | |||
+ | Есть и другие способы получения помощи, например похожая на ''man'' утилита ''info''. Но чаще всего наиболее полную информацию о программе можно получить именно из man-страниц, а краткую справку - указав ключ ''%%--help%%'' при вызове((Как я уже упоминал в предыдущей сноске - каждая команда по сути является отдельной программой. Так вот, справка по ''%%--help%%'' всегда встроена в саму программу, а ''man'' и ''info'' берут информацию из отдельных файлов документации, которые не всегда поставляются вместе с приложением. Зачастую, правда, их можно поставить отдельно с помощью соответствующего пакета с припиской ''-doc'', но об установке пакетов я ещё не говорил, так что просто имейте это ввиду.)). | ||
+ | |||
+ | ===== Разные полезности терминала ===== | ||
+ | |||
+ | На всякий случай немного коснусь ещё одной темы. Бывает так, что вы что-то запустили в терминале и хотите прервать работу этого чего-то. Обычно это сделать очень просто, достаточно нажать на клавиатуре сочетание клавиш <key>C-c</key>((Это особенно актуально при случайном запуске каких-нибудь крайне опасных команд с неправильными аргументами, например | ||
+ | <code>sudo rm -rf /</code> | ||
+ | Кстати, знакомьтесь, эта команда удалит **абсолютно все** файлы с вашего компьютера. Именно поэтому не стоит её никогда выполнять. Даже если вы прервёте её выполнение на середине - систему вы восстановить уже не сможете. Я пишу это лишь затем, чтобы показать, что несмотря на всю мощь терминала (или благодаря ей) при выполнение консольных команд самое главное - это внимательность пользователя. Никогда не выполняйте команд, назначения которых вы не понимаете. Например, команда | ||
+ | <code>echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'</code> | ||
+ | делает ровно то же, что и упоминаемая выше | ||
+ | <code>rm -rf /</code> | ||
+ | И самое ужасное, что запустив её вы даже ничего не заметите до тех пор, пока она не закончит работу и вы не обнаружите пропажу абсолютно всех своих файлов. Так что всегда будьте внимательны!)). | ||
+ | |||
+ | Есть и другие управляющие сочетания, например <key>C-d</key> посылает сигнал конца файла запущенному приложению, а без запущенных утилит делает тоже, что и терминальная команда ''exit''. Ну а если вы хотите более подробно управлять работающими программами, то посмотрите на системный монитор ''htop'', который, правда, нужно доустанавливать отдельно. | ||
+ | |||
+ | ===== История введённых команд ===== | ||
+ | |||
+ | Напоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. А посмотреть всю историю можно командой | ||
history | history | ||
- | У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и после номер команды: | + | У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды: |
+ | |||
+ | {{ .:терминал:terminal-history.png }} | ||
+ | |||
+ | А повторить предыдущую набранную команду можно просто написав два восклицательных знака ''!!''. | ||
- | //картинко// | + | Мне кажется, что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу повседневных операций, но описание всего этого выходит далеко за рамки данной статьи. |
На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы: | На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы: | ||
* [[пользователи_и_группы|Пользователи, группы и права доступа]] | * [[пользователи_и_группы|Пользователи, группы и права доступа]] |