[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命令的。链接:修改目录名

(完)

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

  1. centos 管道符取第一行_Linux用户组管理及用户权限及管道符应用

    一.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. ]# who |  cut -d ' ' -f1 | sort -u who:显示所有已经登录用户的用户名 ...

  2. 致远OA表单自定义函数(取上一行金额)

    需求探讨 前期,在我开始分享自定义函数时,有同事就建议小编研究一下取重复表上一行金额的自定义函数. 解决办法:主表中控件取出明细表金额数组,然后利用当前行的行号计算出上一行的行号,最后查找数组中对应行 ...

  3. 当前行取上一行或者下一行数据作为独立列

    当前行取上一行或者下一行数据作为独立列 Lead over 函数可以获取当前行的后第N行作为独立列 Lag over 函数可以获取当前行的前第N行作为独立列 注 : orcle才有上两个函数 , my ...

  4. excel利用公式取最后一行单元格内容

    我们在数据处理中经常会涉及到去数据的前几行.后几行这样的操作.在excel中,取前几个单元格,我们可以直接写"=A1"这样的函数去取数.但是取最后一行的话,则不能写成"= ...

  5. Excel技巧—如何从重复行中取某一行

    点赞再看,养成习惯:吃一堑,长一智. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Exce ...

  6. python读取文件第一行_python读取文件首行和最后一行

    python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...

  7. CentOS使用sudo提示用户不在sudoers文件中的解决方法

    CentOS使用sudo提示用户不在sudoers文件中的解决方法 参考文章: (1)CentOS使用sudo提示用户不在sudoers文件中的解决方法 (2)https://www.cnblogs. ...

  8. intellij idea的TFS拉取项目文件不完全、文件误删恢复、TFS忽略文件解决方法

    intellij idea的TFS拉取项目文件不完全.文件误删恢复.TFS忽略文件解决方法 参考文章: (1)intellij idea的TFS拉取项目文件不完全.文件误删恢复.TFS忽略文件解决方法 ...

  9. CentOS 6.3开机自动挂载磁盘和文件夹

    http://blog.csdn.net/daydreamingboy/article/details/8278841 CentOS 6.3开机自动挂载磁盘和文件夹 CentOS服务器可能有多个磁盘, ...

最新文章

  1. hdu 3046(最小割)
  2. 区块链应用 | 用区块链颠覆视频直播,与视频卡顿、缓冲说再见!
  3. 网络开源框架之libev使用实例
  4. 【Java面经】非科班渣硕面经
  5. node --- 一个很好用的包json-server
  6. 【PhotoScan精品教程】任务一:新建工程、导入照片、设置坐标系、导入控制点(POS)、自由空三
  7. linux下重启weblogic
  8. iOS学习笔记03-UITableView
  9. 联想小新增加固态硬盘后安装不了系统_4千价位也能面面俱到?小新Air14 2020锐龙版体验测试...
  10. get,post网络请求
  11. S3C2440 进行微秒级、毫秒级延时函数
  12. Python学习之路-NLP(人物提取)
  13. solaris9 x86安装oicq过程,sparc也行
  14. android 语音和输入法按钮切换,android 切换系统语言,输入法也随之切换
  15. ios swift收起键盘
  16. mysql造1000万数据_MySQL制作具有千万条测试数据的测试库
  17. Keil MDK5 详细安装教程
  18. 深度可分离卷积(计算过程及代码实现)
  19. Failed to load response data:No data found for resource with given identifier
  20. 使用Origin绘制边际分布曲线(Marginal distributions plots)的思路和方法

热门文章

  1. python数据库增删改查_python实现数据库增删改查
  2. udp需要arp请求吗_当你随便浏览一个网页时,你知道背后做了多少工作吗?
  3. 提示错误“'=' not supported between instances of 'range' and 'int'”
  4. 深度学习框架TensorFlow(3.变量)
  5. 电气论文实现:从大规模用户中找出异常用电用户
  6. python 安装第三方包
  7. 字典类型处理函数及方法实例解析
  8. VTK:平行坐标视图用法实战
  9. OpenCASCADE:拓扑 API之3D模型Defeaturing
  10. wxWidgets:wxSocketEvent类用法