Вы когда-нибудь встречали человека, который обладал какими-то неведомыми способностями и выполнял команды в UNIX терминале со скоростью света?
Да, пару раз я сталкивался с такими людьми и это вдохновило меня на то, чтобы учиться у них.
В этой статье или туториале, или называйте как хотите, я поделюсь с вами некоторыми командами для быстрой и продуктивной работы в UNIX или Linux терминале.
Я работаю в сфере финансовых услуг и моя работа заключается в разработке и поддержке приложений для торговли акциями и фьючерсами на рынке электронных торгов, деривативов, валютных, товарных и других классов активов.
Все наши сервисы расположены на серверах под управлением Linux, именно поэтому для нас чрезвычайно важно, чтобы человек быстро и эффективно работал с терминалом Linux. За годы работы в моей голове сформировались советы по повышению производительности в Linux. И сейчас я собираюсь с вами ими поделиться.
9 советов для повышения производительности в 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 в файле file.txt, с выводом полностью совпавшей строки:grep coolarticle file.txt
.
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.
Заключение
Может показаться, что нет смысла изучать эти команды, но вы будете приятно удивлены, увидев сколько времени можно сэкономить, просто применив мои советы на практике.
Удачи в вашем путешествии по миру Linux! Конечно, это будет нелегко, но с помощью моих советов вы станете суперпользователем, у которого всегда полным полно времени.
Читайте нас в Telegram, VK и Дзен
Перевод статьи javinpaul: 10 Basic Tips on Working Fast in UNIX or Linux Terminal