2009-04-27 65 views
1

我发现,你可以有grep的下面中的.bashrc无法把颜色LS通过LS_OPTIONS

# puts colors for all grep commands 
export GREP_OPTIONS='--color=auto' 

我没能获得类似的命令LS_OPTIONS工作。

除了下面给你的ls命令提供颜色以外,还有其他方法吗?

alias ls='ls -Gh' 
+0

现在我想起了这个,这真的不是编程问题吗? – Elijah 2009-04-27 14:17:04

+0

Debian Squeeze中的My ** ls **也忽略了** GREP_OPTIONS **。要解决我在Bash中定义别名:** alias ls ='ls --color'** – gavenkoa 2012-02-14 22:20:36

回答

1

下面是一个完整的解决方案:

# BSD ls 
export LSCOLOR='exfxcxdxbxegedabagacad' 
# GNU ls and others (for example, tree) 
export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' 

if [ "$(uname -s)" = 'Linux' ]; then 
    # GNU ls 
    alias ls='ls --color=auto' 
else 
    # Assume BSD ls 
    alias ls='ls -G' 
fi 
1

对于颜色LS工作,你必须做到以下几点:

alias ls='ls -G' 
export CLICOLOR=1 
export LSCOLORS=ExFxCxDxBxegedabagacad 
export TERM=xterm-color 
+1

这只适用于ls的BSD版本,您可以在Mac上找到它。在大多数Linux系统上,-G选项意味着其他的东西,ls支持--color。 – 2013-11-23 22:30:05

1

正如其他人所说,有明确的选项混淆ls完成你想要什么。但是,如果你是在实际使用环境变量LS_OPTIONS特别敏锐,好了,你还需要一个别名:alias ls='ls $LS_OPTIONS '

您需要将LS_OPTIONS为ls的有效命令行选项的字符串。在命令行上运行ls --helpman ls以查看可用的选项。在我的Linux系统(openSuSE 42.2)上,使用GNU ls v8.25,您将通过添加选项--color=auto来获得彩色输出。

所以,你会把你的〜/ .profile文件下面或〜/ .bashrc文件:

export LS_OPTIONS="--color=auto" 
alias ls="ls $LS_OPTIONS " 

要添加附加选项,环境变量或别名,只需添加它们(用空格隔开)在双引号内。