11 консольных команд, которые должен знать каждый разработчик

0
1326
views

Перевод статьи «Here Are 11 Console Commands Every Developer Should Know».

Команды Linux

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

Оболочка Unix (shell) это командный интерпретатор, используемый в операционных системах Unix. Она одновременно является и интерактивным языком команд, и языком сценариев. Оболочка используется операционной системой для управления тем, как система использует shell-скрипты.

В каждой операционной системе Linux или Mac интерфейс командной строки установлен по умолчанию и обычно называется «Терминал». Интерфейс командной строки (command line interface, CLI) дает нам возможность с легкостью перемещать и переименовывать файлы, сортировать данные и перемещаться по файловой системе компьютера.

11 команд, представленных в этой статье, должны помочь вам в ежедневной работе.

1. grep

$ grep "нужная строка" file

Команда grep осуществляет поиск заданного шаблона в каждом файле. Она также ищет шаблоны, разделенные символами новой строки, и выводит каждую строку, совпадающую с шаблоном.

команда grep
Использование команды grep для поиска всех слов «React» в файле.

Опция -i делает текущий поиск нечувствительным к регистру. То есть, в нашем случае, с заданным шаблоном совпадут «REACT», «REact» и «react».

$ grep -i "REact" file

Можно вывести просто число строк, где содержится заданный шаблон — при помощи опции -c (count).

$ grep -c "react" index.js
Использование команды для подсчета строк с вхождениями заданного слова

Есть вариации программы grep: egrep и fgrep, являющиеся, по сути, той же командой grep, только с опциями -E и -F соответственно. Эти вариации уже устарели, но предоставляются с целью поддержки обратной совместимости.

При помощи команды grep можно делать очень много всего. Если хотите изучить ее получше, обратитесь к документации.

2. ls

$ ls

Команда ls выдает список (англ. list, отсюда название команды) файлов и директорий в текущей директории. Если в качестве аргумента указан путь к файлу, команда выведет информацию по этому файлу ( какую именно — зависит от опций). Если в качестве аргумента передан путь к директории, будет выведена информация по файлам и директориям внутри нее.

Команда ls
Использование команды ls: выведены все файлы текущей директории.

Вероятно, вы заметили, что файлы в списке серого цвета, а директории — голубоватого. Разные цвета (они могут быть и другими) помогают нам быстрее различать файлы и директории.

3. pwd

$ pwd

Команда pwd это утилита командной строки для вывода текущей рабочей директории (англ. print working directory). Команда выводит полный (абсолютный) путь к текущей директории в стандартный вывод.

Команда pwd

4. cat

$ cat somefile.js

При помощи команды cat можно воздействовать на текстовые файлы тремя разными способами:

  • Выводить их на экран.
  • Объединять файлы.
  • Создавать новые файлы.

Чаще всего при помощи команды cat читают содержимое файлов, это простой и удобный способ вывода текста на экран:

Команда cat

В следующем примере стандартный вывод команды cat перенаправляется в файл somefile2. Для перенаправления потока используется оператор перенаправления. Если файл somefile2 до этого не существовал, он создастся.

$ cat somefile > somefile2
Создание файлов при помощи cat.

5. echo

$ echo "какой-нибудь текст"

Команда echo используется в Linux для вывода строки текста, которая передается команде в качестве аргумента. Это встроенная команда, главным образом используемая в скриптах.

Команда echo

6. touch

$ touch somefile

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

Создание файла при помощи команды touch
Создание нового файла при помощи touch.

Обратите внимание: в этом примере мы использовали touch для создания файла, а cat — для проверки, что у файла внутри. Поскольку только что созданный файл index2.js пуст, команда cat ничего не вернула.

Основные различия между cat и touch (относительно создания файлов):

  • cat — используется для создания файла с содержимым.
  • touch — создает файлы без содержимого (пустые).

Примечание редакции:

Команда touch, как и cat, имеет не одно назначение. С ее помощью можно менять метку времени доступа и изменения файла. Это, собственно, ее основная функция. Используется это следующим образом. Допустим, у вас есть файл somefile, созданный 2019-01-01. Если вы запустите команду

$ touch somefile

временная метка изменится на время запуска команды. Проверить изменение времени модификации файла можно, запустив команду ls -l. Также при помощи команды touch можно устанавливать файлам не текущее, а произвольное время модификации (или доступа).

7. mkdir

$ mkdir some-directory

Команда mkdir (от англ. make directory) создает новые директории в текущей. Это гораздо удобнее, чем кликать в графическом интерфейсе!

Команда mkdir
Создание новой (пустой) директории при помощи mkdir.

7.1 rm

$ rm somefile

Команда rm (от англ. remove, «удалять») предназначена для удаления файлов.

Удаление файла при помощи команды rm.
Удаление файла при помощи команды rm.

По умолчанию команда rm не удаляет директории. Чтобы все-таки воспользоваться ею для удаления папки, нужно добавить опции -rf (Прим. ред.: -r (или -R) означает «рекурсивно», опция -f нужна, чтобы командная строка не переспрашивала вас относительно каждого файла в директории, действительно ли вы хотите его удалить).

$ rm -rf some-directory
Удаление директории
Удаление директории при помощи команды rm (обратите внимание на опции).

7.2 rmdir

$ rmdir some-directory

Команда rmdir удаляет пустые директории.

Удаление пустой директории при помощи rmdir.
Удаление пустой директории при помощи rmdir.

8. tail

$ tail somefile

Команда tail (англ. tail — «хвост») читает заданный в качестве аргумента файл и выводит его последнюю часть («хвост»).

Примечание редакции:

По умолчанию выводятся последние 10 строк файла. Если нужно вывести другое количество строк, его нужно указать после опции -n. Также возможно выводить «хвосты» не одного, а двух файлов (полезно для их сравнения).

Вывод последних строк двух разных файлов.
Вывод последних строк двух разных файлов.

Команда tail весьма полезна, когда нужно просмотреть crash reports или логи истории. Вот пример работы с логами:

Примечание редакции:

Существует команда head (англ. head — «голова»), функционал которой полностью аналогичен функционалу tail, только выводятся первые строки файлов.

9. wget

$ wget someurl

GNU Wget это свободное ПО для скачивания файлов через HTTP, HTTPS, FTP и FTPS — самые широко используемые интернет-протоколы. Этот инструмент командной строки не интерактивный, так что его запросто можно вызывать в скриптах, задачах CRON, терминалах без поддержки X-Windows и т. д.

Использование wget для извлечения информации о веб-странице.
Использование wget для извлечения информации о веб-странице.

GNU Wget имеет много функций, позволяющих получать большие файлы или копировать целые веб- или FTP-сайты. Например, Wget:

  • Запускается на большинстве UNIX-подобных операционных систем, а также в Microsoft Windows
  • Может рекурсивно создавать зеркальные копии директорий.
  • Опционально конвертирует абсолютные ссылки в скачиваемых документах в относительные.
  • Поддерживает HTTP-прокси
  • Поддерживает HTTP-куки
  • Поддерживает непрерывные HTTP-соединения
  • Может работать в фоне.
  • Использует локальные временные метки для определения, должен ли документ быть заново скачан при создании зеркального сайта.

GNU Wget распространяется под лицензией GNU General Public License. Более подробные сведения можно найти в официальной документации.

10. find

$ find path -name filename

Команда find позволяет быстро найти файл или директорию. Это полезно при работе над большим проектом с сотнями файлов и множественными директориями.

Поиск всех файлов с названием index.js.
Поиск всех файлов с названием index.js.

Поиск файлов определенного типа

При помощи команды find можно также искать в заданной директории (и ее поддиректориях) файлы определенного типа. Например, следующая команда будет искать все файлы с расширением .js в текущем каталоге.

$ find . -name "*.js"
Поиск всех файлов с расширением .js
Поиск всех файлов с расширением .js

11. mv

$ mv somefile /to/some/other/path

Команда mv (от англ. move — «перемещать») перемещает файлы (один или несколько сразу) или директории с места на место.

Перемещение папки some-directory из папки components в папку utils.
Перемещение папки some-directory из папки components в папку utils.

Примечание редакции:

При помощи этой команды осуществляется переименование файлов и директорий. Для этого в качестве целевого имени нужно указать новое имя файла (директории).

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here