Linux——bash的简单使用
bash及其特性:
1、bash实质上是一个可执行的程序,一个用户的工作环境。
2、每一个shell下可以再打开一个shell,新打开的shell称为子shell,每一个shell之间相互独立。
3、可以使用pstree命令查看当前shell下的子shell个数
使用:
1、光标跳转:
Crtl + a : 跳到命令行行首
Crtl + e : 跳到命令行行尾
Crtl + d : 删除光标所在字符
Crtl + u : 删除光标到命令行行首的字符
Crtl + k :删除光标到命令行行尾的字符
Crtl + l : 清屏
Crtl + "左/右箭头" : 跳过整个单词
2、命令历史
bash会自动记录过去执行的命令,并缓存进内存。
查看历史命令: history
清空历史:-c
删除从第n个命令开始的m个字符,m默认为1:-d + n m
保存命令历史到历史文件:-w
显示并执行第n条命令: !n
执行历史命令中倒数第n条命令:! -n
执行上一条命令: !!
执行命令历史中的最近一个以指定字符串开头的命令:!+"",例如之前有一条命令:source /etc/profile ,想再次执行时只需: ! source 即可。
引用上一个命令的最后一个参数: !$
当用户正常退出时,内存中的命令历史会被保存到用户目录中的bash history文件中,这是一个隐藏文件,bash history保存的历史命令数量是有限的,最大为1000条,HISTSIZ 这是一个环境变量,表示命令历史缓存区大小。
3、命令别名
alias设置命令别名,例如 alias cls= 'clear'
alias NAME = COMMAND [option] 相当于变量赋值。只能在当前shell声明周期内有效,要想永久生效,需修改root下的.bashrc 文件,vi /root/.bashrc 然后把 alias cls= 'clear' 添加进去,再执行命令 souce /root/.bashrc(是修改立即生效) 即可。
alias : 查看所有已经定义的命令别名
ualias : 取消已经定义的命令别名
如果加一个命令别名与一个命令的名称相同,则使用时shell下运行的是该别名表示的命令,如果想要使用原命令,则使用COMMAND表示命令本身。
4、命令替换
将命令中的某个子命令替换为它的执行结果
表示形式:command $(子命令) ,command `子命令` 此处是单反引号而不是单引号
bash支持的引号:` ` 反引号,用于命令替换。" " 双引号,弱引用,可以实现变量替换。' ' 单引号,强引用,不能实现变量替换。
5、文件通配
* 用于表示任意长度的任意字符串,任意长度包括0
? 用于表示任意单个字符
[] 匹配任意指定范围内的任意单个字符串
[:space:]表示空白符号
[:punct:]表示标点符号
[:lower:]表示小写字母
[:upper:]表示大写字母
[:alpha:]表示所有大小写字母
[:digit:]表示数字
[:alnum:]表示数字和字母
[^] 表示匹配任意指定范围外的单个字符
时间
#!/bin/bash
time=$(date "+%Y年%h%d日%H时%M分%S秒")
echo "hello world !开始执行 ${time}"