bash的功能:
1.命令行编辑
2.历史命令
3.命令补全
4.命令别名和命令替换
5.管道,重定向
6.命令行展开
7.文件名通配
8.变量
9.编程
1.命令行编辑
光标跳转
ctrl+a 跳到命令首行
ctrl+e 跳到命令行尾
ctrl+u 删除光标与行首间的内容
ctrl+k 删除光标与行首间的内容
ctrl+l 清屏
bash支持的引号
` `(反引号) 命令引用
”“ 弱引用,可以实现变量替换
’‘(单引号) 强引用,不完成变量替换
2.历史命令
查看历史命令:history
-c 清空历史
-d OFFSET [n] 删除指定位置的命令
-w 保存命令历史至历史文件中
命令历史的使用
!n 执行命令历史中的第n条命令
!-n 执行命令历史中倒数的第n条命令
!! 执行上一条命令
!String 执行命令历史中最近一条以字符串String开头的命令
!$ 引用前一个命令的最后一个参数
Esc松开后按“ . ” 同上
Alt+ . 同上
3.命令补全
命令自动补全 Tab
路径补全 Tab
4.命令别名和命令替换
alias CMDALIAS = ‘COMMAND [ ]’
定义的别名仅在当前的shell的生命周期内有效
替换 语法 含义
历史 ! 前一个命令行
大括号 {} 指定的文本
代字号 ~username 用户的主目录
变量 $,${...} Shell 和环境变量
算术 $((...)) 算术运算
命令替换 `...` , $(...) 运行在子 shell 中的命令的输出
路径名 *,?,[...],[^...] 文件系统中匹配的文件名
$( ) 先执行()中的命令再执行整个命令,也可以使用反引号
5.文件名通配
*:任意长度的任意字符
例:a* 以a开头后面任意字符(没长度也可以)
a*3 以a开头后长度为3的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
例:[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
[^]:匹配指定范围之外的任意单个字符
例: [^[:alpha:]] 一个非字母
[:space:]:所有的空白字符
[:punct:]:所有的标点符号
[:lower:]:小写字母
[:upper:]: 大写字母
[:alpha:]: 大小写字母
[:digit:]: 数字
[:alnum:]: 数字和大小写字母
6.变量
本地变量 set VARNAME=VALUE 作用域为整个bash进程。
局部变量 local VARNAME=VALUE 作用域为当前代码段
环境变量 export VARNAME 作用域为当前shell进程及其子进程;
位置变量 $1,$2……
特殊变量 $? 上一个命令的执行状态返回值
程序执行可能有两类返回值:程序执行结果,程序状态返回代码(0-255)
0:正确执行
1-255:错误执行,其中1,2,127系统预留。
撤销变量 unset VARNAME
查看系统中所有变量(含环境变量和自定义变量):set
查看当前shell中的环境变量:printenv、env、export
bash的配置文件
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第 二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在 登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默 认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
4、~/.bashrc:该 文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该 该文件被读取。
全局配置
/etc/profile , /etc/profile.d/*.sh , /etc/bashrc
个人配置
~/.bash_profile , ~/.bashrc
profile类的文件
设定本地变量
运行命令或脚本
bashrc类文件
设定本地变量
定义命令别名
登陆式shell读取配置文件的方式:
/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
非登录式shell读取配置文件的方式:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。