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

day 5 Linux命令结构下部

2018-07-17 21:59 225 查看

Day-5 Linux命令结构下部

把 /data 移动到 /root目录下面

#move mv
mv命令该命令用于移动文件、目录或更名,move之意,它的常用参数如下:1. -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖2. -i :若目标文件已经存在,就会询问是否覆盖3. -u :若目标文件已经存在,且比目标文件新,才会更新注:该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”。1. mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中2. mv file1 file2 # 把文件file1重命名为file2
[root@oldboyedu50 ~]# mv /data/ /root/[root@oldboyedu50 ~]# ls -l /datals: cannot access /data: No such file or directory[root@oldboyedu50 ~]# ls -l /root/total 44-rw-------. 1 root root 1124 Jul 10 18:25 anaconda-ks.cfgdrwxr-xr-x. 2 root root 4096 Jul 11 02:13 data-rw-r--r--. 1 root root 21736 Jul 10 18:25 install.log-rw-r--r--. 1 root root 5890 Jul 10 18:24 install.log.syslog



【管道的概念】进入/root目录下的data目录,删除oldboy.txt文件

#如何备份?
[root@oldboyedu50 ~]# cd /root/data/(进入data)[root@oldboyedu50 data]# pwd(查看所在位置)/root/data[root@oldboyedu50 data]# ls -ltotal 12-rw-r--r--. 1 root root 7 Jul 11 02:13 alex.txt-rw-r--r--. 1 root root 14 Jul 11 01:16 lidao.txt-rw-r--r--. 1 root root 254 Jul 11 01:08 oldboy.txt[root@oldboyedu50 data]# cp oldboy.txt oldboy.txt.bak备份[root@oldboyedu50 data]# ls -ltotal 16-rw-r--r--. 1 root root 7 Jul 11 02:13 alex.txt-rw-r--r--. 1 root root 14 Jul 11 01:16 lidao.txt-rw-r--r--. 1 root root 254 Jul 11 01:08 oldboy.txt-rw-r--r--. 1 root root 254 Jul 11 02:56 oldboy.txt.bak

.bak === backup

#修改文件名 重命名
[root@oldboyedu50 data]# mv oldboy.txt oldgirl.txt(将oldboy.txt重命名为oldgirl.txt)[root@oldboyedu50 data]# ls -ltotal 16-rw-r--r--. 1 root root 7 Jul 11 02:13 alex.txt-rw-r--r--. 1 root root 14 Jul 11 01:16 lidao.txt-rw-r--r--. 1 root root 254 Jul 11 02:56 oldboy.txt.bak-rw-r--r--. 1 root root 254 Jul 11 01:08 oldgirl.txt

rm:

该命令用于删除文件或目录,remove之间,它的常用参数如下:1. -f :就是force的意思,忽略不存在的文件,不会出现警告消息2. -i :互动模式,在删除前会询问用户是否操作3. -r :递归删除,最常用于目录删除,它是一个非常危险的参数
例如:1. rm -i file # 删除文件file,在删除之前会询问是否进行该操作2. rm -fr dir # 强制删除目录dir中的所有文件

#强制删除

[root@oldboyedu50 data]# rm -f /root/data/oldgirl.txt [root@oldboyedu50 data]# ls -l /root/data/total 12-rw-r--r--. 1 root root 7 Jul 11 02:13 alex.txt-rw-r--r--. 1 root root 14 Jul 11 01:16 lidao.txt-rw-r--r--. 1 root root 254 Jul 11 02:56 oldboy.txt.bak

#强制删除目录

[root@oldboyedu50 data]# rm -rf /tmp/data/[root@oldboyedu50 data]# ls -l /tmp/datals: cannot access /tmp/data: No such file or directory rm -rf /tmp/data/rm -fr /tmp/data/

#怎么样防止 误删除

#创建环境

touch /root/oldboy.txt /root/alex.txt /root/lidao.txt #find命令 [root@oldboyedu50 data]# #find 在××× -类型 f -名字 "oldboy.txt"[root@oldboyedu50 data]# [root@oldboyedu50 data]# find /root/ -type f -name "oldboy.txt"/root/oldboy.txt-type 找什么类型的 f file (文件) d directory (目录)-name "叫什么名字的"
#查找所有/root 下以.txt结尾的文件
oldboy.txt lidao.txt alex.txt [root@oldboyedu50 data]# find /root/ -type f -name "*.txt"/root/oldboy.txt/root/lidao.txt/root/alex.txt/root/data/lidao.txt/root/data/alex.txt[root@oldboyedu50 data]# # * 所有字符 任意字符[root@oldboyedu50 data]# find /root/ -type f -name "*.txt"/root/oldboy.txt/root/lidao.txt/root/alex.txt/root/data/lidao.txt/root/data/alex.txt[root@oldboyedu50 data]# find /root/ -type f -name "*.txt"|xargs ls -l -rw-r--r--. 1 root root 0 Jul 11 03:21 /root/alex.txt-rw-r--r--. 1 root root 7 Jul 11 02:13 /root/data/alex.txt-rw-r--r--. 1 root root 14 Jul 11 01:16 /root/data/lidao.txt-rw-r--r--. 1 root root 0 Jul 11 03:21 /root/lidao.txt-rw-r--r--. 1 root root 0 Jul 11 03:21 /root/oldboy.txt
find +|xargs 配合
|与|xargs区别
老男孩教育每日一题-2017年5月18日-说说|(管道)与|xargs(管道xargs)的区别 http://blog.51cto.com/lidao/1927347

退出到上一级目录删除 data目录。(原来在/root/data)

cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:1. cd /root/Docements # 切换到目录/root/Docements2. cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录 cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
cd .. 进入当前目录的上一级目录
cd . 进入当前目录
#移动xxxxx文件 到当前目录
#复制xxxxx文件 到当前目录

[root@oldboyedu50 /]# cd /root/data/[root@oldboyedu50 data]# pwd/root/data[root@oldboyedu50 data]# cp /root/oldboy.txt .

4.8 已知文件test.txt内容
test
lidao
oldboy
创建测试文件:
mkdir -p /data
cat >/data/test.txt<<EOF
test
liyao
oldboy
EOF

请给出输出test.txt文件内容时,不包含oldboy字符串的命令。

方法1 -grep

[root@oldboyedu50 data]# #grep 过滤 显示你要或不要的内容 [root@oldboyedu50 data]# grep "oldboy" /data/test.txt oldboy[root@oldboyedu50 data]# grep -v "oldboy" /data/test.txt testliyao

方法2 -head

[root@oldboyedu50 data]# head -n2 /data/test.txt testliyao[root@oldboyedu50 data]# head -2 /data/test.txt testliyao
#head 显示文件的前几行内容 默认显示前10行
#tail 显示文件的最后几行内容 默认显示最后10行

#显示文件最后一行[root@oldboyedu50 data]# tail -1 /data/test.txt oldboy

#方法3 awk
[root@oldboyedu50 data]# #awk[root@oldboyedu50 data]# #gawk[root@oldboyedu50 data]# awk '/oldboy/' /data/test.txt Oldboy(取‘oldboy’)[root@oldboyedu50 data]# awk '!/oldboy/' /data/test.txt(取除oldboy外的) testliyao

#方法4 sed

[root@oldboyedu50 data]# sed '/oldboy/d' /data/test.txt testliyao[root@oldboyedu50 data]# #delete

请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test

[root@oldboyedu50 data]# mkdir -p /oldboy/test[root@oldboyedu50 data]# ls /oldboy/test#-p 创建多层目录

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

[root@oldboyedu50 data]# seq 10
1
2
3
4
5
6
7
8
9
10

seq 40 >/data/ett.txt

#方法1 head + tail
root@oldboyedu50 data]# head -30 /data/ett.txt |tail
21
22
23
24
25
26
27
28
29
30
[root@oldboyedu50 data]# head -30 /data/ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30

#显示文件的第30到40行

head -40 /data/ett.txt |tail -11
tail -11 /data/ett.txt

#方法2 sed 取行
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#-n 取消默认输出(sed命令不会把文件内容都显示出来)
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#print
[root@oldboyedu50 data]# sed -n '20p' /data/ett.txt
20
[root@oldboyedu50 data]# sed -n '20,30p' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30

#方法3 awk
[root@oldboyedu50 data]# awk 'NR==3' /data/ett.txt
3
[root@oldboyedu50 data]# # 'NR行号 等于 3'
[root@oldboyedu50 data]# awk 'NR==20,NR==30' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30
总结:
1.简单的命令
2.find +|xargs
3.三剑客 grep sed (过滤 取行) awk 取行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  day 5 Linux 命令