原笔记:https://note.youdao.com/s/A5W9xU4L
一、Linux命令语法
- 命令的组成结构
一条完整的Linux命令由三个部分构成
命令 选项 参数
命令指的是用来实现某一个功能
选项通常用来完善命令的功能
参数指的是被操作的对象(对象可以是用户名、文件名、路径...)
同时: 选项和参数在某些命令中是可以省略;但是命令是不能省略
- 命令的格式和约束
命令和选项之间使用空格分隔
命令和参数之间使用空格分隔
选项和参数之间使用空格分隔
选项和选项之间使用空格分隔
参数和参数之间使用空格分隔
项与项之间使用空格分隔
如果需要一次执行多条命令,则使用分号;来分隔多条命令
- 使用分号 ; 时,不论前一个命令是否成功,后一个命令都会执行。
- 使用 && 时,只有前一个命令成功,后一个命令才会执行。
二、帮助系统
- 查询命令的功能
whatis 用来查询命令的作用(也就是该命令是干什么的)
遇到未知的命令使用whatis查询 是最快
whatis 使用的是系统的帮助手册页来进行查询(帮助手册就是man手册);因此只有man中记录的命令可以查询到,并非所有的命令都可以查询到;但是绝大部分的Linux指令都是被man所收纳的,因此大部分命令都可以查询到
useradd 是在man中出现的标题;(8)表示该内容记录在man这本书的第八章节
如果是新装的系统第一次使用whatis 来进行查询,则需要使用mandb生成索引缓存
[root@FuJiang ~]# mandb
- 查询选项的作用
选项的格式:
-
-
- 第一种 - 将其称为选项的短格式
- 第二种 -- 将其称为选项的长格式
-
长格式一般表示一个完整的含义
短格式一般是长格式的缩写;是为了让用户更好敲命令
注:并非所有的选项都有长短格式,一般有长格式的选项通常会有短格式
区别:短格式可以通过一个- 缩写在一起,而长格式不支持缩写(可以通过 --help查看是否有长短格式)
eg:ls --all --size = ls -a -s = ls -as = ls -sa
可以通过 --help查看是否有长短格式:
a.查询命令自身携带的帮助来查看选项的作用
--help 查询命令本身的帮助, 这一类帮助通常是由程序的开发者来进行定义
[root@FuJiang ~]# date --help
b. 查询系统的帮助页,也就是man的手册
man 查询的关键字 eg. [root@FuJiang ~]# man date
man这本书一共有九章:
[root@FuJiang ~]# man man 查看
第一章: 用户的命令(也就是普通用户可以执行的命令)
第二章:系统调用
第三章:系统函数
第四章: 系统设备文件
第五章: 常用文件的格式
第六章:游戏
第七章:软件包帮助
第八章: 超级管理员命令(也就是root可以执行的命令)
第九章: kernel的api
[root@FuJiang ~]# man man
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions, e.g. /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
这本书在 /usr/share/man (man也提供了中文,但是中文里面的man手册命令支持不全)
man的使用技巧:
man 章节 查询的内容 可以在指定章节查询内容 e.g. man 1p ls
man --k 搜索指定关键字所在的章节 e.g. man --k passwd
c.选项和参数的特殊用法
选项和参数部分:
[] 中括号表示是一个可选项
<> 表示其是一个必选项,且会有变量
大写字母表示其是一个必选项
... 表示是一个列表(列表指的是可以接多个参数或者选项)
[+FORMAT] 表示其为一个固定格式(固定格式后面是一个整体)
-
-
-
- eg. date +%Y 查看年 date +%Y-%m-%d 回显=2024-01-02 (类似于编程语言的print输出)
-
-
因为中间有空格,所以需要引号使其变成一个整体,+号已经为一个整体,放在里面和外面都可以
a|b|c 表示三选一,也就是从多个中选择一个
[MMDDhhmm[[CC]YY][.ss]] 表示也是一个特定格式(man里面没有,可以查询info)
d. 查询额外的帮助手册 info
info记录的信息比man更新详细,一般是先查man,如果在man中查询不到再查info e.g. info date
- 查询软件的产品文档
服务器的配置(vpn、vsftpd、httpd、mariadb)
产品文档的释放目录:/usr/share/doc
通常会以软件名字在该目录下创建一个同名的目录作为产品文档的存放路径
4.查询红帽的案例资料库
https://access.redhat.com 查询红帽的知识库中发生过的类似案例
@总结
因此一条完整的Linux帮助查询方式应该为:
对于一条未知的Linux命令查询的顺序:
whatis 查询命令的作用
--help 查询命令本身的帮助
man 查询系统的帮助手册页
info 查询更加详细的手册页
/usr/share/doc 查询命令所携带的产品文档
access.redaht.com 查询红帽的在线知识库