Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Roundups
Code

10 команд терминала для улучшения продуктивности

by
Length:LongLanguages:

Russian (Pусский) translation by Anton Lisovsky (you can also view the original English article)

В мае Nettuts+ выпустил замечательную статью под названием "7 простых и полезных хитростей командной стоки"; это была отличная статья для того, чтобы познакомиться, как работать с терминалом. Но вы можете узнать гораздо больше о том как использовать командный интерпретатор и я помогу вам подняться на следующий уровень в этом туториале!


Начнём

Если вы используете Mac OS X или ваш любимый дистрибутив Linux, вы уже готовы, можно приступать. Просто запустите терминал и следуйте инструкциям в данной статье. В том случае, если вы на Windows, что же, командная строка по умолчанию, совсем не тоже самое, нежели интерпретатор bash. Если вам хочется работать с более мощным инструментом командной строки, взгляните на Microsoft PowerShell; однако, команды, которые мы рассмотрим далее не будут работать. Тем не менее вы можете установить интерпретатор bash на Windows:

  • Поставьте Cygwim, среда похожая на Linux для Windows.
  • Установите msysgit; в зависимости от опций, которые вы выберите при установке, вы получите Git Bash, который сможет обрабатывать данные команды.
  • Попробуйте Windows под-системы для приложений Unix. Хотя сам я это не тестировал, я понимаю, что вы получите интерпретатор Unix в итоге.

Отлично, давайте начнём!


1. Touch

touch

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

Однако, временами у вас есть потребность создать один или несколько файлов, при этом не редактируя их. В этом случае вам поможет команда touch:

Не правда-ли просто. Вообще, команда touch служит для обновления доступа / даты модификации файла; это всего лишь полезное побочное действие, если файл не существовал он будет создан.


2. Cat и Less

cat and less

Раз уж мы заговорили о файлах, вероятно в какой-то момент вы захотите увидеть содержание файла в терминале. Есть несколько команд призванных вам помочь в этом. Первая называется cat; cat означает "concatenate", команда не только показывает содержимое файла, у неё есть и другие функции; однако, мы разберём лишь этот момент. Принцип работы прост - передайте файл данной команде.

Обратите внимание, в случае если файл слишком большой, для вас отобразиться лишь нижняя часть контента и вам придётся пролистать вверх, чтобы увидеть остальную часть. Конечно можно проскролить, но это не самый оптимальный вариант. Как насчёт less?

Less гораздо лучше подходит для просмотра больших файлов в командной строке. Вы получите экран полный текста, но не более. Вы можете передвинуть его на строку вверх или вниз с помощью клавиш k и j и переместить окно вверх и вниз с помощью b и f. Можно искать определённое вхождение написав /вхождение. Когда вы закончите нажмите q, чтобы выйти из less.


3. Curl

curl

Так как вам, скорее всего, регулярно приходится работать с набором различных фреймворков, у вас есть необходимость каждый раз скачивать файлы подобных библиотек. Да, я знаю: вы можете скачать файлы из браузера, открыть нужную папку, распаковать и добавить нужное для вашего проекта, не кажется-ли вам, что это слишком много работы? Будет гораздо проще использовать командную строку. Для скачивания файлов, можно применить curl; посмотрите на следующий пример:

Флаг -O сообщает curl, что скачиваемая копия контента должен обладать тем же именем, что и удалённый файл. Если вы не передадите данный параметр, curl вероятнее всего просто отобразит файл в командной строке (предполагая, что это текст).

Curl инструмент с огромным функционалом, вам стоит взглянуть на страницу мануала (посмотрите ниже) в случае если кажется, что будете использовать эту возможность часто. Вот вам полезная хитрость, используем расширение квадратной скобки (bracket expansion) в интерпретаторе shell.

Да, не правда-ли просто скачать несколько файлов из одного места, за раз. (Обратите внимание, что это не функционал curl, это функция относится к самому shell, так что можно использовать подобную нотацию и для других команд; перейдите по данной ссылке, если хотите узнать больше)


4. Tar и Gzip

tar and gzip

