Ubuntuターミナルでは、コンピューターが起動するたびに特定のディレクトリに切り替えるのにかなりの時間を費やしています。このプロセスを簡単にする方法はありますか?使用できるホットキーやクイックディレクトリ変更(電話の短縮ダイヤルなど)はありますか?
eg:
cd 1:Changes to saved directory one
Ubuntuターミナルでは、コンピューターが起動するたびに特定のディレクトリに切り替えるのにかなりの時間を費やしています。このプロセスを簡単にする方法はありますか?使用できるホットキーやクイックディレクトリ変更(電話の短縮ダイヤルなど)はありますか?
eg:
cd 1:Changes to saved directory one
回答:
次の2つのオプションがあります。
bashターミナルを開くたびに特定のディレクトリに移動する場合は、~/.bashrcファイルを編集してcd Directory、たとえば、行を追加するだけcd ~/Desktopです。
複数のショートカットが必要な場合は、いつでもグローバル変数を使用できます。グローバル変数は、~/.bashrc次のようにファイルに設定export a=/tmpできcd $aます/tmp。
.bashrcファイルを編集した後、ターミナルを再起動するか、新しいターミナルを開く必要があることに注意してください。
source ~/.bashrcか、短くしてください. ~/.bashrc。
また、を見てautojump、以前にアクセスしたディレクトリを使用してデータベースを構築し、そこにジャンプできます。だから例えば
/home/user/this/long/and/annoyingly/deep/directory/workstuff
一度訪れたら、次の方法でジャンプできます
j workstuff
あるいは
j stuff
部分一致でも機能するためです。複数のディレクトリが一致する場合、最も訪問されたディレクトリにジャンプし、これが目的のディレクトリではない場合は、コマンドを繰り返して2番目のディレクトリに移動します。
しかし、それは良くなります!ディレクトリも持っている場合
/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からこれをインストールする方法についての説明もあり、最新バージョンを入手できます)
Bash エイリアスは、一般的にコマンドを実行するためのショートカットを作成するのに役立ちます。
で~/.bashrc、次のような行を追加してエイリアスを作成します。
alias jump1='cd /long/path/name/that/is/frequently/used'
ターミナルを閉じて再度開くか、を実行しsource ~/.bashrcます。
これからは、jump1実行してその長いcdコマンドを実行できます。
こちらもご覧ください:
すでにいくつかの良い答えがありますが、ファイルシステムの深いパスにあるディレクトリ間を非常に迅速に移動できるようにするために、古いビルトインpushdとpopdBashビルトインの完全性について言及したいと思いました。burger.gaでautojump言及されているブックマークとは対照的に、使用して作成されるディレクトリスタックは一時的なものです。pushd
GNU マニュアルにあるように、pushdおよびpopdは、一時ディレクトリスタックを構築するために使用されるBashビルトインです。
最近訪れたディレクトリのリスト。pushdビルトインは、現在のディレクトリを変更するときにスタックにディレクトリを追加し、popdビルトインは、スタックから指定されたディレクトリを削除し、現在のディレクトリを削除されたディレクトリに変更します。dirsビルトインは、ディレクトリスタックの内容を表示します。
慣れるまで少し時間がかかりますが、このブログやこのサイトには、役に立つチュートリアルがたくさんあります。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、特定のピクチャフォルダーに切り替えてスタックの一番上に配置します(~ディレクトリスタックでカウントしないため、+ 4ではなく+3です)。
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それらの各ディレクトリで編集する3つのファイルがある場合、それらpopdを削除しながらすぐにそれぞれに戻ることができることですディレクトリスタックから。その後、あなたの最後でpopdあなたはに戻ります~。特に深いディレクトリがあり、それを使用してディレクトリスタックをセットアップし、ディレクトリ間をすばやく移動できる場合に特に役立ちます。
さらに、この質問には、コマンドラインで作業するときに役立つと思われるいくつかのヒントが含まれています。
より高速に実行するためのコマンドラインの方法がいくつかありますが、私はNautilusと呼ばれる拡張機能を使用して個人的に推奨しnautilus-open-terminalます。
まずパッケージnautilus-open-terminalをインストールし、お気に入りのフォルダーをNautilusでブックマークします。Nautilus 3.6。*では、ギアメニューに移動して[ この場所をブックマーク ]を選択する必要があります。

次に、Nautilusブックマークを使用して、お気に入りのディレクトリをより速く移動し、空のスペースを右クリックして、[ ターミナルで開く ]を選択します。

これで、コマンドラインとファイルマネージャーの両方からお気に入りのディレクトリにすばやくアクセスできます。
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の著者です。
このために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
出力
/path/to/alias/folder
使用可能なフォルダーを取得する例。
getFolders
出力
alias
- Description of alias
alias2
- Description of alias2
gfはgetFoldersのショートカットです
gf alias2
出力
/path/to/alias2/folder
gotoは、選択したフォルダーにcdする簡単な方法です。
goto alias
出力
cdは/ path / to / alias / folderで実行されています
/ path / to / alias / folder>
UnixとLinuxの中心には、一緒に連鎖できる単純で再利用可能な関数があります。この方法は、選択した場所に移動するだけでなく、エイリアスによってパスを返す関数なので、この方法が好きです。この関数を使用して、cdのようなポイントからそのパスまで何でもできます。
.bashrcまたは.bash_profileでCDPATH環境変数を設定することを検討してください。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
通常はcdコマンドを使用してからすべてのディレクトリ名を入力するか、(TABボタンを使用して)入力をスキップすることもできますが、それでも数分しかかかりません。
したがって、時間を節約するために、ターミナルでそのエイリアスを作成できます。エイリアスを設定するための1回限りのタスク。
エイリアスdir-target = '/ home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target'
さて、あなただけのために持って使用するエイリアス名(DIR-ターゲットをターゲットディレクトリに移動します)。
私が見つけた最も早い方法はxd、フランクB.ブロッケンという名前のオランダ人によって書かれた「eXchange Directories」プログラムです。
入力した略語に解決できるファイルシステム上のすべてのパスを検索することで機能します。たとえばulb、/usr/local/binそのようなフォルダーがシステムに存在するかどうかを表すことができます。
% cx ulb
Multiple Solutions:
1: /usr/lib/binfmt.d/
2: /usr/local/bin/
2を押すとになります/usr/local/bin。
それは本当に古いソフトウェアであり、元の場所では利用できなくなり、作者と連絡を取ることができません。
これを行うには、DirB(ディレクトリブックマーク)を使用します。非常に素晴らしい! http://www.linuxjournal.com/article/10585
私は私の好みに合うように私のものを修正しましたが、使いやすく、より明確になりました。