Linux学习笔记(2)

数据流重定向

在Shell中,数据流可以使用符号来表示:
1、标准输入(stdin):代码为0,使用<或<<
2、标准输出(stdout):代码为1,使用>(覆盖)或>>(累加)
3、标准错误输出(stderr):代码为2,使用2>或2>>

例子:

ls /home > ~/fileinfo

以上命令会将ls /home的结果输出到目录~/下的fileinfo文件中。

find /home -name .bashrc > list_right 2> list_error

在/home目录下查找名为.bashrc的文件,正确的输出信息存到list_right中,错误信息存到list_error中。

管道命令

ls -al /etc | less

将ls -al /etc的输出作为less命令的输入。

注意事项:

1、每一个管道后面接的必然是“命令”,而且这个命令必须要能够接受standard input的数据才行,例如less, more, head。而cp, ls, mv就不是管道命令。
2、管道命令仅能处理standard output,对于standard error output会予以忽略 。

选取命令:cut, grep

last | cut -d ' ' -f 1

last命令会输出近期登录系统的用户信息,cut -d ' ' -f 1的意思是以 ' ' 作为分隔符来分割每一行,然后选取第一个字段。

grep 'MANPATH' /etc/manpath.config

找出文件/etc/manpath.config中含有字符串'MANPATH'的行,并且用颜色标记。

排序统计命令:sort, wc, uniq

  • sort

cat /etc/passwd | sort

sort /etc/passwd

文件/etc/passwd中存储着系统中所有的账户,sort命令默认会以第一个字段进行按照字典序进行排序(/etc/passwd中分隔符为:)。

  • wc(统计文件行数、字符数)

cat /etc/manpath.config | wc

统计文件/etc/manpath.config的行数(-l),单词数(-w),字符数(-m)。

  • uniq(去重)

last | cut -d ' ' -f 1 | sort | uniq

使用last将登录帐号列出,仅列出帐号名,进行排序后去重。

 

 

 

 

 

 

 

posted @ 2013-11-09 21:12  StrikeW  阅读(244)  评论(0编辑  收藏  举报