bash的工作特性

bash特性之一:命令别名

命令:alias 

语法:alias  别名='命令 + 选项' (此种方法只是临时生效)

实例:

image.png

让别名永久生效的方法--修改相应文件root/.bashrc或/home/用户/.bashrc

image.png

删除别名:unalias 别名


bash的特性之二:命令历史 

命令:history

shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件。

    HISTSIZE:shell进程的缓冲区保留的历史命令的条数;
    HISTFILESIZE:命令历史文件可保存的历史命令的条数;
    默认均为1000; 
    HISTFILE:当前用户的命令历史文件;
    ~/.bash_history

实例:

image.png

语法:

-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。


常用的是调用历史命令

!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以指定的STRING开头的命令;

image.png

控制命令历史的记录方式
通过HISTCONTROL环境变量进行,其取值:

ignoredups   忽略重复的命令;重复是指连续且相同的命令;
ignorespace  以空白字符开头的命令不记入历史;
ignoreboth   上述两者同时生效;
 erasedups   删除重复命令

捕获.PNG


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. 命令查找和补全机制:
          (1) 查找内部或外部命令; 
          (2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
          (3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全;
               不能惟一标识某命令程序文件,再击tab键一次,会给出列表
    2.路径补全
            在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件:
            TAB按键;
            如果能惟一标识,则直接补全;
            否则,再一次tab,给出列表;


image.png 


bash的特性之五:命令行展开

1、波浪线展开

“~”在linux中表示某某用户的家目录,单独使用“~”则表示当前用户家目录,若“~ + 用户名”则表示用户名的家目录

image.png

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

还有一个特性--变量,这个过于复杂,后面单独详细说明

猜你喜欢

转载自blog.51cto.com/7104785/2297422