9 советов для быстрой работы в UNIX и Linux терминале

Вы когда-нибудь встречали человека, который обладал какими-то неведомыми способностями и выполнял команды в UNIX терминале со скоростью света?

советов для повышения производительности в UNIX и Linux

Если ваш сервер находится под управлением Linux, а ваша ежедневная работа включает в себя постоянный поиск подходящей команды — данные советы помогут сэкономить немало времени.

1) Используйте ! для быстрого выполнения длинной команды

В среднем, эта команда сэкономила мне 30% рабочего времени, так как постоянно приходится выполнять одну и ту же UNIX команду по несколько раз.

Прежде чем я узнал об этой команде, я использовал стрелки вверх и вниз для работы с историей команд. При нажатии стрелки вверх я искал нужную мне команду из предложенного списка, а затем выполнял ее. Согласитесь, не очень удобно. Но с ! достаточно открыть историю с помощью команды history, выбрать номер строки с нужной командой и выполнить ее. Скажем, под номером 100 находится команда sudo apt-get update. Для того, чтобы не вводить ее целиком, достаточно написать !100.

Не забывайте про этот совет, так как он, определенно, сэкономит массу времени. Кроме того, эта команда окажется очень полезной для командной оболочки, отличной от оболочки bash (вроде csh илиksh), где стрелки вверх и вниз не позволяют работать с историей команд.

2) Используйте !! для выполнения последней команды

Это расширенная версия предыдущей команды, позволяющая выполнить самую последнюю команду из тех, которые вы уже выполняли. Поскольку данная команда заключается в двойном нажатии одной и той же клавиши — с работы вы точно начнете уходить раньше остальных.

Также она будет работать на оболочках, в которых не работает стрелка вверх и вниз, таких как csh и ksh.

3) Используйте “CTRL+R” для поиска и выполнения подходящей команды

Если вы помните половину или четверть названия команды, которую хотите найти — введите “CRTL+R” и она покажет последнюю выполненную команду с совпадающим названием. Если вы будете продолжать нажимать “CRTL+R”, вам будут выдавать более старые команды, подходящие под искомую строку, если они имеются.

Вышеперечисленная тройка советов сэкономит вам кучу времени и нервов, если дело касается выполнения постоянно повторяющихся команд.

Лично я сэкономил почти 50–60% рабочего времени, просто следуя этим советам.

4) Используйте историю команд

Это самый первый совет, который я сформировал для себя, когда начал работать с UNIX.

Каждый день я выполняю сотни команд и, вполне естественно, что я не могу запомнить каждую. Для поиска подходящей нужно выполнить команду history | grep ключевые слова и вы получите все команды, содержащие ключевые слова.

Читайте также:  Как войти в систему телефона на разных ос

Используйте переменную HISTSIZE, чтобы установить количество команд, которые необходимо хранить в списке истории (стандартное значение — 500).

5) Используйте grep и find

Команда grep используется для поиска текста в файлах и директориях, на основе шаблонов. Команда find используется для поиска файлов по имени и другим свойствам.

Например, с помощью find можно найти все файлы, начиная с текущей директории, название которых начинается, например, на coolarticle: find . -name ’coolarticle*’. А с помощью команды grep можно найти coolarticle в файле , с выводом полностью совпавшей строки: grep coolarticle

6) Используйте alias

Команда alias запускает любую команду или группу команд, в том числе с опциями, параметрами и файлами, посредством ввода одного слова или символа. То есть вы создаете более простые, короткие версии обычных команд, присваивая им новые названия.

Например, для того чтобы не вводить целиком команду clearнапишем alias c=»clear» и добавим в конце ~/.bashrc, чтобы данный alias был всегда доступен. Теперь, при вводе всего лишь одной буквыc, будет очищаться весь терминал.

7) Используйте pushd, popd, cd -, ~ для перемещения по каталогу

Основываясь на собственном опыте, могу сказать, что перемещение по оболочке UNIX занимает 50% рабочего времени, а если вы собираетесь прописывать путь к каталогу — можете насовсем забыть о быстрой работе.

