Сегодня мы собираемся изучить некоторые трюки производительности командной строки.
Как вы уже знаете, мы используем команду «cd» для перемещения между стеком каталогов в Unix-подобных операционных системах.
В этом руководстве я собираюсь научить вас, как перемещаться по каталогам быстрее, без необходимости часто использовать команду «cd».
Может быть для этого есть много способов, но я знаю только следующие четыре метода.
Я буду постоянно обновлять это руководство, когда буду сталкиваться с любыми методами или утилитами для решения этой задачи.
Быстрая навигация по каталогам в Linux
Способ 1: использование команд Pushd, Popd и Dirs
Это наиболее частый метод, который я использую каждый день для перемещения между стопками каталогов.
Команды «Pushd», «Popd» и «Dirs» предустановлены в большинстве дистрибутивов Linux, так что не беспокойтесь об их установке.
Эти трио-команды очень полезны, когда вы работаете с глубокой структурой каталогов и скриптами.
Способ 2: использование утилиты «bd»
Утилита «bd» также помогает вам быстро вернуться к определенному родительскому каталогу без необходимости многократно вводить «cd ../../.» в Bash.
Bd также доступен в репозиториях Debian extra и Ubuntu Universe.
Таким образом, вы можете установить его, используя менеджер пакетов «apt-get» в Debian, Ubuntu и других системах на основе DEB, как показано ниже:
$ sudo apt-get update
$ sudo apt-get install bd
Для других дистрибутивов вы можете установить, как показано ниже.
$ sudo wget --no-check-certificate -O /usr/local/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd
$ sudo chmod +rx /usr/local/bin/bd
$ echo 'alias bd=". bd -si"' >> ~/.bashrc
$ source ~/.bashrc
Чтобы включить автозаполнение, запустите:
$ sudo wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd
$ source /etc/bash_completion.d/bd
Утилита Bd теперь установлена.
Давайте рассмотрим несколько примеров, чтобы понять, как быстро перемещаться по стеку каталогов с помощью этого инструмента.
Создайте несколько каталогов.
$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10
Приведенная выше команда создаст иерархию каталогов.
Давайте проверим структуру каталогов, используя команду:
$ tree dir1/ dir1/ └── dir2 └── dir3 └── dir4 └── dir5 └── dir6 └── dir7 └── dir8 └── dir9 └── dir10 9 directories, 0 files
Хорошо, теперь у нас есть 10 каталогов.
Допустим, вы в настоящее время находитесь в 7-м каталоге, то есть в dir7.
$ pwd /home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Вы хотите перейти на dir3. Обычно вы набираете:
$ cd /home/sk/dir1/dir2/dir3
Правильно? да! Но это не обязательно.
Чтобы вернуться к dir3, просто наберите:
$ bd dir3
Теперь вы будете в dir3.
Легко, не правда ли?
Он поддерживает автоматическое заполнение, поэтому вы можете просто ввести частичное имя каталога и нажать клавишу табуляции, чтобы автоматически завершить полный путь.
Чтобы проверить содержимое определенного родительского каталога, вам не нужно быть там. Просто введите:
$ ls `bd dir1`
Приведенная выше команда отобразит содержимое dir1 из вашего текущего рабочего каталога.
Для получения более подробной информации, проверьте следующую страницу GitHub.
Способ 3: использование скрипта «up»
«up» – это скриптй оболочки, позволяющий быстро перейти в родительский каталог.
Он хорошо работает на многих популярных оболочках, таких как Bash, Fish, Zsh и т. д.
Установка также абсолютно проста!
Чтобы установить «Up» на Bash, запустите следующие команды:
$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.bashrc
Скрипт up регистрирует функцию «up» и некоторые функции завершения через ваш файл «.bashrc».
Обновите изменения, используя команду:
$ source ~/.bashrc
На zsh:
$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc
Скрипт up регистрирует функцию «up» и некоторые функции завершения через ваш файл «.zshrc».
Обновите изменения, используя команду:
$ source ~/.zshrc
На fish:
$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish
$ source ~/.config/up/up.fish
Скрипт up регистрирует функцию «up» и некоторые функции завершения через «funcsave».
Теперь пришло время увидеть некоторые примеры.
Давайте создадим несколько каталогов.
$ mkdir -p dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10
Допустим, вы находитесь в 7-м каталоге, то есть в dir7.
$ pwd /home/sk/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Вы хотите перейти в dir3.
Используя команду «cd», мы можем сделать это, набрав следующую команду:
$ cd /home/sk/dir1/dir2/dir3
Но действительно легче вернуться к dir3, используя скрипт «up»:
$ up dir3
Теперь вы будете в dir3.
Чтобы перейти на один каталог вверх, просто наберите:
$ up 1
Чтобы вернуться назад на два каталога:
$ up 2
Это так просто. Я набрал полный путь? Нет.
Также он поддерживает завершение вкладки.
Так что просто введите частичное имя каталога и нажмите вкладку, чтобы завершить полный путь.
Для более подробной информации, посетите страницу GitHub.
Пожалуйста, помните, что инструменты «bd» и «up» могут только помочь вам вернуться назад, то есть к родительскому каталогу текущего рабочего каталога.
Вы не можете двигаться вперед.
Если вы хотите переключиться на dir10 с dir5, вы не сможете!
Вместо этого вам нужно использовать команду «cd» для переключения на dir10.
Эти две утилиты предназначены для быстрого перемещения в родительский каталог!
Способ 4. Использование инструмента «Shorcut»
Это еще один удобный способ быстро и легко переключаться между различными каталогами.
Он похож на команду алиасов.
В этом методе мы создаем ярлыки для часто используемых каталогов и используем имя ярлыка, чтобы перейти в этот соответствующий каталог, не вводя путь.
Если вы работаете с глубокой структурой каталогов и стеком каталогов, этот метод значительно сэкономит время.
Вы можете узнать, как это работает, в руководстве, приведенном ниже.
В этой статье вы узнали о различных способах быстрой и простой навигации по стеку каталогов в Linux.
Как видите, не так сложно быстро просмотреть кучу каталогов.
Теперь прекратите вводить «cd ../../ ..» бесконечно, используя эти инструменты.
Если вы знаете какой-либо другой полезный инструмент или метод для более быстрой навигации по каталогам, сообщите нам об этом в разделе комментариев ниже.
Я рассмотрю и добавлю их в этом руководстве.