日期:2014-05-16  浏览次数:20578 次

linux常见命令

管道命令 | , 将前面命令的正确信息 传递给后面的命令作标准输入。 |仅能处理标准输出,对stderr没有直接处理能力.
$ls -al |more
ls 的结果被more读取。

选取命令 cut,grep

注意选取的信息是以行为单位的,即是逐行分析的。
cut  用于使用分割符切割每一行
-d '分割符'
-f m,n... 指定取出的第几段, 以逗号分隔,指定都是哪几个段,比如 -f1,3,4 指定取出第1,3,4段
-c 以字符为单位取出固定的字符范围 比如 cut -c 12- ,每行 第12个字符以后的所有内容, cut -c 12-20 ,每行 第12到20 字符之间的内容
例子
woody@xiaoc:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
woody@xiaoc:~$ echo $PATH |cut -d ':' -f 5
/sbin
woody@xiaoc:~$ echo $PATH |cut -d ':' -f 2,4 //第2段和第4段,:分隔
/usr/local/bin:/usr/bin
woody@xiaoc:~$

woody@xiaoc:~$ export
declare -x COLORTERM="Terminal"
declare -x DISPLAY=":0.0"
declare -x GTK_IM_MODULE="xim"
declare -x HISTCONTROL="ignoreboth"
declare -x HOME="/home/woody"
declare -x LANG="en_US.UTF-8"
declare -x LC_CTYPE="zh_CN.UTF-8"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="woody"
.....省略
woody@xiaoc:~$ export | cut -c 12-????????? //输出每行 第12个字符以后的内容
COLORTERM="Terminal"
DISPLAY=":0.0"
GTK_IM_MODULE="xim"
HISTCONTROL="ignoreboth"
HOME="/home/woody"
LANG="en_US.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LESSCLOSE="/usr/bin/lesspipe %s %s"
LESSOPEN="| /usr/bin/lesspipe %s"
LOGNAME="woody"
.....省略

grep : 分析每一行,如果行中有需要的信息,则输出该行
grep -[acinv] '搜索内容串' filename
-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行

例子
woody@xiaoc:~$ last | grep 'tty2' ????????? //找出last结果中 有tty2 的行
woody??? tty2????????????????????????? Sat Aug 30 17:14 - 17:14 (00:00)???
woody??? tty2????????????????????????? Sat Aug 30 17:14 - 17:14 (00:00)???
woody??? tty2????????????????????????? Sun Jul 20 22:06 - down?? (00:07)???
woody??? tty2????????????????????????? Sun Jul 20 22:06 - 22:06 (00:00)???
woody??? tty2????????????????????????? Sun Jul 20 21:35 - down?? (00:29)???
woody??? tty2????????????????????????? Sun Jul 20 21:35 - 21:35 (00:00)???
woody??? tty2????????????????????????? Mon Jul 21 04:32 - down?? (01:00)???
woody??? tty2????????????????????????? Mon Jul 21 04:32 - 04:32 (00:00)???
woody??? tty2????????????????????????? Mon Jul 21 04:08 - down?? (00:00)???
woody??? tty2????????????????????????? Mon Jul 21 04:08 - 04:08 (00:00)???
woody@xiaoc:~$
woody@xiaoc:~$ last | grep -v 'tty2' //找没有tty2的行...
woody??? pts/0??????? :0.0???????????? Sat Aug 30 17:42?? still logged in??
woody??? pts/0??????? :0.0???????????? Sat Aug 30 17:42 - 17:42 (00:00)???
woody??? pts/0??????? :0.0???????????? Sat Aug 30 17:41 - 17:42 (00:00)???
woody??? tty1????????????????????????? Sat Aug 30 17:23 - 17:23 (00:00)???
woody??? tty1????????????????????????? Sat Aug 30 17:23 - 17:23 (00:00)???
woody??? tty1????????????????????????? Sat Aug 30 17:19 - 17:20 (00:00)???
woody??? tty1????????????????????????? Sat Aug 30 17:19 - 17:19 (00:00)???
woody??? tty1????????????????????????? Sat Aug