###3.4 把oldboy.txt拷贝(复制)到/tmp下。
#copy ----cp
[root@oldboyedu-01 ~]# cp /data/oldboy.txt /tmp/[root@oldboyedu-01 ~]# ls -l /tmp/total 4-rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt-rw-------. 1 root root 0 Sep 18 15:40 yum.log#操作前备份 操作后检查
[root@oldboyedu-01 ~]# cp /data/oldboy.txt /data/oldboy.txt.bak[root@oldboyedu-01 ~]# ls -l /data/oldboy.txt-rw-r--r--. 1 root root 140 Sep 20 01:12 /data/oldboy.txt[root@oldboyedu-01 ~]# ls -l /data/total 12-rw-r--r--. 1 root root 10 Sep 20 01:15 num.txt-rw-r--r--. 1 root root 140 Sep 20 01:12 oldboy.txt-rw-r--r--. 1 root root 140 Sep 20 01:31 oldboy.txt.bak[root@oldboyedu-01 ~]# cp /data/ /tmp/
cp: omitting directory `/data/'[root@oldboyedu-01 ~]# cp -r /data/ /tmp/
[root@oldboyedu-01 ~]# ls -l /tmp/total 8drwxr-xr-x. 2 root root 4096 Sep 20 01:35 data-rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt-rw-------. 1 root root 0 Sep 18 15:40 yum.log1.排版哥
2.ppt哥3.三剑客 三哥4.演讲哥5.画图哥 ###3.5 把 /data 移动到 /root目录下面#移动----搬家---move-mv[root@oldboyedu-01 ~]# mv /data/ /root/[root@oldboyedu-01 ~]# ls -l /root/total 40-rw-------. 1 root root 1052 Sep 18 15:44 anaconda-ks.cfgdrwxr-xr-x. 2 root root 4096 Sep 20 01:31 data-rw-r--r--. 1 root root 21736 Sep 18 15:44 install.log-rw-r--r--. 1 root root 5890 Sep 18 15:43 install.log.syslog[root@oldboyedu-01 ~]# ls -l /data
ls: cannot access /data: No such file or directory vmware 给你虚拟机拍摄快照###3.6 进入/root目录下的data目录,删除oldboy.txt文件
[root@oldboyedu-01 tmp]# rm data/
rm: cannot remove `data/': Is a directory[root@oldboyedu-01 tmp]# rm -r datarm: descend into directory `data'? yrm: remove regular file `data/oldboy.txt'? nrm: remove regular file `data/.oldboy.txt.swp'? nrm: remove regular file `data/num.txt'? nrm: remove regular file `data/oldboy.txt.bak'? nrm: remove directory `data'? n[root@oldboyedu-01 tmp]# rm -rf data/[root@oldboyedu-01 tmp]# ls -ltotal 4-rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt-rw-------. 1 root root 0 Sep 18 15:40 yum.log##find命令
[root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"/root/data/oldboy.txt[root@oldboyedu-01 tmp]# #find /root/ -type f -name "oldboy.txt"[root@oldboyedu-01 tmp]# #find 在哪里找 找什么类型的 找什么名字-type 找什么类型的
f file 文件 d directory 目录##管道 |
[root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"
/root/data/oldboy.txt[root@oldboyedu-01 tmp]#[root@oldboyedu-01 tmp]#[root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"|xargs ls -l-rw-r--r--. 1 root root 0 Sep 20 02:27 /root/data/oldboy.txt找出以.txt结尾的文件
[root@oldboyedu-01 tmp]# find /root/ -type f -name "*.txt"/root/data/oldboy.txt/root/data/num.txt###3.7 接第6题,退出到上一级目录删除data目录。(原来在/root/data)
[root@oldboyedu-01 ~]# cd /root/data/[root@oldboyedu-01 data]# pwd/root/data[root@oldboyedu-01 data]# cd ..[root@oldboyedu-01 ~]# pwd/root[root@oldboyedu-01 ~]# #进入当前目录的上一级目录[root@oldboyedu-01 ~]# cd ..[root@oldboyedu-01 /]# cd ../../../[root@oldboyedu-01 ~]# rm data/ -fr
[root@oldboyedu-01 ~]# ls datals: cannot access data: No such file or directory###3.8 已知文件test.txt内容
oldboytestlidao请给出输出test.txt文件内容时,不包含oldboy字符串的命令。 创建测试文件:mkdir /datacat >/data/test.txt<<EOFtestliyaooldboyEOF#方法1-grep
[root@oldboyedu-01 ~]# cd /data/[root@oldboyedu-01 data]# cat test.txttestliyaooldboy[root@oldboyedu-01 data]# #过滤 在文件中找到你想要的内容[root@oldboyedu-01 data]# grep "oldboy" test.txtoldboy[root@oldboyedu-01 data]# grep "ol" test.txtoldboy[root@oldboyedu-01 data]# #排除[root@oldboyedu-01 data]# grep -v "oldboy" test.txttestliyao#方法2-head
[root@oldboyedu-01 data]# head test.txttestliyaooldboy[root@oldboyedu-01 data]# head -n2 test.txttestliyao[root@oldboyedu-01 data]# head -2 test.txttestliyao[root@oldboyedu-01 data]# tail test.txt
testliyaooldboy[root@oldboyedu-01 data]# tail -2 test.txtliyaooldboy[root@oldboyedu-01 data]# tail -1 test.txtoldboy#方法3-awk
[root@oldboyedu-01 data]# awk '/oldboy/' test.txtoldboy[root@oldboyedu-01 data]# grep "oldboy" test.txtoldboy[root@oldboyedu-01 data]# grep -v "oldboy" test.txttestliyao[root@oldboyedu-01 data]# awk '!/oldboy/' test.txttestliyao[root@oldboyedu-01 data]# #awk中 !表示取反 非#方法4-sed
[root@oldboyedu-01 data]# sed '/oldboy/d' test.txttestliyao小结:
1.grep 过滤 ******2.head tail ******3.sed awk 了解##3.9 请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test
[root@oldboyedu-01 data]# mkdir /oldboy/test
mkdir: cannot create directory `/oldboy/test': No such file or directory
No such file or directory错误排查过程
1.ls 命令一层一层查看2.查看每一层目录/文件是否存在 [root@oldboyedu-01 data]# mkdir -p /oldboy/test[root@oldboyedu-01 data]# ls /oldboy/test[root@oldboyedu-01 data]# ls -l /oldboy/total 4drwxr-xr-x. 2 root root 4096 Sep 25 10:28 test##3.10 已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让系统不提示是否覆盖(root权限下)。
[root@oldboyedu-01 data]# cp /mnt/test.txt /tmp/cp: overwrite `/tmp/test.txt'? ^C#方法1 撬棍[root@oldboyedu-01 data]# \cp /mnt/test.txt /tmp/#方法2 使用命令的绝对路径 全路径
[root@oldboyedu-01 data]# which cp
alias cp='cp -i' /bin/cp[root@oldboyedu-01 data]# which mkdir/bin/mkdir[root@oldboyedu-01 data]# ls -l /bin/cp
-rwxr-xr-x. 1 root root 122896 Mar 23 2017 /bin/cp[root@oldboyedu-01 data]# /bin/cp /mnt/test.txt /tmp/#提示你是否覆盖? 是否删除?
#为何我们执行cp的时候就相当于cp -i
#为何我们执行rm的时候就相当于rm -i###linux别名
##小名 昵称 爱称 外号##目标
###1.防止运行危险命令******###2.省事 简化命令##如何设置一个别名
###第一个里程碑-查看系统中的别名
[root@oldboyedu-01 data]# alias rm cp mv
alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'###第二个里程碑-模仿#执行rm命令的时候提示 do not use rmroot@oldboyedu-01 data]# echo do not use rmdo not use rm[root@oldboyedu-01 data]# alias rm='echo do not use rm'[root@oldboyedu-01 data]# alias rmalias rm='echo do not use rm'[root@oldboyedu-01 data]# rm /tmp/test.txtdo not use rm /tmp/test.txt[root@oldboyedu-01 data]# rm -f /tmp/test.txtdo not use rm -f /tmp/test.txt[root@oldboyedu-01 data]# rm -fr /tmp/test.txtdo not use rm -fr /tmp/test.txt###第三个里程碑-永久生效#/etc/profile#vim 快捷键##移动光标到文件的最后一行 G##移动光标到文件的 第一行 gg##在光标所在位置的下一行插入一个空行 并进入编辑模式 o(小写字母)[root@oldboyedu-01 ~]# tail -1 /etc/profilealias rm='echo do not use rm'[root@oldboyedu-01 ~]# source /etc/profile
[root@oldboyedu-01 ~]# alias rmalias rm='echo do not use rm'###第四个里程碑-填坑
编辑 /root/.bashrc把 alias rm='rm -i'这一行前面加上一个注释#小结:
1.配置别名2.临时取消别名 cp rm##3.11 只查看ett.txt文件(共100行)内第20到第30行的内容
seq 100 >/oldboy/ett.txt
###方法1-sed
[root@oldboyedu-01 ~]# #sed 默认输出 sed命令会把文件的内容 默认都显示出来[root@oldboyedu-01 ~]# sed -n '20p' /oldboy/ett.txt20[root@oldboyedu-01 ~]# sed -n '20,30p' /oldboy/ett.txt2021222324252627282930###方法2-head + tail
[root@oldboyedu-01 ~]# head -30 /oldboy/ett.txt |tail -112021222324252627282930###方法3-awk
[root@oldboyedu-01 ~]# awk 'NR==20' /oldboy/ett.txt20#NR表示行号#== 表示等于[root@oldboyedu-01 ~]# awk 'NR==20,NR==30' /oldboy/ett.txt[root@oldboyedu-01 ~]# sed -n '20,30p' /oldboy/ett.txt###方法4-grep
[root@oldboyedu-01 ~]# grep "20" /oldboy/ett.txt20[root@oldboyedu-01 ~]# #文件的内容 ====等于这一行的行号[root@oldboyedu-01 ~]# grep -A10 "20" /oldboy/ett.txt2021222324252627282930小结:
1.取出文件中的某一行,或者连续的几行2.sed,head+tail3.awk-了解##3.12 把/oldboy目录及其子目录下所有以扩展名 .sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgirl
创建测试环境:mkdir -p /oldboy/testcd /oldboyecho "oldboy">test/del.shecho "oldboy">test.shecho "oldboy">t.shtouch oldboy.txttouch alex.txt#第一个里程碑-找出你要的文件
[root@oldboyedu-01 oldboy]# find /oldboy/ -type f/oldboy/t.sh/oldboy/oldboy.txt/oldboy/test.sh/oldboy/test/del.sh/oldboy/ett.txt/oldboy/alex.txt[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"/oldboy/t.sh/oldboy/test.sh/oldboy/test/del.sh#第二个里程碑-oldboy替换为oldgirl 处理一个文件
[root@oldboyedu-01 oldboy]# cat /oldboy/t.sholdboy[root@oldboyedu-01 oldboy]# #sed 's#找谁#替换为什么#g' /oldboy/t.sh[root@oldboyedu-01 oldboy]# #替换[root@oldboyedu-01 oldboy]# sed 's#oldboy#oldgirl#g' /oldboy/t.sholdgirl[root@oldboyedu-01 oldboy]# cat /oldboy/t.sholdboy[root@oldboyedu-01 oldboy]# #sed修改文件的内容[root@oldboyedu-01 oldboy]# sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh[root@oldboyedu-01 oldboy]# cat /oldboy/t.sholdgirl#第三个里程碑-把find命令找到的文件交给sed命令处理
[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"/oldboy/t.sh/oldboy/test.sh/oldboy/test/del.sh[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs ls -l-rw-r--r--. 1 root root 7 Sep 25 11:59 /oldboy/test/del.sh-rw-r--r--. 1 root root 7 Sep 25 11:59 /oldboy/test.sh-rw-r--r--. 1 root root 8 Sep 25 12:08 /oldboy/t.sh[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'oldgirloldgirloldgirl[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' -i[root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs catoldgirloldgirloldgirl小结:
1.find 与|xargs2.ls -l rm sed3.sed名进行替换 修改文件内容第一关练习题-命令与征服
1.一大波命令2.三剑客 grep sed使用3.别名4.find命令查找出文件 与 其他命令配合