开启辅助访问 切换到窄版

打印 上一主题 下一主题

跟光磊学Linux运维-深入理解Linux命令

[复制链接]
作者:ln留恋 
版块:
嵌入式操作系统 linux 发布时间:2020-10-22 08:17:11
16140
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当使用账号登录Linux后,终端上会显示指定格式的命令提示符
CentOS8.2的命令提示符
# CentOS7.8的命令提示符
# Ubuntu Server20.04的命令提示符
命令提示符显示的格式由环境变量$PS1决定的,使用echo $PS1查看命令提示符的默认配置
guanglei@ubuntu20:~$ echo $PS1\0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$# echo $PS1 #查看CentOS7.8的命令提示符\$# echo $PS1 #查看CentOS8.2的命令提示符\$CentOS系列(CentOS7.8,CentOS8.2)命令提示符的含义说明
\u 表示当前登录的账号,例如管理员登录时账号就是root,普通用户登录就是guanglei
\h 表示当前登录的主机名,例如centos8.2登录时主机名就是centos8,不同的操作系统版本设置成了不同的主机名,用于区分系统版本
\W表示当前用户所在的目录,~表示当前用户的家目录,如果切换目录,则会替换成切换后的目录
$表示当前用户登录的账号类型,其中# 表示当前登录的用户是root用户,如果是普通用户登录,显示的是$
命令提示符的格式由PS1变量决定,我们可以修改PS1变量的值,从而来修改命令提示符的格式
CentOS8.2 自定义命令提示符
# PS1="\\\$\" #临时修改CentOS8.2的命令提示符CentOS8.2命令提示符
命令提示符格式的说明

  • 31-37表示字体颜色
  • 41-47 表示背景颜色
  • 1 表示高亮
  • 5表示闪烁
  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • 开机后命令历史数
CentOS7.8自定义命令提示符
# PS1="\[\\t \\u\@\h\ \W\]\\\$" # 临时修改CentOS7.8的命令提示符![CentOS7.8自定义命令提示符
不过这种方式只会临时生效,一旦重新登录则恢复默认的命令提示符。我们可以使用echo结合重定向来将命令提示符的格式写入文件,让其永久生效。
# echo 'PS1="\[\\t \\u\@\h\ \W\]\\\$"' > /etc/profile.d/env.sh命令提示符配置写入/etc/profile.d/env.sh文件



重新登录系统后,命令提示符的配置依然有效


如果不想使用,则使用rm -rf删除该文件即可
#rm -rf /etc/profile.d/env.sh # 删除 env.sh文件删除/etc/profile.d/env.sh配置文件后,会还原到默认的命令提示符


企业运维场景通常会区分测试环境和生产环境,可以给不同的环境设置不同的命令提示符来避免误操作。
Linux命令分类在日常运维时需要使用Linux提供的大量命令,这些命令可以分为别名、内部命令,外部命令三种。
tpye命令能够区分执行的命令是别名,内部命令,还是外部命令。
ls 用于查看文件,默认使用的是别名,即默认添加添加了长选项--color=auto
# type ls # 查看ls命令的类型ls is aliased to `ls --color=auto'

  • 别名
    别名可以看做是某条命令的缩写,如果某条命令太长,就可以使用别名来命名,执行别名等价于执行命令。创建别名,可以使用alias 变量名=变量值 的形式创建。
在创建别名时,别名的名称切勿和系统的命令冲突
例如需要切换到/etc/sysconfig/network-scripts目录,使用cd 加上目录名,由于该目录名称太长,这里就可以创建一个cdnet的别名
# alias cdnet='cd /etc/sysconfig/network-scripts'然后只要输入cdnet就可以直接切换到/etc/sysconfig/network-scripts目录了,pwd命令是用于查看当前用户所在的目录,因为命令提示符只会显示最后一级目录。
# cdnet# pwd/etc/sysconfig/network-scripts不过这种创建别名的方式只是临时的,因为别名的配置只是存在了内存中,没有写入配置文件,当重新登录系统后就无法使用,执行别名时bash shell会提示找不到命令。


如果想要永久使用,可以将别名的配置保存到家目录的.bashrc文件文件中,修改文件可以使用nano .bashrc命令
命令提示符的~表示当前所在的目录就是家目录
# nano .bashrc其中nano是文本编辑器,类似于Windows的记事本,使用nano打开文件后,直接在mv别名下新增cdnet别名,然后按Ctrl+x退出nano编辑器,然后按y保存修改的内容,最后回车即可。
增加cdnet别名
修改后可以使用cat .bashrc查看修改后的结果
# cat .bashrc #查看修改后的结果# .bashrc# User specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias cdnet='cd /etc/sysconfig/network-scripts'# Source global definitionsif ; then. /etc/bashrcfi修改.bashrc文件后不会立即生效,如果让配置的别名生效,可以使用source .bashrc命令或者是. bashrc命令来让cdnet别名生效,只有生效后才能使用别名。
source 和.是等价的,都是让修改的配置文件生效
# source .bashrc #让刚才修改的配置生效# cdnet # 使用别名切换到/etc/sysconfig/network-scripts目录下# pwd # 查看当前的目录/etc/sysconfig/network-scriptsalias命令可以查看系统中的所有别名
# aliasalias cdnet='cd /etc/sysconfig/network-scripts'alias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'alias xzegrep='xzegrep --color=auto'alias xzfgrep='xzfgrep --color=auto'alias xzgrep='xzgrep --color=auto'alias zegrep='zegrep --color=auto'alias zfgrep='zfgrep --color=auto'alias zgrep='zgrep --color=auto'type命令除了可以区分内部命令和外部命令以外,还可以用来判断是不是别名
# type cdnet #cdnet是别名cdnet is aliased to `cd /etc/sysconfig/network-scripts'使用Linux命令的别名机制实现扫描硬盘
在VMWare WorkStation中给CentOS8.2增加一块硬盘
首先选中CentOS8.2,然后选中硬盘,点击添加


添加硬盘


选择磁盘类型


创建新建虚拟磁盘


指定磁盘容量


指定磁盘文件的存储路径


新增硬盘成功


但是增加硬盘后如果不重启系统,使用lsblk命令是看不到新增的硬盘
lsblk查看磁盘分区和容量
# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk├─sda1 8:1 0 2G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /data├─sda4 8:4 0 1K 0 part└─sda5 8:5 0 4G 0 part sr0 11:0 1 7.7G 0 rom /run/media/guanglei/CentOS-8-2-2004-x86_64-dvd此时我们可以执行命令echo '- - -'> /sys/class/scsi_host/host0/scan;echo '- - -' > /sys/class/scsi_host/host1/scan;echo '- - -' > /sys/class/scsi_host/host2/scan 后再执行lsblk就可以查看到新增加的第二块硬盘,而不用重启机器。
# echo '- - -'> /sys/class/scsi_host/host0/scan;echo '- - -' > /sys/class/scsi_host/host1/scan;echo '- - -' > /sys/class/scsi_host/host2/scan# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk├─sda1 8:1 0 2G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /data├─sda4 8:4 0 1K 0 part└─sda5 8:5 0 4G 0 part sdb 8:16 0 20G 0 disksr0 11:0 1 7.7G 0 rom /run/media/guanglei/CentOS-8-2-2004-x86_64-dvd由于命令太长,我们可以使用alias定义别名
# alias scandisk="echo '- - -'> /sys/class/scsi_host/host0/scan;echo '- - -' > /sys/class/scsi_host/host1/scan;echo '- - -' > /sys/class/scsi_host/host2/scan"当再次在VMWare WorkStation中添加磁盘时



使用别名scandisk就可以就可以查看到新增的磁盘
# scandisk #扫描磁盘# lsblk # 查看磁盘分区NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk ├─sda1 8:1 0 2G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /data├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part sdb 8:16 0 20G 0 disk sdc 8:32 0 20G 0 disk sr0 11:0 1 7.7G 0 rom /run/media/guanglei/CentOS-8-2-2004-x86_64-dvd别名除了定义在.bashrc文件中,只会对当前登录用户有效,除此以外还可以定义在/etc/bashrc文件中,对所有用户都有效。

  • 内部命令
    内部命令是Shell自带的,例如pwd,cd,echo都是内部命令,内部命令在系统启动后由Shell加载到内存中。
cd,pwd,echo等等都是shell内置的命令,也被称作内部命令
# type cd # 查看cd命令的类型cd is a shell builtin# type pwd # 查看pwd命令的类型pwd is a shell builtin# type echo # 查看echo的命令类型echo is a shell builtinenable命令可以查看所有的内部命令
# enableenable还可以启用、禁用内部命令,其中禁用内部命令是enable -n command,启用内部命令是enable command
禁用内部命令echo
# enable -n echo # 禁用内部命令echo# type echoecho is /usr/bin/echo启用内部命令echo
# enable echo # 启用内部命令echo# type echoecho is a shell builtin有些别名、内部命令会和外部命令重名,例如echo命令既是内部命令,又是外部命令,ls即是别名,也是外部命令,如果重名的情况下系统会优先执行别名。
# type -a echo #查看echo的所有命令类型echo is a shell builtinecho is /usr/bin/echo当执行echo的时候优先执行的是内部命令,如果想要执行外部命令,可以在外部命令的左边加上\或者使用''包含。
# 'echo' $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binls默认是使用的别名,在查看文件时会给文件增加颜色,而如果想要执行外部命令ls,则可以使用\ls
# ls /etc #查看/etc目录列表,区分颜色# \ls /etc #查看/etc目录列表,不区分颜色

  • 外部命令
    外部命令是位于$PATH变量定义的路径中,一般是对应某个磁盘路径的可执行程序。
# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin而cat,hostname等等就是外部命令,使用type查看外部命令会输出该命令的完整路径
例如cat和hostname都是位于/usr/bin路径下的可执行程序
# type catcat is /usr/bin/cat# type hostnamehostname is /usr/bin/hostname除了type查看路径以外,还可以使用whereis命令查看,该命令除了显示外部命令的路径以外,还会显示命令对应的帮助文档的路径。
# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz在执行外部命令时,每次都要从PATH环境变量中查找对应的可执行程序,这个过程相对而言比较耗时,为了提高执行效率,Linux在执行外部命令时将其缓存起来,使用hash命令可以查看缓存的外部命令,其中hits表示缓存执行的次数,也就是说当执行外部命令时首先会从缓存中查找,如果找不到再到PATH路径下查找。
# hashhits command3 /usr/bin/nano1 /usr/bin/cat1 /usr/bin/whereis5 /usr/bin/ls7 /usr/bin/clear如果缓存的命令的执行路径发生了变化,可以使用hash -d command 删除指定命令的缓存,删除缓存后,执行外部命令时系统会从$PATH环境变量中查找。
# hash #查看已经缓存的命令hits command3 /usr/bin/nano1 /usr/bin/cat1 /usr/bin/whereis5 /usr/bin/ls7 /usr/bin/clear# hash -d nano # 删除缓存的nano命令# hash # 再次查看已经缓存的命令hits command1 /usr/bin/cat1 /usr/bin/whereis5 /usr/bin/ls7 /usr/bin/clear清空缓存可以使用hash -r命令实现,清空缓存后再次使用hash查看缓存时显示hash table empty
当运维人员在终端上输入命令并回车后,后台运行的shell程序(一般是bash shell)会查找该命令所对应的可执行程序或者代码,并分析后提交给内核分配资源将其运行起来。
bash shell其其本质是一个位于/bin目录下的程序,该程序会随着系统启动而被加载到内存中,其文件大小为1.2M ,Bash Shell中内置了许多常用的命令,而大部分外部命令都位于/bin目录下。
# ll -h /bin/bash #查看bash shell -rwxr-xr-x. 1 root root 1.2M Nov 9 2019 /bin/bashLinux命令的执行流程

首先Shell会判断用户输入的是别名、内部命令还是外部命令,它们的执行顺序依次是别名、内部命令,外部命令,如果是外部命令,首先从缓存中查找命令的路径,如果缓存中没有找到,则从PATH中查找,如果别名,内部命令,缓存和外部命令都找不到,则会提示command not found。
日常运维涉及到的常用命令大概有100多个
Linux命令由命令三部分组成,其中命令的选项和参数都是可选的

  • 命令是别名、外部命令或者内部命令
  • 选项用于启用或者关闭命令的某个或者某些功能,选项有短选项和长选项两种,其中短选项由 -和字符组成,例如 ls -l,id -u,短选项称为Unix风格,长选项由--和单词组成,例如ls --help,长选项相对于短选项更加直观的表达作用,长选项称为GNU风格。还有一种BSD风格的短选项,即不带-,命令后面直接跟字母,例如ps a
并不是每种命令都支持这三种风格,BSD风格使用相对较少,而Unix风格和GNU风格基本都支持。


  • 参数是命令作用的对象,例如文件名、用户名等等,例如hostname ittimeline.net ,ittimeline.net就是修改的主机名
需要注意的是:

  • 命令的多个选项以及参数和命令之间使用空白字符分隔 例如 ls -a -l
  • 命令的多个短选项可以合并使用,例如ls -al
  • 多个命令可以使用;符号隔开
  • 一个命令可以使用\分成多行,命令太长时使用,例如编译Nginx
不带选项和参数的命令用例
# lsanaconda-ks.cfg initial-setup-ks.cfg test.txt带选项的命令用例
ls -a 用于显示以.开头的隐藏文件
# ls -a # 查看当前目录的所有文件,包括隐藏文件. .bash_history .bashrc .cshrc initial-setup-ks.cfg.. .bash_logout .cache .dbus .tcshrcanaconda-ks.cfg .bash_profile .config .esd_auth .Xauthority带多个选项的命令用例
ls -al 显示所有文件的完整信息
# ls -al #显示当前目录下所有文件的完整信息total 36dr-xr-x---. 5 root root 220 Oct 4 15:43 .dr-xr-xr-x. 18 root root 236 Oct 3 13:41 ..-rw-------. 1 root root 1591 Oct 3 13:49 anaconda-ks.cfg-rw-r--r--. 1 root root 18 May 11 2019 .bash_logout-rw-r--r--. 1 root root 176 May 11 2019 .bash_profile-rw-r--r--. 1 root root 382 Oct 4 15:48 .bashrcdrwx------. 3 root root 19 Oct 3 13:49 .cachedrwx------. 4 root root 31 Oct 4 15:43 .config-rw-r--r--. 1 root root 100 May 11 2019 .cshrcdrwx------. 3 root root 25 Oct 3 13:49 .dbus-rw-------. 1 root root 16 Oct 4 15:43 .esd_auth-rw-r--r--. 1 root root 1701 Oct 3 13:50 initial-setup-ks.cfg-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc-rw-------. 1 root root 68 Oct 4 15:43 .Xauthority带长选项的命令用例
ls --help 显示命令的帮助信息
# ls --help带选项和参数的命令用例
ls -l initial-setup-ks.cfg 查看指定文件的完整信息
# ls -l initial-setup-ks.cfg #查看initial-setup-ks.cfg文件的信息-rw-r--r--. 1 root root 1701 Oct 3 13:50 initial-setup-ks.cfg带选项和参数的命令用例
# id -u guanglei #查看guanglei的id1000一行执行多个命令用例
# hostname;uname -r;whocentos8.ittimeline.net4.18.0-193.el8.x86_64guanglei tty2 2020-10-03 19:03 (tty2)root pts/1 2020-10-04 15:43 (10.0.0.1)一条命令放在多行执行用例
# wh\> oguanglei tty2 2020-10-03 19:03 (tty2)root pts/1 2020-10-04 15:43 (10.0.0.1)短选项和长选项等价的命令示例
free --human 等价于 free -h
# free -h #查看内存,以人类可读的方式total used free shared buff/cache availableMem: 7.8Gi 2.1Gi 4.9Gi 40Mi 740Mi 5.4GiSwap: 4.0Gi 0B 4.0Gi# free --human #查看内存,以人类可读的方式total used free shared buff/cache availableMem: 7.8Gi 2.1Gi 4.9Gi 40Mi 740Mi 5.4GiSwap: 4.0Gi 0B 4.0Gi
ls -a 等价于 ls --all
# ls -a #查看当前目录的所有文件,包含隐藏文件. .bash_history .bashrc .cshrc initial-setup-ks.cfg.. .bash_logout .cache .dbus .tcshrcanaconda-ks.cfg .bash_profile .config .esd_auth .Xauthority# ls --all #查看当前目录的所有文件,包含隐藏文件. .bash_history .bashrc .cshrc initial-setup-ks.cfg.. .bash_logout .cache .dbus .tcshrcanaconda-ks.cfg .bash_profile .config .esd_auth .Xauthority想要强行中断执行中的命令,可以使用快捷键ctrl+c,可能会丢失数据
在终端上输入yes命令,该命令就是不停的输出y,如果中断执行,使用ctrl+c
# yes #往屏幕不停的打印y,按ctrl+c可以强行退出而和ctrl+c作用类似的还有ctrl+d,ctrl+d可以注销登录,除此以外在执行交互式命令时,还能实现正常结束命令的执行。
在终端上输入bc命令,此时会等待用户输入数据,如果此时想要正常退出,则可以使用ctrl+d
# bcbc 1.07.1Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'. Linux命令帮助获取帮助的方法日常运维的工作中会会使用到几百种命令,而最好记的记忆方式就是经常使用,在使用中记忆。如果记不住,那么就要学会查帮助,查帮助的能力决定了技术的能力。
Linux命令获取帮助可以通过如下几种方式进行

  • whatis
  • command --help 大多数命令都带了--help选项查看帮助
  • man 命令帮助手册
  • /usr/share/doc 命令帮助文档
  • Red Hat document 红帽官方文档
  • 其他软件的官方站点、文档
  • 搜索引擎(Google,baidu)
whatiswhatis命令用于查看指定命令的简要说明,例如初学者如果不知道rm命令的作用,就可以使用whatis命令查看
# whatis rmrm (1) - remove files or directoriesrm (1p) - remove directory entrieswhatis在查看命令的帮助时依赖数据库,如果没有生成数据库(例如CentOS8安装后就没有生成),则无法使用
# whatis rmrm: nothing appropriate.# whatis lsls: nothing appropriate.可以使用mandb命令创建数据库
# mandb # 生成man相关数据库数据库创建成功之后再次使用whereis命令查看
# whatis lsls (1) - list directory contentsls (1p) - list directory contents命令帮助命令分为内部命令和外部命令,它们查看帮助的方法是不相同的,内部命令直接使用help command来查看其帮助。
type可以查看命令类型
# type enableenable is a shell builtin查看enable命令的帮助信息
help命令会列出内部命令的功能以及常用选项的说明
# help enable #查看enable的帮助通常help命令列出的帮助信息不够完整,可以使用man bash 列出所有内部命令的帮助信息
man bash的内容累计3000多行,关于man(即manual)的使用,继续往下看。
# man bash外部命令可以使用--help和-h选项获取命令的帮助信息,大部分外部命令都支持--help,少部分支持-h选项
查看cal命令的帮助信息
-h 慎用,例如shutdown -h 表示关机
# cal -h查看date命令的帮助信息
# date --help #查看date命令帮助信息

date命令帮助
通过查看date日期的帮助实现如下需求
显示完整日期和时间
# date '+%F %T'2020-10-15 14:44:30修改时间为10天后的日期后还原修改的时间
# date -s '+10 day'Thu Oct 15 15:21:47 CST 2020# date -s '-10 day'Mon Oct 5 15:21:54 CST 2020显示昨天的日期时间
# date -d yesterdaySun Oct 4 15:22:04 CST 2020显示明天的日期
# date -d tomorrowTue Oct 6 15:22:23 CST 2020显示10天后的日期
# date -d '10 day'Thu Oct 15 15:22:35 CST 2020以昨天的日期创建一个日志文件
# date -d '-1 day' +%F # 显示昨天的日期2020-10-04# touch `date -d '-1 day' +%F`.log #以昨天的日期创建一个日志文件# lltotal 8-rw-r--r--. 1 root root 0 Oct 5 15:26 2020-10-04.log-rw-r--r--. 1 root root 0 Oct 5 08:58 2020-10-05.txt-rw-------. 1 root root 1591 Oct 3 13:49 anaconda-ks.cfg-rw-r--r--. 1 root root 1701 Oct 3 13:50 initial-setup-ks.cfg以主机名和昨天的日期创建一个日志文件
# hostname #查看当前机器的主机名centos8.ittimeline.net# date -d '-1 day' +%F #显示昨天的日期2020-10-19# touch `hostname`-`date -d '-1 day' +%F`.log #以主机名和昨天的日期创建一个日志文件# lltotal 12-rw-r--r--. 1 root root 0 Oct 5 15:26 2020-10-04.log-rw-r--r--. 1 root root 0 Oct 5 08:58 2020-10-05.txt-rw-------. 1 root root 1591 Oct 3 13:49 anaconda-ks.cfg-rw-r--r--. 1 root root 1 Oct 6 10:18 block.txt-rw-r--r--. 1 root root 0 Oct 5 08:56 centos8.ittimeline.net-2020-10-05.log-rw-r--r--. 1 root root 1701 Oct 3 13:50 initial-setup-ks.cfg显示前天是星期几
# date #查看当前系统日期Mon Oct 5 15:36:11 CST 2020# date -d '-2 day' +%w #显示前天是星期几6当使用whereis查看命令可执行程序的路径时,如果是外部命令还会列出该命令的帮助手册,通常存放在/usr/share/man路径下
例如ls命令的帮助手册位于/usr/share/man/man1/ls.1.gz路径下
# whereis ls # 查看ls命令的帮助文档路径ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz如果想要查看外部命令的帮助手册,可以使用man命令,而且几乎所有的命令都可以使用man查看,内部命令可以使用man bash查看,因为内部命令都内置在bash shell中。
man命令章节man命令的帮助手册是按照不同的章节存放的

  • man 1表示用户命令
  • man 2 表示系统调用
  • man 3 表示C库调用
  • man 4 表示设备文件以及特殊文件
  • man 5 表示配置文件格式
  • man 6 表示游戏
  • man 7表示杂项
  • man 8 表示管理类的命令
  • man 9 表示Linux内核API
# ls /usr/share/man #查看man手册的文件列表ca de hu ja man1 man2 man3p man4x man6 man7x man9 nl pt sk ukcs es id ko man1p man2x man3x man5 man6x man8 man9x overrides pt_BR sv zh_CNda fr it man0p man1x man3 man4 man5x man7 man8x mann pl ru tr zh_TW作为Linux运维工程师通常关注man1 用户密令,man5 配置文件格式,man8 管理类命令 三个章节。C语言程序员关注man3 C库调用,Linux系统人员关注man 2 系统调用
在使用man命令查看帮助时,最好是指定章节,查看对应的帮助手册。因为某些命令既是外部命令,又会是配置文件
如果不指定章节的话使用man command 时默认列出的是最小的章节(即第一章)


# man passwd #查看passwd命令的man帮助手册想要查看passwd对应的配置文件格式相关的帮助(/etc/passwd文件),可以使用man 5 passwd查看
# man 5 passwd #查看passwd 配置文件的man帮助手册man 5 passwd

不知道命令的章节,可以使用whatis command查看
# whatis passwd # 查看passwd命令帮助文档的章节openssl-passwd (1ssl) - compute password hashespasswd (1) - update user's authentication tokenspasswd (5) - password file其中passwd(1)表示用户命令,用于修改用户的密码,而passwd(5)表示配置文件格式。
查看man命令的man帮助,首先使用whatis man查看对应的章节
# whatis man #查看man命令的章节man (7) - macros to format man pagesman (1) - an interface to the on-line reference manualsman (1p) - display system documentation然后可以使用man 1 man 查看man命令的帮助手册
# man 1 man查看date命令的man帮助
# whatis date #查看date命令的man帮助章节date (1) - print or set the system date and timedate (1p) - write the date and time# man 1 date #查看date的用户命令的帮助手册man命令搜索在使用man命令查看帮助时,经常会使用到搜索,如果想要搜索某个关键字,可以使用/keyword来搜索某个关键字,默认是从当前位置向文件的尾部搜索,而且不区分大小写。



当匹配到多个时,可以使用n键获取下一个匹配的关键字,使用N获取上一个匹配的关键字。
man命令快捷键man命令的空格键是向文件的尾部翻屏,b键是向文件的首部翻屏。q表示退出帮助
man命令常用选项man命令提供了-a选项查看命令的所有章节帮助,默认只会列一个章节的帮助
# man -a passwd #查看passwd命令的所有帮助,默认只会列一个章节的帮助man -f 可以显示命令的章节,等价于whatis
# man -f passwd #查看passwd命令的man帮助章节openssl-passwd (1ssl) - compute password hashespasswd (1) - update user's authentication tokenspasswd (5) - password file# whatis passwdopenssl-passwd (1ssl) - compute password hashespasswd (1) - update user's authentication tokenspasswd (5) - password fileman -w 显示命令的帮助手册路径
# man -w date #显示date命令帮助手册的路径/usr/share/man/man1/date.1.gzman帮助的段落说明在查看man帮助手册时,有几个段落

  • NAME 表示名称以及简要说明
  • SYNOPSIS 表示用法格式说明 表示可选内容表示必选内容a|b 二选一{} 表示分组... 表示同一个内容可以出现多次
  • DESCRIPTION 表示详细说明
  • OPTIONS 表示选项说明
  • EXAMPLES 表示示例
  • FILES 表示相关文件
  • AUTHOR 表示作者
  • COPYRIGHT 表示版本信息
  • REPORTING BUGS 表示bug信息
  • SEE ALSO 表示其他帮助参考信息
本地帮助文档Linux系统上安装的软件自带的文档都位于/usr/share/doc目录下,其常见的文档有README,INSTALL,CHANGES等文件。
# ls /usr/share/doc # 查看帮助文档列表如果不是Linux发行版的软件,而是额外安装的,通常可以去官网获取帮助信息
nginx官网



Docker官网


MARIADB官网


Redis官网


RedHat官网


除此以外遇到问题时还可以使用Google,Baidu等搜索引擎获取帮助,或者在工作时向公司的项目Leader请教问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表