回答:
ご参考までに:
色をオフにするには、次の行をコメントアウトする必要があります.bashrc
。
# 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 --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
また、独自のbash色の意味を確認したい場合は、端末に次のコードをコピーして貼り付けてください。
eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')
{
IFS=:
for i in $LS_COLORS
do
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
done
}
出力:
注意:
man dir_colors
は、ターミナルに入力してください。 eval
のスクリプトはここにある:github.com/gkotian/gautam_linux/blob/master/scripts/colours.sh
変数をls
見ると、どの色が使用されているかがわかり$LS_COLORS
ます。
さらに、ファイルは属性によって色分けされます。
aac、au、flac、mid、midi、mka、mp3、mpc、ogg、ra、wav、axa、oga、spx、xspf。
tar、tgz、arj、taz、lzh、lzma、tlz、txz、zip、z、Z、dz、gz、lz、xz、bz2、bz、tbz、tbz2、tz、deb、rpm、jar、rar、ace、動物園、cpio、7z、rz。
jpg、jpeg、gif、bmp、pbm、pgm、ppm、tga、xbm、xpm、tif、tiff、png、svg、svgz、mng、pcx、mov、mpg、mpeg、m2v、mkv、ogm、mp4、m4v、 mp4v、vob、qt、nuv、wmv、asf、rm、rmvb、flc、avi、fli、flv、gl、dl、xcf、xwd、yuv、cgm、emf、axv、anx、ogv、ogx。
この情報はすべての出力に含まれていますがdircolors --print-database
、そのフォーマットはかなり判読できません。
何が起こっているのかを技術的に説明します。
例:
CHR 40;33;01
カラーコードは3つの部分で構成されています。
セミコロンの前の最初の部分はテキストスタイルを表します。
2番目と3番目の部分は色と背景色です。
左から始まると仮定すると、各部分は省略できます。つまり、「01」は太字を意味し、「01; 31」は太字と赤を意味します。そして、命令をでエスケープし\33[
、で終了することにより、ターミナルをカラーで印刷しますm
。33、または16進数の1Bは、ASCII記号「ESCAPE」(ASCII文字セットの特殊文字)です。例:
"\33[1;31mHello World\33[m"
「Hello World」を明るい赤で印刷します。
ls
引数を指定したコマンド--color=auto
(Ubuntuではls
のエイリアスls --color=auto
)は、すべてのファイル名を調べ、最初に実行可能ファイル、パイプなどのさまざまなタイプを一致させようとします。次に、*。wavなどの正規表現との照合を試み、結果のファイル名を、bashのこれらの色を変更する指示で囲んで出力します。
あなたが入力した場合dircolors
(echo $LS_COLORS
コマンドラインからも動作します)あなたは1行でファイルタイプの多くのためのコードと色のリストを取得します。dircolors --print-database
一度に1行ずつ表示します。ここに短いリストがあります(最も重要なものを入れようとしました)。下部には、各行の最後にあるさまざまなコードが何を表すかについての説明があります。
NORMAL 00#グローバルデフォルト、ただしすべてが何かであるべきです。 FILE 00#通常のファイル DIR 01; 34#ディレクトリ LINK 01; 36#シンボリックリンク。(これを「ターゲット」に設定した場合、 #数値、色は指定されたファイルと同じです。 FIFO 40; 33#パイプ SOCK 01; 35#ソケット DOOR 01; 35#ドア BLK 40; 33; 01#ブロックデバイスドライバー CHR 40; 33; 01#キャラクターデバイスドライバー ORPHAN 40; 31; 01#存在しないファイル、または統計できないファイルへのシンボリックリンク SETUID 37; 41#setuidであるファイル(u + s) SETGID 30; 43#setgid(g + s)であるファイル STICKY_OTHER_WRITABLE 30; 42#スティッキーで他の書き込み可能なディレクトリ(+ t、o + w) OTHER_WRITABLE 34; 42#書き込み不可(o + w)でスティッキーではないディレクトリ STICKY 37; 44#スティッキービットが設定されたディレクトリ(+ t)で、他の書き込み不可 #アーカイブまたは圧縮(明るい赤) .tar 01; 31 .tgz 01; 31 #画像形式 .jpg 01; 35 .jpeg 01; 35 .gif 01; 35 .bmp 01; 35 #オーディオ形式 .aac 00; 36 .flac 00; 36 .ogg 00; 36
00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
これを試してみたい場合は、ファイルの色を設定する方法の例を次に示します。
export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"
これが設定されます*.ogg
と.mp3
しますbold magenta
。そして、あなたがそれをあなたの.bashrc
ファイルに入れるならば、それは永久になります。
pdf
ファイルの色を設定するには、プロセスはexport
?デフォルトLS_COLORS
変数に1つの拡張子を追加するだけで可能ですか?
これはKarthick87の答えを拡張しています。
ls -l
)#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.
IFS=:
for ls_color in $LS_COLORS; do
color="${ls_color#*=}"
type="${ls_color%=*}"
# Add descriptions for named types.
case "$type" in
bd) type+=" (block device)" ;;
ca) type+=" (file with capability)" ;;
cd) type+=" (character device)" ;;
di) type+=" (directory)" ;;
do) type+=" (door)" ;;
ex) type+=" (executable file)" ;;
fi) type+=" (regular file)" ;;
ln) type+=" (symbolic link)" ;;
mh) type+=" (multi-hardlink)" ;;
mi) type+=" (missing file)" ;;
no) type+=" (normal non-filename text)" ;;
or) type+=" (orphan symlink)" ;;
ow) type+=" (other-writable directory)" ;;
pi) type+=" (named pipe, AKA FIFO)" ;;
rs) type+=" (reset to no color)" ;;
sg) type+=" (set-group-ID)" ;;
so) type+=" (socket)" ;;
st) type+=" (sticky directory)" ;;
su) type+=" (set-user-ID)" ;;
tw) type+=" (sticky and other-writable directory)" ;;
esac
# Separate each color with a newline.
if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
echo
fi
printf "\e[%sm%s\e[m " "$color" "$type"
# For next loop
color_prev="$color"
done
echo
デフォルト設定での出力:
私のセットアップでの出力(カスタムdircolorsとカスタムSolarized端末テーマ):
私から説明を得たdircolors -p
とman dir_colors
、そして私自身の研究とのギャップを埋め。
色と説明は14.04〜17.10で同じです。
rs
手段RESET
、mh
手段MULTIHARDLINK
、ca
手段CAPABILITY
などをどのように知りましたか?
dircolors -p
。
dircolors -p
rsがRESET 0#「通常の」色にリセットされるとは言いません。
ここでの回答には、Ubuntuの最新バージョンの256色オプションは含まれていません。私は色が足りないので(いくつかの色はお互いの近くで問題を起こします)、黒のデフォルトの青いディレクトリは読みにくいです。以下は、それを変えるための私の研究です。
入力dircolors -p |less
して、現在のカラーコードを表示します。
デフォルトの.bashrcは、システムカラーコードを利用するだけでなく、〜/ .dircolorsの1つも利用するように既に構成されているので、dircolorsの出力を.dircolorにダンプします。
dircolors -p > ~/.dircolors
代替案:seebiのソーラープロジェクトから、非常によく似た256色のdircolorsを選択します。
このカラーテストスクリプトを取得し、コマンドで実行して、colortest -w
すべての色を一度に表示できるようにします。色を選択してください。オレンジ#208が好きです。それをテキストの色にしたいので、拡張カラーコードに関するこの情報を使用して、それを適用できます。
だから、あなたは色を持っている、今は何。まず、文字列を作成する必要があります。
最初の番号は属性コードで、ほとんどの場合00ですが、点滅させたい場合は05に移動します。
属性コードを選択してください:00 =なし01 =太字04 =アンダースコア05 =点滅07 =反転08 =非表示
次に;38;5;
、属性コードに追加を選択して、00; 38; 5;を取得するテキストの色を示します。その後、色を追加します。私は208を選んだので、私は得る00;38;5;208
。
背景も配置したい場合は、colortestスクリプトで別の色(56としましょう)を選択;48;5;
し、背景に追加し、色に56を追加して、合計文字列を取得します00;38;5;208;48;5;56
。
それで、あなたはそれを手に入れました、あなたはそれで何をしますか?
vim ~/.dircolors
そして、「00; 38; 5; 208」の上で決定した文字列に変更したいセクション(私にとってはDIR)を見つけます。
これはすぐには適用されません。設定を読み込む必要があります。使用dircolors ~/.dircolors
あなたのLS_COLORS変数を設定するには、getコードに。ターミナルセッションに貼り付けるか、ターミナルを閉じて再度開くことができます。それをファイルにパイプして、シェルスクリプトとして実行することもできます。
この同じ手順を16色で実行できます。特別な; 38; 5や; 48; 5のものは必要ありません。数字を文字列に投げて、シンプルさを楽しんでください。
eval
種類ごとに出力色表現を示すスクリプトは素晴らしいです...ありがとう!