openEuler基础(十四)文件管理命令(cat、head、tail、more、less、find、which)

提出问题:
我想查看一个文件的内容,该如何操作?
我想查找一个文件,该如何操作?

一、文件内容显示cat命令
cat命令用于读取文件的全部内容;或者将几个文件合并为一个文件。
语法:cat [OPTION] [FILE]
-A, --show-all 等价于 –vET。
-b, --number-nonblank 对非空输出行编号。
-E, --show-ends 在每行结束处显示 $。
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号。

示例1:在当前目录下,显示文件a.txt的内容。

[root@localhost ~]# vi a.txt

在a.txt中按字母i,输入字符串:hello world。然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# ls
anaconda-ks.cfg  a.txt  vm.tar.gz
[root@localhost ~]# cat a.txt
hello world
[root@localhost ~]#

示例2:在当前路径下,将两个文件(a.txt和b.txt)的内容合并存入文件c.txt中。

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入字符串:hello world。然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# vi  b.txt

在b.txt中输入字符串:This is a test!。然后按esc,:wq,保存并退出。

[root@localhost ~]# ls
anaconda-ks.cfg  a.txt b.txt vm.tar.gz

将文件a.txt,b.txt的内容合并在一起,存入文件c.txt中。

[root@localhost ~]# cat a.txt b.txt>c.txt
[root@localhost ~]# ls
anaconda-ks.cfg  a.txt b.txt c.txt vm.tar.gz
[root@localhost ~]# cat c.txt
hello world
This is a test!

示例3:在当前路径下,将文件b.txt的内容追加到文件a.txt中。

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入字符串:hello world。然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# vi  b.txt

在b.txt中输入字符串:This is a test!。然后按esc,:wq,保存并退出。

[root@localhost ~]# ls
anaconda-ks.cfg  a.txt  b.txt  vm.tar.gz

将文件b.txt的内容追加到文件a.txt中。

[root@localhost ~]# cat b.txt>>a.txt
[root@localhost ~]# ls
anaconda-ks.cfg  a.txt  b.txt vm.tar.gz
[root@localhost ~]# cat a.txt
hello world
This is a test!

示例4:对输出的文件内容所有行编号。

[root@localhost ~]# cat -n a.txt
   1  hello world
   2  This is a test!

下面,通过一个完整流程,训练cat命令用法。
1.在当前目录下,创建文件(姓名.txt),并在文件中输入自己的姓名。

[root@localhost ~]# vi zhangsan.txt
[root@localhost ~]# cat zhangsan.txt
张三

2.在当前目录下,创建文件(班级.txt),并在文件中输入班级信息。

[root@localhost ~]# vi class.txt
[root@localhost ~]# cat class.txt
网络2101班

3.在当前目录下,创建文件(学号.txt),并在文件中输入自己的学号。

[root@localhost ~]# vi stuid.txt
[root@localhost ~]# cat stuid.txt
20210101

4.将文件(姓名.txt、班级.txt、学号.txt)合并到新文件stu.txt中,并读取其内容。

[root@localhost ~]# cat zhangsan.txt class.txt stuid.txt>stu.txt
[root@localhost ~]# cat stu.txt
张三
网络2101班
20210101
[root@localhost ~]# 

5.将文件(姓名.txt、班级.txt)追加到文件(学号.txt)中,并读取其内容。

[root@localhost ~]# cat zhangsan.txt class.txt>>stuid.txt
[root@localhost ~]# cat stuid.txt
20210101
张三
网络2101班
[root@localhost ~]#

二、显示文件开头head命令
head用来显示文件的开头内容,默认head命令打印其相应文件的开头10行。
语法:head [OPTION] [FILE]
命令参数:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n,显示的行数

示例1:在当前目录下,显示文件a.txt的内容前10行。

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入十行以上的字符串,然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# head  a.txt

示例2:在当前目录下,显示文件a.txt的内容前3行。

[root@localhost ~]# head -n 3 a.txt

示例3:在当前目录下,显示文件a.txt除了最后5行以外的内容。

[root@localhost ~]# head -n -5 a.txt

三、显示文件尾部tail命令
tail命令用于读取文件的尾部。
语法:tail [OPTION]… [FILE]…
主要参数:
-f 循环读取。
-q 不显示处理信息。
-v 显示详细的处理信息。
-c<数目> 显示的字节数。
-n<行数> 显示行数。