Ну что же, теперь вы знаете как скачать необходимое при помощи командной строки; тем не менее, есть большая вероятность, что большинство файлов, которые будут скачены представляют из себя сжатые архивы с расширением .tar.gz (или .tgz). Что же нам с этим делать? Давайте отвлечёмся на секунду и разберём, что же значит "сжатый архив". Скорее всего вы уже знакомы с архивами. Вам довелось видеть .zip файлы; это один из типов архивов. В своей основе, архив - это один файл, который содержит в себе несколько файлов. Обычно архивы сжимают эти файлы, тем самым конечный файл занимает меньше места на диске, чем все файлы вместе взятые. Однако, вы можете ещё дальше уменьшить результат сжав сам архив ... и вот здесь то мы и сталкиваемся с gzip. Gzip - одна из форм сжатия.

Вернёмся к скаченным файлам. Они были обработаны tar (заархивированы)? после чего сжаты gzip. Вы можете разжать их (unzip) после чего разархивировать tar, но мы хотим всего лишь несколько раз нажать на клавиши, не правда-ли? Вот что мы сделаем:

Подождите, что? Разберёмся: была запущена команда tar с флагами xvzf (обычно нужно добавить тире перед ними, но это опционально). Флаги означают:

  • x сообщает tar, что мы распаковываем (extracting), не архивируем
  • v даёт знать tar, что нам потребуется подробный (verbose) вывод (информация об исполняемом действии)
  • z сообщает tar, что файл был сжат gzip (тем самым файл будет разжат).
  • f сообщает tar, что мы будем использовать название оригинального архива.

Если вы хотите создать архив с gzip, вам всего лишь надо заменить флаг x на c (чтобы создать - create архив). Флаги v и z опциональны: вам нужен вывод? что насчёт gzip? Конечно вам следует оставить f; так как понадобится имя файла для нового архива (в противном случае результат будет выведен в командную строку). После этого передайте команде все файлы, которые хотите добавить в архив.

Ну и напоследок, я упоминал, что вы можете обработать архив gzip (или какие-либо другие файлы) индивидуально; когда вы это делаете, gzip заменяет оригинальный файл gzip версией. Чтобы разжать gzip, добавьте флаг -d (decompress).


5. Chmod

chmod

Другие действия, которые часто приходится выполнять веб-разработчикам - это изменения прав доступа к файлу. Есть три типа прав доступа, которые можно задать, и есть три класса, которым можно задать данные права доступа. Права доступа - чтение (read), запись (write) и исполнение (execute); классы - пользователь (user), группа (group) и другие (others). Обычно пользователь является владельцем файла, который он создал. Может существовать группа пользователей и класс group указывает на права доступа для пользователей в этой группе, пользователей, которые могут взаимодействовать с файлом. Соответственно, others класс включает всех остальных. Только пользователь (владелец файла - owner) и супер пользователь могут изменять права доступа к этому файлу. Ах да, и всё что было описано, работает точно также с директориями.

Так как же нам задать эти права доступа? Команда для этого chmod (change mode). Есть два способа сделать это. Для начала, этого можно добиться с помощью восьмеричной нотации; немного не понятно сперва, но как только вы к ней привыкните, заметите, что она быстрее. Выглядит это примерно так, исполнение соответствует 1, запись 2, а чтение 4. Вы можете их сложить для получения нескольких прав доступа: чтение+запись = 6, чтение+запись+исполнение = 7, и так далее. Тем самым для каждого класса существует соответствующее число, выстройте их в ряд и вы получите трёхзначное число для пользователя, группы и всех остальных. К примеру, 764 предоставит пользователю все права доступа, группе возможность чтения и записи и всем остальным - чтение. Чтобы понять лучше советую вам ознакомиться со статьёй на Wikipedia.

В том случае, если вам сложно запомнить восьмеричную нотацию, вероятно символическая нотация покажется проще (хоть она и требует больше нажатий по клавишам). Для этого вы будете использовать 'u', 'g' и 'o' для пользователя, группы и всех остальных ('a' для всех классов). В то время как 'r', 'w' и 'x' для чтения, записи и исполнения. Ну и наконец операторы '+', '-' и '=' чтобы добавить, убрать и установить права доступа в абсолютной форме. Вот как следует использовать символы: класса, оператора и прав доступа. К примеру, u+rwx добавляет все права доступа для класса пользователя; go-x убирает право запускать файл для группы и всех остальных; a=rw всем классом позволена запись и чтение.

Теперь, чтобы использовать всю эту теорию в командной строке, начните с команды (chmod), далее добавьте права доступа, после чего файлы и директории:


