Linux基础入门和帮助-第二篇

news2024/10/5 13:15:38

马哥教育 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 524 14:09 2024-05-23.log
-rw-r--r-- 1 root root 0 524 14:09 2024-05-24_14-09-02.log
-rw-r--r-- 1 root root 0 524 14:07 2024-05-24.log
-rw-r--r-- 1 root root 0 524 14:07 2024-05-24.txt
-rw-r--r-- 1 root root 0 524 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 524 14:07 2024-05-24.txt

[root@rocky8 opt]$ll `echo $(date +%F).txt`
-rw-r--r-- 1 root root 0 524 14:07 2024-05-24.txt

[root@rocky8 opt]$ll $(echo `date +%F`.txt)
-rw-r--r-- 1 root root 0 524 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

相关网站和搜索


#各种搜索网站
谷歌
必应
百度
等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1691001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件即服务-SaaS

目录 1. SaaS成熟度模型 2. SaaS应用平台 3. SaaS应用实现层次 4. 多租户技术 5. 可配置性 5.1 业务构件 5.2 数据可配置 5.2.1 定制字段 5.2.2 预分配字段 5.2.3 名称值对 5.3 功能可配置 5.3.1 业务构件设计 5.3.2 功能包设计 5.3.3 销售包设计…

全方位剖析内核抢占机制

在当今数字时代&#xff0c;手机已成为人们日常生活中不可或缺&#xff0c;多任务处理和实时响应对于用户体验越来越重要&#xff0c;抢占(preemption)机制在提升系统性能和用户体验方面发挥了至关重要的作用。内核抢占机制使得系统能够有效地管理多任务处理&#xff0c;确保系…

C语言消息摘要函数 SHA-1 算法的实现

一、实验目的 &#xff08;1&#xff09;加深对消息摘要函数 SHA-1 的理解&#xff1b; &#xff08;2&#xff09;掌握消息摘要函数 SHA-1&#xff1b; &#xff08;3&#xff09;提高编程实践能力。 二、实验内容 &#xff08;1&#xff09;按照标准 FIPS-180-2 中 SHA-1 算法…

B站pink老师CSS学习(二)

文章目录 一、emmet语法1.快速生成HTML结构语法 二、复合选择器1.什么是复合选择器2.后代选择器3.子选择器4.并集选择器5.伪类选择器6.链接伪类选择器7&#xff1a;focus伪类选择器8.总结 三、元素的显示模式1.什么是元素显示模式2.块元素3.行内元素4.行内块元素5.总结6.元素显…

springboot 配置动态调整profiles-active参数

配置动态调整active参数&#xff1a; 1.bootstrap.yml中&#xff1a; spring:profiles:active: spring.profiles.active #占位符 替换 2.pom.xml中配置&#xff1a; <build><resources><resource><directory>src/main/resources</directory>&…

栈(从数据结构的三要素出发)

文章目录 逻辑结构物理结构顺序栈链栈共享栈 数据的操作顺序栈的基本操作链栈的基本操作共享栈的基本操作 数据结构的应用栈在括号匹配中的应用栈在表达式求值中的应用栈在递归调用中的应用 逻辑结构 栈是只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表&#xf…

数据结构-队列(带图详解)

目录 队列的概念 画图理解队列 代码图理解 代码展示(注意这个队列是单链表的结构实现) Queue.h(队列结构) Queue.c(函数/API实现) main.c(测试文件) 队列的概念 队列&#xff08;Queue&#xff09;是一种基础的数据结构&#xff0c;它遵循先进先出&#xff08;First In …

本地部署Whisper实现语言转文字

文章目录 本地部署Whisper实现语言转文字1.前置条件2.安装chocolatey3.安装ffmpeg4.安装whisper5.测试用例6.命令行用法7.本地硬件受限&#xff0c;借用hugging face资源进行转译 本地部署Whisper实现语言转文字 1.前置条件 环境windows10 64位 2.安装chocolatey 安装chocol…

无人机+飞行服务:无人机飞防服务(打药+施肥+播种)技术详解

无人机飞防服务&#xff0c;结合了先进的无人机技术与农业实践&#xff0c;为现代农业提供了高效、精准的打药、施肥和播种解决方案。以下是对这些技术的详细解析&#xff1a; 一、无人机打药技术 无人机打药技术利用无人机搭载喷雾设备&#xff0c;对农田进行精准施药。通过…

修改vuetify3的开关组件v-switch在inset模式下的大小

<v-switchv-model"model":label"Switch: ${model.toString()}"hide-detailsinset></v-switch><style lang"scss" scoped> .custom-switch {:deep(.v-switch__thumb) {height: 18px !important; /* 设置开关按钮的高度 */width…

编一个自己的万年历

编一个自己的万年历 前阶段突然想查一下某一天是星期几&#xff0c;于是自己编了一个[小程序][https://blog.csdn.net/weixin_41905135/article/details/138972055?spm1001.2014.3001.5501]&#xff0c;但是功能很单一&#xff0c;就是单纯的查是星期几。&#xff08;虽然用网…

解决深度确定问题:使用不相交集合森林

解决深度确定问题&#xff1a;使用不相交集合森林 引言不相交集合森林&#xff08;DSF&#xff09;基础按秩合并与路径压缩深度确定问题的解决方案实现MAKE-TREE修改FIND-SET实现FIND-DEPTH实现GRAFT分析最坏情况运行时间结论参考文献 引言 在计算机科学中&#xff0c;树结构是…

多维数据库创建

多维数据库 小白的数据仓库学习笔记 2024/5/21 上午 文章目录 多维数据库Cube的作用&#xff1a;什么是多维数据库维的级别多维数据分析方法如何构建多维数据集&#xff1f;创建项目创建数据源创建数据源视图创建多维数据集维度表中缺失的值拖拽过去建立维度结构设计类型启动连…

现代C++ 如何使用 Lambda 使代码更具表现力、更容易理解?

使用 Lambda 使代码更具表现力 一、Lambda VS. 仿函数二、总结 一、Lambda VS. 仿函数 Lambda 是 C11 中最引人注目的语言特性之一。它是一个强大的工具&#xff0c;但必须正确使用才能使代码更具表现力&#xff0c;而不是更难理解。 首先&#xff0c;要明确的是&#xff0c;…

【LeetCode】【5】最长回文子串

文章目录 [toc]题目描述样例输入输出与解释样例1样例2 提示Python实现动态规划 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给一个字符串s&#xff0c;找到s中最长的回文子串 样例输入输出与解释 样例1 输入…

2024电工杯数学建模B题Python代码+结果表数据教学

2024电工杯B题保姆级分析完整思路代码数据教学 B题题目&#xff1a;大学生平衡膳食食谱的优化设计及评价 以下仅展示部分&#xff0c;完整版看文末的文章 import pandas as pd df1 pd.read_excel(附件1&#xff1a;1名男大学生的一日食谱.xlsx) df1# 获取所有工作表名称 e…

派可数据助力制造企业数字化生产管理新能力提升

生产管理是现代企业运营的核心之一&#xff0c;它决定了产品的质量、生产效率和企业的竞争力。在一个日益竞争激烈、市场需求多变的商业环境中&#xff0c;如何高效地组织和管理生产过程成为了企业不容忽视的重要课题。 过去&#xff0c;生产管理可能主要侧重于物理工厂的运作…

Sping源码(八)—registerBeanPostProcessors

序言 之前我们用大量的篇幅介绍过invokeBeanFactoryPostProcessors()方法的执行流程。 而invokeBeanFactoryPostProcessors的主要逻辑就是遍历执行实现了BeanDefinitionRegistryPostProcesso类(主要是针对BeanDefinition的操作)和BeanFactoryPostProcessor(主要针对BeanFacrot…

【C语言】深入理解指针(一)(上)

本篇文章将讲解&#xff1a; &#xff08;1&#xff09;内存和地址 &#xff08;2&#xff09;指针变量和细致 &#xff08;3&#xff09;指针变量类型的意义 一&#xff1a;内存和地址 &#xff08;1&#xff09;内存 在讲内存和地址之前&#xff0c;我们讲一个生活中的…

混合组网VS传统网络:智能硬件混合组网优劣势浅要解析

智能硬件混合组网是一种利用多种通信技术相结合的方法&#xff0c;以实现更灵活、更可靠的网络连接。通过蓝牙、Wi-Fi、LoRa、4G相互之间的不同通讯方式&#xff0c;根据应用场景的不同以及现场实际环境&#xff0c;优选最佳物联网混合组网方案&#xff0c;以达到部署最便捷性价…