Linux命令的语法和帮助系统

原笔记:https://note.youdao.com/s/A5W9xU4L

一、Linux命令语法

  1. 命令的组成结构

一条完整的Linux命令由三个部分构成

命令 选项 参数

命令指的是用来实现某一个功能

选项通常用来完善命令的功能

参数指的是被操作的对象(对象可以是用户名、文件名、路径...)

同时: 选项和参数在某些命令中是可以省略;但是命令是不能省略

  1. 命令的格式和约束

命令和选项之间使用空格分隔

命令和参数之间使用空格分隔

选项和参数之间使用空格分隔

选项和选项之间使用空格分隔

参数和参数之间使用空格分隔

项与项之间使用空格分隔

如果需要一次执行多条命令,则使用分号;来分隔多条命令

  • 使用分号 ; 时,不论前一个命令是否成功,后一个命令都会执行。
  • 使用 && 时,只有前一个命令成功,后一个命令才会执行。

二、帮助系统

  1. 查询命令的功能

whatis 用来查询命令的作用(也就是该命令是干什么的)

遇到未知的命令使用whatis查询 是最快

whatis 使用的是系统的帮助手册页来进行查询(帮助手册就是man手册);因此只有man中记录的命令可以查询到,并非所有的命令都可以查询到;但是绝大部分的Linux指令都是被man所收纳的,因此大部分命令都可以查询到

useradd 是在man中出现的标题;(8)表示该内容记录在man这本书的第八章节

如果是新装的系统第一次使用whatis 来进行查询,则需要使用mandb生成索引缓存

root@FuJiang \~# mandb

  1. 查询选项的作用

选项的格式:

      • 第一种 - 将其称为选项的短格式
      • 第二种 -- 将其称为选项的长格式

长格式一般表示一个完整的含义

短格式一般是长格式的缩写;是为了让用户更好敲命令

注:并非所有的选项都有长短格式,一般有长格式的选项通常会有短格式

区别:短格式可以通过一个- 缩写在一起,而长格式不支持缩写(可以通过 --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\[\[CCYY].ss] 表示也是一个特定格式(man里面没有,可以查询info)

d. 查询额外的帮助手册 info

info记录的信息比man更新详细,一般是先查man,如果在man中查询不到再查info e.g. info date

  1. 查询软件的产品文档

服务器的配置(vpn、vsftpd、httpd、mariadb)

产品文档的释放目录:/usr/share/doc

通常会以软件名字在该目录下创建一个同名的目录作为产品文档的存放路径

4.查询红帽的案例资料库

https://access.redhat.com 查询红帽的知识库中发生过的类似案例

@总结

因此一条完整的Linux帮助查询方式应该为:

对于一条未知的Linux命令查询的顺序:

whatis 查询命令的作用

--help 查询命令本身的帮助

man 查询系统的帮助手册页

info 查询更加详细的手册页

/usr/share/doc 查询命令所携带的产品文档

access.redaht.com 查询红帽的在线知识库

相关推荐
AlfredZhao20 小时前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐2 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698033 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297913 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维