马哥教育 Linux SRE 学习笔记
用户登录信息查看命令
- whoami: 显示当前登录有效用户
[root@rocky8 ~]$whoami
root
- who: 系统当前所有的登录会话
[root@rocky8 ~]$who
root pts/0 2024-05-24 12:55 (10.0.0.1)
- w: 系统当前所有的登录会话及所做的操作
[root@rocky8 ~]$w
13:06:47 up 11 min, 1 user, load average: 0.00, 0.02, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 12:55 1.00s 0.02s 0.00s w
文本编辑
-
nano 工具可以实现文本的编辑,上手容易,适合初学者
-
gedit 工具是图形工具
范例: 创建登录提示文件 /etc/motd
参考网站: https://www.bootschool.net/ascii-art
#如果没有安装nano,就按照nano:
[root@rocky8 ~]$yum install nano -y
[root@rocky8 ~]$nano /etc/motd
. . . + . . .
. . # . .
. . ### . . .
. . "#:. .:##"##:. .:#" . .
. . "####"###"####" .
. "#:. .:#"###"#:. .:#" . . .
. "#########"#########" . .
. "#:. "####"###"####" .:#" . .
. . "#######""##"##""#######" .
."##"#####"#####"##" . .
. "#:. ... .:##"###"###"##:. ... .:#" .
. "#######"##"#####"##"#######" . .
. . "#####""#######""#####" . .
. " 000 " . .
. . . 000 . . .
.. .. ......................O000O........................ ...... ...
#按大写的X选择y保存
[root@rocky8 ~]$exit
#重新连接
输出信息 echo
echo 基本用法
echo 命令可以将后面跟的字符进行输出
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加 上换行号
语法:
echo [-neE][字符串]
选项:
- -E (默认)不支持 \ 解释功能
- -n 不自动换行
- -e 启用 \ 字符的解释功能
显示变量
echo "$VAR_NAME” #用变量值替换,弱引用
echo '$VAR_NAME’ #变量不会替换,强引用
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \e escape,相当于\033
- \n 换行且光标移至行首
- \r 回车,即光标移至行首,但不换行
- \t 插入tab
- \ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
- \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
范例:
[root@rocky8 ~]$echo -e 'a\x0Ac'
a
c
[root@rocky8 ~]$echo -e '\x57\x41\x4E\x47'
WANG
[root@rocky8 ~]$echo \$PATH
$PATH
[root@rocky8 ~]$echo \\
\
[root@rocky8 ~]$echo \\\
>
\
[root@rocky8 ~]$echo \\\\
\\
[root@rocky8 ~]$echo "$PATH"
/apps/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
[root@rocky8 ~]$echo '$PATH'
$PATH
echo 高级用法
在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码
可以显示具有颜色的字符,其格式如下:
“\033[字符背景颜色;字体颜色m字符串\033[0m”
#字符背景颜色范围: 40--47
40:黑
41:红
42:绿
43:黄
44:蓝
45:紫
46:深绿
47:白色
#字体颜色: 30--37
30: 黑
31: 红
32: 绿
33: 黄
34: 蓝
35: 紫
36: 深绿
37: 白色
加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n列
\033[nD 光标左移n列
\033[x;yH 设置光标位置x行y列
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
\033[2J\033[0;0H 清屏且将光标置顶
范例:
[root@rocky8 ~]$echo -e '\033[43;32;5;5mcxz\e[0m'
cxz
语言环境
默认系统为英文环境,可以修改为中文环境,从而查看帮助或提示可以变为中文
范例:临时修改LANG变量实现中文语言提示
#centos
[root@rocky8 ~]$echo $LANG
en_US.UTF-8
[root@rocky8 ~]$LANG=zh_CN.UTF-8
[root@rocky8 ~]$echo $LANG
zh_CN.UTF-8
范例: Rocky 8 修改语言环境为中文
#rocky
[root@rocky8 ~]$localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
[root@rocky8 ~]#echo $LANG
en_US.UTF-8
[root@rocky8 ~]#yum list lang*
[root@rocky8 ~]#yum -y install langpacks-zh_CN.noarch
#通用方法
[root@rocky8 ~]#localectl set-locale LANG=zh_CN.utf8
#或者下面方式,CentOS8支持,但ubuntu和Centos7不支持,不建议使用
[root@rocky8 ~]#localectl set-locale zh_CN.utf8
[root@rocky8 ~]#localectl status
System Locale: LANG=zh_CN.utf8
VC Keymap: us
X11 Layout: us
[root@rocky8 ~]#echo $LANG
zh_CN.utf8
#重新登录后可以看到中文环境
[root@rocky8 ~]#exit
[root@rocky8 ~]$cxz
-bash: cxz: 未找到命令
范例: Ubuntu18,04 修改语言环境为中文
[root@ubuntu23 ~]$localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
[root@ubuntu23 ~]$apt install language-pack-zh-hans -y
[root@ubuntu23 ~]$localectl set-locale LANG=zh_CN.utf8
[root@ubuntu23 ~]$exit
[root@ubuntu23 ~]$echo $LANG
zh_CN.utf8
[root@ubuntu23 ~]$cxz
找不到命令 “cxz”,您的意思是:
“xz” 命令来自 Debian 软件包 xz-utils (5.4.1-0.2)
“coz” 命令来自 Debian 软件包 coz-profiler (0.2.2-2)
“cxl” 命令来自 Debian 软件包 ndctl (76-1ubuntu1)
尝试 apt install <deb name>
命令行扩展和被括起来的集合
命令行扩展:`` 和 $()
把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令
$(COMMAND)
`COMMAND`
范例:比较 “ ” ,‘ ’, ``三者区别
[root@rocky8 ~]$echo "echo $HOSTNAME"
echo rocky8.cxz.cn
[root@rocky8 ~]$echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@rocky8 ~]$echo `echo $HOSTNAME`
rocky8.cxz.cn
#结论:
单引号:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻"
双引号:弱引用,不能识别命令,可以识别变量,"半傻不精"
反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容
当成命令进行执行后,再交给调用反向单引号的命令继续,"最聪明"
范例:
[root@rocky8 ~]$echo "This system's name is $(hostname)"
This system's name is rocky8.cxz.cn
[root@rocky8 ~]$echo "I am `whoami`"
I am root
[root@rocky8 opt]$touch $(date +%F).log
[root@rocky8 opt]$ls
2024-05-24.log
[root@rocky8 opt]$touch `date +%F`.txt
[root@rocky8 opt]$ll
总用量 0
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
[root@rocky8 opt]$touch `hostname`-`date +%F`.log
[root@rocky8 opt]$ll
总用量 0
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
-rw-r--r-- 1 root root 0 5月 24 14:08 rocky8.cxz.cn-2024-05-24.log
[root@rocky8 opt]$touch `date +%F_%H-%M-%S`.log
[root@rocky8 opt]$ll
总用量 0
-rw-r--r-- 1 root root 0 5月 24 14:09 2024-05-24_14-09-02.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
-rw-r--r-- 1 root root 0 5月 24 14:08 rocky8.cxz.cn-2024-05-24.log
[root@rocky8 opt]$touch `date -d '-1 day' +%F`.log
[root@rocky8 opt]$ll
总用量 0
-rw-r--r-- 1 root root 0 5月 24 14:09 2024-05-23.log
-rw-r--r-- 1 root root 0 5月 24 14:09 2024-05-24_14-09-02.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.log
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
-rw-r--r-- 1 root root 0 5月 24 14:08 rocky8.cxz.cn-2024-05-24.log
范例:$( ) 和 ``
[root@rocky8 opt]$ll `echo `date +%F`.txt`
-bash: .txt: 未找到命令
ls: 无法访问'date': 没有那个文件或目录
ls: 无法访问'+%F': 没有那个文件或目录
[root@rocky8 opt]$ll $(echo $(date +%F).txt)
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
[root@rocky8 opt]$ll `echo $(date +%F).txt`
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
[root@rocky8 opt]$ll $(echo `date +%F`.txt)
-rw-r--r-- 1 root root 0 5月 24 14:07 2024-05-24.txt
括号扩展:{ }
{} 可以实现打印重复字符串的简化形式
{元素1,元素2,元素3}
{元素1..元素2}
范例:
[root@rocky8 opt]$echo file{1,3,6}
file1 file3 file6
[root@rocky8 opt]$rm -f file{1,3,5}
[root@rocky8 opt]$echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@rocky8 opt]$echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@rocky8 opt]$echo {1..10..2}
1 3 5 7 9
[root@rocky8 opt]$echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020
[root@rocky8 opt]$echo {a..z} {A..Z}
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
[root@rocky8 opt]$echo {a..z}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3 h1 h2 h3 i1 i2 i3 j1 j2 j3 k1 k2 k3 l1 l2 l3 m1 m2 m3 n1 n2 n3 o1 o2 o3 p1 p2 p3 q1 q2 q3 r1 r2 r3 s1 s2 s3 t1 t2 t3 u1 u2 u3 v1 v2 v3 w1 w2 w3 x1 x2 x3 y1 y2 y3 z1 z2 z3
范例: 关闭和启用{}的扩展功能
[root@rocky8 opt]$echo $-
himBHs
[root@rocky8 opt]$echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@rocky8 opt]$set +B
[root@rocky8 opt]$echo $-
himHs
[root@rocky8 opt]$echo {1..10}
{1..10}
[root@rocky8 opt]$set -B
[root@rocky8 opt]$echo $-
himBHs
[root@rocky8 opt]$echo {1..10}
1 2 3 4 5 6 7 8 9 10
tab 键补全
tab 键可以实现命令及路径等补全,提高输入效率,避免出错
命令补全
- 内部命令:
- 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文 件,第一次找到的命令即为要执行的命令
- 命令的子命令补全,需要安装 bash-completion
注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表
范例:
[root@rocky8 ~]$nmcli connection #按两下TAB
add delete edit help load monitor show
clone down export import modify reload up
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表
双击Tab键
- command 2Tab 所有子命令或文件补全
- string2Tab 以string开头命令
- /2Tab 显示所有根目录下一级目录,包括隐藏目录
- ./2Tab 当前目录下子目录,包括隐藏目录
- *2Tab 当前目录下子目录,不包括隐藏目录
- ~2Tab 所有用户列表
- $2Tab 所有变量
- @2Tab /etc/hosts记录 (centos7 不支持)
- =2Tab 相当于ls –A (centos7不支持)
命令行历史
当执行命令后,系统默认会在内存记录执行过的命令
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是 ~/.bash_history
登录shell时,会读取命令历史文件中记录下的命令加载到内存中
登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史 文件中
利用命令历史。可以用它来重复执行命令,提高输入效率
命令:history
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
常用选项:
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T `whoami` " 显示时间和用户
HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式
ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
持久保存变量
以上变量可以 export 变量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile
范例:
[root@rocky8 ~]$cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export HISTCONTROL=ignoreboth
export HISTTIMEFORMAT="%F %T "
[root@rocky8 ~]$history
1 ip a
2 vim $PS1
3 echo $PS1
4 $PS1=\[\e[1;36m\]\u\[\e[31m\]@\h\[\e[1;35m\]
5 $PS1='\[\e[1;36m\]\u\[\e[31m\]@\h\[\e[1;35m\]'
6 PS1='\[\e[1;36m\]\u\[\e[31m\]@\h\[\e[1;35m\]'
7 PS1=\[\e[1;32m\][\t \[\e[1;36m\]\u\[\e[31m\]@\h\[\e[1;35m\] \W\[\e[1;32m\]]\[\e[0m\]\$
8 exit
调用命令行历史
#重复前一个命令方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入!-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
使用up(向上)和down(向下)键来上下浏览从前输入的命令
ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出
#要重新调用前一个命令中最后一个参数
!$ 表示前一个命令中最后一个参数
Esc, . 点击Esc键后松开,然后点击 . 键
Alt+ . 按住Alt键的同时点击 . 键
command !^ 利用上一个命令的第一个参数做command的参数
command !$ 利用上一个命令的最后一个参数做command的参数
command !* 利用上一个命令的全部参数做command的参数
command !:n 利用上一个命令的第n个参数做command的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的第m个参数
command !n:* 调用第n条命令的所有参数
command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
bash的快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出,解锁
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Ctrl + xx 光标在命令行首和光标之间移动
ctrl+ > 光标向右移动一个单词尾,相当于 Alt + f
ctrl+ < 光标向左移动一个单词首,相当于 Alt + b
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Alt + Backspace 删除左边单词
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次
注意:Alt 组合快捷键经常和其它软件冲突
获得帮助
- whatis
- command --help
- man
- /usr/share/doc/
- Red Hat documentation 、Ubuntu documentation
- 软件项目网站
- 其它网站
- 搜索
whatis
whatis 使用数据库来显示命令的简短描述
此工具在系统刚安装后,不可立即使用,需要制作数据库后才可使用
执行下面命令生成数据库
#CentOS 7 版本以后
mandb
范例:
[root@rocky8 ~]$whatis cal
cal (1) - display a calendar
cal (1p) - print a calendar
[root@rocky8 ~]$man -f cal
cal (1) - display a calendar
cal (1p) - print a calendar
[root@rocky8 ~]$whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
查看命令的帮助
内部命令帮助
- help COMMAND
- man bash
范例:
[root@rocky8 ~]$type history
history is a shell builtin
[root@rocky8 ~]$help history
history: history [-c] [-d offset] [n] or history -anrw [filename] or histo ry -ps arg [arg...]
Display or manipulate the history list.
Display the history list with line numbers, prefixing each modified
entry with a `*'. An argument of N lists only the last N entries.
Options:
-c clear the history list by deleting all of the entries
-d offset delete the history entry at position OFFSET.
-a append history lines from this session to the history file
-n read all history lines not already read from the history f ile
and append them to the history list
-r read the history file and append the contents to the histo ry
list
-w write the current history to the history file
-p perform history expansion on each ARG and display the resu lt
without storing it in the history list
-s append the ARGs to the history list as a single entry
If FILENAME is given, it is used as the history file. Otherwise,
if HISTFILE has a value, that is used, else ~/.bash_history.
If the HISTTIMEFORMAT variable is set and not null, its value is used
as a format string for strftime(3) to print the time stamp associated
with each displayed history entry. No time stamps are printed otherwi se.
Exit Status:
Returns success unless an invalid option is given or an error occurs.
外部命令及软件帮助
- COMMAND --help 或 COMMAND -h
- 使用 man 手册(manual): man COMMAND
- 信息页:info COMMAND
- 程序自身的帮助文档:README、INSTALL、ChangeLog
- 程序官方文档 相关网站,如:技术论坛
- 搜索引擎
外部命令的–help 或 -h 选项
显示用法总结和参数列表,大多数命令使用,有的没有
范例:
[root@rocky8 ~]$date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
#后面还有,略
[root@rocky8 ~]$date -h
date: invalid option -- 'h'
Try 'date --help' for more information.
格式说明:
- [] 表示可选项
- CAPS或 <> 表示变化的数据
- … 表示一个列表 x |y| z
- 的意思是“ x 或 y 或 z ”
- -abc的 意思是 -a -b –c
- { } 表示分组
man 命令
man 提供命令帮助的文件,手册页存放在/usr/share/man
几乎每个命令都有man的“页面”
man 帮助
https://man7.org/linux/man-pages/index.html
https://man7.org/linux/man-pages/dir_all_alphabetic.html
中文man需安装包
- man-pages
- man-pages-zh-CN
man 页面分组
不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man
- 1:用户命令
- 2:系统调用
- 3:C库调用
- 4:设备文件及特殊文件
- 5:配置文件格式
- 6:游戏
- 7:杂项
- 8:管理类的命令
- 9:Linux 内核API
man 命令的配置文件:
#CentOS 6 之前版 man 的配置文件
/etc/man.config
#CentOS 7 之后版 man 的配置文件
/etc/man_db.conf
#ubuntu man 的配置文件
/etc/manpath.config
格式:
MANPATH /PATH/TO/SOMEWHERE #指明man文件搜索位置
也可以指定位置下搜索COMMAND命令的手册页并显示
man -M /PATH/TO/SOMEWHERE COMMAND
查看man手册页
man [OPTION...] [SECTION] PAGE...
man [章节] keyword
man 帮助段落说明
- NAME 名称及简要说明
- SYNOPSIS 用法格式说明
- [] 可选内容
- <> 必选内容
- a|b 二选一
- { } 分组
- … 同一内容可出现多次
- DESCRIPTION 详细说明
- OPTIONS 选项说明
- EXAMPLES 示例
- FILES 相关文件
- AUTHOR 作者
- COPYRIGHT 版本信息
- REPORTING BUGS bug信息
- SEE ALSO 其它帮助参考
常用选项
- 列出所有帮助
man -a keyword
- 搜索man手册
#列出所有匹配的页面,使用 whatis 数据库
man -k keyword
- 相当于 whatis
man -f keyword
- 打印man帮助文件的路径
man -w [章节] keyword
范例: 查看passwd相关命令和文件,man帮助文件路径
[root@rocky8 ~]$whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
范例: 直接打开man的帮助文件
[root@rocky8 ~]$man -w ls
/usr/share/man/man1/ls.1.gz
[root@rocky8 ~]$file /usr/share/man/man1/ls.1.gz
/usr/share/man/man1/ls.1.gz: gzip compressed data, max compression, from Unix, original size 7921
#直接打开man的gz压缩格式文档
[root@rocky8 ~]$man /usr/share/man/man1/ls.1.gz
#直接打开man格式文档
[root@rocky8 ~]$file /usr/local/src/nginx-1.22.1/man/nginx.8
/usr/local/src/nginx-1.22.1/man/nginx.8: troff or preprocessor input, ASCII text
[root@rocky8 ~]$man -l /usr/local/src/nginx-1.22.1/man/nginx.8
命令自身提供的官方使用指南
/usr/share/doc
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
常见文档:README INSTALL CHANGES
不适合其它地方的文档的位置
配置文件范例 HTML/PDF/PS 格式的文档
授权书详情
范例:
[root@rocky8 ~]$ls /usr/share/doc/nano/
AUTHORS COPYING INSTALL NEWS sample.nanorc TODO
ChangeLog faq.html nano.html README THANKS
[root@rocky8 ~]$ls /usr/share/doc/nano/nano.html
系统及第三方应用官方文档
Linux官方在线文档和知识库
通过发行版官方的文档光盘或网站可以获得安装指南、部署指南、虚拟化指南等
http://www.redhat.com/docs
http://kbase.redhat.com
http://access.redhat.com
https://help.ubuntu.com/lts/serverguide/index.html
http://tldp.org
通过在线文档获取帮助
http://www.github.com
https://www.kernel.org/doc/html/latest/
http://httpd.apache.org
http://www.nginx.org
https://mariadb.com/kb/en
https://dev.mysql.com/doc/
http://tomcat.apache.org
https://jenkins.io/zh/doc/
https://kubernetes.io/docs/home/
https://docs.openstack.org/train/
http://www.python.org
http://php.net
相关网站和搜索
#各种搜索网站
谷歌
必应
百度
等等