前言
作者:小蜗牛向前冲
名言:我可以接受失败,但我不能接受放弃
如果觉的博主的文章还不错的话,还请
点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。
目录
在继续分享Linux简单操作命令时我们先复习一下前面讲的,前面我们学会了如何对目录经行操作(ls),如何去创建和删除目录和普通文件,我们还区分了什么是文件,如何去查看cpu的占用率。
下面我们继续去学习吧!
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man 语法: man [选项] 命令
常用选项
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
这里我们要注意的是man是一个查看命令,系统调用的,C接口的手册! 该手册是有编号的,man的默认编号是从1号手册开始查找,找到即停止。

这里我们通过man man指令可以对man手册进行查找,上面我们也说man手册是有章节的,man其实有9个章节,对于我们初学者来说,我们了解前3个章节即可。
章节1:指的是表示各种命令
章节2:指是由操作系统为我们提供的各种接口
章节3:是指库函数(C语言)

这么我们要注意的是如何退出呢?
我们在键盘上输入q即可。
这里我们还要注意的是虽然Linux为我们提供查找的库函数,但是我们只能查找C语言的函数,因为Linux操纵系统是C语言写的,虽然我们可以查找部分语言的库,但那都比较麻烦,我们还不如去对应的官网查询。
这里有时候我们会发现我们用不了,这可能是我们系统没有安装man手册,这里我们可以通过在个命令行经行安装一定要在root账号下经行(或者进行sudo提权)。
yum install -y man-pages
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理gai
该命令就相当于window下的复制命令 
这里我们要注意的是:cp 源文件 目标文件/
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

这里大家可以看到,mv和cp都是遵循 命令 源文件 目标文件这种格式。
cat 命令是用了查看目标文件的内容的,但是该命令适合查看小文本或者代码片段。
语法: cat [选项][文件]
常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
more命令也是用来查看目标文件的内容的,但是该命令适合查看大文件。
这里我们用cat查下一下文件内容:
- pjb@VM-8-3-centos lesson1]$ ll
- total 8
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 18:57 file2
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- [pjb@VM-8-3-centos lesson1]$ cat file.txt
- hello world
查看文件内容:(nano可以直接打开文件,可以查看,记得安装:sudo yum install -y nano)
下面我们通过一段程序写一个大文件。
- [pjb@VM-8-3-centos lesson1]$ ll
- total 8
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- [pjb@VM-8-3-centos lesson1]$ touch test.txt
- [pjb@VM-8-3-centos lesson1]$ cnt=0; while [ $cnt -le 10000 ] ; do echo "hello world [$cnt]"; let cnt++; done > test.txt
- [pjb@VM-8-3-centos lesson1]$ ll
- total 196
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- -rw-rw-r-- 1 pjb pjb 188910 Sep 29 19:35 test.txt
- //我们用cat 查看文件内容
- [pjb@VM-8-3-centos lesson1]$ cat test.txt
- //带行号的查询
- [pjb@VM-8-3-centos lesson1]$ cat -n test.txt
-
-

这里cat要与tac做个对比:
命令本省是反过来的,内容本身也是反过来的。tac是逆序打印出来的。
从上面我们可以看出cat 是直接打印文本的所有内容,那么这样就不利用我们查看文本的内容。
那有从头开始查看的命令吗?这就不得不用到more命令了.
- [pjb@VM-8-3-centos lesson1]$ ll
- total 196
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- -rw-rw-r-- 1 pjb pjb 188910 Sep 29 19:35 test.txt
- [pjb@VM-8-3-centos lesson1]$ more test.txt

这里我们就可以通过回车一行一行的查看文本的内容,这里我们按q就可以退出查看。
其实还有一种命令可以查看适合大文件他支持用键盘的上下翻找,less命令。
- [pjb@VM-8-3-centos lesson1]$ ll
- total 196
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- -rw-rw-r-- 1 pjb pjb 188910 Sep 29 19:35 test.txt
- [pjb@VM-8-3-centos lesson1]$ less test.txt
- //可通过键盘的上下翻找文件内容
但有时候我们要仅仅要查看文件的前面10行或者后面10行,那又该这么办呢?
其实这就要用到我们的heard和tail命令了.
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。
head指令
语法: head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-n<行数> 显示的行数
tail指令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f 循环读取
-n<行数> 显示行数
查看文本前10行
- pjb@VM-8-3-centos lesson1]$ clear
- [pjb@VM-8-3-centos lesson1]$ ll
- total 196
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- -rw-rw-r-- 1 pjb pjb 188910 Sep 29 19:35 test.txt
- [pjb@VM-8-3-centos lesson1]$ head test.txt
- hello world [0]
- hello world [1]
- hello world [2]
- hello world [3]
- hello world [4]
- hello world [5]
- hello world [6]
- hello world [7]
- hello world [8]
- hello world [9]
查看文本后10行:
- [pjb@VM-8-3-centos lesson1]$ ll
- total 196
- drwxrwxr-x 2 pjb pjb 4096 Sep 29 18:57 file1
- -rw-rw-r-- 1 pjb pjb 13 Sep 29 19:29 file.txt
- -rw-rw-r-- 1 pjb pjb 0 Sep 29 11:53 test.c
- -rw-rw-r-- 1 pjb pjb 188910 Sep 29 19:35 test.txt
- [pjb@VM-8-3-centos lesson1]$ tail test.txt
- hello world [9991]
- hello world [9992]
- hello world [9993]
- hello world [9994]
- hello world [9995]
- hello world [9996]
- hello world [9997]
- hello world [9998]
- hello world [9999]
- hello world [10000]
那么我们要查看文本的[1000,1010]10行又要这么办呢?
我们可以创建一个临时文件:
- [pjb@VM-8-3-centos lesson1]$ head -1010 test.txt > tmp.txt
- [pjb@VM-8-3-centos lesson1]$ tail -10 tmp.txt
- hello world [1000]
- hello world [1001]
- hello world [1002]
- hello world [1003]
- hello world [1004]
- hello world [1005]
- hello world [1006]
- hello world [1007]
- hello world [1008]
- hello world [1009]
如果我们不借助临时文件:
这里我们就要引入一个管道的概念,这么我们先简单了解一下:
1 是用来传输数据的
2 要一个入口和一个出口
- [pjb@VM-8-3-centos lesson1]$ head -1010 test.txt | tail -10
- hello world [1000]
- hello world [1001]
- hello world [1002]
- hello world [1003]
- hello world [1004]
- hello world [1005]
- hello world [1006]
- hello world [1007]
- hello world [1008]
- hello world [1009]
这里我们用到了 " | "是用来组和命令的,这里就相当于head打印到管道中,而tail去管道中读取。
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
显示一下现在的时间:
- //直接显示
- [pjb@VM-8-3-centos lesson1]$ date
- Thu Sep 29 20:23:38 CST 2022
- //格式显示
- [pjb@VM-8-3-centos lesson1]$ date +%Y:%m:%d
- 2022:09:29
.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
在设定时间方面
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
时间戳
其实我们在语言写猜数字项目的时候就用到了时间戳,那在Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
时间->时间戳: date +%s
时间戳->时间: date -d@1508749502
- [pjb@VM-8-3-centos lesson1]$ date -d@1508749502
- Mon Oct 23 17:05:02 CST 2017
- [pjb@VM-8-3-centos lesson1]$ date +%s
- 1664454939
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
举例:
- [pjb@VM-8-3-centos lesson1]$ cal
- September 2022
- Su Mo Tu We Th Fr Sa
- 1 2 3
- 4 5 6 7 8 9 10
- 11 12 13 14 15 16 17
- 18 19 20 21 22 23 24
- 25 26 27 28 29 30
-
- [pjb@VM-8-3-centos lesson1]$ cal -3
- August 2022 September 2022 October 2022
- Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
- 1 2 3 4 5 6 1 2 3 1
- 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
- 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
- 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
- 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
- 30 31
- [pjb@VM-8-3-centos lesson1]$ cal -j
- September 2022
- Sun Mon Tue Wed Thu Fri Sat
- 244 245 246
- 247 248 249 250 251 252 253
- 254 255 256 257 258 259 260
- 261 262 263 264 265 266 267
- 268 269 270 271 272 273
-
- [pjb@VM-8-3-centos lesson1]$ cal -y
- 2022
-
- January February March
- Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
- 1 1 2 3 4 5 1 2 3 4 5
- 2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
- 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
- 16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
- 23 24 25 26 27 28 29 27 28 27 28 29 30 31
- 30 31
- April May June
- Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
- 1 2 1 2 3 4 5 6 7 1 2 3 4
- 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
- 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
- 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
- 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
-
- July August September
- Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
- 1 2 1 2 3 4 5 6 1 2 3
- 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
- 10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
- 17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
- 24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
- 31
- October November December
- Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
- 1 1 2 3 4 5 1 2 3
- 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
- 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
- 16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
- 23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31