参照位置による色座標シンボリックリンク/ソフトリンク

参照位置による色座標シンボリックリンク/ソフトリンク

リンク位置または「属する」人に基づいてシンボリックリンク/ソフトリンクの色を調整する方法はありますか(出力の色指定に似ていますls)?

/usr/local/binこれがきれいだと思う理由を例に説明すると、職場のサーバーにアカウントがあり、ホームディレクトリにソフトウェアをインストールし、現在のパスのディレクトリにソフトリンクできます。私はsudoerではないので。したがって、接続したプログラムが最終的に中央にインストールされたプログラムと同じハンドルをPATHに持つようになる状況を想像できます。

この仮想の例が私が意味するものを示してくれることを願っています。 PATHに存在するように設定したディレクトリに接続されているいくつかのインストールされたプログラムがあるとします~/newprogram/~/Apps/

新しいプログラムを呼び出してオートコンプリートを使用するには、管理者が同じシンボリックリンク名を使用するアプリケーションをインストールした可能性があります(可能であることを確認していません)。 Tabキーを使用してプログラム名の部分文字列をオートコンプリートすると、さまざまなオプションがすべて表示されます。たとえば、次のようになります。

user@server:~$ newprog          #double tab:
newprog       newprogram       newprogram

したがって、一致するものは複数あり、そのうちの2つはリンクされているか、直接パスにまったく同じショートカット/プログラム名を持っています。 1つは「私のもの」で、もう1つはから来たとします/usr/local/bin

参照された新しいプログラムが表示されるように「newprogram」が表示されるたびに色を指定することは可能ですか?私のもの一度表示されるシンボリックリンクは1つの色であり、別の「newprogram」発生は色が指定され、パスの他のディレクトリ(たとえば/usr/local/bin/)に存在することを示します。

編集する:

申し訳ありません。はい、言及するのを忘れました。これは特定のサーバーのUbuntuにあります。

編集2:

ほとんどの色は.bashrc私が見ているものによって行われますが、/usr/bin/dircolorsこれは私が実行するコマンド(など)の出力にのみ影響し、lsオートコンプリートの動作には影響しません。

これが私が現在.bashrcに持っているものですが、「show us your bashrc」タイプのスレッドからはっきりと盗まれたことを認めます。

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\$
    else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls -h --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

編集3:

シンボリックリンクの動作変更の例: ここに画像の説明を入力してください。

raxmlとprunierは、以前は青だったシンボリックリンクです。

ただし、上記のオートコンプリート出力は、すべてのシンボリックリンクに対して色付けされていません(例:tf)。

ベストアンサー1

GNUをls使用すると、ファイルタイプまたはモード(指定されたタイプに色が指定されていない場合)ごとにファイルの色を選択できます。これはdircolors、タイプ、パターン、および色のデータベースを組み込んだプログラムによって行われます。 lsディレクトリパス自体は気にしません。側面「彼らが指した場所」このプログラムを使用するのは簡単ではありません。シンボリックリンクは通常のファイルに比べて簡単です。

以下を使用してデータベースをファイルとして印刷すると、データベースを最も簡単に変更できます。

dircolors -p >myfile

システムによっては、シェルが起動したときにそれを見つけることができます/etc/DIRCOLORS。編集後のdircolors割り当てを使用してくださいLS_COLORS

eval 'dircolors myfile'

構成dir_colorsマニュアルでは、データベースについて説明および変更できる機能について説明します。

LINK 色の順序
シンボリックリンクに使用される色を指定します。

または印刷された(デフォルト)データベース

LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
 # numerical value, the color is as for the file pointed to.)

この例では、次のものを組み合わせています。勇敢なそして。この行を変更して、さまざまな色の組み合わせを使用できます。 (ところで、dir_colorsマニュアルページには「明るさ」が記載されています。ISO 6429は次のように述べています。勇敢な)。

bashオートコンプリートには使用されずlsls色付けはと同じですbash。ただし、これに対応する機能が追加されました。2014年bash同じ変数を使用してLS_COLORS表示できる色を伝えます。これはbash 4.3の機能です。バッシュマニュアル:

colored-stats
「on」に設定すると、Readline はファイルの種類を示すためにさまざまな色を使用して可能な完成度を表示します。カラー定義は値から取得されます。LS_COLORS環境変数デフォルトは「オフ」です。

使用するには追加してください。

set colored-stats on

あなたのファイルに.inputrc

追加資料:

おすすめ記事