リンク位置または「属する」人に基づいてシンボリックリンク/ソフトリンクの色を調整する方法はありますか(出力の色指定に似ています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
オートコンプリートには使用されずls
、ls
色付けはと同じですbash
。ただし、これに対応する機能が追加されました。2014年bash
同じ変数を使用してLS_COLORS
表示できる色を伝えます。これはbash 4.3の機能です。バッシュマニュアル:
colored-stats
「on」に設定すると、Readline はファイルの種類を示すためにさまざまな色を使用して可能な完成度を表示します。カラー定義は値から取得されます。LS_COLORS
環境変数デフォルトは「オフ」です。
使用するには追加してください。
set colored-stats on
あなたのファイルに.inputrc
。
追加資料: