|
|
我之前在Debian下直接在.bashrc后面添加
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
就可以正常显示,但昨天我etc-update后man就不能显示彩色
后来在网上看到most可以达到使man显示彩色,但是装完并设置
/etc/man.conf的PAGER=most和BROWSER=most后还是不行
不知道为什么?!还有,当我man ls的时候,查看当前进程表,
显示没有most,还是默认的less,这又是为什么,我已经设置most取代less
后来,用strace man ls看man ls过程中都哪些系统调用:
execve("/usr/bin/man", ["man", "ls"], [/* 44 vars */]) = 0
brk(0) = 0x805b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=34814, ...}) = 0
mmap2(NULL, 34814, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f0c000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@a\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1237276, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0b000
mmap2(NULL, 1242576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ddb000
mmap2(0xb7f05000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12a) = 0xb7f05000
mmap2(0xb7f08000, 9680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f08000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dda000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dda6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f05000, 8192, PROT_READ) = 0
mprotect(0x8052000, 4096, PROT_READ) = 0
mprotect(0xb7f30000, 4096, PROT_READ) = 0
munmap(0xb7f0c000, 34814) = 0
brk(0) = 0x805b000
brk(0x807c000) = 0x807c000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2586, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f14000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2586
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7f14000, 4096) = 0
open("/usr/lib/locale/zh_CN.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/zh_CN.utf8/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=254852, ...}) = 0
mmap2(NULL, 254852, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7d9b000
close(3) = 0
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=25486, ...}) = 0
mmap2(NULL, 25486, PROT_READ, MAP_SHARED, 3, 0) = 0xb7f0e000
close(3) = 0
getuid32() = 0
geteuid32() = 0
getgid32() = 0
getegid32() = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=37, ws_col=126, ws_xpixel=0, ws_ypixel=0}) = 0
open("/etc/man.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=4693, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0d000
read(3, "#\n# Generated automatically from"..., 4096) = 4096
brk(0x809e000) = 0x809e000
read(3, " specified\n# and the MANSECT env"..., 4096) = 597
read(3, "", 4096) = 0
stat64("/usr/local/share/man", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat64("/usr/share/man", {st_mode=S_IFDIR|0755, st_size=1256, ...}) = 0
stat64("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat64("/usr/share/gcc-data/i486-pc-linux-gnu/4.1.2/man", 0xbfa343d0) = -1 ENOENT (No such file or directory)
stat64("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man", {st_mode=S_IFDIR|0755, st_size=96, ...}) = 0
stat64("/usr/local/share/man", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat64("/usr/share/man", {st_mode=S_IFDIR|0755, st_size=1256, ...}) = 0
stat64("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat64("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man", {st_mode=S_IFDIR|0755, st_size=96, ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
open("/usr/local/share/man/html1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/man/cat1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/share/man/html1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/share/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=44408, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 147 entries */, 4096) = 4096
getdents(4, /* 148 entries */, 4096) = 4096
getdents(4, /* 146 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4092
getdents(4, /* 147 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4084
getdents(4, /* 147 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4092
getdents(4, /* 147 entries */, 4096) = 4040
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
open("/usr/share/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=44408, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 147 entries */, 4096) = 4096
getdents(4, /* 148 entries */, 4096) = 4096
getdents(4, /* 146 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4092
getdents(4, /* 147 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4084
getdents(4, /* 147 entries */, 4096) = 4076
getdents(4, /* 147 entries */, 4096) = 4092
getdents(4, /* 147 entries */, 4096) = 4040
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
access("/usr/share/man/man1/ls.1.bz2", R_OK) = 0
open("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man/html1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=592, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 20 entries */, 4096) = 484
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
open("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=592, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 20 entries */, 4096) = 484
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
open("/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man/cat1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man/html1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
open("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 7 entries */, 4096) = 156
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
open("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man/man1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=208, ...}) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getdents(4, /* 7 entries */, 4096) = 156
getdents(4, /* 0 entries */, 4096) = 0
close(4) = 0
open("/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man/cat1/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
access("/usr/share/man/man1/ls.1.bz2", R_OK) = 0
pipe([4, 5]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7dda708) = 23771
--- SIGCHLD (Child exited) @ 0 (0) ---
close(5) = 0
fstat64(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0c000
read(4, ".\\\" DO NOT MODIFY THIS FILE! It"..., 1024) = 1024
close(4) = 0
waitpid(23771, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 23771
munmap(0xb7f0c000, 4096) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
pipe([4, 5]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7dda708) = 23772
--- SIGCHLD (Child exited) @ 0 (0) ---
close(5) = 0
fstat64(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0c000
read(4, ".\\\" DO NOT MODIFY THIS FILE! It"..., 1024) = 1024
close(4) = 0
waitpid(23772, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 23772
munmap(0xb7f0c000, 4096) = 0
rt_sigaction(SIGINT, {0x804f4b0, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {0x804f4b0, [INT], SA_RESTART}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0xbfa36464) = 23773
waitpid(23773, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 23773
rt_sigaction(SIGINT, {0x804f4b0, [INT], SA_RESTART}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigaction(SIGINT, {SIG_DFL}, {0x804f4b0, [INT], SA_RESTART}, 8) = 0
exit_group(0) = ?
从上面系统调用,可以看出man生成3个子进程,后来看pstree,应该是
man-sh-sh-less,也就是说最后一个子进程调用less,不过我不知道如何
看子进程的信息,我看了man strace可以使用-p pid查看子进程,但是还是
没效,不知道为什么?
我是Gentoo新手,刚用两天,感觉非常好,打算以后就扎堆到Gentoo了,希望
大家多多指点,谢谢! |
|