bash基础特性

#bash基础特性之命令别名
bash在shell进程中可以为命令本身或者命令加上选项设定别名,设定后可以直接输入别名的方式调用其功能。
设定命令别名的方式为:~]# alias NAME=COMMAN。
撤销命令别名的方式为:~]# unalias NAME
查看当前bash中已经设定的命令别名方式为:~]# alias
注意1:此方式设定的命令别名生命周期只是当前shell进程。退出当前shell再登陆即已经失效。如需在shell启动后自动生效,需要设置bash的环境变量相关配置文件。
注意2:如果命令别名和命令名相同,则直接调用别名定义的命令其功能。如需直接调用该命令本身功能而非别名,可使用“~]# \COMMAND。

#bash基础特性之命令历史
bash在shell进程会自动保存其会话中用户曾经执行过的命令,在shell运行中该记录存储在内存空间中,shell进程结束时通过将其存储在“历史文件”来持久保存此前执行过的命令,每次shell进程启动都会读取该文件内容到内存空间中,每个用户都有其自己专用的历史文件。
历史相关参数的变量
HISTSIZE:SHELL进程的缓冲区保留的历史命令的条数
~]# echo $HISTSIZE 可查看其大小
~]# export HISTSIZE=# 可设置其大小
HISTFILESIZE:命令历史文件可保存的历史命令的条数
~]# echo $HISTFILESIZE 可查看其大小
~]# export HISTFILESIZE=# 可设置其大小
HISTFILE:当前用户的命令历史文件
~]# echo $HISTFILE 可查看文件名和地址
HISTCONTROL:当前用户记录命令历史的方式
~]# echo $HISTCONTROL 可查看文件名和地址
~]# export HISTCONTROL=方式名 可设置记录命令历史的方式
共有三种方式:
ignoredups:忽略重复的命令;重复是指连续且相同的命令;
ignorespace:以空白字符开头的命令不记入历史;
ignoreboth:上述两者同时生效;
查看和管理命令历史的相关命令
查看命令历史列表:~]# history 
命令用法:
history -c:清空命令历史;
history -d:OFFSET:删除指定的条目;
-a        将当前缓冲的历史行追加到历史文件中
-n        从历史文件中读取所有未被读取的行
-r        读取历史文件并将内容追加到历史列表中
                
调用命令历史列表中的命令以重执行之目的:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以指定的STRING开头的命令;
                
调用上一条命令的最后一个参数:
快捷键:ESC, .(先后按下这个两个键)
     Alt + .(同时按下这两个键)
     !$:给出的上一个命令的参数
                
显示最近的n条件命令历史:history  #


#bash基础特性之快捷键 
Ctrl+a:光标跳至命令行首;
Ctrl+e:光标跳至命令行尾;
Ctrl+k:删除光标所在处至尾部的内容;
Ctrl+u:删除行首至光标所在处的内容;

#bash的特性之命令行展开:
把命令行的给定的特殊符号自动替换为相应字符串的机制;
~: 自动替换为用户家目录;
~USERNAME:自动替换为指定用户的家目录;
{ }:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径;
示例:/tmp/{x,y,z} = /tmp/x  /tmp/y  /tmp/z
示例:/tmp/{x/y, m/{m,n}} = /tmp/x/y /tmp/m/m /tmp/m/n
示例:/tmp/{x,y}/z = /tmp/x/z  /tmp/y/z 

#bash的基础特性:命令补全和路径补全
命令补全:
shell程序在接收到用户执行命令补全的请求后(单击一下Tab),最左侧字符串将被当作命令去查找;
其查找机制:
    1):查找内部
    2):查找外部命令:去$PATH变量所指定的各路径下,自左而右逐个搜索各目录下的文件名;
查找完成后,给定的打头的字符串如果能惟一标识某命令程序文件的文件名,则直接自动补全为该命令,不能惟一标识,再击tab可给列表;如果还是没有反应则表示错误,没有任何命令可被此打头字符串标识;
路径补全:
在给定的起始路径的上级目录下,以对应路径下的打头字符串来逐一匹配上级目标下的每个文件:如果是惟一标识,Tab补全;不能惟一标识:tab, tab给出列表;错误路径:没有响应。

#bash的特性之glob
glob:文件名通配;快速引用多个文件;文件名整体匹配度检测
*:匹配任意长度的任意字符
?:匹配任意单个字符
[ ]:匹配指定集合内的任意单个字符 
[a-z]:表示所有的字母,不区分大小写
[0-9]:表示所有数字
[a-z0-9]:所有字母加数字
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:digit:]]:所有数字
[[:alpha:]]:表示所有字母
[[:alunm:]]:表示所以字母加数字
[[:space:]]:表示空白字符
[[:punct:]]:表示所有标点符号
[^ ]:取反

你可能感兴趣的:(bash,基础特性)