【Linux】命令手册与别名

爸爸的爸爸叫爷爷,命令的命令是什么?

0. 前言

每当夜深人静的时候,某个精神小伙总会思考人生:我在哪,我是谁。有时想不明白,索性打开 Linux 操作系统作些 命令的操作与练习,这时候,精神小伙发现:通过pwd、ls、cd等命令以及自身对Linux文件树的了解,已经非常清楚每个时刻自己在哪个目录工作,并可随时去到目标目录,这就解决了“我在哪”的问题,于是乎,问题就剩一个了:“我是谁”。

通过 Linux 提供给用户参考的命令手册,以及操作这些手册的命令,就可以进一步来了解命令的说明。

学习目标

  • 了解 Linux 常用的用于命令的命令
  • 具体命令涉及的不同选项所表示的具体功能,请读者自行查阅
  • 在没有线上手册的特殊使用场景,例如断网,也能通过系统提供的文档找到目标命令并使用

1.用于 Linux 命令的命令

1.1 什么是命令

先来小复习一波

(1)命令的格式
命令的格式通常为:命令 -选项 参数
如:rm -r /home/me-r为选项,此处代表递归,/home/me为参数,为目标删除路径

(2)命令分类
在 Linux 操作 系统中,一条命令通常分为这四种情况:

  • 可执行程序
    如 /usr/bin 目录里的所有文件
  • shell 内置命令
    如 cd
  • shell 函数
    合并到环境变量的小型 shell 脚本
  • alias 命令
    一些命令的别名、现版本Linux提供的一些命令 以及 自定义的命令

1.2 识别命令

我们可以通过 type 内置命令 以及 which alise 命令来识别一条命令。

1.2.1 type 显示命令的类型

[sharry@localhost ~]$ type type
type is a shell builtin
[sharry@localhost ~]$ type which
which is aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[sharry@localhost ~]$ type ls
ls is aliased to `ls --color=auto'
[sharry@localhost ~]$ type cd
cd is a shell builtin
[sharry@localhost ~]$

1.2.2 which 显示可执行程序的位置

当 不是可执行程序时,which 会报错 no type in;当 是可执行程序时,显示可执行程序的位置。

[sharry@localhost ~]$ which type
/usr/bin/which: no type in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/sharry/.local/bin:/home/sharry/bin)
[sharry@localhost ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

1.3 命令文档

我们可以通过命令来查看Linux给我们提供的命令文档,现查现用,比查阅线上手册方便得多。

1.3.1 help 命令与选项

help 既是一个命令,也是一个选项;是 shell 内置命令的帮助工具。

help 获取命令帮助信息

–help 选项获取命令使用帮助

[sharry@localhost ~]$ cd --help
-bash: cd: --: invalid option
cd: usage: cd [-L|[-P [-e]]] [dir]

[sharry@localhost ~]$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mkdir invocation'

其中,方括号[]里的内容代表可选项或可选参数,竖线|代表互斥选项。

1.3.2 man 显示程序的手册页

大多数供命令行使用的可执行文件,提供一个 manual 或 man page 的正式文档。该文档可以用一种称为man的特殊分页程序来查看。

man program

例如:

man ls 

由于显示的手册比较冗长,此处就不复制个人的参考执行结果了。

注意
虽然由于篇幅问题,此处不粘贴参考执行结果,但可以文字详细描述一下详细的使用方法。

  • 查看该程序的手册页时,less 的命令基本通用
  • manual 或 man page 通常包含几个部分,包含的部分用数字表示,例如,1代表用户命令,2代表内核系统调用的程序接口等等。就像:man 2 mkdir,但还需注意,并不是所有命令或程序都包括所有数字表示的部分。至于具体数字几是代表哪些内容,请读者自行查阅

1.3.3 apropos 快速了解命令

apropos命令是一个用于搜索Linux/Unix系统中所有可用命令和函数的工具。它搜索系统的帮助文档(database)中是否有包含指定关键字的命令或函数。apropos命令返回与关键字相关的命令和函数的摘要信息。

例如,当执行命令apropos type时,它会搜索帮助文档中与type相关的所有命令和函数,然后返回每个相关命令和函数的简介。这将有助于用户快速了解与type相关的所有命令和函数,并找到所需信息。

再举个例子,apropos 查询 apropos 相关信息。

[sharry@localhost ~]$ apropos apropos
apropos (1)          - search the manual page names and descriptions

[sharry@localhost ~]$ man -k apropos
apropos (1)          - search the manual page names and descriptions

同时,通过上述命令,我们得知 apropos 的结果与 man -k 是一致的。

1.3.3 whatis 显示命令的简要描述

whatis 的使用与 apropos 类似,返回的结果也很像,我们先举个例子:

[sharry@localhost ~]$ whatis cp
cp (1)               - copy files and directories
cp (1p)              - copy files

whatis与apropos的异同

  • whatis 命令以完全匹配的方式从系统帮助文档中查找关键字,并返回与该关键字完全匹配的命令或函数的名称和简介。例如,如果执行"whatis type"命令,则只会返回与 type 完全匹配的命令或函数的信息。
  • apropos 命令则更加灵活,它可在帮助文档中搜索关键字或与关键字相关的命令或函数。它会返回与关键字相关的所有命令或函数的名称和简介,不必完全匹配关键字。例如,执行"apropos type"命令会返回所有与"type"相关的命令或函数的信息。

补充
上面两个小节举的例子中出现的结果中的(1)和(1p)是表示man手册(manual page)的节号(section number)

1.3.4 info 显示程序的info条目

经过上面小节的学习与练习,读者大佬们应该多少会有这样的感受:manual 手册 读起来可能有点难,操作起来也不算特别方便。

GUN项目 提供了 info 命令 以及 info 阅读器 来代替手册文档,其中的特点是,info页面使用超链接,我们可以通过里面的超链接 跳转到 这个超链接指向的节点。

先举个例子:

info info

info

其中,*代表的 是超链接,通过移动光标,enter 即可进入该链接,操作 n、p分别可以进入下一个、上一个节点,q退出。关于 info 阅读器的其他操作信息,请读者自行查阅。

1.4 命令别名

我们可以使用 alias 创建命令的别名,以及 unalias 命令删除掉这个别名。

创建别名的命令非常有趣,我们直接举例子:

# 检查当前目标名字是否存在
[sharry@localhost ~]$ type sharry
-bash: type: sharry: not found
# 创建别名
[sharry@localhost ~]$ alias sharry='cd /usr; ls;'
# 使用这个命令别名
[sharry@localhost ~]$ type sharry
sharry is aliased to `cd /usr; ls;'
[sharry@localhost ~]$ sharry
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

[sharry@localhost usr]$ cd ..
[sharry@localhost /]$ ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[sharry@localhost /]$ cd home/sharry
[sharry@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  playground  Public  Templates  Videos
# 删除别名
[sharry@localhost ~]$ unalias sharry
[sharry@localhost ~]$ type sharry
-bash: type: sharry: not found

通过创建别名的方式,我们可以把很多常用命令按自己喜欢的方式放到一起,方便使用。
注意:alias 命令的格式为 alias [name]='command1;command2;command3...'其中,等号没有空格。

2. 总结

本文主要介绍了Linux命令的命令,包括如何识别命令、命令文档的查看、命令别名的创建和删除等。学习了这些知识,可以帮助我们更高效地使用Linux命令。

通过使用命令文档,我们可以查看Linux提供的命令使用手册,包括help命令与选项、man命令、apropos命令、whatis命令和info命令。这些命令文档可以帮助我们更好地理解命令的用途和使用方法。同时,在没有网络的情况下,通过系统提供的文档,我们也能找到目标命令并使用。

另外,我们还可以使用alias命令创建命令的别名,以及使用unalias命令删除这个别名。通过创建别名,我们可以把常用命令按自己喜欢的方式放到一起,方便使用。

在实际操作中,我们需要根据需求和场景灵活运用这些命令,加深对Linux命令的理解和运用。如果在使用过程中遇到问题或需要查找帮助,可以尝试使用上述提到的命令文档。这里要注意的是,在查阅文档时,一定要认真阅读,因为有些命令的选项或参数可能有互斥或特定的使用场景。

最后,希望通过本文的学习,可以帮助大家更好地使用Linux命令,提高工作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值