4

Ubuntu 12.04 上の VM でいくつかの Web アプリケーションを実行しています。

VM に SSH で接続するときに、次のように入力することがよくあります。

  • cd /var/virtual/app1.com/
  • cd /var/virtual/app2.com/
  • cd /var/virtual/app3.com/

各行は、特定の指示を実行するための個別の webapp ルート ディレクトリを表しています。

これは怠惰なプログラマーで、私が入力する方法があるかどうかを尋ねています。

  • go_app1
  • go_app2
  • go_app3

bashスクリプトを使用して上記を行う方法を知っています。

しかし、私は入力することになります

./GoApp.sh -app app1

go_app1 と入力するだけで、よりエレガントにしたいと考えています。

アドバイス?

編集:

最高評価の回答を使用したところ、Ubuntu でこのエラー メッセージが表示されました。

https://gist.github.com/simkimsia/7336019

どこで私は間違えましたか?

EDIT2:

.bashrc にコマンドを追加しようとすると、コマンドが見つからないというメッセージでエラーを別の質問に書き直しました。

4

6 に答える 6

3

それぞれにエイリアスを定義すると、確かに機能します。ただし、パターンに従って複数の必要なショートカットがあるため、関数を検討してください。

function go_app() { cd /var/virtual/app$1.com/; }

使用法:

go_app 1

関数定義を ~/.bashrc に置きます。

于 2013-11-01T03:04:44.850 に答える
2

bashのコマンド履歴を検索するだけで十分な解決策になるでしょうか? また、長いディレクトリ構造にログインしなければならないこともよくありますが、通常は Ctrl-R でログインします。たとえば、ごく最近 app1.com に cd した場合、Ctrl-R を押して app1.com と入力すると、app1.com を使用した最後のコマンドが表示され、その時点で Enter キーを押して完了です。 . 「cd」が表示されない場合は、表示されるまで Ctrl-R を数回押します。

もう少し詳細: http://www.catonmat.net/blog/the-definitive-guide-to-bash-command-line-history/

もちろん、これは、プログラムでこれを実行しようとしている場合ではなく、入力量に関心がある場合にのみ機能し、「cd」コマンドが「app1.com」を持つコマンドのリストでかなり最近のものである場合にのみ機能します" (またはその他の短い識別パターン) を明示的に指定します。

于 2013-11-01T03:59:36.953 に答える
2

以下を .bash_profile に配置することで、エイリアスを使用できます。

alias go_app1='cd /var/virtual/app1.com/'

その後、 go_app1 と入力すると、ディレクトリが変更されます。

于 2013-11-01T03:02:07.070 に答える