私は頻繁にssh
に入るホストを持っています。しかし、何度も入力したくありません。これには環境変数を使用する必要がありますか、それとももっと良い方法がありますか?
単一のbashセッションの外部に存在する、頻繁に使用される変数を保存するための一般化されたソリューションは問題になりません。
環境変数は、シェルで開始する複数のコマンド/プロセスに情報を伝達するためのものであり、その環境でコマンドまたはプロセスがexpectになるように処理します。通常、このような変数には、頻繁に使用されるオプションをLESS
ページャーに渡すless
変数などのオプションが含まれます。非標準の場所でPerlモジュールを検索する場合は_Perl5LIB
_、_LC_LANG
_ toコマンドが出力に使用する言語を伝えます。
URLが特定のコマンドで独自に使用する場合は、_alias au='firefox https://askubuntu.com
_などのエイリアスまたはopen_url(){ firefox "$@" }
などの関数を使用して、コマンドラインで位置パラメーターとして指定した任意のURLを開きます。関数。
ssh
などの特定のケースでは、設定ファイルで接続プロパティを定義できます Lekensteynの回答 :
以下の内容で_~/.ssh/config
_ファイルを定義します
_Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
_
_ssh meh
_を使用して、構成ファイルを使用してホストに接続します。
また、エイリアスを作成することをお勧めします。
ホームディレクトリの.bashrc
(または.profile
または同様のファイル)を編集します。次のようないくつかのエイリアスを追加します。
alias go='ssh url1'
alias go2='ssh url2'
次に、再ログイン/再接続して、go
またはgo2
を入力します。
Sergiy's と Lewis's の回答を組み合わせて最大にすることをお勧めします 怠惰 効率:
最初にssh
のホストエントリを作成します。
定義~/.ssh/config
以下の内容のファイル
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
今ssh meh
は機能しますが、それでもかなり長い可能性があります。オートコンプリート(ssh
[空白]の後)がありますが、それでも入力するのはひどいです。
alias
も定義しましょう:
.bashrc
ローカルホームディレクトリ。次のようなエイリアスを追加します。
alias meh='ssh meh'
これで、ターミナルウィンドウでmeh
と入力するだけで「meh.example.com」に接続できます。 「meh」の代わりに長い文字列を使用したい場合は、実際に[Tab]キーを使用してオートコンプリートできます。
または本当に怠惰な場合は、単一の文字をエイリアスとして定義します。
alias m='ssh meh'
したがって、mと入力してEnter/Returnキーを押すと、ssh接続がすぐに開始されます!
さらに別のオプションは、シェルの履歴機能を使用することです。 bashでCtrl-rを押して、その場所に最後にsshしたときの一意の部分文字列を入力できます。一意の部分文字列がない場合は、珍しい部分文字列として最も適したものを使用し、Ctr-rを押すまで履歴エントリを繰り返し参照できます。たとえば、Ctrl-rと「サル」または「コードモンキー」または「オデモン」または「コン」を入力すると、次のようになります。
ssh [email protected]
最後から、そしてうまくいけば、あなたがその全体をタイプしたときだけ。
シェルの履歴機能を使用すると、長いコマンドを2回以上入力する必要はありません。
私は通常.sh
にはsshコマンドが含まれています。例えば:
# file name: mywebsite-live.sh
ssh [email protected] # or whatever the domain is.
そして、それを実行するには、単に./mywebsite-live.sh
私はそれがおそらくかなり安っぽい解決策であることを理解していますが、それは私にとってはうまくいき、希望は他の誰かにとってもうまくいくかもしれないということです。