6. Diff и Patch

diff and patch

Если вам доводилось работать с системой контроля версий такой как Git или Subversion, вы знаете насколько они могут быть полезными, в случае если вы хотите поделиться проектом с другими разработчиками, или просто отслеживать версии. Но что если у вас есть потребность показать другу обновления в одном файле? Или другой разработчик отправил вам электронное письмо с новой версией файла, который вы редактировали с того момента, как получили последнюю копию? Иногда можно обойтись без полноценной системы контроля версий, но вам всё же нужен какой-то небольшой инструмент. Что же, как обычно поможет командная строка. Понадобиться команда diff. Прежде чем вы сделаете какие-либо изменения в файле, скопируйте файл, чтобы у вас "на руках" был оригинал. После обновлений, запустите diff; если не отправить вывод в файл, вывод будет отображён лишь в командной стоке, так что добавьте >, затем имя файла:

Как можно заметить, diff использует обычный текстовый файл с синтаксисом, который будет понятен командам diff и patch. patch? Команда, которая работает рука об руку с diff. Если вы получили новый файл, вам потребуется обновить оригинал:

Теперь всё обновлено.


7. Sudo

sudo

sudo не похожа на остальные команды, но она пригодится по мимо углубления в мир работы с командной строкой. Представьте такой сценарий: есть вещи, которые обычные пользователи не должны делать в командной строке; легко совершить непоправимые ошибки. Единственный пользователь, у которого есть на это права - супер пользователь, или root. В тоже время, небезопасно находится постоянно в системе в качестве супер пользователя, в связи со всеми доступными ему привилегиями. Вместо этого можно воспользоваться командой sudo (super user do), чтобы предоставить права root для одной единственной команды. Вам потребуется ввести пароль от аккаунта супер пользователя, после чего система выполнит команду.

К примеру, установка ruby гема требует прав супер пользователя:


8. Man

man

Большинство команд, которые обрабатываются интерпретатором bash, довольно гибкие и у них есть множество скрытых возможностей. Если вы предполагаете, что команда может сделать то что вам требуется или хотите ознакомиться с инструкцией по использованию команды, самое время обратиться к мануалу или так называемым man страницам. Просто напишите man, затем команду, которая вас интересует.

Можно заметить, что man страница открываются благодаря less.


9. Shutdown

shutdown

Когда вы закончили свою работу, можно даже выключить свой компьютер из командной строки. Потребуется команда shutdown, а также sudo для её выполнения. Нужно передать команде один флаг или два; обычно используется -h для передачи сигнала остановки системы (halt), -r для перезагрузки, -s для переход в режим сна. Далее передаётся время, когда это должно произойти: now, +количествоМинут или yymmddhhmm (год, месяц, день, час, минуты). Наконец, вы можете передать сообщение, которое будет показано пользователю, когда действие будет совершено. Если я хочу отправить мой компьютер "спать" через полчаса, я запущу:


10. История, !! и !$

history

Так как командная строка призвана повысить нашу эффективность, должна быть возможность повторить ранее использованные команды. Есть несколько способов сделать это. Для начала используйте команду history, чтобы получить список недавно используемых команд. Далее, чтобы выполнить их, напишите восклицательный знак и номер необходимой команды в истории.

Согласен, это плохой пример, так как мне приходится печатать больше символов для использования истории, нежели повторный запуск самой команды. Но как только вы начнёте комбинировать команды в длинные строки, данный подход будет гораздо быстрее.

Быстро получить доступ к последней команде и последнему используемому аргументу. Для предыдущей, последней команды используйте !!; часто потребуется добавлять sudo перед этим. Для получения последнего аргумента, вам понадобится !$; пожалуй переход в новую директорию, будет хорошим примером. В обоих случаях интерпретатор покажет полную команду, чтобы вы видели, что выполняете.


Заключение

Если вы такой же фанат повышения продуктивности, как и я, идея использования, по полной, командной строки должна вас заинтересовать. То что я показал всего лишь пример встроенных команд ... далее, есть много чего, что можно установить (посмотрите на менеджер пакетов homebrew, к примеру) Но возможно вы и так уже являетесь опытным пользователем командной строки, в этом случая поделитесь интересной командой с остальными. Напишите их в комментариях!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.