Простые консольные команды, которые стоит знать всем

Автор оригинала: Daan
  • Перевод
Навыки работы в терминале помогают быть более продуктивным.


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

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

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

Список базовых команд:


pwd — информация о каталоге
cd — смена каталога
ls — список файлов в каталоге
cp & mv — скопировать/переместить файл/каталог
mkdir & touch — создать каталог/файл
rmdir & rm — удалить каталог/файл
cat, tail & head — прочитать файл
grep — поиск текста в файле по регулярному выражению
find — поиск файла/каталога
EDISON Software - web-development
Статья переведена при поддержке компании EDISON.

Мы программируем серверы, как управляемые через консоль, так и имеющие удобный пользовательский интерфейс.

Мы очень любим работать с интефейсами! ;-)

1. pwd


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


Хотя pwd не имеет столько параметров, сколько у большинства других команд (поскольку она довольно проста), с её помощью можно игнорировать символические ссылки. Для этого надо передать опцию -P.

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

2. cd


Другая часто используемая команда, это cd. cd — это сокращение от change directory, т.е. смена каталога. Как следует из названия, она позволяет изменить текущий рабочий каталог.


Также есть возможность переместиться сразу на несколько уровней. Для этого нужно указать полный путь к каталогу, к которому необходимо перейти.

В этом примере мы переходим в папку проекта, которая находится внутри папки «Загрузки»:


Чтобы перейти в родительскую папку, надо использовать две точки: ... В следующем примере мы переходим в папку проекта, которая находится в папке «Загрузки». При выполнении cd .. увидите, что текущий рабочий каталог меняется на указанную папку.


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



3. ls


Следующая команда — это ls, сокращение от list, т.е. список. Она выводит список всех файлов в каталоге. Можно также указать каталог, чтобы получить список файлов в нём. Если каталог не указан, используется текущий рабочий каталог.


Обратите внимание, что есть несколько очень полезных опций, с помощью которых можно извлекать ещё более ценную информацию. Опция -a, например. Эта опция позволяет увидеть в списке скрытые файлы (названия которых начинаются с точки). Опция -l выдаёт длинный список, в котором, помимо прочего, указаны размеры файлов и разрешения.

Опции можно комбинировать:

ls -al

4. cp & mv


Команда cp происходит от слова copy, т.е. копирование. Позволяет копировать файлы и каталоги. Первый указанный файл/каталог является исходным (что копируем), на втором месте — местом назначения (куда копируем). В следующем примере мы перемещаем изображение в папку «Загрузки».


При копировании каталога можно использовать опцию -R для рекурсивного копирования (то есть, вместе с подпапками). Обратите внимание, при этом скрытые файлы также будут скопированы.

Существует довольно много вариаций, как копировать файлы и каталоги. Например, возможно скопировать только файлы с определенным расширением. В следующем примере копируются все файлы с расширением jpg в папку «Загрузки».


Помимо команды cp есть также команда mv, которая обозначает move, т.е. перемещение. Эта команда используется для перемещения файлов и каталогов. Работает в целом так же, как и cp. Тем не менее, есть различия. Например, команда mv не идёт с опцией -R.

Чтобы изучить все параметры, доступные для команды mv, просто введите:

man mv

5. mkdir & touch


Чтобы создать каталог, можно воспользоваться командой mkdir, которая обозначает make directory, т.е. создание каталога. Эта команда требует обязательный аргумент: имя нового каталога. Проверить, была ли команда выполнена успешно, можно с помощью ls, рассмотренной выше.


Создать файл так же просто, как создать каталог. Вместо mkdir нужно использовать команду touch для создания нового файла.


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

6. rmdir & rm


Так же, как есть две разные команды для создания файлов и каталогов, также имеются две отдельные команды, когда речь идёт об удалении файлов и каталогов.

Чтобы удалить каталог, можно использовать команду rmdir, что является сокращением от remove directory, т.е. удаление каталога. Имейте ввиду — команда удаляет только пустые каталоги.


Более мощной является команда rm. Как вы, наверное, догадались, это сокращение от remove, т.е. удаление. Команда rm удаляет каждый указанный файл. Хотя с помощью этой команды можно удалить и каталоги, по умолчанию она этого не делает.


Когда rm выполняется с опцией -r, рекурсивно удаляются соответствующие каталоги, их подкаталоги и все файлы, которые там содержатся.

Чтобы игнорировать несуществующие файлы и никогда не запрашивать подтверждение их удаления, можно использовать опцию -f.



7. cat, tail & head


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



Обратите внимание: выводится весь файл. Также есть случаи, когда вам нужны только первые или последние X строк файла. Для этого используется команды tail и head. tail выводит последние 10 строк файла, тогда как head — первые 10.


Используя опцию -n, можно указать, сколько строк нужно выводить. Тут приведён пример с tail, для head работает точно так же.



8. grep


Команда grep, это сокращение от global regular expression print, т.е. глобальный вывод регулярного выражения. Используется для поиска текста. Файл будет просканирован на предмет информации, которую вы требуется получить, и результат будет представлен в указанном формате.

Начнём с очень простого примера. Есть файл, содержащий названия всех стран. Мы хотим проверить, есть ли слово Netherlands (Нидерланды) в списке. Обратите внимание, по умолчанию grep чувствителен к регистру.

Первый передаваемый аргумент — слово, которое ищем. А второй — файл, в котором будем искать.


Для поиска без учёта регистра используется опцию -i. В следующем примере найдётся и BeL и bel и BEL.


Обратите внимание, в приведённых выше примерах видно, что grep выводит всю соответствующую шаблону строку в терминал. Для ограничения количества совпадающих строк, используйте опцию -c.



9. find


Последняя команда на сегодня — find (поиск), позволяющая быстро найти файл или каталог. Допустим, нужны все CSS-файлы в текущем каталоге. Мы могли бы получить их список, используя команду find.


Обратите внимание, команда find ищет и в подпапках тоже.





Теперь, когда мы прошли весь список, я надеюсь, что вы углубили свои знания для работы с терминалом. Может, вам что-то и пригодится, или даже узнали для себя о новой команде или опции к ней.

Если считаете, что в этом списке отсутствует команда или у вас просто есть отличное дополнение к этому списку, пожалуйста, дайте мне знать.

Спасибо за внимание!

Технические переводы в блоге компании Эдисон:

Edison
Изобретаем успех: софт и стартапы

Комментарии 3

    0

    Вы серьезно? Делать перевод того, что знает уже почти каждый школьник?!

      0
      Месячник командной строки unix-подобных систем стартовал. Даёшь его досрочное завершение!
        0
        Ужас какой-то. Хотя бы побольше флагов полезных и разных расписали

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое