6 команд терминала и пара комбинаций, полезных для начинающих разработчиков

Для тех, кого уже не пугает команда cd. Краткие описания и примеры выполнения wget, scp, ssh-keygen, chmod, tar, alias. Приёмы перенаправления вывода и комбинирования команд.

В *nix-подобных операционных системах wget загружает по сети файлы, обслуживаемые с помощью HTTP, HTTPS или FTP. Самый простой способ использования wget – указать файл для загрузки по HTTP. Например, чтобы загрузить с помощью wget jpg-файл по адресу http://website.com/static/images/header.jpg, выполните следующую команду:

 wget http://website.com/static/images/header.jpg 

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

6 команд терминала и пара комбинаций, полезных для начинающих разработчиков

Если необходимо скопировать файл с удалённого сервера на локальный компьютер через SSH, в терминале можно это сделать с помощью scp (сокращение англ. secure copy). Команда похожа на cp, но в ней источник и получатель находятся в разных системах (например, под разными IP-адресами).

Следующее предписание скопирует файл foobar.txt с сервера в локальный каталог:

 scp username@remotehost.com:/path/to/foobar.txt /some/local/directory 

Команду scp можно использовать и для копирования файла в обратном направлении – из локальной папки на сервер:

 scp /some/local/directory/foobar.txt username@remotehost.com:/destination/path/ 

То же самое можно делать с каталогами, используя опцию -r, которая рекурсивно скопирует все каталоги.

Команда ssh-keygenиспользуется для создания пары ключей SSH. Сгенерированный публичный ключ можно использовать для установления безопасного соединения с GitLab, Bitbucket или в другом виде SSH-подключения к удалённому серверу.

После добавления SSH-ключ в Gitlab или Bitbucket, вам больше не потребуется каждый раз вводить пароль при отправлении в удалённую ветку.

Чтобы создать пару ключей, используйте следующий метод:

 ssh-keygen -t ed25519 

В приведённом примере указан алгоритм подписи Ed25519, вы можете использовать другие. Генерация ключей не займёт много времени, но это того стоит!

6 команд терминала и пара комбинаций, полезных для начинающих разработчиков

Все хотя бы раз бывали в положении, когда сервер не даёт доступ к файлу из-за неправильной настройки разрешений. К предоставлению прав к файлам и каталогам нужно относиться серьёзно. Бывало, что из-за неверного сочетания ключей злоумышленники получали полный доступ к серверу и требовали выкуп.

В следующем примере выдаётся разрешение на чтение и запись в файл robots.txt пользователю и группе, а всем остальным только на чтение:

 chmod 664 robots.txt
 

Команда chmod так называется от английского «change mode». Ниже пользователь и группа получают разрешение на чтение, запись и выполнение для папки public/images. Остальные пользователи – только на чтение и выполнение.

 chmod 775 public/images 

Что «зашифровано» в этих цифрах и как настроить правильные разрешения для файлов и каталогов, вы узнаете из wiki-cтатьи о chmod.

Команда tar (англ. tape archive) широко используется в *nix для работы с файлами архивов. Начнём с того, как заархивировать определенный каталог:

 tar -cvf my-archive.tar /path/to/directory 

Эта операция создаст в текущем рабочем каталоге архив с именем my-archive.tar, содержащий все файлы каталога /path/to/directory.

Создание архивного файла – пол-дела. Распакуем файл в заданный каталог:

 tar -xvf my-archive.tar -C /home/myfolder/ 
6 команд терминала и пара комбинаций, полезных для начинающих разработчиков

У каждого в арсенале есть длинные команды, которые сложно запомнить. Облегчить процесс набора позволит создание псевдонима:

 alias short-command="длинная команда с множеством ключей и конвейеров" 

Но создание псевдонима таким способом приводит к проблеме: этот «алиас» является временным и доступен лишь в текущей сессии терминала. Чтобы сохранить псевдонимы для повторного использования в других сеансах, нужно записать их в файле профиля конфигурации оболочки. Он находится по ссылке ~/.bashrc или ~/.zshrc (при использовании Bash и ZSH соответственно).

Напоследок пара советов про перенаправление потока и комбинирование команд.

Стандартным устройством вывода является экран. Но часто результаты нужно направлять не на экран, а в файл. Например, для создания логов. Чтобы перенаправить поток, используй оператор >. В следующей команде вывод ls -al перенаправляется в файл myfile:

 ls -al > myfile 

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

 ls -al; pwd; 

Если нужно, чтобы второе приказание выполнялась только при успешном выполнении первого, объедините их логическим оператором &&:

 mkdir images && cd images 

В этом случае директория будет меняться на images только, если она была успешно создана.

А что, если нужно что-то выполнить, если другую команду осуществить не удалось? Используйте логический оператор ||.

Для автоматизированной загрузки файлов через HTTP или FTP используйте wget, а для копирования по SSH-каналу – scp (secure copy). Пару SSH-ключей создаст ssh-keygen. Надоело печатать длинные последовательности строк – обзываем их короткими псевдонимами, по-латыни «иначе» это alias. Архивируем и распаковываем архивы с помощью tar. Нужно вывести поток данных не на экран, а в файл – пишите имя файла после оператора >.

Выполнить операции одну за другой можно, поставив их через точку с запятой ;. Чтобы команда выполнялась только в случае успешного завершения предыдущей, используем оператор &&. Когда наоборот, хотим запустить другую команду, если не выполнится первая – ставим между ними оператор ||.

Какие команды в терминале вы используете чаще других?

proglib.io

Добавить комментарий

Ваш e-mail не будет опубликован.

3 − два =