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



Книга Продвинутый 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 — ||.


528   0  

Comments

    Ничего не найдено.