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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:терминал [2009/11/29 01:50]
manual:терминал [2010/05/07 13:39] (текущий)
Строка 27: Строка 27:
 Удобно,​ не правда ли? Особенно если привыкнуть. Удобно,​ не правда ли? Особенно если привыкнуть.
  
-Автодополнение в терминале работает практически везде, и не только для команд,​ но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора ​команд, да и вообще,​ терминал без автодополнения - это не терминал.+Автодополнение в терминале работает практически везде, и не только для команд,​ но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора,​ да и вообще,​ терминал без автодополнения - это не терминал.
  
 ===== Работа с файлами ===== ===== Работа с файлами =====
Строка 41: Строка 41:
 {{ .:​терминал:​terminal-currhome.png }} {{ .:​терминал:​terminal-currhome.png }}
  
-Я говорил,​ что при запуске терминала текущим каталогом становится домашняя папка пользователя,​ так вот, символ ''​~''​ - это синоним адреса домашней папки текущего пользователя. Кстати,​ если вы ещё не знаете,​ полный адрес домашнего каталога выглядит как+Я говорил,​ что при запуске терминала текущим каталогом становится домашняя папка пользователя,​ так вот, символ ''​~''​ - это синоним адреса домашней папки текущего пользователя((Но только когда этот символ используется как имя каталога в путях к файлам.)). Кстати,​ если вы ещё не знаете,​ полный адрес домашнего каталога выглядит как
  
 <​file>/​home/​логин_пользователя</​file>​ <​file>/​home/​логин_пользователя</​file>​
Строка 85: Строка 85:
   cd ../..   cd ../..
  
-Да и вообще, всё можно как угодно комбинировать. Ну и напоследок про ''​cd''​. Переместиться в предыдущий посещённый каталог можно командой+В принципе, всё можно как угодно комбинировать, в разумных пределах,​ конечно. Ну и напоследок про ''​cd''​. Переместиться в предыдущий посещённый каталог можно командой
  
   cd -   cd -
  
-В качестве наглядного примера:​+В качестве наглядного примера ​использования ''​cd''​ небольшое путешествие по моему компьютеру:
  
 {{ .:​терминал:​terminal-cd-example.png }} {{ .:​терминал:​terminal-cd-example.png }}
  
-Посмотреть содержимое текущего каталога можно командой ''​ls'':​+Как перемещаться по каталогам в первом приближении вроде разобрались,​ теперь же я расскажу про некоторые другие полезные операции. ​Посмотреть содержимое текущего каталога можно командой ''​ls'':​
  
 {{ .:​терминал:​terminal-ls.png }} {{ .:​терминал:​terminal-ls.png }}
Строка 103: Строка 103:
 Кстати,​ эта команда показывает различную дополнительную информацию о содержимом каталога. Кстати,​ эта команда показывает различную дополнительную информацию о содержимом каталога.
  
-Обычно модификаторами команд являются имена файлов или папок, именно для этого я рассказывал ​так ​подробно, как ​перемещаться по каталогам и использовать различные имена файлов. Например,​ команда ''​cat''​ показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла ''​test.txt'',​ лежащего в вашем домашнем каталоге,​ то вы могли бы выполнить команду+Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно ​рассказывал ​о способе перемещения по каталогам и использования ​различных имен файлов в качестве аргументов. Например,​ команда ''​cat''​ показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла ''​test.txt'',​ лежащего в вашем домашнем каталоге,​ то вы могли бы выполнить команду
  
   cat ~/text.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 }} {{ .:​терминал:​terminal-history.png }}
 +
 +А повторить предыдущую набранную команду можно просто написав два восклицательных знака ''​!!''​.
 +
 +Мне кажется,​ что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга,​ существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку,​ смотреть видео и выполнять ещё массу повседневных операций,​ но описание всего этого выходит далеко за рамки данной статьи.
  
 На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы:​ На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы:​
  
   * [[пользователи_и_группы|Пользователи,​ группы и права доступа]]   * [[пользователи_и_группы|Пользователи,​ группы и права доступа]]