今天,有个学弟问道:为什么Linux系统ls查看的时候,目录跟可执行文件,会带颜色。而且颜色都不一样。听到这个问题的时候,我想到我初学Linux的时候,同样的问题困扰了我很长时间。
记得上第一节Linux课程的时候,有人用vi编辑器打开的apache配置文件是带颜色的,而有的,比如我的就不带。其实,很简单的一问题,但是有很多人不了解,所以记录下,希望能帮助学弟们对Linux了解下。
首先我们来看为什么ls查是是带颜色的。
- [root@shiyan1 etc]#
- [root@shiyan1 etc]# alias
- alias cp=‘cp -i’
- alias l.=‘ls -d .* –color=auto’
- alias ll=‘ls -l –color=auto’
- alias ls=‘ls –color=auto’
- alias mv=‘mv -i’
- alias rm=‘rm -i’
- alias which=‘alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’
可以运行alias这个命令查看,其实我们用的ls不是单纯的ls而且用别名改ls -l –color=auto如果想单纯运行ls可以在命令前面加\,而且有些时候,我们cp -fr覆盖一些东西的时候,老是提示是否覆盖,很麻烦,为什么会这样,看上面的cp就知道,别名搞的鬼,所以用\cp -fr就不出现提示了。还有有些文件比如:/usr/bin/在这个目录下我们可以看到一些命令显示红色。这又是为什么呢我们在ll看下
- [root@shiyan1 bin]# ll sudo
- —s–x–x. 2 root root 219272 6月 22 2012 sudo
- [root@shiyan1 bin]#
用ll查看它的权限,发现属性里有个s这个s代表什么,其实这个s代表suid,用数字表示就是4,还有其他两个sgid用数字表示2,sbit用数字表示1,这个就像读(r或4)写(w或2)执行(x或1)。提到这个简单介绍下。suid加了这个属性(一般都是加给脚本或者命令),那么这个脚本或者命令普通用户也可以执行,比如,chmod 4755 /bin/ls 那么普通用户就可以用ls查看原来不可以查看的目录比如:/root/。而sgid一般加在目录,如果加在目录上,那么普通用户在这个目录下建立文件所属主是当前用户,而所属组为root。sbit呢,这个就一招让所有普通用户丧失可执行权限,就是普通用户对这个文件没有任何修改查看的权力。
剩下的就没什么可说的,什么链接文件,块文件,等等。这些没有特殊设置什么权限。单一颜色区分了。