文章目录
07. man指令
man 指令 是访问Linux手册页的命令,通过该指令查看联机手册获取帮助
- 语法:
man [选项] 命令
- 常用选项:
- k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
查找不到👇
[root@VM-12-2-centos ~]# man 3 printf
No manual entry for printf in section 3
[root@VM-12-2-centos ~]# man fork
No manual entry for fork
ps.云服务器上的内容精简了很多,很多指令查不到。需要安装,输入指令:
yum install -y man-pages
08.cp指令(copy)(重要)
- 语法:
cp [选项] 源文件或目录 目标文件或目录
- 功能: copy filr or directory
- 常用选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
指令:
cp -r [source-dir] [destination-dir]
将 source-dir 内的文件和子目录递归拷贝到 destination-dir
示例:copy 文件test.txt 到目录 …/dir
[root@VM-12-2-centos filedir]# cp test.txt ../dir
[root@VM-12-2-centos filedir]# cd ..
[root@VM-12-2-centos ~]# pwd
/root
[root@VM-12-2-centos ~]# tree
.
|-- dir
| `-- test.txt
|-- filedir
| `-- test.txt
`-- txtfile
3 directories, 2 files
递归拷贝:
[root@VM-12-2-centos ~]# cp -r filedir dir
[root@VM-12-2-centos ~]# pwd
/root
[root@VM-12-2-centos ~]# tree
.
|-- dir
| |-- filedir
| | `-- test.txt
| `-- test.txt
|-- filedir
| `-- test.txt
`-- txtfile
4 directories, 3 files
强制递归拷贝到不存在的目标文或目录:
[root@VM-12-2-centos ~]# tree
.
|-- dir
| |-- filedir
| | `-- test.txt
| `-- test.txt
|-- filedir
| `-- test.txt
`-- txtfile
4 directories, 3 files
[root@VM-12-2-centos ~]# cp -rf dir newdir
[root@VM-12-2-centos ~]# tree
.
|-- dir
| |-- filedir
| | `-- test.txt
| `-- test.txt
|-- filedir
| `-- test.txt
|-- newdir
| |-- filedir
| | `-- test.txt
| `-- test.txt
`-- txtfile
6 directories, 5 files
09.mv指令(move)(重要)
- 语法:
mv [选项] 源文件或目录 目标文件或目录
- 功能: 重命名文件/目录 或 移动文件/目录
- 重命名:
mv [选项] 源文件 目标文件
(将源文件名修改为目标文件名,ps.若目标文件名是已存在的文件,源文件的内容将会覆盖这个文件);mv [选项] 源目录 目标目录
(将源目录名修改成目标文件名)
上图分析:
指令 mv test.c test2.c 的意思是将文件 test.c 重命名为test2.c ,但 文件test2.c已经存在,进行操作会覆盖原本的test2.c文件。
- 当第二个参数类型是文件 时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
!ps. 这里虽然看上去把 newdir1 改为了 file.txt ,目录变成了文件?不是!这个 只是一个名为“file.txt”的目录!创建的时候是目录就是目录,mv指令只能改名字。因此,第二个参数是文件就只能完成重命名的操作。 - 移动:
mv [选项] 源文件或目录 目标目录
;- 当 第二个参数是已存在的目录名称 时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
- 当 第二个参数是已存在的目录名称 时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
- 重命名:
- 常用选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
10.cat指令
- 语法:
cat [选项] [文件]
- 功能: 查看目标文件的内容(适用于短文本)
- 常用选项:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
示例:
指令—cat test2.c
[root@VM-12-2-centos dir3]# cat test2.c
#include <stdio.h>
int main()
{
printf("Hello");
return 0;
}
[root@VM-12-2-centos dir3]# cat -n test2.c
1 #include <stdio.h>
2 int main()
3 {
4 printf("Hello");
5 return 0;
6 }
[root@VM-12-2-centos dir3]# wc -l test2.c
6 test2.c
[root@VM-12-2-centos dir3]#
ps.wc -l file
:统计文件多少行↑
tac 指令:倒着显示
- 补充:echo 与 ‘>’
echo "内容" > 文件
→ ‘>’ 表示输出重定向( 覆盖式写入,先清空再写), 该指令意思是——将内容写入文件,文件如果不存在会直接创建。- 为什么是“重定向”?
- 1.默认程序运行时会打开3个输入输出流:标准输入流 stdin - 键盘;标准输出流 stdout - 显示器;标准错误流 stderr - 显示器;
- 2.
echo "内容"
默认输出到显示器上(可以把显示器看作是一种文件,Linux下一切皆文件),如下,本应写入显示器的内容,该写入到指定文件中,所以称之为重定向。
[root@VM-12-2-centos dir1]# echo "hello Round Bottle"
hello Round Bottle
-
> [新文件]
→ 创建新的空文件; -
> [已存在的文件]
→ 清空这个文件;
-
echo "内容" >> 文件
→ ‘>>’ 追加重定向(不清空原有内容,不断增加写入内容) -
cat < 文件
→ ‘<’ 输入重定向
[root@VM-12-2-centos dir3]# cat < test2.c
#include <stdio.h>
int main()
{
printf("Hello");
return 0;
}
[root@VM-12-2-centos dir3]#
11.more指令
- 功能:more命令,功能类似 cat (默认按屏幕大小进行显示,按Enter 键往下翻,不能上翻)
对于短文本:
[root@VM-12-2-centos dir3]# more test2.c
#include <stdio.h>
int main()
{
printf("Hello");
return 0;
}
[root@VM-12-2-centos dir3]#
对于长文本:cat 和 more 的比较,如下
cat
:直接显示文件的全部内容,需要通过上下翻动查看
more
:按照屏幕大小显示文件内容
- 语法和选项:
[root@VM-12-2-centos dir3]# more
Usage: more [options] file...
Options:
-d display help instead of ring bell
-f count logical, rather than screen lines
-l suppress pause after form feed
-p do not scroll, clean screen and display text
-c do not scroll, display text and clean line ends
-u suppress underlining
-s squeeze multiple blank lines into one
-NUM specify the number of lines per screenful
+NUM display file beginning from line number NUM
+/STRING display file beginning from search string match
-V output version information and exit
12.less指令(重要)
less
工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less
的用法比起more 更加的有 弹性 。使用了less
时,可以使用pageuppagedown 等按键的功能来往前往后翻看文件。
除此之外,在less
里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
查看文件:
搜索:
- 语法:
less [参数] 文件
- 功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
- 选项:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:quit
13.head指令
- 功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
- 语法:
head [参数] [文件]
- 选项: -n<行数> 显示的行数
示例:
[root@VM-12-2-centos dir3]# head -n5 test2.c //显示test2.c文件的开头 5 行
#include <stdio.h>
int main()
{
printf("Hello");
[root@VM-12-2-centos dir3]# head test2.c //默认显示文件的开头10 行
#include <stdio.h>
int main()
{
printf("Hello");
printf(" World");
printf("!");
return 0;
}
[root@VM-12-2-centos dir3]# head -n-5 test2.c // 不 显示文件末尾 5 行
#include <stdio.h>
int main()
{
[root@VM-12-2-centos dir3]# head -n-1 test2.c // 不 显示 文件末尾 1 行
#include <stdio.h>
int main()
{
printf("Hello");
printf(" World");
printf("!");
return 0;
[root@VM-12-2-centos dir3]#
14.tail指令
tail 命令从指定点开始将文件写到标准输出。使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
- 语法:
tail[必要参数][选择参数][文件]
- 功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
- 选项:
- -f 循环读取
- -n<行数> 显示行数
示例:
[root@VM-12-2-centos dir3]# tail -n1 test2.c
}
[root@VM-12-2-centos dir3]# tail -n5 test2.c
printf("Hello");
printf(" World");
printf("!");
return 0;
}
[root@VM-12-2-centos dir3]# tail test2.c
#include <stdio.h>
int main()
{
printf("Hello");
printf(" World");
printf("!");
return 0;
}
- 补充:管道
管道:类似“传输”的作用,有入口也有出口
[root@VM-12-2-centos dir3]# cat test2.c | wc -l
9
[root@VM-12-2-centos dir3]# cat test2.c
#include <stdio.h>
int main()
{
printf("Hello");
printf(" World");
printf("!");
return 0;
}
[root@VM-12-2-centos dir3]#
[root@VM-12-2-centos dir3]# wc -l test2.c
9 test2.c
管道使得命名与命令组合起来
示例:通过 head 和 tail 显示文件 myfile.txt 的 前520行的最后20行👇
[root@VM-12-2-centos dir1]# cat myfile.txt | head -520 | tail -20
hello Round Bottle 500
hello Round Bottle 501
hello Round Bottle 502
hello Round Bottle 503
hello Round Bottle 504
hello Round Bottle 505
hello Round Bottle 506
hello Round Bottle 507
hello Round Bottle 508
hello Round Bottle 509
hello Round Bottle 510
hello Round Bottle 511
hello Round Bottle 512
hello Round Bottle 513
hello Round Bottle 514
hello Round Bottle 515
hello Round Bottle 516
hello Round Bottle 517
hello Round Bottle 518
hello Round Bottle 519
[root@VM-12-2-centos dir1]#
END