第1章 重定向 1.1 > 或1> [标准输出]重定向 先清空文件的内容 然后再追加到文件的结尾 [root@oldboyedu43 data]# cat /root/data/oldboy.txt I am studying linux. oldboyedu.com I oldboy linux. [root@oldboyedu43 data]# echo "blog oldboyedu com"
blog.oldboyedu.com [root@oldboyedu43 data]# echo "blog oldboyedu com" >/root/data/oldboy.txt
[root@oldboyedu43 data]# cat /root/data/oldboy.txt blog oldboyedu com

1.2 >> 或1>> [标准输出]追加重定向 把内容追加到文件的结尾 [root@oldboyedu43 data]# echo "oldgirl">>/root/data/oldboy.txt [root@oldboyedu43 data]# cat /root/data/oldboy.txt blog.oldboyedu.com oldgirl

1.3 2>
标准错误输出重定向 又名错误重定向 先清空文件的内容 把错误信息内容追加到文件的结尾 1.4 2>> 标准错误输出追加重定向 错误追加重定向 把错误信息内容追加到文件的结尾

[root@oldboyedu43 data]# cho "oldgirl">>/root/data/oldboy.txt -bash: cho: command not found [root@oldboyedu43 data]# cat /root/data/oldboy.txt blog.oldboyedu.com oldgirl [root@oldboyedu43 data]# cho "oldgirl" 2>>/root/data/oldboy.txt [root@oldboyedu43 data]# cat /root/data/oldboy.txt blog.oldboyedu.com oldgirl -bash: cho: command not found

同时把正确的信息还有错误的信息 都记录下来 cho "oldboy" >>oldboy.txt 2>>oldboy.txt cho "oldboy" >>oldboy.txt 2>&1 echo "qwer" &>>/data/yxd.txt

1.5 标准输入重定向
< 或 0< 标准输入重定向 告诉命令从哪里获取文件 [root@oldboyedu43 data]# echo "1 2 3 4 5 6 7 8">/root/data/renyi.txt [root@oldboyedu43 data]# cat /root/data/renyi.txt 1 2 3 4 5 6 7 8 [root@oldboyedu43 data]# xargs -n2 <renyi.txt 1 2 3 4 5 6 7 8

<< 或 0<< 标准输入追加重定向 #向一个文件追加多行文字 cat >>/root/data/oldboy.txt<<EOF I am renyi EOF

第2章 如何预防误删除 1.把危险的参数放在最后面 2.尽量使用相对路径删除目录 3.删除的命令复杂化

第3章 find 可以查找出文件的内容或目录 3.1 find命令的格式 [root@oldboyedu43 data]# #find 在××× 什么类型 什么名字 [root@oldboyedu43 data]# find /root/ -type f(d为目录) -name "oldboy.txt" /root/data/oldboy.txt

3.2 find命令找出的文件 如何传递给其他命令(ls rm) 需要find与|xargs 配合 [root@oldboyedu43 data]# find /root/ -type f -name "oldboy.txt" /root/data/oldboy.txt [root@oldboyedu43 data]# find /root/ -type f -name "oldboy.txt"|xargs ls -l -rw-r--r--. 1 root root 106 Dec 11 18:23 /root/data/oldboy.txt 3.3 和find搭配使用 #找出以.txt结尾的文件
#find /root/ -type f -name "
.txt" #表示 所有东西/任何东西 [root@oldboyedu43 data]# find /root/ -type f -name ".txt" /root/data/oldboy.txt /root/data/renyi.txt /root/data/li.txt 第4章 如何退出当前目录以及删除目录 退出到上一级目录删除 /root/data目录。(原来在/root/data) rm -rf 加上目录ming cd .. 可以返回到上一目录

第5章 如何过滤显示内容 5.1 方法1: grep 5.1.1 不显示要找的内容 [root@oldboyedu43 data]# grep -v "oldboy" /data/test.txt test liyao 5.1.2 显示要找的内容 grep "oldboy" /data/test.txt oldboy

5.2 方法2: head显示文件的前两行 [root@oldboyedu43 data]# head -n2 /data/test.txt test liyao [root@oldboyedu43 data]# head -2 /data/test.txt test liyao

5.3 方法3:awk 5.3.1 显示找的内容 [root@oldboyedu43 data]# awk '/oldboy/' /data/test.txt oldboy 5.3.2 不显示找的内容 [root@oldboyedu43 data]# awk '!/oldboy/' /data/test.txt test liyao

5.4 方法4:sed 5.4.1 不显示要找的内容 [root@oldboyedu43 data]# sed '/oldboy/d' /data/test.txt test liyao 5.4.2 显示要找的内容 sed -n '/oldboy/p' /data/test.txt oldboy 小结: 1.grep过滤 2.head ,tail 3.awk sed 第6章 递归创建目录 [root@oldboyedu43 data]# mkdir -p /oldboy/test [root@oldboyedu43 data]# ls -l /oldboy/ total 4 drwxr-xr-x. 2 root root 4096 Dec 11 20:23 test

第7章 只查看指定的行数 seq 50 >/oldboy/ett.txt 7.1 .head + tail [root@oldboyedu43 oldboy]# head -30 /oldboy/ett.txt |tail -11

7.2 .sed sed默认输出每一行的内容,-n取消默认输出 显示第三十行的内容 [root@oldboyedu43 oldboy]# sed -n '30p' /oldboy/ett.txt 30 显示20到30行的内容 sed -n '从第20行到第30行p' /oldboy/ett.txt [root@oldboyedu43 oldboy]# sed -n '20,30p' /oldboy/ett.txt

显示ett.txt文件的第25到35行。

7.3 awk [root@oldboyedu43 oldboy]# awk 'NR==20,NR==30' /oldboy/ett.txt [root@oldboyedu43 oldboy]# #NR 在awk中表示行号

7.4 grep [root@oldboyedu43 oldboy]# grep "20" /oldboy/ett.txt 20 [root@oldboyedu43 oldboy]# grep -A10 "20" /oldboy/ett.txt [root@oldboyedu43 oldboy]# grep -B10 "30" /oldboy/ett.txt [root@oldboyedu43 oldboy]# grep -C5 "35" /oldboy/ett.txt 小结: 1.head+tail 2.sed 3.awk 4.grep了解

第8章 如何替换文件中的内容 8.1 先创建一个环境 mkdir -p /oldboy/test cd /oldboy echo "oldboy">test/del.sh echo "oldboy">test.sh echo "oldboy">t.sh touch oldboy.txt touch alex.txt

8.2 使用find命令找出你要处理的文件 [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh" /oldboy/test.sh /oldboy/test/del.sh /oldboy/t.sh

8.2.1 替换一个文件 (oldboy ----> oldgirl ) sed -i 's#要替换的内容#替换成什么内容#g' [root@oldboyedu43 oldboy]# sed -i 's#oldboy#oldgirl#g' /oldboy/test.sh [root@oldboyedu43 oldboy]# cat /oldboy/test.sh oldgirl

8.2.2 替换多个文件 把find命令找到的文件 都交给sed命令进行替换 [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' oldgirl oldgirl oldgirl

修改文件内容 [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#oldboy#oldgirl#g'

#####第6个里程碑-检查 [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat oldgirl oldgirl oldgirl