07.学习笔记-bash的特性及配置文件
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
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。