阅读 306

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


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