1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > centos 管道符取第一行_CentOS 7 文件操作命令

centos 管道符取第一行_CentOS 7 文件操作命令

时间:2019-09-30 01:15:15

相关推荐

centos 管道符取第一行_CentOS 7 文件操作命令

[TOCM]

在 CentOS 7 系统中对文件操作的一些命令。

1. 创建一个文件

使用touch命令创建文件。例如,在/data目录下创建一个test.txt文件。

创建test.txt文件:

touch/data/test.txt

查看/data目录下刚刚创建的文件:

ls-l/data/

2. 编辑文件

使用vi命令编辑/data/test.txt文件。vi 是一种编辑器。

vi/data/test.txt

按下i键,进入编辑模式。内容编写完毕后,按下Esc键,退出编辑模式。然后,退出并保存,请依次按下:wq三个键,并回车。

关于退出编辑文件,有 4 个命令:

:q 退出。用于未修改文件内容,直接退出。

:wq 退出并保存。

:q! 强制退出不保存。用于已修改文件内容,而不希望被保存。

:wq! 强制退出并保存。

其中w为英文 write ;q 为英文 quit 。

3. 查看文件内容

使用cat命令来查看文件中的内容。

cat/data/test.txt

4. 写入文件

使用echo命令与>>追加重定向符号,将内容写入某个文件内的最后一行。

echoHellosophia>>/data/test.txt

如果想一次性写入多行到文件,使用如下方法。

cat>>/data/test.txt<

Hello

World

!

EOF

5. 复制文件或目录

使用cp命令,英文全称为 copy 。

把test.txt文件,复制到/tmp/目录。

[root@centos7~]#cp/data/test.txt/tmp/

[root@centos7~]#ls-l/tmp/

total16

-rw-r--r--.1root root127Apr1720:13test.txt

-rw-------.1root root0Apr1020:12yum.log

[root@centos7~]#

把test.txt文件,复制到当前所在目录,使用特殊符号.代表当前目录。

# 查看当前所在目录

[root@centos7~]#pwd

/root

# 复制 test.txt 文件到当前所在目录

[root@centos7~]#cp/root/data/test.txt.

# 查看当前所在目录文件列表

[root@centos7~]#ls-l

total12

-rw-------.1root root1707Apr1020:32anaconda-ks.cfg

drwxr-xr-x.2root root4096Apr1720:23data

-rw-r--r--.1root root127Apr1811:18test.txt

[root@centos7~]#

使用cp命令,备份文件。将test.txt文件备份为test.txt.bak。

[root@centos7~]#cp/data/test.txt/data/test.txt.bak

[root@centos7~]#ls-l/data

total12

-rw-r--r--.1root root127Apr1718:52test.txt

-rw-r--r--.1root root127Apr1720:23test.txt.bak

[root@centos7~]#

使用cp -r命令,复制目录。

参数 -r 为递归复制。复制目录及目录里面的内容。

参数 -p 复制时保持文件属性不变。

参数 -a 为复制所有。与参数 -pdr 等价。

将/data/目录复制到/tmp/目录。

[root@centos7~]#cp-r/data/ /tmp/

[root@centos7~]#ls-l/tmp/

total20

drwxr-xr-x.2root root4096Apr1720:31data

-rw-r--r--.1root root127Apr1720:13test.txt

-rw-------.1root root0Apr1020:12yum.log

[root@centos7~]#

6. 移动文件或目录

使用mv命令,英文全称为 move 。

把/data/目录移动到/root/目录。

[root@centos7~]#mv/data/ /root/

[root@centos7~]#ls-l/root/

total8

-rw-------.1root root1707Apr1020:32anaconda-ks.cfg

drwxr-xr-x.2root root4096Apr1720:23data

[root@centos7~]#

把/data/目录,移动到当前所在目录,使用特殊符号.代表当前目录。

# 查看当前所在目录

[root@centos7~]#pwd

/root

# 把 /data/ 目录,移动到当前所在目录。

[root@centos7~]#mv/data/.

[root@centos7~]#ls-l

total12

-rw-------.1root root1707Apr1020:32anaconda-ks.cfg

drwxr-xr-x.2root root4096Apr1811:33data

-rw-r--r--.1root root127Apr1811:18test.txt

[root@centos7~]#

把/root/test.txt文件,移动到/root/data目录下。使用特殊符号.代表当前目录。

[root@centos7 data]#pwd

/root/data

[root@centos7 data]#mv/root/test.txt.

[root@centos7 data]#ls-l

total4

-rw-r--r--.1root root127Apr1811:18test.txt

[root@centos7 data]#

7. 删除文件或目录

使用rm命令删除文件或目录,默认无法删除目录,它的英文全称为 remove 。

参数

描述

-r

递归删除

-f

强制删除

删除/tmp/目录下的test.txt文件。

[root@centos7~]#rm/tmp/test.txt

rm:remove regular file‘/tmp/test.txt’?y

输入y确定删除。如果不想被询问是否删除,则加参数-f删除文件。

[root@centos7~]#rm-f/tmp/test.txt

使用rm -rf命令,删除/tmp/目录下的/data/目录。

[root@centos7~]#rm-rf/tmp/data/

8. 查找文件或目录

使用find命令,查找文件或目录。

参数

描述

-type

查找类型。f 为文件 file,d 为目录 directory 。

-name

查找名称。可以使用 * 作为通配符,匹配名称。

在/root/data/目录中,查找test.txt文件。如果找到了,则输出文件位置。没找到则无输出。

[root@centos7~]#find/root/data/-type f-name"test.txt"

/root/data/test.txt

[root@centos7~]#

在/root/目录中,查找名字为data的目录。如果找到了,则输出目录位置。没找到则无输出。

[root@centos7~]#find/root/-type d-name"data"

/root/data

[root@centos7~]#

使用*作为通配符,匹配名称。

[root@centos7~]#find/root/-type d-name"dat*"

/root/data

[root@centos7~]#

find命令与管道|配合使用。管道的意思是,|前面的命令执行成功后,交给后面的命令再执行。

# 查找 *.txt 文件名,并显示详细列表。

[root@centos7~]#find/root/data/-type f-name"*.txt"|xargs ls-l

-rw-r--r--.1root root10Apr1719:44/root/data/num.txt

-rw-r--r--.1root root127Apr1718:52/root/data/test.txt

# 查看两个文件内容

[root@centos7~]#find/root/data/-type f-name"*.txt"|xargs cat

Hellosophia!

Helloabc!

Helloabc!

12345

[root@centos7~]#

9. 在文件内容中筛选出指定内容

方法 1,使用grep命令,筛选文件指定内容。

参数

描述

-v

排除指定内容。

在test.txt文件内容中,找到包含he的内容。

[root@centos7~]#cat/root/data/test.txt

test

hello

world

[root@centos7~]#grep"he"/root/data/test.txt

hello

[root@centos7~]#

在test.txt文件内容中,查找不包含he字符的内容。

[root@centos7~]#cat/root/data/test.txt

test

hello

world

[root@centos7~]#grep-v"he"/root/data/test.txt

test

world

[root@centos7~]#

方法 2,使用awk命令,筛选文件指定内容。

在test.txt文件内容中,找到包含he的内容。

[root@centos7~]#awk'/he/'/root/data/test.txt

hello

[root@centos7~]#

注意,使用一对单引号'和斜杠/。

在test.txt文件内容中,查找不包含he字符的内容。

[root@centos7~]#awk'!/he/'/root/data/test.txt

test

world

[root@centos7~]#

注意,使用叹号!表示取反。

方法 3,使用sed命令,筛选文件指定内容。

使用sed命令,获取test.txt文件内容,删除包含he字符的行。

[root@centos7~]#sed'/he/d'/root/data/test.txt

test

world

[root@centos7~]#

其中参数'/he/d'表示删除包含he的选项行。最后结果是,不包含he的行。

10. 获取文件内容的前几行

使用head命令,取出文件的前几行,默认取出前 10 行。

参数

描述

-n数字

表示取出前几行。例如 -n2 表示取出前 2 行。

-数字

表示取出前几行。例如 -2 表示取出前 2 行。

使用head -n2命令,取出test.txt文件的前 2 行。

[root@centos7~]#head-n2/root/data/test.txt

test

hello

[root@centos7~]#

11. 获取文件内容的最后几行

使用tail命令,取出文件最后几行,默认取出最后 10 行。

参数

描述

-n数字

表示取出最后几行。例如 -n2 表示取出最后 2 行。

-数字

表示取出最后几行。例如 -2 表示取出最后 2 行。

[root@centos7~]#tail-n2/root/data/test.txt

8

9

[root@centos7~]#

12. 获取文件某一行,或连续几行

题目:有一个test.txt文件,共有 100 行,要求显示出文件中的第 50 行至第 60 行内容。

使用seq命令,给test.txt文件写入 100 行内容。

[root@centos7~]#seq100>/data/test.txt

方法 1,使用sed命令

获取文件第 50 行内容。

[root@centos7~]#sed-n'50p'/data/test.txt

50

sed命令默认输出文件全部内容。使用参数-n取消默认输出,'50p'表示只输出第 50 行内容。

获取文件第 50 到 60 行内容。

[root@centos7~]#sed-n'50,60p'/data/test.txt

50

51

52

53

54

55

56

57

58

59

60

[root@centos7~]#

把参数改成'50,60p'即可。

方法 2,使用head和tail命令

首先,使用tail命令获取倒数 50 行。

[root@centos7~]#tail-50/data/test.txt

然后,使用|管道加head命令,获取第 50 到 60 行内容。

[root@centos7~]#tail-50/data/test.txt|head-10

51

52

53

54

55

56

57

58

59

60

方法 3,使用awk命令

获取文件第 50 行内容。

[root@centos7~]#awk'NR==50'/data/test.txt

50

参数中NR表示行号,==表示等于。

获取文件第 50 到 60 行内容。

[root@centos7~]#awk'NR==50,NR==60'/data/test.txt

50

51

52

53

54

55

56

57

58

59

60

参数中添加NR==60,限定行号范围,从第 50 行到第 60 行的内容。

13. 修改文件名

例如:把abc.txt文件重命名为abc123.txt。

注意,这是文件重命名,不是移动文件

可以使用mv命令,必须保证abc123.txt文件是不存在的,正是因为文件不存在,所以在使用mv命令时,直接重命名了该文件。

# 创建一个文件

[root@node01]#touch abc.txt

[root@node01]#ll

-rw-r--r--.1root root0Jan2916:19abc.txt

# 修改文件名

[root@node01]#mv/abc.txt/abc123.txt

[root@node01]#ll

-rw-r--r--.1root root0Jan2916:19abc123.txt

另外,重命名目录名称,也是可以使用mv命令的。链接:修改目录名

(完)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。