Продвинутый CLI: команды, которые должен знать каждый разработчик

1. wget

В операционных системах, подобных Unix, команда wget загружает файлы, обслуживаемые по HTTP, HTTPS или FTP через сеть. По умолчанию она включена во все дистрибутивы Linux.

Самый простой способ использования wget — это указание местоположения файла для загрузки по HTTP. Скачать файл http://website.com/static/images/header.jpg с помощью wget можно, используя следующую команду:

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

Отличительной особенностью wget является неинтерактивность, то есть она может работать в фоновом режиме, пока пользователь не вошел в систему. В результате вы получаете возможность начать извлечение и отключиться от системы, а wget закончит работу за вас.

2. scp

Оказывались ли вы в такой ситуации, когда нужно передать файл с удаленного сервера на локальный компьютер? Например, получить загруженный пользователем файл, который привел к возникновению проблем.

Этот файл можно скачать через командную строку с помощью команды scp. Scp — это сокращение от secure copy (безопасное копирование). Более того, это удаленное безопасное копирование. Эта команда аналогична команде cp, с которой вы, вероятно, уже знакомы, однако источник или цель находятся в другой системе.

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

scp [email protected]:/path/to/foobar.txt /some/local/directory

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

scp /some/local/directory/foobar.txt [email protected]:/destination/path/

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

3. ssh-keygen

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

После добавления ключа SSH в Gitlab или Bitbucket вам не придется вводить пароль при каждой отправке файлов в удаленную ветку.

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

ssh-keygen -t ed25519

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

Генерация пары ключей SSH и ее правильная установка в Gitlab или Bitbucket отнимают около десяти минут, однако значительно экономят время в будущем!

4. chmod

В операционных системах Unix и им подобным chmod — это командный и системный вызов, который используется для изменения прав доступа к объектам файловой системы (файлам и директориям).

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

chmod 664 robots.txt
chmod 775 public/images

В первом примере права на чтение и запись для файла robots.txt предоставляются пользователю и группе. Другим предоставляется разрешение на чтение.

Во втором примере права на чтение, запись и выполнение для папки public/images также предоставляются пользователю и группе. Другим предоставляется разрешение на чтение и выполнение.

5. tar

tar для Linux обозначает tape archive (ленточный архив) и используется для сбора нескольких файлов в один архив. Tar является широко используемой командой для создания сжатых архивных файлов.

Начнем с создания архивного файла для определенной директории:

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

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

Создание архивного файла — это первый шаг. Второй шаг — распаковка. Распаковать файл в определенную директорию можно с помощью следующей команды:

tar -xvf my-archive.tar -C /home/myfolder/

6. alias

Порой приходится использовать слишком длинные или сложные команды, которые нелегко запомнить. К счастью, для них можно создать псевдонимы (alias)!

alias short-command="your custom and very long command here"

У псевдонима есть один недостаток: он является временным и будет доступен только для текущего сеанса терминала.

Чтобы использовать псевдонимы между сеансами, сохраните их в файле профиля конфигурации оболочки пользователя. Он находится в ~/.bashrc or ~/.zshrc, если вы используете Bash или ZSH.

Совет 1: направление вывода

Стандартным способом вывода является вывод на консоль. Однако в некоторых случаях нет необходимости выводить на него все данные.

Для перенаправления вывода в другое место используется >. В следующей команде вывод ls -al перенаправляется в файл myfile вместо консоли.

ls -al > myfile

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

cat myfile

Совет 2: Объединение команд

Запустить две и более команд одновременно можно с помощью оператора (;). Вы можете выполнить несколько команд подряд, независимо от того, будет ли каждая предыдущая команда завершена успешно.

ls -al; pwd;

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

mkdir images && cd images

Команда cd для перехода в папку images выполняется только, если удалось создать эту папку.

Также вторую команду можно выполнить только в том случае, если первая не завершена успешно. Для этого используется логический оператор OR — ||.

Читайте также:


Перевод статьи Daan: Advanced CLI: Commands You Should Know as a Developer