BASH 特性和快捷键

回顾 bash shell

image.png

平时如何使用bash shell

  • 命令行敲命令(输入命令)-> 效率低 -> 适合少量工作

  • shell script (脚本)-> 效率高 -> 适合大量的工作

## 命令行敲命令(输入命令)-> 效率低 -> 适合少量工作
# 创建一个用户
[root@zls ~]# useradd zls1

# 给该用户一个密码
[root@zls ~]# passwd zls1

-------------

## shell script (脚本)-> 效率高 -> 适合大量的工作
# 使用脚本创建100个用户
for n in `seq -w 100`;do
        useradd zls$n
        echo 123456 |passwd --stdin zls$n
done

## 查看bash的版本
[root@zls ~]# bash --version

shell提示符

  #当前登陆的用户    分隔符        主机名    当前所在的路径(整个路径的最后一个文件夹)
[       root        @           zls          ~                      ]           #
[       root        @           web01        ~                      ]           #
  #当前登陆的用户    分隔符
[       zls1        @           zls          ~                      ]           $ 

# : 超级用户的命令提示符
$ : 普通用户的命令提示符

#注意:
 - 单引号
 - 双引号

修改shell提示符

# 查看默认的shell 提示符
[root@web01 ~]# echo $PS1
[\u@\h \W]\$

\u : 当前用户
\h :当前主机名(如果主机名中有. 则截取第一个. 之前的名字显示)
\H : 当前完整主机名
\W : 当前所在路径的最后一个目录
\w : 当前所在完整路径(绝对路径)
\d : 显示当前日期
\t : 显示当前时间(24小时)
\T : 显示当前时间(12小时)
\A : 显示当前时间(24小时格式,不显示秒)
\v :显示当前bash的版本(鸡肋)
\# : 显示当前下达命令的个数
\$ : 当前用户的命令提示符,如果是超级用户就显示 '#' 如果是普通用户就显示 '$' 

# 修改命令提示符
[root@web01 ~]# vim /root/.bashrc
PS1='[日期:\d | 时间:\A | bash版本:\v | 命令个数:\# | \u@\H 当前路径:\w]\$ '

PS1="\[\e[31m\][\[\e[32;40m\]\u\[\e[33m\]@\h \[\e[34m\]\w\[\e[0m\]]\\$ "

命令提示符颜色参考网站:TP

Bash Shell 语法

# 基本语法
[command] [option] [arguments]
# 命令     选项     参数

# 举个栗子:
[root@www ~]# ls
[root@www ~]# ls -l
[root@www ~]# ls -l /usr/local
[root@www ~]# ls -la  /usr/local/ /tmp/

# 选项:
    - 长格式:ls --all
    - 短格式:ls -a  (默认使用短格式)

Bash Shell 基本特性

1.支持命令的补全

Tab

# 补全选项,需要安装 bash-completion
 yum install -y bash-completion
 
 补全命令
 补全选项
 补全参数

2.快捷键

Ctrl + a : 将光标跳转到当前命令的行首(ahead)
Ctrl + e :将光标跳转到当前命令的行尾(end)
Ctrl + w :按照空格删除光标之前的命令(word)
Ctrl + c :终止当前的命令(cancel)
Ctrl + l :清屏(命令clear的功能)
Ctrl + r :查找执行的最近的一条命令(包含查找的字母)
Ctrl + d :退出当前的bash(只退出一个)exit  logout(退出当前登陆的用户)
Ctrl + z :把程序放在后台运行(windows上QQ最小化)
Ctrl + k :删除当前光标到行尾的所有内容
Ctrl + u :删除当前光标到行首的所有内容
Ctrl + 左右:快速移动光标
ESC + . :上一条命令,最后一个空格后面的内容显示出来

Ctrl + s :锁定当前命令行
Ctrl + q :解锁当前命令行

windows + l : windows锁屏

# 在bash shell里是注释的意思 (不让计算机看)

3.历史命令

一般用于日志审计

# 修改/etc/profile
vim /etc/profile

-----------------
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F | %T | 用户IP: $USER_IP | 操作用户: `whoami` |操作命令: "
shopt -s histappend
export PROMPT_COMMAND="history -a"
------------------

1. Shift + g
2. 按 o
3. CV工程师 Ctrl + c    Ctrl + v
4. 按 ESC
5. 输入 :wq
6. 回车

source /etc/profile


# 查看历史命令
[root@www ~]# history 

# 清空历史命令
[root@www ~]# history -c

# 指定删除某一条历史记录
[root@www ~]# history -d 4

保存到: /root/.bash_history

# 历史命令相关操作
!v: 执行你上一条,命令带v的操作
!!:执行上一条命令
!17:执行历史命令中,指定的操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容