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

Оболочка Unix — это интерпретатор командной строки или, проще говоря, ее интерфейс, применяемый в системах Unix и ей аналогичных. Оболочка одновременно является интерактивным командным и скриптовым языком, применяемым операционной системой для контроля ее функционирования при помощи скриптов.

Любая операционная система, основанная на Linux или Mac имеет командную строку по умолчанию. Обычно она называется “терминал”. Командная строка позволяет нам легко перемещать и переименовывать файлы, сортировать данные и осуществлять навигацию. 

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

1. grep

$ grep "some string" file

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

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

Добавление опции -i позволяет искать без учета регистра. В этом случае совпадениями будут зачтены такие слова, как “REACT”, “REact” и “react”.

$ grep -i "REact" file

Используя значение -c (count), мы можем найти число строк, совпадающих с заданным шаблоном/строковым типом.

$ grep -c "react" index.js
Подсчитывание количества упоминаний слова “react” в файле.

Также отмечу, что варианты исполнения команды egrep и fgrep означают то же самое, что и grep -E и grep -F, соответственно. Это устаревшие варианты, применяемые для обратной совместимости.

Вы можете использовать grep для гораздо большего числа задач. Подробная инструкция по применению доступна здесь.

2. ls

$ ls

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

Применение команды ls для отображения всех файлов в текущей директории.

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

3. pwd

$ pwd
Вывод пути текущей рабочей директории (pwd)

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

4. cat

$ cat somefile.js
Отображение содержимого файла посредством cat

Команда cat имеет три возможных функции по отношению к текстовым файлам:

  • Их отображение.
  • Объединение копий.
  • Создание новых.

Наиболее распространенное применение cat —это чтение содержимого файла. Она в этом отношении является наиболее удобной.

В нижеприведенном примере стандартный вывод cat перенаправлен к file2 посредством перенаправляющего оператора (он представлен в виде угловой скобки справа от команды):

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

5. echo

$ echo "some text"

Команда echo применяется в Linux для отображения строки текста/строкового типа, которая выступает в качестве аргумента. echo является встроенной командой, чаще всего применяемой в оболочных скриптах и пакетных файлах для вывода системного текста на экран или в файл.

6. touch

$ touch somefile

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

Создание нового файла посредством touch.

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

Вот основные отличия между cat и touch:

  • cat применяется для создания файлов с содержимым.
  • touch создает пустые файлы. Помните. что файл, созданный командой touch, пустой. Эта функция полезна в случаях, когда изначально нет данных для размещения в файле.

7. mkdir

$ mkdir some-directory

mkdir создает новую пустую директорию в текущем местоположении. Вместо того, чтобы с этой целью кликать повсюду в текстовом редакторе или графическом интерфейсе, просто используйте эту команду:

Создание новой директории посредством mkdir.

Обратите внимание, что мы можем заглянуть внутрь этой директории через команду ls.

7.1 rm

$ rm someFile

Rm применяетсядля удаления и на все 100% справляется со своей задачей, проще говоря — окончательно удаляет файл.

Удаление файла через команду rm

По умолчанию эта команда не удаляет директории. Однако это возможно, если добавить значение -rf.

$ rm -rf some-directory
Удаление директории через команду rm (обратите внимание, что для этого мы добавили дополнительное значение -rf.

Имейте в виду, что в этом случае удаляется директория целиком, включая все ее содержимое.

7.2 rmdir

$ rmdir some-directory

Команда rmdir удаляет каталог только в случае, когда в нем нет содержимого.

Удаление пустой директории через rmdir

8. tail

$ tail somefile

Команда tail (хвост) считывает файл и выводит его последнюю часть (тот самый “хвост”).

Вывод определенного числа (-n) последних строк вместо 10 по умолчанию

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

Ниже приведен пример ее применения при работе с логами файлов.

# tail /var/log/messages
Mar 20 12:42:22 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x280436dd)
Mar 20 12:42:24 hameda1d1c avahi-daemon[2027]: Registering new address record for fe80::4639:c4ff:fe53:4908 on eth0.*.
Mar 20 12:42:28 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x280436dd)
Mar 20 12:42:28 hameda1d1c dhclient[4334]: DHCPACK from 10.76.198.1 (xid=0x280436dd)
Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.76.199.87.
Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: New relevant interface eth0.IPv4 for mDNS.
Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: Registering new address record for 10.76.199.87 on eth0.IPv4.
Mar 20 12:42:30 hameda1d1c NET[4385]: /sbin/dhclient-script : updated /etc/resolv.conf
Mar 20 12:42:30 hameda1d1c dhclient[4334]: bound to 10.76.199.87 -- renewal in 74685 seconds.
Mar 20 12:45:39 hameda1d1c kernel: usb 3-7: USB disconnect, device number 2

9. wget

$ wget someurl

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

Применение wget для извлечения информации о web-странице.

GNU Wget имеет множество инструментов, позволяющих легко извлекать крупные файлы или зеркалить целые web/FTP сайты. 

Например:

  • Может возобновлять отмененные загрузки посредством REST и RANGE.
  • Может использовать шаблоны имен файлов и рекурсивно зеркалить директории.
  • Поддерживает работу с NLS файлами сообщений для различных языков.
  • При необходимости может преобразовывать абсолютные ссылки загруженных документов в относительные, после чего эти документы могут ссылаться локально один на другой.
  • Запускается на большинстве операционных систем семейств UNIX и Microsoft Windows.
  • Поддерживает HTTPS прокси.
  • Поддерживает HTTP куки.
  • Поддерживает постоянные HTTP соединения.
  • Может работать в автоматическом либо фоновом режиме.
  • Использует временные метки локальных файлов для определения необходимости повторной загрузки при зеркалировании.
  • GNU Wget распространяется под лицензией GNU General Public.

Дополнительную информацию можно получить в официальной документации этого продукта.

10. find

$ find path -name filename

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

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

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

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

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

11. mv

$ mv somefile /to/some/other/path

Команда mv перемещает файлы и директории с места на место. Она поддерживает возможность их перемещения как по одному, так и группами.

Перемещение some-directory из директории components в каталог utils.

Заключение

Благодарю за чтение и надеюсь, что вы нашли много нового для себя. 

Оставайтесь любопытными и жаждущими знаний!

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


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

Предыдущая статьяРуководство по анализу данных с SQL
Следующая статьяЭкспериментируем с битбордом и битовыми операциями в Unreal 4