bash特性之一:命令别名
命令:alias
语法:alias 别名='命令 + 选项' (此种方法只是临时生效)
实例:
让别名永久生效的方法--修改相应文件root/.bashrc或/home/用户/.bashrc
删除别名:unalias 别名
bash的特性之二:命令历史
命令:history
shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件。
HISTSIZE:shell进程的缓冲区保留的历史命令的条数;
HISTFILESIZE:命令历史文件可保存的历史命令的条数;
默认均为1000;
HISTFILE:当前用户的命令历史文件;
~/.bash_history
实例:
语法:
-c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中。
常用的是调用历史命令
!#:再一次执行历史列表中的第#条命令; !!:再一次执行上一条命令; !STRING:再一次执行命令历史列表中最近一个以指定的STRING开头的命令;
控制命令历史的记录方式
通过HISTCONTROL环境变量进行,其取值:
ignoredups 忽略重复的命令;重复是指连续且相同的命令; ignorespace 以空白字符开头的命令不记入历史; ignoreboth 上述两者同时生效; erasedups 删除重复命令
bash的特性之三:快捷键
Ctrl + l 清屏,相当于clear 命令 Ctrl + o 执行当前命令,并重新显示本命令 Ctrl + s 阻止屏幕输出,锁定 Ctrl + q 允许屏幕输出 Ctrl + c 终止命令,另起一行 Ctrl + u 提示符下,将整列删除 Ctrl + m Enter Ctrl + a 移到命令行首 Ctrl + e 移到命令行尾 Ctrl + f 按字符前移(右向) Ctrl + b 按字符后移(左向) Alt + f 按单词前移(右向) Alt + b 按单词后移(左向) Ctrl + xx 在命令行首和光标之间移动 Ctrl + u 从光标处删除至命令行首 Ctrl + k 从光标处删除至命令行尾 Ctrl + w 从光标处向左删除至单词首 Ctrl + d 删除光标处的字符 Ctrl + h 删除光标前的字符 Ctrl + y 将删除的字符粘贴至光标后 Ctrl + t 交换光标处和之前的字符 Alt + d 从光标处向右删除至字尾 Alt + c 从光标处更改为首字母大写的单词 Alt + u 从光标处更改为全部大写的单词 Alt + l 从光标处更改为全部小写的单词 Alt + t 交换光标处和之前的单词 Alt + N 提示输入指定字符后,重复显示该字符N次 次
bash的特性之四:命令补全和路径补全
命令查找和补全机制:
(1) 查找内部或外部命令;
(2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
(3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全;
不能惟一标识某命令程序文件,再击tab键一次,会给出列表
2.路径补全
在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件:
TAB按键;
如果能惟一标识,则直接补全;
否则,再一次tab,给出列表;
bash的特性之五:命令行展开
1、波浪线展开
“~”在linux中表示某某用户的家目录,单独使用“~”则表示当前用户家目录,若“~ + 用户名”则表示用户名的家目录
2、花括号展开
在花括号内,可以是以逗号分隔的字符串,或者是一个序列表达式。在花括号前后,可以跟前缀和后缀。
a、逗号分隔
[root@Cent7-01 ~]# ls anaconda-ks.cfg initial-setup-ks.cfg text1 text2 text3 [root@Cent7-01 ~]# touch {a,b}_{c,d} [root@Cent7-01 ~]# ls a_c a_d anaconda-ks.cfg b_c b_d initial-setup-ks.cfg text1 text2 text3
b、序列表达式
语法:{X..Y[..INCR]};INCR表示步进
[root@Cent7-01 ~]# rm -text* rm: remove regular empty file text1? y rm: remove regular empty file text2? y rm: remove regular empty file text3? y [root@Cent7-01 ~]# mtoucmkdir text{}1}.}.}1}0}.}.}2} [root@Cent7-01 ~]# ls a_c anaconda-ks.cfg b_d text1 text5 text9 a_d b_c initial-setup-ks.cfg text3 text7
bash的特性之六:命令的执行状态结果
bash中命令执行后,不管成功还是失败,都会返回一个数字0~255之间;我们称为状态值。
为0表示成功
为1~255表示失败
如何来查看这个命令执行返回值呢?这就需要使用shell特殊变量$--表示当前shell进程的ID(PID);而“$?”表示上个命令的退出状态,或函数的返回值。
[root@Cent7-01 ~]# ls a_c anaconda-ks.cfg b_d text1 text5 text9 a_d b_c initial-setup-ks.cfg text3 text7 [root@Cent7-01 ~]# echo $? 0 [root@Cent7-01 ~]# rm -text1 rm: cannot remove text1: Is a directory [root@Cent7-01 ~]# rm text1echo $? 1
还有一个特性--变量,这个过于复杂,后面单独详细说明