看板FreeBSD
标 题Re: [问题] 目录的颜色
发信站小鹿鹿 BBS (Sun Nov 20 19:21:04 2005)
转信站ptt!ctu-reader!news.nctu!abpe.org
心情好来给鱼 :p
※ 引述《[email protected] (Sir)》之铭言:
> 我按照上述方法安装了 gnuls
> 然後修改 /etc/profile 跟 /etc/csh.cshrc 档
> 现在变成 root 无法显示目录颜色但是 user 可以
> 难道这两个不能一起修改吗 ?
> Thanks.
先回答你的问题:~root/.cshrc 或是 ~root/.tcshrc 里面有 alias ls,所以
被盖掉了。
另外 FreeBSD 下不需要装 gnuls,原因是 /bin/ls 与 tcsh 里面的 ls-F 都
有支援色彩输出:
* 在 man tcsh 里面找
ls-F 的说明 (进入 more 以後按
/ls-F 搜寻),其中
这段告诉你
LS_COLORS 可以拿来显示彩色:
The ls-F builtin can list files using different colors depend-
ing on the filetype or extension. See the color tcsh variable
and the LS_COLORS environment variable.
* 所以使用 tcsh 的人可以这样设定:
alias ls "ls-F -FG"
* 如果你不是用 tcsh,那麽系统的 /bin/ls 也有支援,所以:
alias ls "/bin/ls -FG"
* 再来是色彩的设定,在 ls 的 manpage 里面有写,这是在 LSCOLORS 这个
环境变数里面设定的,系统预设是 "exfxcxdxbxegedabagacad",通常我们
只会改 directory 的颜色,因为太暗了:
# in tcsh
set LSCOLORS="gxfxcxdxbxegedabagacad"
# in bash
export LSCOLORS="gxfxcxdxbxegedabagacad"
* 然後是其他便利性,眼尖的人应该会看到 CLICOLOR 与 CLICOLOR_FORCE 两
个变数。
先是 CLICOLOR,这个变数与 ls 的时候加上 -G 是一样的效果,在 ls.c
里面是这样写的:
case 'G':
setenv("CLICOLOR", "", 1);
break;
:
:
/* Enabling of colours is conditional on the environment. */
if (getenv("CLICOLOR") &&
(isatty(STDOUT_FILENO) || getenv("CLICOLOR_FORCE")))
当输出的 stdout 不是 tty 时,预设值会关闭色彩输出,但这可以透过
CLICOLOR_FORCE 强制设定,於是下面两种情况就有差别:
$
unset CLICOLOR_FORCE
$
ls -alG
与
$
unset CLICOLOR_FORCE
$
ls -alG | less -r
後者会看不到色彩。
* 另外就是 ls 色彩与 configure 的问题。
在 ls 强制输出色彩的情况下 (即 set CLICOLOR_FORCE),configure 有可
能会失败,这个问题只要先 unset CLICOLOR 以及 unset CLICOLOR_FORCE,
再跑一次 configure 就可以了。
--
Resistance is futile.
http://blog.gslin.org/ & <
[email protected]>
--
※ Origin: 邪恶小鹿鹿 <Deer.twbbs.org> ◆ From: 140.113.22.90