Основные команды, которые помогут вам начать работу с терминалом
16 февраля 2023 г.Поначалу интерфейс командной строки может быть ошеломляющим: это пустой экран и подсказка. Когда вы печатаете, текст появляется на экране. Но прежде чем вы сможете извлечь из этого какую-либо пользу, вам нужно знать, что печатать. Давайте рассмотрим команды, которые помогут добиться цели, когда вы только начинаете работать с командной строкой.
Рабочий каталог
Прежде чем мы начнем какую-либо значимую работу, нам нужно сначала узнать, где мы находимся. Запускаемые вами команды оцениваются в папке — рабочем каталоге. Есть несколько команд, которые помогут вам проверить текущий контекст и перейти в более удобное место:
pwd
– показывает полный путь к вашему рабочему каталогу:
cd <folder>
— переключает рабочий каталог на<folder>
:
Еще несколько примеров с cd
:
cd ..
— перемещает в родительскую папку текущей.cd –
– возвращает в папку предварительного просмотра.cd ~
— переход в домашний каталог
Список файлов
Итак, теперь, когда мы знаем, в какой папке мы находимся, давайте теперь посмотрим, что у нас внутри. Команда для отображения списка файлов ls
:
Как видите, и файлы, и каталоги показаны вместе, и не совсем понятно, что к чему. Обычно я запускаю эту команду с двумя параметрами:
-a
— показать все файлы, скрытые-l
— отображать информацию в длинном формате.
В результате вы увидите:
.
&..
— псевдонимы самой папки и ее родительской папки.git
– скрытая папка для хранения файлов, используемых репозиторием Git.- каждая строка начинается с
-
илиd
. Первый означает файлы; второй означает каталоги.
Управление файлами и папками
Чтобы закончить с основами, нам просто нужно несколько команд для изменения файлов и каталогов. Команды для этого:
touch <file-name>
— создает пустой файлmkdir <имя-каталога>
— создает пустую папкуrm <file-name>
— удаляет указанный файлrm -d <имя-каталога>
— удаляет указанную папку
Прочитайте понятное руководство
man
— это команда, которая показывает вам руководство для других команд. Все команды, которые мы упоминали до сих пор, имеют множество опций. Вы можете узнать о них больше прямо из терминала, используя man
. Вы запускаете man <command name>
:
Возвращаемое значение
echo
— это простая программа, которая возвращает свои аргументы в стандартный вывод. Вы можете использовать его для записи значения в файл:
echo Test > test.txt
Отображать содержимое файлов
cat
инструмент, предназначенный для объединения нескольких файлов,cat. Он часто используется для выбора содержимого только одного файла, чтобы передать его на стандартный ввод другой команды с помощью оператора канала. Пример:
cat file-1.txt file-2.txt
Подсчитать содержимое файла
В контексте CLI wc
означает количество слов. Он позволяет проверить длину вывода других файлов:
Вывод здесь означает, что в указанном файле мы имеем:
- 29 строк
- 116 слов
- 542 символа
Просмотреть часть файла
head
и tail
— это утилиты для чтения нескольких строк с начала или с конца файлов соответственно. По умолчанию оба показывают 10 строк. Вы можете увидеть их в действии:
Проверка всего файла
less
— это команда, которая разбивает файл или его входные данные на страницы, чтобы они помещались на экране. Я рассмотрел основные быстрые клавиши навигации в моей недавней статье:< /p>
Вы можете использовать less
для просмотра вывода любой другой команды — просто соединитесь с помощью конвейера:
Если вас смущает терминология, я объясню стандартный ввод, вывод и конвейеры здесь.
Поиск содержимого файла
grep
— отличный инструмент поиска, поддерживающий регулярные выражения. Его сила заключается в гибкости: указав один из его многочисленных параметров, вы можете настроить его поведение в соответствии с вашими потребностями. По умолчанию он ожидает поступления значений на стандартный ввод — не самый распространенный вариант использования. Поэтому вы, скорее всего, захотите запустить его как фильтр внутри конвейера команд.
Типичное использование в качестве фильтра канала выглядит следующим образом:
В этом конвейере:
cat *txt
– объединяет все файлы в текущей папке, имена которых заканчиваются на txt, и возвращает их в виде стандартного вывода.grep 1
— возвращает только те строки, в которых есть1
.
Обратный поиск
Часто проще описать, чего вы не хотите, чем чего вы хотите. С помощью grep
вы можете легко использовать его для фильтрации некоторых строк, добавив к нему параметр -v
. Например:
Внимание! Вы можете комбинировать многие команды с оператором канала:
cat *txt | grep -v 1 | grep file-
Content of file-2.txt
Поиск в файлах
Grep также позволяет выполнять поиск в файлах — вам просто нужно добавить -r
(для рекурсивного поиска в подкаталогах):
В результате вы увидите:
./file
— путь к файлуLorem ipsum
— соответствующая строка
Только имена файлов
Если вас интересует только то, какие файлы имеют соответствующие значения, вы можете добавить к своей команде параметр -l
:
Эта опция становится особенно полезной, когда вы комбинируете ее со следующей командой/
Вызов команд на основе вывода других команд
xargs
берет строки из стандартного ввода и добавляет их в качестве параметров для другой команды. Одно из распространенных применений — найти все файлы, содержащие какое-либо значение, и выполнить над ними команду, например удалить их:
grep -rl Lorem | xargs rm
Вывод команды отсутствует, но давайте посмотрим, какие файлы доступны до и после выполнения команды:
ls
long-file.txt
На данный момент файлов нет, но позже в этой статье мы увидим инструмент, который поможет нам отслеживать и восстанавливать файлы.
Как вы можете видеть во втором запуске ls -R
(рекурсивный список каталога и каждого подкаталога):
файл
исчез из верхнего каталога иanother-file.txt
исчез из вложенной папки.
Сценарии редактирования файлов
sed
— это потоковый редактор. Это позволяет изменять значения в канале:
echo 'hello world' | sed 's/world/you/'
hello you
В нашем примере параметр s/world/you/
обозначает следующее:
s
— означает заменуworld
– регулярное выражение для соответствия заменяемому значениювы
— вместо этого будет использоваться новое значение
Редактирование файлов на диске
Более практичным вариантом использования sed
является редактирование файлов. Когда вы можете комбинировать его с grep
и xargs
, вы можете начать разработку довольно изящных однострочников, которые помогут вам применять большие обновления к вашей кодовой базе:
# at Linux
grep -lr file | xargs sed -i -e 's/file/File/g'
# at macOS
grep -lr file | xargs sed -i '' -e 's/file/File/g'
В нашей команде:
grep -lr файл
— возвращает список всех файлов, содержащихфайл
.xargs
— превращает их во входные параметры дляsed
.sed -i -e
илиsed -i '' -e
— переключает редактор для работы непосредственно с файлами.s/file/File/g
— заменяет строчную букву «файл» на прописную «файл»./g
в конце означает, что изменение должно быть глобальным. Он должен обновлять каждый экземпляр, найденный в файле, а не только первый экземпляр в каждой строке.
Отслеживание изменений в файлах
Git – это система контроля версий, широко распространенная в нашей отрасли. Если вы намерены стать разработчиком, вам в конечном итоге нужно будет этому научиться. Я уже много написал о Git, но здесь мы сосредоточимся на командах Git, которые хорошо интегрируются с другими интерфейсами командной строки. инструменты, которые мы рассмотрели здесь.
git grep
Эта команда основана на grep
. Он позволяет выполнять поиск по файлам, отслеживаемым репозиторием. Когда вы отслеживаете свои файлы с помощью Git, вы можете использовать git grep
вместо grep -r
. Основное преимущество заключается в том, что он автоматически игнорирует файлы, которые вы настроили Git на игнорирование, что часто бывает с node_modules
.
Подобно исходному grep
, вы можете использовать параметр -l
, чтобы получить только имена файлов:
$ git grep -l File
file-a
file-b
file-c
git ls-файлы
Команда для вывода списка всех файлов, отслеживаемых репозиторием. Вы можете комбинировать его с grep
, чтобы найти все файлы, соответствующие некоторому шаблону, а затем использовать xargs
, чтобы выполнить какую-либо операцию со всеми ними.
Текстовый редактор
vim
— это текстовый редактор, который является чем-то вроде занудного клише, и мой любимый редактор. Я переключился на него после того, как устал от старого компьютера, на котором с трудом запускалась Eclipse и другие большие интегрированные среды разработки (IDE).
Vim быстрый, гибкий и предлагает отличные сочетания клавиш. Более того: сочетания клавиш — единственный способ использовать его, потому что он не поддерживает мышь. Кривая обучения немного крутая — поначалу может быть сложно даже закрыть ее. В долгосрочной перспективе изучение Vim может стать хорошей инвестицией. Что делает его особенно ценным, так это то, что команды редактора в Vim очень близки к командам, используемым sed
и шаблонам поиска в greps
. То, что вы узнаете в одном из этих инструментов, вы сможете сразу применить и в других.
Утилиты буфера обмена
Иногда вам нужно получить вывод программы командной строки и просто вставить его в одно из приложений графического интерфейса. Все операционные системы содержат некоторые утилиты, которые позволяют вам сделать именно это:
pbcopy
— утилита, доступная в macOS.xclip
— утилита, которую можно установить в Ubuntu .
cat файл-1.txt | копировать
Теперь я могу вставить содержимое файла в браузер.
Управление сеансами терминала
tmux
— это мультиплексор терминала — программа, позволяющая запускать несколько сеансов в одном окне эмулятора терминала. Это позволяет вам использовать разные «окна» для разных целей. Например, у меня обычно:
- один сеанс для выполнения команд Git,
- другой с vim, где я редактирую код, и
- хотя бы один сеанс для запуска сервера разработки
Хотите узнать больше?
Командная строка — это отличный набор инструментов, который поначалу часто вызывает затруднения. В этом блоге я иногда пытаюсь исследовать такие темы в удобной для начинающих форме, чтобы помочь новым разработчикам изучить эти инструменты, чтобы они могли работать более эффективно. Если вы заинтересованы в получении обновлений о моих новых материалах, связанных с интерфейсом командной строки, подпишитесь здесь.
Также опубликовано здесь
Оригинал