梦回Linux | 5、shell下的老师

本文围绕Linux Shell展开,介绍了shell下要学习的命令,包括命令的类型(可执行程序、内建命令、shell函数、命令别名),还讲述了判断命令类型的方法(type、which),以及获取命令文档帮助的四种方式(help、man、info、whatis),最后提到可用别名创建自定义命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

讲个故事

小L也到了上小学的年纪。父母把他送到学校,开始学习各种召唤,以及背后知识和原理。首先我们来介绍下,我们小L的老师…

1、shell下我们要学什么–>命令

思考1:到底命令是什么呢?

  1. 是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样。这一类程序可以是用诸如 C 和 C++语言写成的程序编译的二进制文件,也可以是由诸如shell,perl,python,ruby等等脚本语言写成的程序 。
  2. 是一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令(builtins)。例如,cd 命令,就是一个 shell 内部命令。
  3. 是一个 shell 函数。这些是小规模的 shell 脚本,它们混合到环境变量中。在后续的章节里,我们将讨论配置环境变量以及书写 shell 函数。但是现在,仅仅意识到它们的存在就可以了。
  4. 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。

思考2:命令怎么判断是什么类型

type(显示命令的类型)

[minL@linuxbox ~]$ type type
type is a shell builtins
[minL@linuxbox ~]$ type ls
ls is aliased to `ls --color=tty`
[minL@linuxbox ~]$ type cp
cp is /bin/cp

检测命令的类型是shell内置命令,还是可执行文件,亦或者是别名

which(显示可执行文件的位置)

显示可执行文件的位置

[minL@linuxbox ~]$ which ls
/bin/ls

这个命令只对可执行程序有效,不包括内建命令和命令别名,别名是真正的可执行程序的替代物。
当我们试着使用 shell 内建命令时,例如,cd 命令,我们或者得不到回应,或者是个错误信息:

[minL@linuxbox ~]$ which cd
/usr/bin/which: no cd in
(/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/opt/jre1
.6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home/minL/bin)

2、获得文档帮助

如果小L有一个命令,也判断出了是内部命令,还是可执行程序,那么接下来怎么用这个命令呢?

2.1、help - 得到 shell 内建命令的帮助文档

bash 有一个内建的帮助工具,可供每一个 shell 内建命令使用。输入“help”,接着是 shell内部命令名。

# 方括号,表示可选的项目。一个竖杠字符
表示互斥选项
[minL@linuxbox ~]$ help cd
cd: cd [-L|-P] [dir]
Change ...

2.2、man - 显示程序手册页

许多希望被命令行使用的可执行程序,提供了一个正式的文档,叫做手册或手册页(manpage)。一个特殊的叫做 man 的分页程序,可用来浏览他们。

# “program”是要浏览的命令名
man program
[minL@linuxbox ~]$ man ls

手册页的组织形式

章节内容
1用户命令
2程序接口内核系统调用
3C 库函数程序接口
4特殊文件,比如说设备结点和驱动程序
5文件格式
6游戏娱乐,如屏幕保护程序
7其他方面
8系统管理员命令

2.3、info - 显示程序 Info 条目

info 内容可通过 info 阅读器程序读取。info 页是超级链接形式的,和网页很相似。
info 命令

命令行为
?显示命令帮助
PgUp or Backspace显示上一页
PgDn or Space显示下一页
n下一个 - 显示下一个结点
p上一个 - 显示上一个结点
uUp - 显示当前所显示结点的父结点,通常是个菜单
Enter激活光标位置下的超级链接
q退出

2.4、whatis - 显示非常简洁的命令说明

whatis 程序显示匹配特定关键字的手册页的名字和一行命令说明

alias(起别名)

# 基本用法
alias name='string'
# 起别名
[minL@linuxbox ~]$ alias ll='ls -l'
# 删除别名
[minL@linuxbox ~]$ unalias ll

总结

  1. 判断命令的俩种方式type、whichis
  2. 获取帮助文档的四种方式help、man、info、whatis
  3. 用别名的方式,创建属于自己的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值