版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mylovewanzi/article/details/83188099
Sheel----Linux的用户接口
文章目录
一、Sheel是什么
1.Sheel概念
- Shell为用户提供了输入命令和参数,并且可以得到命令结果的环境。
- Sheel为操作系统的外壳,为用户提供使用操作系统的接口,是命令语言、命令解释程序及程序设计语言的统称。
- Sheel是用户和Linux内核之间的接口程序。
2.Sheel怎么执行命令
- Sheel执行命令时,会首先检查该命令是否是内部命令。
- 如果不是,则检查是不是一个应用程序。
- 应用程序可以是Linux本身的实用程序,比如mkdir和ls命令,也可以是购买的商业程序。
- 然后可以在搜索路径(由环境变量$PATH指定,可执行
echo $PATH
查看)查找应用程序。 - 找到程序后,Shell的内部命令或者应用程序将被分解成一系列的系统调用,进而传递给Linux内核。
3.Sheel命令行
- 格式为:
command [flags] [argument1] [argument2] …
- 命令行的各单词由一个或者多个空格隔开。
- 其中flags以
-
开始,多个flags可以用一个-
连接起来,如#ls -s -a
与# ls -sa
一样。 - 在bash中超级用户的提示符是
#
,普通用户的提示符是$
。
4.命令和文件的自动补齐功能
- 在命令涉及路径、目录、文件名的时候使用。
- 使用
tab
键使用该命令。 - 使用自动补齐命令后,若有多种补齐的选项则会在命令下面列出,进行进一步选择;若只有一种情况则直接补齐命令。
二、历史命令与通配符的使用
1.历史命令
- bash通过历史命令保存了一定数量的已经在Sheel里输入过的命令。
- 这个数量取决于环境变量HISTSIZE(默认为1000,可以修改)。
- bash的历史命令不是立即保存的,而是先存放在内存的缓冲区(称为历史命令列表),等到bash退出时再将历史命令写入历史命令文件。
- 当然可以执行
history -w
命令要求bash立即保存。 - 历史命令文件的文件名由环境变量
HISTFILE
指定,默认名字是.bash_history
(以.
开头的文件是隐藏文件)。
2.怎么显示和编辑历史命令
- 语法一:
history [n]
当没有参数n时,显示全部命令,n代表显示n条历史命令。 - 语法二:history [-a|n|r|w] [filename]
各个选项及其功能见下表:
选项 | 功能 |
---|---|
-a | 把当前的历史命令记录追加到历史命令文件中 |
-c | 清空历史命令 |
-n | 将历史命令文件中的内容加入到当前命令列表中 |
-r | 将历史命令文件中的内更新(替换)到当前历史列表 |
-w | 把当前历史命令列表的内容写入到历史命令文件中,并覆盖原先的内同 |
filename | 如果filename没有被指定,history将使用HISTFILE默认指定的文件名 |
3.通配符的使用
- 常用的通配符
通配符 | 含义 |
---|---|
* | 匹配任何字符和任何数目的字符组合 |
? | 匹配任何单个字符 |
[] | 匹配包含在括号里面的字符 |
三、输入/输出重定向与管道
1.输入重定向
- 把命令或可执行程序的标准输入重定向到指定的文件。
- 也就是说输入可以不来自命令行,而来自一个文件。
- 输入重定向改变了输入源。
- 格式为:
命令<文件名
2.输出重定向
- 将一个命令的输出 重定向到一个文件中,而不是显示在屏幕上。
- 一般用于输出很多的命令,在屏幕上不能完全显示。
- 先保存到文件中,再使用文本编辑器查看。
- 格式为:
命令>文件名
3.管道
- 背景:将一个程序或命令的输出作为另一个程序或命令的输入。
- 实现这个由两种方法,一是上面介绍的输入重定向和输出重定向,二是管道。
- 管道将一系列的命令连接起来。
- 第1个命令的输出会通过管道传送给第2个命令,作为第2个命令的输入,第2个命令的输出通过管道传送给第3个命令,作为第3个命令的输入,以此类推。
- 而管道行中最后一个命令的输出才会显示在屏幕上。
时间:2018年10月19日21:27:53
-END-