这是我参与11月更文挑战的第30天,活动详情查看:2021最后一次更文挑战
bash shell是什么
bash shell就相当于一个应用程序,我们输入命令给bash shell,bash shell翻译成二进制后将命令传输给linux系统,系统调用内核,内核操作硬盘,执行操作。
bash shell就是让我们可以和计算机进行交互,将人类执行翻译成计算机能够理解的二进制指令,操作硬盘。
bash shell的作用
各种管理的增删改查
文件管理
对于文件的增删改查
# 创建文件
touch xx.txt
# 修改文件
vim 文件
echo xxx > 文件
# 查看文件
cat less head grep awk
复制代码
权限管理
用户管理
磁盘管理
软件管理
网络管理
...
bash shell使用的两种方式
- 命令行
- shell脚本语言
shell提示符
[root@zhuang ~]#
root:当前登录的用户
@:没有任何意义,就是分隔符
zhuang:默认现实主机名中以点为分隔符中的第一部分
~:当前所在路径,默认只显示当前路径的最后一个文件夹名称,~表示root用户家目录
# :表示超级用户的命令提示符
$ :表示普通用户的命令提示符
复制代码
shell提示符修改
在bash shell中命令中$
表示变量,需要和提示符中的进行区分
# 查看命默认的令提示符
echo $PS1
[\u@\h \W]\$
# 修改命令提示符:
vim /root/.bashrc
# 添加内容
\u:当前登录的用户
\h:当前主机名,如果主机名中有点,则以点为分隔符显示第一部分
\H:完整主机名
\W:当前路径的最后一个目录
\w:当前路径的完整目录,绝对路径
\d:现实当前日期
\t:24h格式显示时分秒
\T:12h格式显示时分秒
\A :显示时间为24小时格式:HH:MM
\v:bash版本信息
\#:显示当前下达的命令个数
\$:当前用户的命令提示符,如果是超级用户就显示# 普通用户就显示$
复制代码
bash shell基本语法
# 基本语法,命令 选项 参数,选项和参数都可以有多个
command option arguments
# 举例
ls
ls -a
ls -l -a /usr/local/
ls -la /usr/local/ /tmp/
复制代码
bash shell基本特性
命令补全-tab键
可以补全命令
可以补全路径
命令的选项如果想要补全需要安装包,一般不需要
yum install -y bash-completion
复制代码
命令的选项
选项有长格式和长格式两种
ls -a # 默认使用短格式
ls --all
复制代码
命令快捷键
ctrl+a:将光标跳转到当前命令的行首
ctrl+e:将光标跳转到当前命令的行尾
ctrl+w:按照空格删除光标之前的内容
ctrl+c:终止当前命令
ctrl+l:清屏
ctrl+r:查找执行的最近的一条包含输入字母的命令
ctrl+d:退出当前bash,只退出一个,类似于退出当前登录的用户,开多个bash类似于开多个bash进程
ctrl+z:把进程放在后台运行
ctrl+k:删除从光标开始到行尾的所有内容
ctrl+u:删除从光标开始到行首的所有内容
ctrl+左右键:快速移动光标
esc+.:快速获取上一条命令最后一个空格之后的内容
!+字母:找到历史记录中时间最近的带指定字母的命令执行
!!:执行上一条命令
!+数字:执行历史记录中指定数字编号的历史命令
# 不常用
ctrl+s:锁屏
ctrl+q:解锁后会将把锁屏期间输入的所有内容输出
复制代码
history-历史命令
历史命令主要用于审计
# 删除历史命令
history -c
# 指定删除某一条历史记录
histoty -d 4 # 删除第四条历史记录
# 保存历史记录到/root/.bash_history
history -w
# 修改历史记录的显示
vim /etc/profile
# shift + g到最后一行
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"
# 生效
source /etc/profile
复制代码
命令别名alias
把复杂的命令简化,但是如果使用命令的绝对路径就不使用别名了比如/bin/cp
alias wk='vim /etc/systemconfig/network-scripts/ifcfg-etho'
# 用法,临时设置
alias # 查看当前系统有哪些别名
alias grep="grep --color=auto" # 创建别名,如果名字已经存在就是修改,不存在就是创建别名
unalias wk # 删除别名
# root用户下永久生效
vim /root/.bashrc
alias wk='vim /etc/systemconfig/network-scripts/ifcfg-etho'
source /root/.bashrc
复制代码
命令获取帮助
命令 --help
或者
man 命令
复制代码
结语
文章首发于微信公众号程序媛小庄,同步于掘金。
码字不易,转载请说明出处,走过路过的小伙伴们伸出可爱的小指头点个赞再走吧(╹▽╹)