linux命令color linux命令grep用法( 四 )


-H如果命令行参数是一个通到目录的软链接,则遍历软链接
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-L:遍历每一个遇到的通到目录的软链接
-P:不遍历任何符号链接(默认)
-v或——verbose:显示指令执行过程;
--reference=参考文件或目录:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
umask 是显示或设置创建文件的权限掩码 。我们需要先了解一下新建文件和目录的默认最大权限 。
我们在这里按照权限字母来讲解 umask 权限的计算方法 。我们就按照默认的 umask 值是 022来分别计算一下新建文件和目录的默认权限吧 。
linux下ls -color显示的是什么颜色ls命令用于列出指定目录下文文件 。
-C|--color[=WHEN]参数的作用是让每栏由上至下列出项目,同时控制是否使用色彩分辨文件 。WHEN 可以是"never"(默认)、"always"或"auto"其中之一 。
文件不同的颜色表示文件不同的类型,下面是linux系统默认不同类型文件所使用的颜色:
白色:表示普通文件
蓝色:表示目录
绿色:表示可执行文件
红色:表示压缩文件
浅蓝色:链接文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其它文件
perl脚本在linux里,只显示带颜色的命令对于Linux管理员来说linux命令color,grep是日常最常用的命令linux命令color , 可以把匹配的字符输出 , 同样可以输出颜色 。
# grep --color 'test' /var/log/maillog
无聊练功:?用perl 实现grep --color
# vi colorgrep
#!/usr/bin/perl
use Term::ANSIColor;
my $test;
if (@ARGV != 2){
die "Please use (colorgrep 'some key word' filename)\n";
}
$test = shift @ARGV;
while(){
if(/$test/i){
print "$`";
print color "bold red";
print "$";
print color 'reset';
print "$'";
}
}
这里调用了Term::ANSIColor 函数 color 有以下的参数:
clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white
还有以下的简化使用方法
2) use Term::ANSIColor qw(:constants);
如果使用这种方法 , 可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤 。这些颜色属性有:
CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE
等 。
例如:
print BOLD BLUE ON_WHITE “Text”, RESET, “\n”;
如果linux命令color你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值 。
例如:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, “This text is in bold blue.\n”, RESET;
3) $Term::ANSIColor::AUTORESET = 1;
对于2)的方法,如果linux命令color你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true 。这样每次打印完字符 , 只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性 。
看一个完整的例子:
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE “This text is in bold blue.\n”;
print “This text is normal.\n”;
这三种方法,使用起来各有千秋,可根据要打印的复杂程度选用 。
Linux命令ls -a和ls -A的含义是什么?ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似 。当执行ls命令时,默认显示的只有非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示 。当不加参数时,默认列出当前目录的列表信息 。

推荐阅读