7.1 输入输出重定向
“>”输出重定向 可以将输出信息输出到指定的文件或地方,并且覆盖原有全部内容(将屏幕上的输出重定向到其他的地方)
“>>”输出追加命令 追加命令不会覆盖原有内容,而是在原有内容后另起一行写入(同上)
标准输入 0
标准输出 1
错误的输出 2 ( ll /dev/std*)
cat sxkeji sxkeji1 1>right.txt 2>err.txt
"&>" 命令将“标准输出1、错误输出2”合并后重定向输出,同样会覆盖原有信息
patch \u6253\u8865\u4e01\u4fee\u8865\u6587\u4ef6
\u8ba9\u7528\u6237\u5229\u7528\u8bbe\u7f6e\u8865\u4e01\u6587\u4ef6\u7684\u65b9\u5f0f\uff0c\u4fee\u6539\u548c\u66f4\u65b0\u6587\u4ef6
如:cat sxkj cc &>test
"&>"命令的另一种写法:“1>test 2>&1”
"<"导入命令 可以导入一个文件给命令执行
[root@cc ~]# wc 10 13 452
其中 ,10代表行数 13代表单词数 452字节数
find . |cpio -co > /linux.cpio 其中的cpio是一个备份(灾备)文件的命令
cpio -t
“/dev/null”
null 意思是“无效的、无价值的、等于0的 ” ,“/dev/null”就像是一个黑洞,只能写入,无法读取,(其中的内容永远丢失)
“/dev/zero”
也是一个伪文件,是系统的零发生器(主要用处是创建一个指定长度,当我们需要产生一些较大文件用于测试时,可以用这个零产生设备文件)
dd if=/dev/zero of=/root/cc/abc bs=1M count=28 (dd也是一个备份工具)(if=input of=output bs为block块 是基本存储单位 count 是块的总数)
7.2管道及相关配套命令
echo
在屏幕上显示一段文字或者指定内容(标准输出)若不要自动换行,则加上 -n
[root@cc ~]# cat dehuason.sh
#!/bin/bash
echo "请输入你给刘德华的儿子推荐的名字"
read dhson_name
echo 刘德华的儿子的名字是$dhson_name
read dhson_name的作用是接收屏幕上的内容,然后将接收的内容给后面变量dhson_name,变量名可以自己定义。
echo $? 上一条命令的执行结果,如果为0代表上一条命令执行成功,非0执行失败([root@cc ~]# echo $? 0 [1]+ Exit 1 vncviewer 192.168.0.254 表示成功了)
echo $var 查看变量值,var为定义的变量
echo $[8+9]\echo $((8+9)) 计算功能,计算两个值的算术运算结果(可以是-、+、*、/)
" "、' ' 、\、 (“ ”显示是变量值替换了变量、‘ ’显示是直接显示变量,不显示变量值、\为转义字符)
“-e” 选项处理由\表示的转义,否则不处理
let a=8+9 echo $a 设置变量为算术表达式,并且计算
bc 算术计算,结果取整数
| 管道符号
经常用来将管道前面的某个命令或者程序的输出,提供给管道后面另一个命令或者程序作为输入(cat /etc/hosts | grep 127 将文件…中包含127的行整行显示 (其中grep 是一行一行的查找,找到后整行输出))
"seq" 打印出一串有序的数字
-f 指定打印的格式 (seq -f %03g 98 102 表示从98到102的书数,格式为3个字符)
-s 指定分隔符,默认为回车作为分隔符( seq -s"-" 2 4 输出2到4之间的分隔符为-)
-w 指定输出宽度,不足的用0补齐( seq -w 8 11 输出8到11宽度以11为标准,个位数前面补0)
“xargs” 构造参数列表
将前面一个命令产生的输出:文件列表、字符串列表,以参数的形式输出(seq 3 8|xargs )
tr(处理后并不破坏原文件)
-c 取指定的字符串的补集,替换此字符串
-d 删除所有指定的字符
-s 删除所有重复的字符序列,之保留其中的一个
tr -s "a-z""A-Z""0-9"@#$ tr -d ":"sxkj8 删除所有的:,并重定向到sxkj8里面
tr -d ":/"sxkj9 同时删除所有的:/ ,并且重定向到sxkj9里面
tr -d -c "A-Z" tr "a-z" "A-Z" tr -c "[a-zA-Z]" "\n"
[root@cc ~]# tr "\40" "\t" root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin(\40 代表空格 \t代表tab键)
seq 1 150|xargs|tr " " "+"|bc 首先生成一列数字,将输出传递给xargs,夹着列数字以参数的形式列出,以空格隔开,然后传给tr用+好取代空格,最后将输出传给bc计算
7.3排序功能相关命令
sort 命令(也是不改变原来的文件)
对文本按照指定的规则进行排序,对已排序的文件进行合并,并检查文件来确定他们是否一排序
-u 排序之后去除重复行
-f 不区分大小写字母排序
- r 逆序输出排序结果
-t 指定分隔符标志
-k 指定字段进行排序
sort -u -f sxkj9 去除文件中重复的字符
sort -u -r -f sxkj9
sort -k3 sxkj4
sort -t : -k4 new_sxkj4
uniq
删除文件中的重复行(一般是相邻的重复行)
-d 只显示重复行
-u 只显示不重复行
-c 输出时统计每行重复出现的次数,标记在行首
7.4数据提取及过滤
cut 命令
按列截取文件中的内容
cut命令的默认分隔符是tab -d是指定分隔符号
sort默认分隔符是空格 -t 是指定分隔符号
-d 按字节截取文件中的每行指定内容
-c 按字符截取文件中的每行内容
-f 按字段截取文件中每行内容
-s 不显示不包含分隔符的行,有利于去掉注释行
cut -c 1-4 sxkj4
cut -c 1-4,5-7 sxkj4 切割每一列的第1 -4,5-7字符
cut -d" " -f3 sxkj4
tr -s " " < /var/log/messages|cut -d" " -f3|sort -u|wc -l
grep
在一个或者多个文件中搜索“字符串”模板。一行行的找,整行输出(如果模板包括空格,则必须被引用,搜索结果送到屏幕,不改变原文件的内容)
^ 行首(放在查找词的前面) $ 行尾(放在查找词的后面) . 除了换行以外的任意单个字符 * 前导字符的零个或者多个
-i 不区分大小写
-v 显示不匹配的行
-n 显示匹配的行及其行号
cat passwd|grep "^[rm]" 查找以r或者m的行
cat passwd|grep "[rm]oot" 查找包含room或者moot的行(cat passwd |grep "^[^rmu]")
grep 127 passwd 或者 cat passwd |grep 127 在文件passwd中查找含有127的行并显示
cat passwd |more|grep ^m 在文件中查找以m开头的行
cat passwd |more|grep $m 在文件中查找以m结尾的行
grep "tang....sui" a.txt 或者 grep "tang.*sui" a.txt (主要是用到 . 和 .*)
wc
统计文件里的单词数量等信息
-l 统计行数
-w 文件的单词数
-c 文件的字节数
7.5 文件的差异对比和补丁生成及打补丁
diff 找出两个文件的不同点
diff -u jysg jysg2 比较两文件的不同(先是源文件,再接目标文件)(-u 比较文件,输出差异)
diff -u jysg jysg2 >>jysg1-2.patch 打补丁文件jysg1-2.patch
diff -uNr qq1 qq2 目录的比较
diff -Nur qq1 qq2>qq.patch (给目录打补丁,加上-Nur保证把里面的子目录一起实现)
-r 选项目录中的子目录
-N 让只在一个目录下有的文件与一个空文件比较
patch jysg patch p1
阅读(1131) | 评论(0) | 转发(0) |