您的位置:首页 > 运维架构 > Shell

Bash概述

2020-07-30 20:21 701 查看

文章目录

1.Bash介绍

bash shell是一个命令解释器,负责跟系统的内核进行交互,在操作系统的最外层

bash能干什么    针对于操作系统

文件管理

目录管理

权限管理

用户管理

应用管理

软件管理

磁盘管理

网络管理

等等

执行方式:

命令执行	   操作简单     针对简单的管理操作

脚本 script    操作复杂    操作一些复杂性比较大的操作

2.Bash特性

一.Tab键补全

#需要安装制定的软件包 重启生效
#yum install  -y  bash-completion
1. 命令补全

2. 选项补全

3. 参数补全    路径补全

#命令补全
[root@CentOS7 ~]# user		#命令补全
useradd     userdel     usermod     usernetctl  users
[root@qls ~]# s
Display 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       #清除当前屏的内容  clear
Ctrl  +  d       #退出当前登录的用户
Ctrl  +  c       #取消当前的操作    cancel
Ctrl  +  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 ~]# 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 baidu='ping  baidu.com'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

#测试别名
[root@CentOS7 ~]# baidu
PING 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 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=56.9 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=128 time=31.0 ms
64 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 5009ms
rtt 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 ~]# 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 ~]# \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 ~]# history
1  ip a
2  ip   a
3  cd
4  ll
5  ls -a
[root@CentOS7 ~]# history | grep ip  #查询以ip开头的历史记录
1  ip a
2  ip   a
[root@CentOS7 ~]# history  -w	  #将当前的历史记录写入到默认的文件中  ~/.bash_history
[root@CentOS7 ~]# history  -d 2   #删除历史ID为2的记录
[root@CentOS7 ~]# history  -c	  #清空历史记录
[root@CentOS7 ~]# history
1  ip a
2  ip   a
3  cd
4  ll
5  ls -a
[root@CentOS7 ~]# !4          #执行历史ID为4的指令
ll
total 4
-rw-------. 1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: