Горячие клавиши в терминале Linux

Давным-давно, такие слова как «hot keys» и «keyboard shortcuts» мне не всегда удавалось перевести на русский без потери лица. Как-то раз, я написал «клавиатурные сокращения», чем сразу же привлёк косые взгляды и вызвал смелые медицинские фантазии. Но вроде бы сейчас принято везде говорить и писать «горячие клавиши». О них и поговорим.
Данная заметка — шпаргалка по линуксовой оболочке Bash и смежным компонентам. Часть приводимых ниже команд относится к библиотеке Readline, часть — к сигналам Linux, однако такие подробности нам здесь не важны. Если вам приходится часто иметь дело с терминалом в Linux (и вы не меняли Bash на другой шелл), то будет очень полезно использовать эти самые «сокращения» на благо себе и в мирных целях. Текст написан для начинающих пользователей, но кто знает — может быть и вы найдёте в нём что-то новое и полезное для себя.
Для удобства будем считать, что по умолчанию под терминалом мы понимаем стандартную в настольной редакции Ubuntu программу «Терминал Gnome».
Вкладки
В программе “Терминал Gnome” предусмотрены вкладки, и работают они аналогично вкладкам в веб-браузере или файловом менеджере. Иными словами, если вам нужно несколько терминалов, вовсе не обязательно открывать несколько окон. Достаточно одного окна с несколькими вкладками. Ниже приведены горячие клавиши, относящиеся ко вкладкам:
Ctrl+Shift+T — открыть новую вкладку;
Ctrl+Shift+W или Ctrl+D — закрыть текущую вкладку (или весь терминал, если вкладка одна);
Ctrl+Shift+N — открыть новое окно терминала из текущего.
Со временем вы можете оказаться в ситуации, когда вкладок станет действительно много, и тогда возникнет вопрос о навигации между ними. Вам пригодятся следующие сочетания клавиш:
Ctrl+PgDn — перейти на следующую (справа) вкладку;
Ctrl+PgDn — перейти на предыдущую (слева) вкладку;
Ctrl+Shift+PgDn — сдвинуть вкладку вправо;
Ctrl+Shift+PgUp — сдвинуть вкладку влево.
Alt+1 — перейти на первую по счёту вкладку. Подставьте другую цифру для нужной вам вкладки. Данный способ позволяет «дотянуться» максимум до десятой по счёту вкладки.
Навигация
Три очень часто используемые комбинации для копирования и вставки текста, а также отмены выполняющейся команды:
Ctrl+Shift+С — копирование в буфер обмена;
Ctrl+Shift+V — вставка из буфера обмена;
Ctrl+C — прерывание выполняющейся команды или очистка текущей строки.
Для того чтобы выделить нужный текст в терминале, вам потребуется воспользоваться мышью. Тем не менее, в программе “Терминал Gnome” имеется встроенное средство поиска текста, которое позволяет искать как по обычному фрагменту, так и по регулярному выражению:
Ctrl+Shift+F — вызов встроенного поиска по любому тексту в терминале.
Если команда в терминале слишком длинная, или вы сделали опечатку в начале и не сразу это заметили, вы можете вернуться в начало строки. А затем — снова в конец. Вот как это сделать:
Ctrl+A — переместиться в начало строки;
Ctrl+E — переместиться в конец строки.
В терминале Linux можно перемещаться внутри строки также по словам и по отдельным символам (в последнем случае, это аналогично использованию клавиш с боковыми стрелками):
Ctrl+F — переместиться на 1 символ вперед;
Ctrl+B — переместиться на 1 символ назад;
Alt+F — переместиться к следующему слову;
Alt+B — переместиться в начало предыдущего слова.
Управление командами и процессами
Предыдущие команды касались навигации по терминалу и строке ввода команды. Далее стоит рассмотреть управляющие команды Bash, с помощью которых можно запускать, останавливать, ставить на паузу и возобновлять команды и процессы. Вы уже знаете, что запущенный в терминале процесс можно прервать по Ctrl+C, но полезно также знать и некоторые нюансы.
В терминале Linux вы можете не только завершать программы полностью, но и ставить их на паузу. Затем выполнение программы можно возобновлять, причём, как с возвратом интерактивной командной строки, так и без него:
Ctrl+Z — приостановка процесса;
команда bg — возобновление процесса с возвратом командной строки (процесс продолжает выполнение в фоне);
команда fg — возобновление процесса, при котором он удерживает командную строку за собой (процесс выполняется на «переднем плане»).
Процессы также можно приостанавливать и возобновлять. Запустите какую-либо команду, например htop , и нажмите Ctrl+Z. Сначала будет казаться, будто команда завершилась, но она будет числиться в списке запущенных процессов ( ps -a ) и появится вновь после ввода команды fg.
Если повторить эксперимент с графическим приложением, например, введя команду firefox , то можно будет использовать для его «оживления» как fg , так и bg . При любом варианте приложение останется «закреплённым» за текущим терминалом: если вы закроете его, то оно тоже завершится.

Существует и другой тип «приостановки»: временное прекращение вывода выполняющейся команды. Как консольное, так и графическое приложение может быть запущено в терминале, в который будет выводиться текущая диагностическая информация. Иногда бывает очень удобно временно прекратить постоянный вывод сообщений без завершения самого приложения. Для этого пригодятся следующие сочетания клавиш:
Ctrl+S — прекратить обновление вывода команды;
Ctrl+Q — возобновить вывод команды.
История команд
Bash умеет запоминать все введённые вами команды. Пока терминал запущен, они хранятся в оперативной памяти компьютера, а при выходе из терминала записываются в долговременное хранилище в файле ~/.bash_history .
Если вы точно знаете, что вводили нужную вам команду раньше, поищите её в истории:
history — вывод истории команд;
Если вы помните хотя бы часть команды, поиск можно уточнить:
history | grep — пример уточняющего поиска по истории командам.
У каждой команды в истории есть номер. Введите этот номер, поставив вначале восклицательный знак, и Bash выполнит соответствующую команду:
!151 — выполнить команду под номером 151 из истории;
!151: — показать команду номер 151, но не выполнять её;
!! — повторно выполнить последнюю введенную команду.
В Bash имеется интерактивный режим поиска по истории команд. Нажмите Ctrl+R и начните набирать часть команды. Bash сам предложит вам первый совпадающий вариант. Если он не подходит, нажимайте Ctrl+R дальше для перебора вариантов. Когда нужный вариант будет найден, нажмите Enter.
Интересно, что у этой клавиши ввода есть два аналога — вместо Enter можно нажать Ctrl+M или Ctrl+J.
Самый простой способ перемещаться по истории команд — стрелки «вверх» и «вниз» на клавиатуре. Они тоже имеют дубликаты:
Ctrl+P — вывести предыдущую команду;
Ctrl+N — вывести следующую команду.
Редактирование команд
Самое время рассмотреть средства редактирования команд — они в Bash весьма продвинутые. Удобное перемещение в начало и конец строки, выборочное удаление символов и слов — это лишь часть возможностей, которые могут пригодиться пользователю. За редактирование команд отвечают следующие сочетания клавиш:
Ctrl+U — удалить весь текст слева от курсора;
Ctrl+K — удалить весь текст справа от курсора;
Ctrl+W — удалить 1 слово или параметр слева от курсора;
Ctrl+D — удаление текущего символа (аналогично Del);
Ctrl+H — удаление предыдущего символа (аналогично Backspace);
Alt+D — удалить всё справа от курсора до ближайшего пробела;
Alt+Backspace — удалить всё слева от курсора до ближайшего пробела;
Alt+T — поменять местами текущее слово с предыдущем;
Esc+T — поменять местами два предыдущих слова;
Tab — автодополнение команды после ввода её первых символов.
Ещё одна любопытная деталь: у Bash имеется собственный буфер обмена, который работает независимо от стандартного буфера (как мы помним, копирование по Ctrl+Shift+C, вставка по Ctrl+Shift+V). Это важно, поскольку у первых трёх команд из предыдущего списка есть дополнительные функции: они не просто удаляют часть текста, но и копируют его в тот самый отдельный буфер обмена Bash. Поэтому, будет справедливо уточнить:
Ctrl+U — вырезать и поместить в буфер обмена весь текст слева от курсора;
Ctrl+K — вырезать и поместить в буфер обмена весь текст справа от курсора;
Ctrl+W — вырезать и поместить в буфер обмена 1 слово или параметр слева от курсора;
Кстати, для вставки скопированного текста обратно сработает комбинация Ctrl+Y.
Напоследок
Конечно, выше я описал не все горячие клавиши: их гораздо больше, и полное описание содержало бы в себе кучу бородатой экзотики, унаследованной из древних университетских времён UNIX. В любом случае, не забывайте про man bash (например, там есть замечательный раздел Commands for Moving) и про bind -P .
- bash
- командная строка
- горячие клавиши
- сочетания клавиш
- Настройка Linux
- *nix
- Серверное администрирование
Терминал
Итак, давайте сначала посмотрим что из себя представляет этот самый терминал. Найти его можно в меню Приложения→Стандартные. Запустив его вы увидите примерно такое окошечко:
Знакомьтесь, это и есть терминал. Он создан для того, чтобы выполнять текстовые команды, поэтому отложите свою мышку в сторону и пододвиньте поближе клавиатуру.
Управление терминалом
Давайте выполним какую-нибудь командочку, например:
lsb_release -a 2> /dev/null | grep -P "(?<=Codename:)(.*)"
Вот что должно было получиться:
Набирать такие команды с клавиатуры посимвольно немного неудобно, поэтому давайте сразу разберёмся с основами управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш Ctrl + C и Ctrl + V в терминале не работают, вместо них используется старая добрая пара Ctrl + Insert с Shift + Insert или же сочетания с Shift : Ctrl + Shift + C для копирования и Ctrl + Shift + V для вставки. Что ж, теперь вы умеете целиком копировать команды из руководств.
Однако обычно всё-таки команды приходится набирать вручную, а не вставлять откуда-то. И вот тут на помощь приходит великолепное свойство терминала, называемое автодополнением. Наберите в терминале символы apti , а потом нажмите клавишу Tab . Терминал автоматически дополнит за вас команду. Кстати, aptitude - это основная консольная утилита управления установкой и удалением приложений, но об этом после.
А теперь попробуйте набрать только apt и нажать Tab . Ничего не происходит? А теперь нажмите Tab два раза подряд. Видите, терминал выдал вам список всех команд, начинающихся с apt .
Удобно, не правда ли? Особенно если привыкнуть.
Автодополнение в терминале работает практически везде, и не только для команд, но так же для их аргументов и имён файлов. Поэкспериментируйте с ним, оно значительно сокращает время набора, да и вообще, терминал без автодополнения - это не терминал.
Работа с файлами
Начну рассказ наверно с того, что в любой момент времени работы в терминале вы находитесь в некотором каталоге. При запуске терминала текущей директорией является домашний каталог пользователя, но потом вы конечно можете её поменять.
Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:
Текущий каталог - это то, что между символами : и $ . Кстати, обратите внимание, перед : стоит имя пользователя и имя компьютера, разделённые символом @ . Но когда вы запускаете терминал, то между : и $ стоит символ ~ :
Я говорил, что при запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ~ - это синоним адреса домашней папки текущего пользователя 1) . Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как
/home/логин_пользователя
У меня это /home/malamut .
Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда cd , выполните, например, команду
cd Музыка
Видите, текущее местоположение изменилось:
На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть Музыка и музыка - эта два совершенно разных имени.
После команды cd можно указывать как полные пути относительно корня, так и относительные, отсчитывающиеся от текущего каталога. В примере выше я использовал относительный путь. А вот полный:
cd /etc/apt
Хочу сразу обратить внимание на несколько важных особенностей. Во-первых, при наборе путей так же работает автодополнение по Tab , это очень удобно. Во-вторых, использовать различные небуквенные символы и пробелы напрямую при наборе путей нельзя. Например, для того, чтобы перейти в каталог, содержащий в имени символ пробела, надо при наборе пути к такому каталогу перед пробелом поставить символ обратного слеша \ . Вот так:
cd Каталог\ с\ плохими\ символами\ в\ имени\
Установка обратного слеша перед некоторыми символами называется экранированием. Кстати, при использовании автодополнения все слеши расставляются автоматически. Кроме того, можно просто заключить путь в двойные кавычки:
cd "Каталог с плохими символами в имени<>"
Но в этом случае автодополнение работать не будет.
Заменитель адреса домашнего каталога ~ можно использовать и при наборе путей, например:
cd ~/Музыка
А для перемещения непосредственно в домашний каталог достаточно просто набрать cd без аргументов.
Для перемещения на каталог выше можно использовать команду
Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так:
В принципе, всё можно как угодно комбинировать, в разумных пределах, конечно. Ну и напоследок про cd . Переместиться в предыдущий посещённый каталог можно командой
В качестве наглядного примера использования cd небольшое путешествие по моему компьютеру:
Как перемещаться по каталогам в первом приближении вроде разобрались, теперь же я расскажу про некоторые другие полезные операции. Посмотреть содержимое текущего каталога можно командой ls :
Обычно командам можно передавать различные модификаторы, например:
Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога.
Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имен файлов в качестве аргументов. Например, команда cat показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла test.txt , лежащего в вашем домашнем каталоге, то вы могли бы выполнить команду
cat ~/text.txt
Получение справки
Начинающих пользователей Linux очень часто любят пугать так называемыми манами. Дело в том, что man - это система справки о командах для терминала. Пользоваться ей очень легко, просто наберите в терминале
man команда
man ls
Появится собственно текст справки 2) , разбитый на разделы. Перемещаться по нему можно с помощью стрелок и клавиш PgUp и PgDown , а для выхода просто нажмите Q .
Кроме man-страниц у многих утилит 3) есть встроенная справка, которую обычно можно посмотреть, запустив программу с ключом --help :
утилита --help
ls --help
Есть и другие способы получения помощи, например похожая на man утилита info . Но чаще всего наиболее полную информацию о программе можно получить именно из man-страниц, а краткую справку - указав ключ --help при вызове 4) .
Разные полезности терминала
На всякий случай немного коснусь ещё одной темы. Бывает так, что вы что-то запустили в терминале и хотите прервать работу этого чего-то. Обычно это сделать очень просто, достаточно нажать на клавиатуре сочетание клавиш Ctrl + C 5) .
Есть и другие управляющие сочетания, например Ctrl + D посылает сигнал конца файла запущенному приложению, а без запущенных утилит делает тоже, что и терминальная команда exit . Ну а если вы хотите более подробно управлять работающими программами, то посмотрите на системный монитор htop , который, правда, нужно доустанавливать отдельно.
История введённых команд
Напоследок хочу лишь сказать, что терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. А посмотреть всю историю можно командой
history
У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды:
А повторить предыдущую набранную команду можно просто написав два восклицательных знака !! .
Мне кажется, что с непривычки уже всё описанное может показаться дремучим лесом, а на самом деле это только самая верхушка айсберга, существуют ещё тысячи полезных команд и интересных приёмов работы в терминале. С помощью терминала можно редактировать файлы, слушать музыку, смотреть видео и выполнять ещё массу повседневных операций, но описание всего этого выходит далеко за рамки данной статьи.
На этом я пожалуй закончу краткое введение в богатейший мир консольных команд Linux и продолжу рассказывать про оставшиеся основные особенности этой многогранной операционной системы:
Но только когда этот символ используется как имя каталога в путях к файлам.
Или вам сообщат, что справочной страницы для этой команды нет. Хотя в основном информация есть по всем командам, кроме встроенных терминальных, вроде cd .
Если вы вдруг не знаете - практически любая консольная команда является на самом деле отдельной программой, а не какой-либо встроенной возможностью терминала. Фактически, только cd является частью терминала, а для всех остальных команд можно легко найти основной исполняемый файл, набрав в терминале
which команда
И даже which - это тоже отдельная программа. Если вы вникните во всё это - то, надеюсь, начнёте лучше понимать Linux в целом и терминал в частности. Но если вы считаете всё это слишком сложным, то можете просто использовать терминал когда потребуется и ни о чём не думать.
Как я уже упоминал в предыдущей сноске - каждая команда по сути является отдельной программой. Так вот, справка по --help всегда встроена в саму программу, а man и info берут информацию из отдельных файлов документации, которые не всегда поставляются вместе с приложением. Зачастую, правда, их можно поставить отдельно с помощью соответствующего пакета с припиской -doc , но об установке пакетов я ещё не говорил, так что просто имейте это ввиду.
Это особенно актуально при случайном запуске каких-нибудь крайне опасных команд с неправильными аргументами, например
sudo rm -rf /
Кстати, знакомьтесь, эта команда удалит абсолютно все файлы с вашего компьютера. Именно поэтому не стоит её никогда выполнять. Даже если вы прервёте её выполнение на середине - систему вы восстановить уже не сможете. Я пишу это лишь затем, чтобы показать, что несмотря на всю мощь терминала (или благодаря ей) при выполнение консольных команд самое главное - это внимательность пользователя. Никогда не выполняйте команд, назначения которых вы не понимаете. Например, команда
echo "test. test. test. " | perl -e '$??s:;s:s;;$. s;;=]=>%-<<-|>;`-" -;;s;;$_;see'
делает ровно то же, что и упоминаемая выше
rm -rf /
И самое ужасное, что запустив её вы даже ничего не заметите до тех пор, пока она не закончит работу и вы не обнаружите пропажу абсолютно всех своих файлов. Так что всегда будьте внимательны!
Как скопировать и вставить в терминал Linux и Ubuntu 1 мин для чтения


