通常、ls
、grep
などからのカラー出力があるのはいいことですが、それを望まない場合(結果を別のコマンドにパイプしているスクリプトなど)、それをオフにできるスイッチはありますか? ls -G
は、それがデフォルトではない場合にオンにします(someBSD派生バージョンのls
を使用)。ただし、ls +G
はオフにしません。他に何かありますか?
ls
のカラー出力は、通常、最近のほとんどのディストリビューションでエイリアスを通じて有効になっています。
$ alias ls
alias ls='ls --color=auto'
エイリアスの前にバックスラッシュを付けることで、いつでも一時的にエイリアスを無効にすることができます。
$ \ls
上記を実行すると、この1回の呼び出しのためだけにエイリアスが短絡します。エイリアスを無効にしたいときにいつでも使用できます。
GNU ls
を使用すると、ls --color=never
を指定してカラー出力を明示的に無効にすることができます(alias ls='ls --color=auto'
がある場合でも、ls --color=never
、ls --color=auto --color=never
に展開され、後のオプションが優先されます。)
(DOSの場合と同様に)単に使用することもできます。
dir
結果は色なしで表示されます。-l
のように、ls
に同じ引数を追加できます。
多くのLinuxディストリビューションでは、これはユーザーのデフォルトでオンになっています.bashrc
。
編集~/.bashrc
と次のような行を削除します。
alias ls='ls --color=auto'
今後このマシンで生成されるすべての新しいアカウントでこの機能を無効にする場合は、次の行から同じ行を削除してください:
/etc/skel/.bashrc
Centos7では、これは/etc/profile.d/colorls.sh
...このスクリプトの最後の3行は次のとおりです。
alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d .* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null
あなたが欲望と許可を持っている場合...不要な行をコメントアウトするとうまくいくはずです。
alias ls=ls
または
unalias ls
これにより、カラーリングが永久に無効になります。
コマンドを使用する
unalias ls
これにより、セッション中に標準ls
を使用するように強制されます
何か他のことが起こっている可能性があります。 ls
は、インタラクティブなものに接続されていると思わない限り、色を使用しないでください。別のプログラムにパイプしたときに、色付けされるべきではありません。
エイリアスは一般に悪い考えです。そのオプションを取り除くことはできず、作業しなければならない他のマシンに持ち込めない個人設定に慣れるからです。それをオフにして他の何かにパイプする必要がある場合は、そのパイプのスイッチを使用します。しかし、色はパイプの中にあるべきではありません。
ls
については、LS_COLORS
環境変数をサポートしているかどうかを確認してください。 trapd00r/LS_COLORS は、それがどのように機能するかを示します。 dircolors を使用すると、色を細かく、ファイルタイプごとに調整できます。 LS_COLORS
を設定せずにカラーリングをオンにしている場合、ls
は一連のシステムコールを実行して、ファイルタイプと属性を把握し、何にカラーを適用するかを判断します。 Sherlockの背後にいる人々は、LS_COLORS
を設定することですべてを回避でき、 速度が40倍向上 を実現できることを発見しました。彼らの残酷な詳細を読んで、彼らが見つけたものを見てください。
すべてのファイルタイプでデフォルトの色を使用するようにします。
$ export LS_COLORS='bd=0:ca=0:cd=0:di=0:do=0:ex=0:pi=0:fi=0:ln=0:mh=0:no=0:or=0:ow=0:sg=0:su=0:so=0:st=0:tw=0:'
これが私がdircolorsに提供したLS_COLORSファイルです。
BLK 0
CAPABILITY 0
CHR 0
DIR 0
DOOR 0
EXEC 0
FIFO 0
FILE 0
LINK 0
MULTIHARDLINK 0
NORMAL 0
Orphan 0
OTHER_WRITABLE 0
SETGID 0
SETUID 0
SOCK 0
STICKY 0
STICKY_OTHER_WRITABLE 0
grep
については、GREP_COLORS
またはGREP_OPTIONS
がサポートされているかどうかを確認してください。
色をオフにするには: unalias ls
色をオンにするには:エイリアスls = 'ls --color = auto'
色を一時的に無効にするには:\ls -ltr