示例1:在当前目录下,显示文件a.txt的内容前10行。

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入十行以上的字符串,然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# tail  a.txt

示例2:在当前目录下,显示文件a.txt的内容后3行。

[root@localhost ~]#tail -n 3 a.txt

下面,通过一个完整流程,训练head、tail命令用法。
1.在当前目录下,创建文件(姓名.txt),并在文件中输入20行信息。

[root@localhost ~]# vi zhangsan.txt
[root@localhost ~]# cat zhangsan.txt
num1
num2
...
num20
[root@localhost ~]#

2.查看其中前5行信息。

[root@localhost ~]# head -n 5 zhangsan.txt
num1
num2
...
num5
[root@localhost ~]#

3.查看其中除后6行之外的信息。

[root@localhost ~]# head -n -6 zhangsan.txt
num1
num2
...
num14
[root@localhost ~]#

4.查看其中最后4行信息。

[root@localhost ~]# tail -n 4 zhangsan.txt
num17
num18
num19
num20
[root@localhost ~]#

四、逐页阅读文件more命令
more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。
语法:more [OPTION]… [FILE]…
+n 从笫n行开始显示。
-n 定义屏幕大小为n行。
+/pattern 在文件显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示。
-c 从顶部清屏,然后显示。

示例1:分页显示文件a.txt

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入十行以上的字符串,然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# more  a.txt

示例2:分页显示目录/etc下的信息。

[root@localhost ~]# ls /etc | more

五、逐页阅读文件less命令
less命令读取内容,分屏显示,less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
语法:less [OPTION]… [FILE]…
常用操作:
/字符串:向下搜索“字符串”的功能。
?字符串:向上搜索“字符串”的功能。
q 退出less 命令。
[pageup] 往前翻看文件。
[pagedown] 往后翻看文件。
空格键 滚动一页。
回车键 滚动一行。

示例1:分页显示文件a.txt

[root@localhost ~]# vi  a.txt

在a.txt中按字母i,输入十行以上的字符串,然后按esc键,输入 :wq,保存并退出。

[root@localhost ~]# less  a.txt

示例2:分页显示目录/etc下的信息。

[root@localhost ~]# ls /etc | less

下面,通过一个完整流程,训练more、less命令用法。
1.在当前目录下,创建文件(姓名.txt),并在文件中输入100行信息。

[root@localhost ~]# vi zhangsan.txt
[root@localhost ~]# cat zhangsan.txt
num1
num2
...
num100
[root@localhost ~]#

2.用more命令分页查看其中的信息,并完成上下滚动翻屏操作(按空白键(space)往下一页显示)。

[root@localhost ~]# more zhangsan.txt
[root@localhost ~]#

3.用less命令分页查看其中的信息,并完成上下滚动翻屏操作(使用 [pageup] [pagedown] 等按 键的功能来往前往后翻看文件),q - 退出 less 命令。

[root@localhost ~]# less zhangsan.txt
[root@localhost ~]#

六、文件查找find命令
find命令用来在指定目录下查找文件。
可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。
常用语法:find [path…] [expression]
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件 。
-user 按照文件属主来查找文件 。
-mtime -n +n 按照文件的更改时间来查找文件。

示例1:按照文件名来查找文件
查找/etc目录下的passwd文件

[root@localhost ~]# find /etc -name passwd

查找/目录下的所有后缀名为.log文件。

[root@localhost ~]# find / -name *.log

七、可执行文件查找which命令
which命令在PATH所指定的目录中查找可执行文件。
使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
语法:which [options] programname […]

示例1:查找cd命令的可执行文件。

[root@localhost ~]#which cd
/usr/bin/cd

下面,通过一个完整流程,训练find、which命令用法。
1.在当前目录下,查找文件名包含a的文件。

[root@localhost ~]#pwd
/root
[root@localhost ~]#find /root a*
/root
/root/vm.tar.gz
/root/.bash_logout
/root/.bash_history
/root/anaconda-ks.cfg
/root/a.txt
/root/.lesshst
/root/.cshrc
/root/b.txt
/root/.tcshrc
/root/.bash_profile
/root/.bashrc
anaconda-ks.cfg
a.txt

2.查看命令mkdir是否存在,以及执行的到底是哪一个位置的命令。

[root@localhost ~]# which mkdir
/usr/bin/mkdir
[root@localhost ~]#

你可能感兴趣的:(openEuler,linux,运维)