すべてのリモートコンピュータで構文強調表示を有効にするには、ローカルコンピュータでどの設定を変更する必要がありますか?

すべてのリモートコンピュータで構文強調表示を有効にするには、ローカルコンピュータでどの設定を変更する必要がありますか?

この質問にはあまり役に立たない答えがたくさん浮かんでいます。色々試してみました。場合によっては、私がアクセスするすべてのリモートコンピュータの設定を変更する必要があります。いくつかの予定は私のローカルコンピュータでいくつかの変更だけで動作しましたが、失敗しました。

この問題私が試したいくつかのソリューションを収集しました。

まず:SSH経由でリモートアクセスするすべてのコンピュータで構文強調表示を有効にするように、ローカルコンピュータの設定を変更できますか?

それでは、どうすればいいですか?

私はWindows 10でUbuntu用のBashを使用しており、主にUbuntuまたはDebianを実行しているコンピュータに接続しています。

特に強調したいコマンド/プログラムは次のとおりです。

ls stuff
history | grep stuff
vim stuff

ベストアンサー1

この回答には構文の強調は含まれません。具体的にではなく、複数のシステムで一貫した構成を維持する問題です。

特に、様々なアプリケーション構成を考えると、ローカルシステムの構成変更により、リモートシステムのユーティリティ動作を容易に変更することができない。

ホームディレクトリがNFSなどのネットワーク共有にマウントされている場合、ローカルコンピュータ上のファイルまたは他のファイル~/.bashrcへのローカル修正は明らかにリモートシステムに渡されます(リモートシステムに同じ共有がマウントされている場合)。

次の手順(他のシステムでホームディレクトリを共有できない場合)は、目的の方法でローカル構成を設定してから、scp同様のrsync方法を使用してリモートシステムにコピーすることです。ローカル構成を調整する予定の場合は、これを行うための簡単なスクリプトを作成することをお勧めします。

これらのスクリプトは(テストされていない)と同じくらい簡単です。

#!/bin/bash

configs=( "$HOME/.bash_profile" "$HOME/.bashrc" )
remotes=( "host1" "host2" )

for remote in "${remotes[@]}"; do
   scp "${configs[@]}" "$remote:"
done

次のステップは、Gitなどのネットワーク対応ファイルリビジョン制御システムに関連する設定ファイルを保存することです。これにより、特定のシステムまたはUnixバージョンのブランチを作成しながら、ネットワークを介して設定に簡単にアクセスできます。

さらに、同じ名前を使用しても、異なるユーティリティは異なるシステムで異なる実装またはバージョンを持つ可能性があるため、異なる設定が必要になる場合があります。これは、Bashなどの構成によってシェルが破損する可能性があることを意味します。これらの破損の明白な原因は、Bashバージョン3とBashバージョン4の違いまたはls一部(Linuxではない)システムがGNU coreutils(他の同様のシェルツールを提供する)を使用していないことです。

違いを解決しようとしています。ファイルシステムのレイアウト(異なるUnicesのアカウント間で共有されるinitスクリプトを含むシェルを設定しようとすると、別の問題が発生します。これにより、PATH他のホストで異なる設定が必要です。)鉱山では(代わりに~/.profile使用している)次のように表示されます。ksh93bash

PATH="$( getconf PATH )"
case "$(uname -s)" in
    OpenBSD) PATH="$PATH:/usr/local/sbin:/usr/games" ;;
    NetBSD)  PATH="$PATH:/usr/X11R7/bin" ;;
esac

おすすめ記事