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 命令

精彩文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。