linux系统指令学习2

linux系统指令学习2

6.进入root目录,dzqc目录删除study.txt文件

解答:
命令答案:rm
remove
cd /root/dzqc
rm study. txt
rm命令解释
rm [if] [文件/目录] 删除文件/目录
-i:询问用户是否确认删除,用y或者n来回答。
-r:删除目录时加该选项,删除目录及目录下的文件和目录,可以删除不为空的目录。
-f:强制删除,不用确认
rmdir [p] [目录名]:
用来删除空目录,p表示递归删除目录,目录里不能有文件或者目录,有文件只能用rm -r来删除。
如:/a/b/c
rmdir /a/b/c会删除/a/b/c。而/a/b还在。
rmdir -p/a/b/c会删除/a,/a/b,/a/b/c
但是 rmdir/a, rmdir→p/a/b都会出错,提示: Directory not empty
提示:
删除一个文件一般用 rm -i study.txt,此法会提示你确认,推荐初学使用。用rm- f study.txt方法不提示确认直接删除,比较危险,不推荐初学者使用。
特别提示:
初学者尽量不要用rm命令,那么如果必须要删除呢?
可以用mv替代rm,也就是把文件移动到/tmp下,然后等/tmp分区将要满时一次性删除,减少范错。这种把/tmp目录当作回收站使用对初学者是个不错的选择。
在脚本中删除文件或目录时生产环境的使用方法一般为:
①和 xargs搭配用法
find . -type f -name “.log" - mtime+15 |xargs rm -f 删15天以前的文件
find . -type d -name“
.1og” -mtime+30 |xargs rm -rf其删目录30天以前 慎用。
提示:
xargs是一个不错的命令,有机会同学们要总结的。②使用find的-execfind /logs -type f -mtime+5 -exec rm {} : #在/logs目录中查找更改时间在5日以前的文件并删除它们:
在这里插入图片描述

7.接第6题,退出dzqc目录,删除dzqc目录

解答:
cd… 或cd…/
rm - r data或 rmdir data
#里面是空目录了不需要rf,杀鸡不用牛刀, rmdir基本要淘汰的命令了。
总结:
…相对路径,表示上一级目录,例如:/mnt/ aaa,mnt就是aaa的上级目录。
.相对路径,表示当前目录,即当前命令行的目录。
rm [-inf] [文件/目录] ←删除文件/目录
-i:询问用户是否确认删除,用y或者n来回答

8.已知文件test.txt内容为

Good good study
Day day up
Give you color see see
请给出打印test.txt内容时,不包含Give you color see see
解答:
先创建文件输入内容利用第三题的方法三,生成测试数据:用前而的cat编辑文件的特殊用法,执行下面命令就好
cat >test. txt<<EOF
Good good study
Day day up
Give you color see see
EOF
方法一:使用grep过滤(必须要会)
[root @songls] grep -v ‘Give you color see see’ test.txt
Good good study
Day day up
提示:
大多数人这里会用 cat test. txt grep -v" Give you color see see",这个命令虽然能实现,但如果是文件很大的话执行效率就差很多了,而且是不必要的。最后双引号"",为英文状态下的,非“”。
最后,此处gep后过滤的字符可以是 grep -v ‘Give you color see see’ test.txt或grep- v Give you color see see test.txt或grep -v " Give you color see seeoy"test.txt谁能说下区别?请实践验证。
方法二:
[root @moban ]# head -2 test.txt
Good good study
Day day up
方法三:0基础同学可以忽略此法
拓展:三剑客之一的sed删除方法,其实是把 Give you color see see行删除,然后打印剩下的内容。
Sed ‘/ Give you color see see/d’ test.txt
sed -e ‘/ Give you color see see/d’ test.txt
[root @songls]# sed -e /^Give you color see see/d test. txt
Good good study
Day day up
[root @songls]# sed /Give you color see see/d test. txt
Good good study
Day day up
方法四:0基础同学可以忽略此法
[root@old-boy ] awk /[^Give you color see see] /test.txt
Good good study
Day day up
提示:三剑客是grep,awk,sed,他们都有过滤字符串的功能,grep最擅长,awk处理列擅长。sed擅长删除,修改,替换,添加。

9.请给出一条命令完成创建目录/dzqc/test,即创建/dzqc目录及/dzqc/test目录

解答:
Mkdir -p /dzqc/telt
实践过程:
[root @songls]# mkdir -p / dzqc/test<递归创建目录,一般第一级目录不存在时用-p,否则报错。
[ root@songls]#tree /dzqc/ 查看目录树结果
如果没有tree命令 yum install tree -y
其他的方法: mkdir /dzqc/ /dzqc/test

10.已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt直接覆盖掉, /tmp/test.txt而让系统不提示是否覆盖(root权限下)

解答:
建立测试数据:
[root@songls dzqc]# touch /tmp/test. txt
[root@songls dzqc]# touch /mnt/test.txt
[root@songls dzqc]# cp / mnt/test. txt /tmp/
cp: overwrite ‘/tmp/test. txt’?
方法一:
/bin/cp/ mnt/test. txt /tmp/test.txt
方法二:
\cp /mnt/test. txt/ tmp/test.txt
简要解释:
此题的思路就是屏蔽掉系统默认的对应命令别名,默认执行cp的操作是调用了别名的。所以会提示覆盖。
详细说明:
cp命令默认是不会提示 overwrite的,但是cp的-i选项会提示,而一般 Linux的用户环境文件. ~/.bashrc中会把cp命名成 alias cp='cp -i’如:
[root@student tmp]# alias grep cp
alias cp=cp -i
这样在 Linux下输入cp命令实际上运行的是cp -i,加上一个“\”符号或者写cp全路径/bin/cp就是让此次的cp命令不使用别名(cp -i)运行。
提示:
同样命令还有mv、rm等。希望大家做事也能尽量的举一反三,由此及彼,拓宽思路和视野。
特别说明:
脚本里直接写命令也可以逃避别名,但是我们习惯还是用全路径
别名的作用:
1)通过给危险命令加一些保护参数,防止人为误操作。
2)把很多复杂的字符串或命令变成一个简单的字符串或命令。
别名对应的命令
alias查看和设置别名
unalias取消别名
让起的别名永久有效
#User specif’ic aliases and functionsalias
rm=’ rm -i’
allas cp=’ cp -i’
alias mv=’mv -i
定义别名永久生效:
/etc/ profile全局生效
/. bashrc当前用户生效
分享别名的困惑及解决技巧http:/oldboy.blog.51cto.com/2561410/699046

猜你喜欢

转载自blog.csdn.net/Camille66/article/details/89300124