В общем, вместо того, чтобы вводить полное имя команды, используйте вышеприведенные советы и эффективно используйте команды pushd, popd, cd- и cd ~ для быстрого перехода между каталогами.

8) Минимизируйте количество нажатий клавиш или увеличьте скорость печати

Чем меньше вы печатаете, тем быстрее вы работаете.

Если вы введете первые несколько букв имени файла, команды или пути, а затем нажмете клавишу Tab — произойдет автозаполнение командной строки.

9) Продолжайте изучать новые команды

Старайтесь узнать как можно больше команд — это поможет сократить время для выполнения самых разных задач. И не забывайте использовать ctrl+z, fg и bg, чтобы приостановить процесс.

Ctrl+Z приостанавливает процесс, для возобновления выполнения процесса на переднем плане можно использовать команду fg, команда bg запускает процесс в фоновый режим.

Надеюсь, что эти советы помогут вам сделать больше за меньшее количество времени, увеличат вашу производительность и обогатят ваш опыт работы с UNIX.

Аварийное завершение программ (процессов)

Команда Что делает
xkill выберите окно с программой, которую надо завершить
kill [параметр] PID принудительное завершение зависшей программы. PID — process ID. Пример — kill 2484.
ps определение идентификатора процесса. ps -a и ps -U root — эти команды позволяют добраться до нужных процессов, если они запущены в других терминалах. Первая команда выводит список процессов, запущенных вами, а вторая — от вашего имени (если вы работает под root).
ps -ax | grep вычисление PID процесса с известным именем. Пример # ps -ax | grep firefox
killall самый удобный способ завершить процесс, не зная его ID. Убивает все работающие процессы во всех консолях с заданным именем
Ctrl+C or Ctrl+| остановить работу скрипта в командной строке

Зачем нужен Терминал?

Есть три причины, которые делают Терминал незаменимым инструментом для исследователей, анализирующих большие массивы данных:

  • он позволяет программировать манипуляции с файлами и папками в операционной системе
  • Внутри него можно запускать другие программы и программировать их взаимодействие друг с другом
  • Через него осуществляется работа с серверами и суперкомпьютерами, позволяющими анализировать гигабайты данных в сотни раз быстрее, чем на персональном компьютере

Разберем каждый из этих аспектов подробнее.

Терминал, как манипулятор файлов и папкок

Большинству пользователей нет необходимости использовать Терминал благодаря графической оболочке их операционной системы. Однако, без него не обойтись, когда речь идет о манипуляциях с файлами и папками более сложными, чем: «скопировать документ из одной папки и вставить в другую». Я приведу простой пример, показывающий ограниченность использования графической оболочки операционной системы.

Допустим, мне нужно переименовать фотографию и добавить к текущему названию дату, когда эта фотография была сделана. Что может быть проще, скажите Вы: «открой свойства файла, скопируй дату создания файла, закрой окно «Свойства» и вставь дату в название файла». Так и есть, все довольно просто, вот только повторить это действие нужно для всех фотографий на моем компьютере (а их у меня более 25 тысяч). Очевидно, что если я буду делать это подобным образом, то это задание отнимет у меня несколько недель.

Решение этой же задачи в Терминале займет не более получаса даже у начинающего пользователя. Фокус в том, что в Терминале пользователь может программировать действия, делегируя компьютеру рутинную работу. В разных типах эмуляторов терминала – разные языки программирования, но вероятно самым распространенным в наши дни является язык bash (о нем скоро будет отдельная статья).

Использование Терминала для создания скриптов

Другая важная особенность эмуляторов терминала – это возможность запуска в нем других программ, чтобы автоматизировать процессы в программах и обеспечить автономное взаимодействие между ними. Если входные и выходные данные этих программ оформить в виде файлов, то Терминал сможет запускать последовательно программы. Алгоритм будет напоминать цепочку из таких действий: запустить программу А, загрузить туда входные данные (файл А), экспортировать результаты анализа в файл B, закрыть программу A, запустить программу B, загрузить туда файл B, ну и так далее…

