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 : 显示当前日期
\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 + . :上一条命令,最后一个空格后面的内容显示出来
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