В терминале Ubuntu я трачу много времени на переключение в определенный каталог при каждом запуске компьютера. Есть ли способ облегчить этот процесс? Могу ли я использовать какую-нибудь горячую клавишу или быструю смену каталога (например, быстрый набор на телефоне)?
eg:
cd 1:Changes to saved directory one
Существует две опции:
Если Вы хотите быть в определенном каталоге everyt время, Вы открываете терминал удара, редактируете Ваш ~/.bashrc
файл и просто добавляет строку cd Directory
, например, cd ~/Desktop
.
Если Вы хотите иметь несколько ярлыков, можно всегда использовать глобальные переменные, которые можно начаться Ваш ~/.bashrc
файл следующим образом export a=/tmp
и затем Вы смогли бы сделать cd $a
который принес бы Вам к /tmp
.
Помните это после редактирования Вашего .bashrc
файл необходимо перезапустить терминал или открыть новый.
Псевдонимы Bash полезны для создания ярлыков для часто запускаемых команд.
В ~/.bashrc
добавьте строку, подобную следующей, чтобы создать псевдоним:
alias jump1='cd /long/path/name/that/is/frequently/used'
Закройте и снова откройте терминал или запустите source ~/.bashrc
.
Теперь вы можете просто запустить jump1
, чтобы выполнить эту длинную команду cd
.
См. Также:
Также взгляните на autojump
, это создает базу данных с ранее посещаемыми каталогами, и затем можно перейти к нему. Так, например, Вы имеете
/home/user/this/long/and/annoyingly/deep/directory/workstuff
затем, если Вы посетили его, после того как можно перейти к нему
j workstuff
или даже
j stuff
потому что это также работает с частичными соответствиями. Если больше чем один каталог соответствует Вам переход к тому, который больше всего посещают, если это не то, Вы хотели, то повторите команду для движения во второе.
Однако это поправляется! Если у Вас также есть каталог
/home/user/stuff
и Вы делаете
j stuff
и затем TabTabTab Вы добираетесь (в порядке наиболее посещаемых)
$ j stuff__
stuff__1__/home/user/this/long/and/annoyingly/deep/directory/workstuff
stuff__2__/home/user/stuff
и затем можно просто нажать количество каталога, который Вы хотите!
Устанавливать Вас может просто использовать sudo apt-get install autojump
и затем необходимо добавить
source /usr/share/autojump/autojump.bash
к Вашему ~/.bashrc
.
Больше информации здесь: https://github.com/wting/autojump (также инструкция относительно того, как установить это от src, который получает Вас новая версия),
anc был разработан именно для этого варианта использования.
https://github.com/tobimensch/anc
Вот выдержка из README.md:
# make the current directory the default anchor:
$ anc s
# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc
# go back to /usr/local :
$ anc b
# add another anchor:
$ anc a $HOME/test
# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test
# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1
# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first
# use text matching to jump to $HOME/projects/first
$ anc pro fir
# use text matching to jump to $HOME/documents/first
$ anc doc fir
# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1
# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1
# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*
# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]
Полное раскрытие: я Автор anc.
Даже при том, что существует какой-то способ командной строки, чтобы сделать это быстрее, я лично рекомендовал бы использовать расширение Nautilus под названием nautilus-open-terminal
.
Сначала установите пакет nautilus-open-terminal
и добавьте закладки в свои любимые папки с помощью Nautilus. На Nautilus 3.6. * Вам нужно будет перейти в меню передач и выбрать Добавить в закладки это местоположение .
Затем используйте закладки Nautilus для быстрого перехода в любимые каталоги, просто щелкните правой кнопкой мыши пустое место и выберите Открыть в терминале .
Теперь вы можете иметь быстрый доступ к любимым каталогам как из командной строки, так и из файлового менеджера.
Даже при том, что уже существуют некоторые хорошие ответы, я думал, что упомяну для полноты старое pushd
и popd
Bash builtins с позволяет Вам перемещаться очень быстро между каталогами в глубоких путях в Вашей файловой системе. В отличие от autojump
закладки упоминаются burger.ga, стопка каталога, созданная при помощи pushd
является только временным.
Поскольку руководство GNU отмечает, pushd
и popd
Bash builtins, раньше создавал временную стопку каталога, которая является a
список недавно посещаемых каталогов. pushd встроенное добавляет каталоги к стеку, поскольку он изменяет текущий каталог, и popd встроенное удаляет указанные каталоги из стека и изменяет текущий каталог на удаленный каталог. Директора встроенные дисплеи содержание стопки каталога.
Требуется немного привыкающее к, но существует много полезных учебных руководств там в этом блоге и этом этом сайте, например. Нет никаких отдельных страниц справочника для команд, поскольку они включены в страницу справочника Bash, но для справочника можно просмотреть страницу GNU Bash.
Самое четкое объяснение находится в этой очень полезной статье и является точно способом, которым я использую pushd
и popd
:
Во-первых, использовать dirs
или dirs -l
перечислять каталоги на стеке и dirs -c
очистить стек.
В некотором смысле Вы отмечаете местоположение, где Вы хотите возвратиться путем ввода
pushd /home/mike/Pictures/Canon/2012_07_01
и затем можно добавить больше каталогов к стеку, таким образом, Вы получаете директоров, перечисляющих как ниже, который включает 3 обозначенных папки и Ваш ~
домашняя папка:
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
Вы на самом деле не должны использовать popd
сразу, поскольку это удаляет каталоги из стека; лучшая вещь сделать состоит в том, чтобы использовать pushd
поворачивать стек, так, чтобы можно было продолжать переключаться между каталогами и заказать им, как Вы хотите. Для больше на том полезном вращении стека см. страницу справочника Bash.
Если у Вас есть точно расположение стека как вышеупомянутое dirs
список шоу, pushd +3
переключатели Вы к определенной папке Pictures и местам, что сверху стека (это +3 а не +4, поскольку Вы не считаете Ваш ~
в стопке каталога):
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
Так быстрые чтения,
~/Pictures/Canon/2012_07_01$
Можно продолжить делать это, не удаляя их из стека, хотя любые папки Вы cd
к, кроме добавленных к каталогу складывают с pushd
, изменит Вашу стопку каталога.
После того как Вам расположили стопку каталога в порядке, который Вы хотите, можно использовать popd
быстро циклически повториться через каталоги и затем возвратиться к домашней папке; например, от Pictures
мы можем возвратиться к Downloads
:
popd
~/Downloads/folder/interest ~/Music/artist/album ~
и быстрые чтения
~/Downloads/folder/interest$
В целом красота этого состоит в том, что можно настроить стопку каталога и порядок пунктов в ней с pushd
и затем, скажите, что у Вас есть три файла для редактирования в каждом из тех каталогов, можно возвратиться немедленно к каждому с popd
при удалении их из стопки каталога. Затем с Вашим последним popd
Вы возвратитесь к ~
. Становится особенно полезно, когда Вы имеете особенно глубокие каталоги и можете использовать его для установки стопки каталога для быстрого перемещения между ними.
Кроме того, этот вопрос содержит некоторые подсказки, которые Вы могли бы найти полезным при работе над командной строкой:
Я создал для этого набор функций bash и добавил его в свой скрипт .bash_profile
goto(){
cd $(getFolders $1)
}
gf(){
getFolders $1
}
getFolders (){
local folderList=(
'alias'
'Description of alias'
'/path/to/alias/folder'
'alias2'
'Description of alias2'
'/path/to/alias2/folder'
)
local moved="0"
local count=0
# Returns the path to the project
while [ "${folderList[count]}" != "" ]
do
if [ "$1" == "${folderList[count]}" ]; then
echo ${folderList[$(( $count + 2 ))]}
moved="1"
fi
count=$(( $count + 3 ))
done
# Returns all project names
if [ "$moved" != "1" ]; then
count=0
while [ "${folderList[count]}" != "" ]
do
echoc 6 ${folderList[count]}
echo - ${folderList[count+1]}
count=$(( $count + 3 ))
done
fi
}
Использование getFolders у вас есть список сокращений, описание и местоположение для каждой папки. Когда вы используете getFolders с сокращением, он выведет местоположение папки. Вы можете получить список доступных папок и их описания, просто вызвав getFolders без параметра
Пример получения пути к папке
getFolders alias
output
/path/to/alias/folder
Example получения доступных папок.
getFolders
выводит
alias
- Description of alias
alias2
- Description of alias2
gf - это сокращение для getFolders
gf alias2
выводит
/path/to/alias2/folder
goto - это простой способ перейти к выбранной папке.
goto alias
output
cd был запущен в / path / to / alias / folder
/ path / to / alias / folder>
В основе Unix и Linux лежат простые многократно используемые функции, которые можно объединить в цепочку. Я предпочитаю этот метод, поскольку он не только перемещает вас в выбранное место, но и является функцией, которая по псевдониму возвращает путь. Вы можете использовать эту функцию, чтобы сделать что-нибудь из этой точки, например, cd, на этот путь.
Вы можете разместить псевдоним в своем файле .bashrc (или в файле конфигурации вашей любимой оболочки - они обычно находятся в вашем домашнем каталоге):
alias cd1="cd directory/directory/my_destination/"
Полезная информация о том, как использовать псевдонимы в bash. здесь здесь .
Попробуйте установить переменную окружения CDPATH
в вашем .bashrc или .bash_profile. CDPATH принимает ту же форму, разделенную двоеточиями, что и другие PATH
подобные переменные, и позволяет cd
использовать ярлыки для поиска ваших каталогов. Например:
$ mkdir -p /tmp/foo/bar/baz
$ CDPATH='/tmp/foo/bar'
$ cd baz
/tmp/foo/bar/baz
Вы можете установить свой собственный ярлык для определенного каталога. Например, вы хотите перейти во вложенный каталог, обычно вы делаете
cd / home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target
blockquote>вы обычно используете команду cd, а затем вводите все имена каталогов или можете пропустить ввод (используя кнопку TAB), но это все равно занимает несколько минут.
Итак, , чтобы сэкономить ваше время , вы можете сделать его псевдоним в терминале. Одноразовая задача - создать псевдоним.
псевдоним dir-target = '/ home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target'
blockquote>Теперь вам нужно просто использовать псевдоним ( dir-target ), чтобы перейти в целевой каталог.
Самый быстрый способ, который я нашел, - это xd
, программа «Электронные каталоги», написанная голландцем Фрэнком Б. Броккеном.
Он работает путем поиска всех путей в вашей файловой системе, которые могут быть преобразованы в введенную вами аббревиатуру, например. ulb
может означать /usr/local/bin
, если такая папка существует в вашей системе:
% cx ulb
Multiple Solutions:
1: /usr/lib/binfmt.d/
2: /usr/local/bin/
При нажатии 2 вы находитесь в /usr/local/bin
.
Это действительно старое программное обеспечение, которое больше не доступно в исходном местоположении, нет связи с автором, поэтому, чтобы предотвратить его потерю, я поместил его в репозиторий Github:
Я использую DirB (Закладки каталога) для этого. Очень хорошо! http://www.linuxjournal.com/article/10585
Я изменил мой, чтобы удовлетворить мой вкус и быть более простым в использовании и яснее.