BASH 特性和快捷键

回顾 bash shell

平时如何使用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 : 显示当前日期
	 : 显示当前时间(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 + . :上一条命令,最后一个空格后面的内容显示出来
delete : 删除光标后内容,对单个字母删除

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:执行历史命令中,指定的操作

4.使用alias

作用:将复杂的命令简化处理

举例:
[root@mysql ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0


#用法
- 增 - 改
# 创建命令的别名(如果本身命令别名存在那么就是修改,不存在则创建)
[root@mysql ~]# alias wk='vim /etc/sysconfig/network-scripts/ifcfg-eth0'

- 删
[root@mysql ~]# unalias ww

- 查
# 查看当前系统中都有哪些别名
[root@mysql ~]# 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'
alias wk='vim /etc/sysconfig/network-scripts/ifcfg-eth0'
alias ww='vim /etc/hosts'

5.bash shell 特性——命令获取帮助

#linux中两种方式获取帮助
1.命令 --help
2.man 命令

linux命令帮助网站1:TP

linux命令帮助网站2:TP

原文地址:https://www.cnblogs.com/tcy1/p/12491140.html