shell、bash的关系及bash的特性(一)

这篇具有很好参考价值的文章主要介绍了shell、bash的关系及bash的特性(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概念

        shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。shell软件有:sh、bash、ksh、rsh、csh等。

        bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。最开始在Unix系统中流行的是sh,其全名是Bourne Shell,名字中的玻恩就是这个Shell的作者。而bash作为sh的改进版本,提供了更加丰富的功能。

        查看系统当前shell的类型:echo $SHELL

二、bash的特性

        bash命令格式:命令 选项 参数

                ls -a /home

        bash有两种使用方式:1、命令;2、脚本

(1)命令历史 history

        history -d OFFSET 删除某条记录

                 -c 删除所有历史

                n 显示历史中最近n条记录

        环境变量:

                HISTSIZE:命令记录的条数

                HISTFILE:~/.bash_history

                HISTFILESIZE:命令历史文件记录历史的条数

         调用历史中命令,输入!表示调用历史命令:

                !字符串:执行最近一条“字符串”开头的命令

                !!:执行上条命令

        ctrl+r:搜索历史命令,根据关键字文章来源地址https://www.toymoban.com/news/detail-627881.html

                调用上一条命令的最后一个参数:Esc . 或 !$

        控制命令历史的记录方式:

                环境变量:HISTCONTROL

                ignoredups:忽略重复的 连续且相同

                ignorespace:忽略空白开头的命令

                ignoreboth:上面两个都生效

        修改环境变量的方式:export 变量名=值

(2)命令补全功能

        内部命令:

        外部命令:bash根据PATH环境变量定义的路径,自左向右搜索;

        直接补全:tab键,只有唯一对应命令;不唯一在按tab会给出命令列表

(3)路径补全功能:

        把用户给定的字符串当做路径的开头;

(4)命令行展开

        ~:展开为用户的主目录

        ~USRNAME:展开为指定用户下的主目录

        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径

(5)命令的执行结果状态:成功or失败

        bash使用特殊变量$?保存最近一条命令执行结果状态

        0:成功 1~255:失败

        程序执行有两类结果:

                程序的返回值,

                程序执行的状态结果。

(6)命令别名(alias):

        通过alias命令别名

                alias:不带参数显示系统所有别名

                alias NAME=‘命名’ 定义别名,当前会话有效

                当前用户有效:~/.bashrc

                所有用户有效:/etc/bashrc

                修改配置文件后让文件生效需要:source FILENAME

                撤销别名:unalias

                如果别名同原命令同名,要使用原命令通过:\ls

(7)glob(globing)通配符

        bash中用于实现文件名通配的机制

        通配符*、?、[]

                *:任意长度的任意字符

                ?:任意单个字符

                []:匹配指定范围的任意单个字符,不区分大小写

                取反:^

        专用字符集:

        [:alnum:] [:alpha:] [:blank:] [:cntrl:]

        [:digit:] [:graph:] [:lower:] [:print:]

        [:punct:] [:space:] [:upper:] [:xdigit:]

(8)bash的快捷键

        ctrl+l:相当于clear,清屏操作

        ctrl+c:取消命令的执行

        ctrl+d:退出、exit

        ctrl+a:光标跳转至命令首部

        ctrl+e:跳转至命令尾部

        ctrl+u:删除光标前的内容

        ctrl+k:删除光标后的内容

        ctrl+r:搜索历史命令,根据关键字

到了这里,关于shell、bash的关系及bash的特性(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux centos7 bash编程(循环与条件判断)

    在编程训练中,循环结构与条件判断十分重要。 根据条件为真、为假,确定是否执行循环。 有时,根据条件的真假结果,决定执行哪些语句,这就是分支语句。 为了训练分支语句与循环语句,我们设计一个案例: 求一组数字:两数平方和为另一数平方 符合条件时,有三个

    2024年02月10日
    浏览(45)
  • linux centos7 bash中字符串反向输出

    给定一个字符串,如何反向(倒序)输出? 字符串反转的方法:a.对各个字符位置进行循环调换(从原字符串左边取出放在新字符串的右边;从原字符串右边取出放在新字符串的左边)。b.对各个字符由水平排列转为垂直排列(行变列),tac反转,再由垂直排列转为水平排列(列

    2024年02月10日
    浏览(45)
  • Linux centos7 bash编程(break和continue)

    在学习shell知识时,简单编程要从格式入手。 首先学习好单行注释和多行注释。 先学习简单整数的打印输出,主要学习 echo 命令,学习选项-e -n的使用。 下面的练习是常用的两个分支跳转程序: break 和 continue 。 #!/bin/bash # 这是 单行注释 # 单行注释的方法就是在每行行首添加

    2024年02月10日
    浏览(38)
  • Linux(CentOS)运维脚本工具集合

    备份指定目录 查看CPU、磁盘、内存使用率 返回结果 显示基础信息-详细 查看进程pid,启动时间,持续执行时间 根据进程id查看工作目录 清除Linux系统占用缓存 查看端口是否使用 demo: 查看进程使用的端口 demo 查看端口所在进程 demo 查看目录下各目录占用空间以及最大文件或

    2024年02月12日
    浏览(46)
  • Linux运维实战:Centos7.6部署wingftpserver

    Wing FTP Server是一款优秀且高速的跨平台FTP服务器软件,对比Windows中自带的 FTP 服务器,它支持可伸缩的处理器架构并采用异步IO,在速度和效率方面遥遥领先于其他同类产品,稳定可靠, 高负载的同时也能持续地正常运行,在网络运维中它契合企业和学校的文件传输,除了基

    2024年01月20日
    浏览(63)
  • centos或aws linux部署java应用,环境搭建shell

    报存并退出vi,重启sshd 可能遇到的问题: 更换成官方仓库后运行sudo yum install docker-ce失败,提示\\\"404 for https://download.docker.com/inux/centos/docker-ce.re/repodata/repomd.xml 解决办法: 看看能否正常访问docker官网,如果不能就去解决网络问题,如果能,继续下面步骤: 切记:有的网站下载

    2024年02月07日
    浏览(52)
  • 【Linux】Centos7 的 Systemctl 与 创建系统服务 (shell脚本)

    systemctl 命令 systemctl 状态 systemctl 运行级别 自建服务 1、服务存放路径 2、编写一个系统服务 Unit: Service: 举例 :wq退出 syscmd.sh脚本内容 方式一: 命令: java -jar xxxx.jar 方式二: 命令:java -jar xxxx.jar 方式三: 命令:nohup java -jar xxxx.jar 方式四: 命令:nohup java -jar xxxx.jar /

    2024年02月14日
    浏览(52)
  • 【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

    🦄 个人主页——🎐 个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!🪁🍁🪁🍁🪁🍁🪁🍁 目录 一、安装下载 二、执行安装 下载地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-el7-x86_64.tar.gz 脚本和tar包结构 my.cnf 配置文件 ins

    2024年02月05日
    浏览(44)
  • Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台

    目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语    作者简介:  懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台,希

    2024年03月11日
    浏览(60)
  • linux 基于 RHEL 的 Linux 发行版(例如 CentOS 和 Fedora)上用 shell 脚本安装 elasticsearch 指南

    使用基于 RHEL 的 Linux 发行版(例如 CentOS 和 Fedora)操作系统。 拥有root权限或者sudo权限。 1.首先,创建一个名为install_elasticsearch.sh的文件,并打开该文件以编辑 2.然后,将以下内容粘贴到install_elasticsearch.sh文件中 3.保存并关闭文件 4.运行安装脚本 5.等待脚本执行完成,这可能

    2024年02月01日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包