Терминал Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:терминал [2009/11/29 01:23]
manual:терминал [2010/05/07 13:39]
Строка 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>​
Строка 81: Строка 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 и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы:​
  
   * [[пользователи_и_группы|Пользователи,​ группы и права доступа]]   * [[пользователи_и_группы|Пользователи,​ группы и права доступа]]