Основные команды, которые помогут вам начать работу с терминалом
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, где я редактирую код, и
- хотя бы один сеанс для запуска сервера разработки
Хотите узнать больше?
Командная строка — это отличный набор инструментов, который поначалу часто вызывает затруднения. В этом блоге я иногда пытаюсь исследовать такие темы в удобной для начинающих форме, чтобы помочь новым разработчикам изучить эти инструменты, чтобы они могли работать более эффективно. Если вы заинтересованы в получении обновлений о моих новых материалах, связанных с интерфейсом командной строки, подпишитесь здесь.
Также опубликовано здесь
Оригинал