您的位置:首页 > 运维架构 > Shell

Linux bash特性

2016-07-25 00:00 579 查看
一、什么是 shell 外壳

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

shell的分类:

图形界面shell(Graphical User Interface shell 即 GUI shell)GUI CDE Gnome, KDE, Xfce

命令行式shell(Command Line Interface shell ,即CLI shell)CLI: sh(Bourne shell), csh, ksh(Korn shell),bash(Bourne Again shell), tcsh ,zsh

Linux 默认的shell是bash

shell及子shell 通过pstree查看shell关系

二、bash特性及用法:

1.命令历史

查看命令历史: history

-c 清空histroy

-d offeset
删除指定位置的历史命令 n删除几行

-w 保存命令历史至历史文件中

!number 命令历史使用执行命令历史中的第n条命令

!-number 执行命令历史中倒数第n条命令

!! 执行上一条命令

!string 执行命令历史中最近一个以指定字符串开头的命令

!$ 引用前一个命令最后一个参数

Esc ,. 添加引用前一个命令最后一个参数

Alt + . 添加引用前一个命令最后一个参数,客户端不能使用

2.命令别名

查看别名alias

定义别名 alias CMDALIAS=’COMMAND [options] [arguments]’

在shell中定义的别名仅在当前shell生命周期内有效,别名的有效范围仅当前shell进程

取消别名 unalias CMDALIAS

使用别名命令原义 \CMD 反斜线加命令

3.命令补全 ,路径补全

按两次TAB 键 搜索命令路径

按TAB键 搜索当前目录路径

4.命令替换 使用$() 或 反引号`

把命令中某个命令替换为其执行结果的过程

echo “The current directory is $(pwd)”





touch file-$(data +%F-%H-%M-%S).txt

4.管道、重定向

5.命令行编辑

光标跳转:

Ctrl + a 跳到命令行首 Ctrl + e跳到命令行尾

Ctrl + u 删除光标到命令行首的内容 Ctrl + k 删除光标至行尾的内容

Ctrl + l-L清屏

6.命令行展开

7.文件名通配 globbing

* 任意长度的任意字符
7fe0

? 一个长度的任意字符

[] 匹配指定范围内的任意单个字符 man 7 glob

[[: space:]]所有的空白字符

[[: punct:]] 标点符号

[[: lower:]] 小写字母

[[: upper:]] 大写字母

digit数字 alpha 大小写字母 alnum 数字和大小写字母

[^]匹配指定范围外的任意单个字符

8.变量

环境变量:

PATH: 命令搜索路径

HISTSIZE: 命令历史 缓冲区大小

9.编程

bash支持的引号

`` :命令替换 反引号

“”:弱引用,可以实现变量的替换

‘’:强引用,不完成变量替换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: