linux基础 - bash shell是啥?
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 命令 复制代码
结语
文章首发于微信公众号程序媛小庄,同步于掘金。
码字不易,转载请说明出处,走过路过的小伙伴们伸出可爱的小指头点个赞再走吧(╹▽╹)
作者:程序媛小庄
链接:https://juejin.cn/post/7036317950756225061