文章目录
- 1.Bash介绍
- 2.Bash特性
- 一.Tab键补全
- 二.命令行快捷键
- 三.(1)alias 设置别名
- 三.(2)unalias 取消别名
- 四.history 历史记录
1.Bash介绍
bash shell是一个命令解释器,负责跟系统的内核进行交互,在操作系统的最外层bash能干什么 针对于操作系统文件管理目录管理权限管理用户管理应用管理软件管理磁盘管理网络管理等等执行方式:命令执行 操作简单 针对简单的管理操作脚本 script 操作复杂 操作一些复杂性比较大的操作
2.Bash特性
一.Tab键补全
#需要安装制定的软件包 重启生效#yum install -y bash-completion1. 命令补全2. 选项补全3. 参数补全 路径补全#命令补全[root@CentOS7 ~]# user #命令补全useradd userdel usermod usernetctl users[root@qls ~]# sDisplay all 195 possibilities? (y or n) #以s开头的命令共有195个,是否显示 y 显示 n 不显示#选项补全[root@CentOS7 ~]# ls ----all --indicator-style=--almost-all --inode--author --kibibytes--block-size= --lcontext#参数补全文件或者目录的路径补全[root@CentOS7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ifcfg-eth0 ifcfg-lo
二.命令行快捷键
#命令行快捷键 主要通过xshell secureCRT实现的Ctrl + l #清除当前屏的内容 clearCtrl + d #退出当前登录的用户Ctrl + c #取消当前的操作 cancelCtrl + a #将光标移动到当前行的行首Ctrl + e #将光标移动到当前行的行尾Ctrl + u #将当前光标到行首的内容进行剪切Ctrl + y #粘贴当前粘贴板上面的内容Ctrl + k #将当前光标到行尾的内容进行剪切Delete键 #从前往后删除一个字符Ctrl + r #搜索最近一次包含某个命令的指令Ctrl + s #锁屏 输入内容不显示 危险Ctrl + q #解锁Ctrl + ←键 #将当前光标向左移动一组字符串,以空格为分隔符Ctrl + →键 #将当前光标向右移动一组字符串,以空格为分隔符Ctrl + w #删除当前光标向前一组字符串,以空格为分隔符#以 ! 开头! #执行上一条所执行的指令!ls #执行最近一次以ls开头的指令Esc + . #获取上一条指令的参数或者内容
三.(1)alias 设置别名
[root@CentOS7 ~]# alias 别名=\'真实命令\'[root@CentOS7 ~]# alias #系统默认的别名alias cp=\'cp -i\'alias egrep=\'egrep --color=auto\'alias fgrep=\'fgrep --color=auto\'alias grep=\'grep --color=auto\'alias l.=\'ls -d .* --color=auto\'alias ll=\'ls -l --color=auto\'alias ls=\'ls --color=auto\'alias mv=\'mv -i\'alias rm=\'rm -i\'alias which=\'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde\'#设置别名 临时生效,退出即失效[root@CentOS7 ~]# alias baidu=\'ping baidu.com\'#查看是否设置成功[root@CentOS7 ~]# aliasalias cp=\'cp -i\'alias egrep=\'egrep --color=auto\'alias fgrep=\'fgrep --color=auto\'alias grep=\'grep --color=auto\'alias l.=\'ls -d .* --color=auto\'alias ll=\'ls -l --color=auto\'alias ls=\'ls --color=auto\'alias mv=\'mv -i\'alias rm=\'rm -i\'alias baidu=\'ping baidu.com\'alias which=\'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde\'#测试别名[root@CentOS7 ~]# baiduPING baidu.com (39.156.69.79) 56(84) bytes of data.64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=33.5 ms64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=56.9 ms64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=128 time=31.0 ms64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=4 ttl=128 time=29.3 ms^C--- baidu.com ping statistics ---6 packets transmitted, 6 received, 0% packet loss, time 5009msrtt min/avg/max/mdev = 29.371/34.999/56.991/9.945 ms#让别名永久生效把设置别名的命令写入到下面的文件中[root@CentOS7 ~]# ls /etc/bashrc/etc/bashrc #针对整个系统所有用户的,为每一个运行bash shell的用户执行此文件 当bash shell被打开时,该文件被读取[root@CentOS7 ~]# ls ~/.bashrc/root/.bashrc #是针对特定用户的,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次#实现永久生效[root@CentOS7 ~]# echo echo \"alias baidu=\'ping baidu.com\'\" >>/etc/bashrc#将其配置文件重新加载生效[root@CentOS7 ~]# source /etc/bashrc#退出重新登录测试 依然生效
三.(2)unalias 取消别名
unalias #取消别名 临时生效,退出既失效#取消别名[root@CentOS7 ~]# unalias baidu[root@CentOS7 ~]# aliasalias cp=\'cp -i\'alias egrep=\'egrep --color=auto\'alias fgrep=\'fgrep --color=auto\'alias grep=\'grep --color=auto\'alias l.=\'ls -d .* --color=auto\'alias ll=\'ls -l --color=auto\'alias ls=\'ls --color=auto\'alias mv=\'mv -i\'alias rm=\'rm -i\'alias which=\'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde\'#临时取消别名\\ #取消特殊字符的特殊含义 取消转义 撬棍[root@CentOS7 ~]# \\baidu-bash: network: command not found#取消永久生效[root@CentOS7 ~]# sed -i \'/baidu/d\' /etc/bashrc#退出重新登录测试,别名已取消
四.history 历史记录
history #查看历史执行过的命令选项:-w # 保存历史命令到文件 ~/.bash_history-d # 删除指定ID的历史记录-c # 清理历史命令!num # 执行ID对应的指令[root@CentOS7 ~]# history1 ip a2 ip a3 cd4 ll5 ls -a[root@CentOS7 ~]# history | grep ip #查询以ip开头的历史记录1 ip a2 ip a[root@CentOS7 ~]# history -w #将当前的历史记录写入到默认的文件中 ~/.bash_history[root@CentOS7 ~]# history -d 2 #删除历史ID为2的记录[root@CentOS7 ~]# history -c #清空历史记录[root@CentOS7 ~]# history1 ip a2 ip a3 cd4 ll5 ls -a[root@CentOS7 ~]# !4 #执行历史ID为4的指令lltotal 4-rw-------. 1 root root 1458 Jul 6 09:34 anaconda-ks.cfg