如何着色 ls 的输出?

run*_*day 24 linux colors centos console

我在 Linux 文本模式下运行 CentOS。当我运行命令时ls /usr/,输出太难阅读(黑底蓝字)。如何更改文本颜色?

ls 输出的屏幕截图

jas*_*yan 21

如果您想在控制台中更改颜色,即在 X 之外,那么您可以在您的 中指定颜色.bashrc,如下所示:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgrey
    echo -en "\e]P1803232" #darkred
    ....
    fi
Run Code Online (Sandbox Code Playgroud)

将黑色定义为#222222有关详细信息的地方,请参阅此帖子: http //phraktured.net/linux-console-colors.html

如果您在 X中工作,那么您可以通过.Xresources像这样定义颜色来自定义设置:

!black
 *color0:  #3D3D3D
 *color8:  #5E5E5E
!red
 *color1:  #8C4665
 *color9:  #BF4D80
 ...
Run Code Online (Sandbox Code Playgroud)

然后在您启动 X 时获取此文件,通常来自您的.xinitrc

xrdb -merge ~/.Xresources

Arch Wiki 有一个关于 .Xresources 的页面,解释了所有选项: https //wiki.archlinux.org/index.php/Xresources

您可以在 X 或不在 X 中进行的另一个增强是指定您想要着色的所有不同文件类型 - 以及它们在.dir_colors文件中各自的颜色,如下所示:

.xinitrc       01;31 
.Xauthority    01;31
.Xmodmap       00;31
.Xresources    01;33
 ...
Run Code Online (Sandbox Code Playgroud)

首先,复制/etc/dir_colors到您的用户/home目录并进行更改。然后从您的.bashrcwitheval $(dircolors -b ~/.dir_colors)这将允许您在使用时对文件和文件类型的颜色进行细粒度控制ls

你可以在这里找到(一个非常详细和彻底的).dir_colors示例文件: https //github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

结合所有三种方法,您可以创建一个相当统一的设置,无论您是在控制台中还是在 X 中工作。

  • 是的:这就是我在 X 之外说的意思 - 在 TTY 控制台(TTY 1-7)中。 (2认同)
  • 术语颜色在这里:http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html 绿色是`00;32`,浅/粗绿色是`1;32` 获得蓝绿色的唯一方法是使用我上面描述的方法将这 16 种颜色中的一种定义为蓝绿色的十六进制等价物。 (2认同)

n0p*_*0pe 9

你想要的文件是/etc/DIR_COLORS. 我遇到了与您完全相同的问题,并将目录更改为青色。效果更好。

cp /etc/DIR_COLORS /home/yourusername/.dir_colors
Run Code Online (Sandbox Code Playgroud)

编辑/home/yourusername/.dir_colors,你会看到这一行:

DIR 01;34    #directory
Run Code Online (Sandbox Code Playgroud)

把它改成这样:

DIR 01;36    #directory
Run Code Online (Sandbox Code Playgroud)

这使得目录颜色为蓝绿色。

  • @run 不是命令,是配置文件;在文本编辑器中打开它 (3认同)