您的位置:首页 > 运维架构 > Linux

Linux基本命令练习(2)

2016-08-05 18:03 218 查看
1.已知/tmp目录下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让linux系统不提示是否覆盖(root权限下)。



两种方法

一种是在cp命令前加一个\



另一种是用cp命令的全路径



为什么直接用cp,会提示是否覆盖呢?

这就要关注alias了

alias cp='cp -i'


补充:

alias是设置指令的别名,我们可以看到cp是cp -i的别名。-i参数代表在目标文件已经存在,在覆盖时会先询问。



取消别名 unalias



那么,别名的作用:

(1)通过给危险的命令加一些保护参数,防止人为误操作。

(2)把很多复杂的字符串或命令变成一个简单的字符串。

系统别名的位置:



2.在脚本中删除文件或目录时生产环境的使用方法

①和xargs搭配用法



xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。

find 在/目录下查找文件

-type f 查找的类型为f(文件)

| (管道 ) : 通过管道把前一个命令的输出交给后一个命令继续处理

补充:

find 查找命令 -type f(文件) -name “名字”(按名字查找) -mtime (按修改时间查找)

[root@muban ~]# find /root/ -type f -name "*.log" -mtime -4


-4代表最近4天,+4代表4天以前,4代表第四天那一天



②使用find的-exec



{} : find找到的内容

-exec到 \ : 代表find额外动作的开始到结束

rm -f {} : 额外命令

; 是bash的特殊意义,就用反斜杠转义

3.只查看ett.txt文件(100行)内第20到第30行的内容

生成ett文件 seq 100 >ett.txt

[root@muban ~]# seq 100 >ett.txt
[root@muban ~]# cat ett.txt
1
2
3
4
5
...
100


三种方法:



[root@muban ~]# head -30 ett.txt|tail -11
20
21
22
23
24
25
26
27
28
29
30




[root@muban ~]# sed -n 20,30p ett.txt
20
21
22
23
24
25
26
27
28
29
30




[root@muban ~]# awk '{if(NR>19 && NR<31)  print $0}' ett.txt
20
21
22
23
24
25
26
27
28
29
30


$0一行内容,print $0 就是把符合条件的内容打印出来

补充:

sed 取各种内容

-n 取消默认输出 p=print d=delete

head [-n] [文件名] :后面直接跟文件名,显示文件前十行。-n表示显示文件前n行。

tail [-nf] [文件名] :后面直接跟文件名,显示文件后十行。-n表示显示文件后n行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 命令