Bash 特性

今日长缨在手,何时缚住苍龙。这篇文章主要讲述Bash 特性相关的知识,希望能为你提供帮助。
基础语法

命令[选项][参数]
command[option][argument]
[ ]在语法中,中括号是可有可无的意思

ls:list
ls:查看当前所在工作目录下的文件和目录
[root@leidage < sub> ]# ls
anaconda-ks.cfg

-a:查看所有文件包括隐藏文件
root@leidage < /sub> ]# ls -a
...anaconda-ks.cfg.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrc

-l:查看文件的详细属性信息
[root@leidage ~]# ls -l
total 4
-rw-------. 1 root root 1494 Mar 14 22:52 anaconda-ks.cfg

命令补全
Tab键
默认可以补全,命令和参数
单次Tab键默认补全命令和参数,双次可以查看需补全的命令全部命令

bash快捷键
Ctrl + l:清屏Ctrl + c:终止命令的执行
【Bash 特性】Ctrl + e:end 将光标快速移动到行末 
Ctrl + a:ahead 将光标快速移动到行首
Ctrl + w:以空格为分隔符,删除光标前面到空格之间的内容
Ctrl + k:删除光标之后的所有内容
Ctrl + u:删除光标之前的所有内容
Ctrl + d:退出当前用户的登录
Ctrl + r:搜索执行过的历史命令
Ctrl + 左右:按照单词移动光标
  • 以单词为单位进行移动
ESC + . :复制上一条命令,最后一个空格后面的内容

注释 #:是给人看的,计算机不认识
历史命令
history:查看历史命令
[root@leidage < sub> ]# history
1history-d
2ls
3history-d
4history
5history-d
6history -d 1
7history
8history-w
9ping baidu.com
10ls
11ls -a
12ls -l
13ping baidu.com
14LS
15ls
16ls -a
17vi /etc/sysconfig/network-scripts/ifcfg-ens33
18ls-a
19#ls -a
20history
[root@leidage < /sub> ]#


-c:clear 清除历史命令
20history
[root@leidage < sub> ]# history -c
[root@leidage < /sub> ]# history
1history
[root@leidage < sub> ]#


-d:delete 删除指定编号的历史命令
-bash: ls-l: command not found
[root@leidage < /sub> ]# history
1history
2ls
3ls-a
4ls-l
5history
[root@leidage < sub> ]# history-d1
[root@leidage < /sub> ]# history
1ls
2ls-a
3ls-l
4history
5history-d1
6history
[root@leidage < sub> ]#

-w:write 保存历史命令到一个文件中(将历史命令保存到家目录下的.bash_history 隐藏文件中
[root@leidage < /sub> ]# history
1ls
2ls-a
3ls-l
4history
5history-d1
6history
7history-w
8ls -a
9ls .bash_history
10ls -l .bash_history
11cat .bash_history
12history
[root@leidage < sub> ]# history-w
[root@leidage < /sub> ]# ls -a
...anaconda-ks.cfg.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrc
[root@leidage < sub> ]# cat .bash_history
ls
ls-a
ls-l
history
history-d1
history
history-w
ls -a
ls .bash_history
ls -l .bash_history
cat .bash_history
history
history-w
[root@leidage < /sub> ]#

!+命令的一部分:执行上一条,含有该命令一部分的命令内容 (常用)
[root@leidage < sub> ]# ls -a
...anaconda-ks.cfg.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrc
[root@leidage < /sub> ]# !ls
ls -a
...anaconda-ks.cfg.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrc
[root@leidage < sub> ]#


!!:执行上一条命令
[root@leidage < /sub> ]# ls -al
total 28
dr-xr-x---.2 root root135 Mar 16 22:37 .
dr-xr-xr-x. 17 root root241 Mar 16 22:25 ..
-rw-------.1 root root 1494 Mar 14 22:52 anaconda-ks.cfg
-rw-------.1 root root141 Mar 18 00:02 .bash_history
-rw-r--r--.1 root root18 Dec 292013 .bash_logout
-rw-r--r--.1 root root176 Dec 292013 .bash_profile
-rw-r--r--.1 root root178 Mar 16 22:37 .bashrc
-rw-r--r--.1 root root100 Dec 292013 .cshrc
-rw-r--r--.1 root root129 Dec 292013 .tcshrc
[root@leidage < sub> ]# !!
ls -al
total 28
dr-xr-x---.2 root root135 Mar 16 22:37 .
dr-xr-xr-x. 17 root root241 Mar 16 22:25 ..
-rw-------.1 root root 1494 Mar 14 22:52 anaconda-ks.cfg
-rw-------.1 root root141 Mar 18 00:02 .bash_history
-rw-r--r--.1 root root18 Dec 292013 .bash_logout
-rw-r--r--.1 root root176 Dec 292013 .bash_profile
-rw-r--r--.1 root root178 Mar 16 22:37 .bashrc
-rw-r--r--.1 root root100 Dec 292013 .cshrc
-rw-r--r--.1 root root129 Dec 292013 .tcshrc
[root@leidage < /sub> ]#

!+数字:执行历史命令中编号所在命令内容
[root@leidage < sub> ]# history
1ls
2ls-a
3ls-l
4history
5history-d1
6history
7history-w
8ls -a
9ls .bash_history
10ls -l .bash_history
11cat .bash_history
12history
13history-w
14ls -a
15cat .bash_history
16ls
17ls -a
18! ls
19ls -a
20ll
21ls -al
22history
23ls-a
24history
[root@leidage < /sub> ]# !8
ls -a
...anaconda-ks.cfg.bash_history.bash_logout.bash_profile.bashrc.cshrc.tcshrc
[root@leidage ~]#

命令的别名
# 查看系统内置的别名都有哪些
alias
[root@leidage < sub> ]# alias
alias cp=cp -i
alias egrep=egrep --color=auto
alias fgrep=

    推荐阅读