Найти тему
VK Cloud

Команды shell, которые должен знать каждый разработчик

Оглавление

Все еще зависите от графического интерфейса? Вы можете значительно повысить свою производительность, изучив несколько основных команд shell. Перевели статью, которая вам в этом поможет.

pwd — возвращает имя текущей директории

Давайте посмотрим, где мы находимся, когда только открыли терминал:

$ pwd
/Users/erik

Я в своей домашней директории, а где вы?

ls — просмотр содержимого директории

Давайте посмотрим, что мы видим в текущей директории:

Здесь много всего: редко чищу домашнюю директорию, поэтому я сократил вывод.

Команда ls поддерживает много удобных опций, эти три я использую все время:

  • -l: — строчная буква «л». Список в длинном формате (см. ниже.) Общая сумма для всех размеров файлов (в блоках) выводится в строке перед длинным списком.
  • -h: — используется с опцией -l, выводит размер файлов в более читабельном виде, например: 10G, 42M. h здесь означает human-readable (понятный человеку).
  • -a: — короткая запись опции all (все файлы). Включает отображение скрытых файлов, имена которых начинаются с точки (.).

Вы можете использовать все эти опции одновременно:

$ ls -lha
total: 32
drwxr-xr-x+ 85 erik staff 2.7K May 27 11:11 .
drwxr-xr-x 6 root admin 193B Sep 29 2019 ..
-rw-r--r-- 1 erik staff 2.1K Apr 15 11:06 .gitignore
-rw-r--r-- 1 erik staff 25M May 26 15:44 image.zip
...

Здесь вы видите права доступа, владельца и группу, размер файла, данные последнего изменения файлов и само имя файла.

В первых двух строках вы можете заметить что-то странное: два имени файла — . и ..:

  • . — это текущий каталог. Он даже имеет размер, который зависит от количества файлов в каталоге.
  • .. — это основной каталог, частью которого является текущий каталог.

Эти удобные ярлыки можно использовать в любой команде. Если вы хотите просмотреть содержимое основного каталога, используйте ls ../. Вы также можете использовать эту конструкцию несколько раз, поэтому, если хотите перейти на две директории выше, можете использовать ls ../../.

cd — перейти в другую директорию

Теперь, когда вы знаете, где находитесь и какие каталоги есть, то хотите перемещаться по каталогам. Допустим, ваши проекты хранятся в папке «Projects». Вы можете перейти туда, набрав:

$ cd Projects

Большинство оболочек поддерживают автодополнение. Просто попробуйте, набрав:

$ cd Pro<TAB key>

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

cp — копирование

Вы можете скопировать или сделать дубликаты некоторых файлов. Команда cp делает именно это — она копирует файл. Это делается путем создания нового файла и копирования всего содержимого в этот файл. Чтобы скопировать файл file1.txt во второй файл, например для резервного копирования, используйте:

$ cp file1.txt file1.txt.bak

Чтобы скопировать файл в другую директорию, используйте:

$ cp file1.txt ./backups/

./ означает «текущий каталог», поэтому «backups» находятся в текущем рабочем каталоге.

mv — переместить

Если нужно переместить файл, используйте команду mv. Обратите внимание, что перемещение файла аналогично переименованию файла. На самом деле нет команды переименования. Использование mv не сильно отличается от cp. Чтобы переименовать/переместить файл:

$ mv file1.txt file1.txt.bak

Чтобы переместить файл в другую директорию:

$ mv file1.txt ./backups/

mkdir — создать директорию

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

$ mkdir Projects

У этой команды есть один удобный аргумент -p. Когда вы используете его, любые промежуточные каталоги, которые еще не существуют, также будут созданы. Если хотите создать свой первый проект внутри «Projects» напрямую, можете сделать это с помощью:

$ mkdir -p Projects/my_first_project

rmdir — удалить директорию

Противоположностью mkdir является rmdir, он удаляет каталог. Он даже допускает тот же аргумент -p:

$ rmdir Projects

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

$ rmdir -p Projects/my_first_project

Удаление каталога будет работать только тогда, когда этот каталог пуст. Если вы хотите удалить каталог, включая его содержимое, смотрите команду rm, которая будет следующей.

Команда rm

Теперь мы попадаем в опасную область. Эта команда очень мощная и может разрушить вашу файловую систему. Используйте ее осторожно.

Давайте начнем с уничтожения файла:

$ rm file1.txt

Учтите, что тут нет понятия «Мусорной корзины».

Теперь давайте удалим все файлы в каталоге наших проектов, которые заканчиваются на .txt. Вам нужен так называемый шаблон glob, который соответствует нескольким файлам:

$ rm Projects/*.txt

Если вы хотите удалить все файлы в каталоге, используйте:

$ rm Projects/*

Шаблон glob * соответствует всем файлам.

Если не хотите ошибиться, используйте опцию -i, которая заставит вас подтвердить операцию удаления.

Теперь давайте удалим целое дерево каталогов и файлов. Для этого вам нужен аргумент -r, сокращение от рекурсивный. Иногда rm -r отказывается удалять специальные файлы или постоянно запрашивает подтверждение. Вы можете использовать опцию -f, чтобы удалить все, что можно — никаких вопросов не будет задано. Давайте удалим все наши проекты:

$ rm -rf Projects

Вся ваша работа уничтожена.) Как я и говорил, используйте эту команду осторожно!

cat, less, tail, head — просмотр содержимого файлов

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

  • cat — выводит все содержимое файла на экран;
  • less — позволяет пролистывать файл и даже искать внутри него;
  • tail — работает как cat, но выводит последние 10 строк файла (по умолчанию);
  • head — работает как cat, но выводит первые 10 строк файла (по умолчанию).

И tail, и head используют опцию -n <num>, чтобы изменить количество отображаемых строк.

control+r — найти предыдущую команду

Было бы неплохо иметь возможность быстро найти команду, которую вы использовали вчера или на прошлой неделе. Это возможно! Просто нажмите Ctrl + R на клавиатуре и начните вводить ту часть команды, которую вы помните, — это может быть любая часть.

Если то, что вы нашли, не совсем то, что нужно, продолжайте поиск, нажимая несколько раз Ctrl + R. Он будет продолжать давать совпадения по вашей истории команд.

Удачи!

Автор: Денис Романенко

Источник: https://mcs.mail.ru/blog/osnovnye-komandy-shell

Что еще почитать:
Иллюстрированное руководство по полезным инструментам командной строки
Go и кеши GPU
Как выбрать схему базы данных для приложения: скромное руководство