Таким образом, миллионы файлов могут быть проанализированы автоматически и в быстрые сроки. Эта особенность делает Терминал незаменимым инструментом среди биоинформатиков, генетиков и эволюционных биологов, работающих с геномами организмов, которые в оцифрованном виде представляют из себя множество текстовых файлов оформленных в разных форматах.

Управления суперкомпьютерами и серверами через Терминал

Терминал является не только окном в операционную систему персонального компьютера, но также и в операционную систему сервера или суперкомпьютера, который может находиться в тысячах километров от Вашего текущего месторасположения. Через эмулятор терминала на суперкомпьютер можно подавать алгоритмы (bash-скрипты), выполнение которых на Вашем компьютере могло бы занять неделю. Благодаря своей мощности суперкомпьютер проведет расчёты за считанные часы. Подобный подход позволяет проводить анализ больших массивов данных в кратчайшие сроки.

Читайте также:  21 программ и приложений для рисования мультиков

Как правило, на суперкомпьютерах и серверах стоят версии операционной системы Linux. Так как различий между эмуляторами терминала на Линуксе и на Маке практически нет, в дальнейших статьях я буду писать только об эмуляторах терминала, работающих на языке программирования bash (например, программа Terminal).

Комбинации клавиш для управления Terminator

Чтобы раскрыть потенциал Terminator ключевым является знание кнопок для управления Terminator. Следующие сочетания установлены по умолчанию и являются самыми часто используемыми в Terminator:

Для разделения терминала по горизонтали – Ctrl+Shift+0

Для разделения терминала по горизонтали – Ctrl+Shift+E

У меня эти сочетания клавиш не работают, возможно по той причине, что на Ctrl+Shift назначена смена языка раскладки клавиатуры. Поэтому я использую контекстное меню:

У программы много привязанных сочетаний клавиш, которые быстро выполняют распространённые действия, но проблема в том, что у меня они не работают. Поскольку Ctrl+Shift является распространённым сочетанием для смены языка раскладки клавиатуры, то я не считаю это своей проблемой — это вопрос к создателям программы.

Я рассмотрю только те сочетания кнопок, которые сработали у меня. С другими вы можете познакомиться по ссылке ниже в документации к программе.

Для изменения фокуса терминала, нажмите Alt+ стрелку ←↑→↓

Для перехода по кругу между терминалами: Ctrl+Tab

Вы можете перетаскивать терминалы для изменения их расположения.

Имеется полноэкранные режим, который включается и отключается кнопкой F11.

Вы можете увеличивать размер шрифта (зумировать) и уменьшать содержимое в терминале. Для этого зажмите Ctrl и прокручивайте колёсико мыши.

Для сброса до исходного состояния нажмите Ctrl+0.

Вы можете установить имя для окон — для этого дважды кликните на строку красного цвета.

У программы есть конфигурационный файл, подробности о котором вы узнаете в:

man terminator_config

Ссылки

Как открыть файл через терминал Ubuntu

Чтобы открыть файл любого расширения в предназначенной для него программе, командная строка Убунту предусматривает команду xdg-open . Она позволяет открыть не только файл, но также веб-страницу либо папку в системе. Для этого указывается путь до нужного ресурса:

Как открыть файл через терминал Ubuntu

Если требуется открыть текстовый файл, при этом еще посмотреть его содержимое, предусмотрены другие команды:

  • More – открывает файл для постраничного просмотра прямо в терминале. Можно задать дополнительные опции. Например, если необходимо прочитать только первые 5 строк, задается параметр «–5», а для начала чтения с 5 строки – «+5».
  • Less – продвинутая версия more, имеющая функцию чтения вверх. Помимо этого, она не сохраняет текст в терминале. Реализован поиск по содержимому. Для этого необходимо набрать « / » и сам текст для поиска. Клавишей « n » производится переход к следующему найденному фрагменту.
  • head отображает только начало документа. По умолчанию выводятся первые 10 строк, однако значение можно изменить:

head -13 – просмотр 13 строк документа.

Как открыть файл через терминал Ubuntu