文章目录
讲个故事
小L也到了上小学的年纪。父母把他送到学校,开始学习各种召唤,以及背后知识和原理。首先我们来介绍下,我们小L的老师…
1、shell下我们要学什么–>命令
思考1:到底命令是什么呢?
- 是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样。这一类程序可以是用诸如 C 和 C++语言写成的程序编译的二进制文件,也可以是由诸如shell,perl,python,ruby等等脚本语言写成的程序 。
- 是一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令(builtins)。例如,cd 命令,就是一个 shell 内部命令。
- 是一个 shell 函数。这些是小规模的 shell 脚本,它们混合到环境变量中。在后续的章节里,我们将讨论配置环境变量以及书写 shell 函数。但是现在,仅仅意识到它们的存在就可以了。
- 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。
思考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 | 程序接口内核系统调用 |
3 | C 库函数程序接口 |
4 | 特殊文件,比如说设备结点和驱动程序 |
5 | 文件格式 |
6 | 游戏娱乐,如屏幕保护程序 |
7 | 其他方面 |
8 | 系统管理员命令 |
2.3、info - 显示程序 Info 条目
info 内容可通过 info 阅读器程序读取。info 页是超级链接形式的,和网页很相似。
info 命令
命令 | 行为 |
---|---|
? | 显示命令帮助 |
PgUp or Backspace | 显示上一页 |
PgDn or Space | 显示下一页 |
n | 下一个 - 显示下一个结点 |
p | 上一个 - 显示上一个结点 |
u | Up - 显示当前所显示结点的父结点,通常是个菜单 |
Enter | 激活光标位置下的超级链接 |
q | 退出 |
2.4、whatis - 显示非常简洁的命令说明
whatis 程序显示匹配特定关键字的手册页的名字和一行命令说明
alias(起别名)
# 基本用法
alias name='string'
# 起别名
[minL@linuxbox ~]$ alias ll='ls -l'
# 删除别名
[minL@linuxbox ~]$ unalias ll
总结
- 判断命令的俩种方式type、whichis
- 获取帮助文档的四种方式help、man、info、whatis
- 用别名的方式,创建属于自己的命令