Добавить в избранное
Главное меню » Linux » Как скопировать и вставить в терминал Linux и Ubuntu

Когда вы переключаетесь на Linux с Microsoft Windows, особенно если вы программист, есть вероятность, что у вас могут возникнуть проблемы с копированием и вставкой команд или строк в окне терминала Linux.
Даже когда vsмы портировали на Ubuntu из Windows десять лет назад, мы изо всех сил пытались скопировать и вставить строки в терминале Linux. В то время мы думали, что мы единственные пользователи, которому трудно скопировать и вставить. Однако, поискав в Интернете, мы поняли, что это глобальная проблема.
Причина в том, что сочетание клавиш и клавиши мыши для копирования и вставки строк в окнах терминала Linux не такие, как те, которые мы используем в Windows.
Привязки клавиш для операций копирования и вставки зависят от конкретного эмулятора терминала, который вы используете. В Linux по умолчанию привязка клавиш CTRL + C используется для отправки сигнала прерывания команде, выполняющейся на переднем плане. Следовательно, терминалы Linux не используют стандартные CTRL + C и CTRL + V для операций копирования и вставки.
Использование сочетания клавиш
В Ubuntu и других дистрибутивах Linux вы должны использовать комбинацию клавиш CTRL + SHIFT + C для копирования текста из терминала или текстового редактора.
Чтобы скопировать текст или строку кода из браузера, вы можете использовать общую комбинацию CTRL + C или CTRL + SHIFT + C. Затем, чтобы вставить эту строку кода в терминал, вам нужно использовать клавиши CTRL + SHIFT + V.
Вы должны использовать эти комбинации клавиш в Ubuntu для выполнения операций копирования и вставки, особенно в терминале Linux.
Использование контекстного меню, вызываемого правой кнопкой мыши
Другой способ скопировать и вставить в терминал Linux — использовать контекстное меню правой клавиши мыши.
Чтобы скопировать текст или строку в терминале, выберите текст, затем щелкните правой кнопкой мыши и выберите copy. Теперь, чтобы вставить выделенный текст, щелкните правой кнопкой мыши и выберите paste в контекстном меню.
Читать Создайте приложение Hello World с помощью фреймворка Flask
Использование средней клавиши мыши
Этот метод не так популярен среди пользователей Linux, но все же эффективен в некоторых дистрибутивах Linux. В этом методе вам нужно выделить текст, который вы хотите скопировать и вставить. Затем нажмите кнопку колеса прокрутки, которая является средней кнопкой мыши, чтобы вставить выделенный текст.
Вот как вы можете копировать и вставлять текст в терминал Linux. Это просто, но сбивает с толку новых пользователей Linux, особенно тех, кто переходит на Linux с Windows или Mac. Упомянутые методы могут работать или не работать в различных дистрибутивах Linux по причине, упомянутой ранее в этой статье.
Заключение
Команды копирования и вставки в терминалах Linux и Ubuntu отличаются от Microsoft Windows и Mac. Есть три метода копирования и вставки в терминале Linux и Ubuntu. Эти методы включают использование определенных сочетаний клавиш, использование контекстного меню мыши и использование средней клавиши мыши. Когда вы реализуете предоставленные методы, вы можете успешно скопировать и вставить терминалы Linux и Ubuntu. Надеюсь, эта статья помогла вам эффективно использовать команду копирования и вставки.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Копирование и перемещение файлов и папок
Файл или папку можно скопировать или переместить в другое место, перетаскивая их мышью, используя команды копирования и вставки, или с помощью комбинаций клавиш.
Например, можно скопировать презентацию на флэш-носитель, чтобы взять её с собой на работу, или сделать резервную копию документа перед внесением в него изменений (а затем использовать старую копию, если изменения не понравились).
Эти инструкции применимы как к файлам, так и к папкам. Копирование и перемещение файлов и папок выполняется одинаково.
Копирование и вставка файлов
- Выберите файл, который хотите скопировать, нажав на него.
- Щёлкните правой кнопкой мыши и выберите Копировать или нажмите Ctrl + C .
- Перейдите в папку, в которую нужно поместить копию файла.
- Чтобы завершить копирование файла, щёлкните правой кнопкой мыши и выберите Вставить , или нажмите Ctrl + V . Теперь копия файла из исходной папки появится в другой папке.
Перемещение файлов командами вырезания и вставки
- Выберите файл, который хотите переместить, нажав на него.
- Щёлкните правой кнопкой мыши и выберите Вырезать или нажмите Ctrl + X .
- Перейдите в ту папку, в которую нужно переместить файл.
- Чтобы завершить перемещение файла, щёлкните правой кнопкой мыши и выберите Вставить , или нажмите Ctrl + V . Файл будет удалён из исходной папки и перемещён в другую папку.
Копирование или перемещение файлов перетаскиванием
- Откройте менеджер файлов и перейдите в папку, содержащую файл, который нужно скопировать.
- Нажмите кнопку меню в правом верхнем углу окна и выберите Создать окно (или нажмите Ctrl + N ), чтобы открыть второе окно. В новом окне перейдите в папку, в которую вы хотите переместить или скопировать файл.
- Нажмите на файл и перетащите его из одного окна в другое. Файл будет перемещён , если целевая папка находится на том же устройстве, и скопирован , если целевая папка находится на другом устройстве. Например, при перетаскивании файла с USB-носителя в домашнюю папку он будет скопирован, так как вы перетаскиваете его с одного устройства на другое. Для принудительного копирования файла удерживайте при его перетаскивании нажатой клавишу Ctrl , а для принудительного перемещения — клавишу Shift .
Нельзя скопировать или переместить файл в папку, предназначенную только для чтения . Некоторые папки защищены от записи, чтобы предотвратить изменение их содержимого. Снять защиту от записи можно, изменив права доступа к файлам .