一、bash的简介

  操作系统都是需要通过shell跟内核来交互的,常见的shell有GUI、KDE、sh、csh、bash、tsh、zsh等、

  而linux中最常用的shell就是bash。

二、bash的特性

  1.编辑快捷键

    Ctrl+a:跳到命令行首

    Ctrl+e:跳到命令行尾

    Ctrl+u:删除光标至命令行首的内容

    Ctrl+k:删除光标至命令行尾的内容

    Ctrl+l:清屏

    Ctrl+c:终止取消命令

    Ctrl+z:将当前命令送至后台(fg调回命令)

  2.命令历史

    查看命令历史:history

      -c:清空命令历史

      -w:保存命令历史至文件中

  3.命令展开

    ~:为家目录

    {}:展开多个目录

      /home/{zrq/{job,wok},demo} =/home/zrq/job   /home/work  /home/demo

  4.补全功能

    ①命令补全:通过tab键在PATH中搜索补全

      PATH:一组以冒号分割的路径集合

      shell命令分为内部命令与外部命令

      内部命令:直接构建在shell之中的命令

      外部命令:在系统的某一路径下游可执行程序

    ②路径补全:给出排头的路径补全,如果没有补全则默认为当前路径

  5.通配符

    ①  *:匹配任意长度任意字符。

    ②  ?:匹配任意单个字符

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

    ④  [^]:匹配指定字符外的任意单个字符

  6.命令别名(alias)

    查看命令别名:alias

    临时定义新的命令别名:alias 别名 =‘命令’

    取消临时定义的命令别名:unalis 别名

  7.bash中的变量

    变量的类型

      ①自定义变量:只对当前shell有效,对其子shell无效。

        定义变量:变量名=“Value”

        引用变量:${变量名}

        撤销变量:unse t变量名

      ②本地变量:只对局部生效

        定义变量:local 变量名=“Value”’

      ③环境变量:对shell及子shell都有效

        export

          -p:查看当前环境变量

      ④位置变量:

        $1..$n(代表从第一个位置到第n个位置的变量)

      ⑤特殊变量:

        $0::代表脚本名称自身

        $?:代表上一个命令的执行状态(0表示成功,非0均表示不成功)

        $$:shell最后运行的后台process的PID

  8.bash中的输入输出重定向和管道命令

    ①标准I/O

      标准注入:默认一般指键鼠

      标准输出:默认一般指显示器

      标准错误输出:默认一般指显示器

    ②I/O重定向

      输入重定向:<

      输出重定向:>,>>

          >:覆盖输出

          >>:追加输出

          set -C :禁止使用覆盖重定向覆盖已存在文件。

          set +C:关闭禁止

      错误重定向:2>,2>>

      同时重定向正确输出与错误输出:&>

    ③管道命令

      :|

      管道命令就是一种输入输出的一种实现,将命令的结果输出到管道,然后通过这个管道输入给下一个命令。

      同时管道命令是可以多重的

      命令1|命令2|命令3

    ③ tee命令

      当你想把一个命令的输出,保存到文件中,又想对输出进行另外操作时候。

      比如:/etc//work下的文件名 输出到/tmp/test 中并统计共多少行

      cat /etc/work | tee /tmp/test |wc -l

      注意:tee的位置

三、bash的配置文件(使用户配置持久配置)

  1.bash的配置文件分为两类

    ①profile类(为交互式登录提供配置)

        /etc/profile:全局的

        /etc/profile.d/*sh:全局的

        ~/.bash_profile:仅对个人用户有效

      功能:

        设定环境变量

        运行脚本或命令

   ②bashrc类(为非交互式登录提供配置)

        /etc/bashrc:全局的

        ~/.bashrc:仅对个人用户有效

      功能:

        设定本地变量

        定义命令别名

  2.登录类型

    ①交互式登录

        直接通过终端输入账号密码登录

        su - 用户名 或  su -l 用户名 登录

    ②非交互式登录

        su 用户名

        图形界面下的终端

  3.bash读取配置文件顺序

    ①交互式登录读取顺序

      /etc/profile --->/etc/profile.d/*.sh--->~/.bash_profile --->~/.bashrc ---> /etc/bashrc

    ②非交互式登录读取顺序

      ~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh

  4.配置生效方式

    ①强制重读

      source  文件名

      . 文件名

    ②重新登录

四、bash中的算数

  1.declare

    -i:整型变量

  2.let

    let  变量名=算数表达式

    例如:let sum=$num1+$num2

       echo $sum

  3.算数表达式

    变量名=$[$sum1+$sum2]

五、bash的测试

  1.整数测试

  2.字符串测试

  3.文件测试

    ①单目测试

      -e file :测试文件是否存在

      -f /path:测试目标文件是否为普通文件

      -d:          目录文件

      -b:

      -c:

      -p:

      -s:

      -r:文件存在且当前用户有有读权限

      -x:测试文件是否存在且不为空

    ②双目测试

      file1  -nt file2 :测试文件1是否比文件2新

六、轮替

  shift

        

        

    

linux中的bash的更多相关文章

  1. 在 Alpine Linux 中安装 bash shell

    如何在我的 Alpine Linux LXD(Linux容器)虚拟机(VM)中安装 bash shell? Alpine Linux 自带 BusyBox 工具.它被评为“嵌入式 Linux 的瑞士军 ...

  2. Linux中编写Bash脚本的10个技巧

    Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...

  3. 教你一些Linux中隐藏bash历史命令的小技巧

    导读 如果你登录过 Linux 系统,并敲过一些命令,那你应该知道,bash history 会记录你输入的所有命令.这个操作其实是有一定风险的. 我个人经常使用 Linux,所以我想着研究一番,看看 ...

  4. Fish:Linux中比bash或zsh更好用的Shell

    Fish是一个智能且用户友好的命令行shell,适用于macOS,Linux和其他家族.fish包含语法突出显示.根据你键入字符自动提示autosuggest-as-type和花式选项卡完成等功能,无 ...

  5. CentOS7 linux 中提示 bash: ls: 未找到命令...

    记录一次CentOS7里执行ls命令失败的问题 执行ls命令时报找不到命令,原因是环境变量PATH被修改, 解决办法: 执行    export PATH=/bin:/usr/bin:$PATH 然后 ...

  6. Linux 学习 之 bash

    Anything is programmable with defined syntax and common lib. Bash Shell is created to programme to L ...

  7. Linux中Bash发现重大安全漏洞修改方法

    北京时间9月25日消息,Linux用户今天又得到了一个“惊喜”!Red Hat安全团队在 Linux 中广泛使用的Bash shell中发现了一个隐晦而危险的安全漏洞.该漏洞被称为“Bash Bug” ...

  8. 在ubuntu linux 中编写一个自己的bash脚本

    在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...

  9. Linux中bash编程

    bash编程也叫shell编程 预定义变量         $? 最后一次执行的命令的返回状态.如果这个变量的值为0,证明上一个命令正确的执行:如果这个变量返回的值非0(具体是那个数,有命令自己来决定 ...

随机推荐

  1. 使用CSS实现折叠面板总结

    任务目的 深入理解html中radio的特性 深入理解CSS选择器以及伪元素的使用 任务描述 使用input的radio单选框特性结合CSS中的伪元素实现bootstrap中折叠面板(点击查看样例), ...

  2. 我折腾的shell笔记

    目录 Mac一些常用的快捷键记录 iTerm2或者命令行相关 Mac桌面上或者某目录下操作 一些实用脚本示例 代码无提示或者其他抽风症状,清除Xcode缓存 查看当前网络ip地址 日常提交推送git代 ...

  3. 没想到MySQL还会问这些...

    前言 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在前一阵子,大哥问过我:"你知道MySQL的原子性是怎么保 ...

  4. 教妹学Java:Spring 入门篇

    你好呀,我是沉默王二,一个和黄家驹一样身高,刘德华一样颜值的程序员(管你信不信呢).从两位偶像的年纪上,你就可以断定我的码龄至少在 10 年以上,但实话实说,我一直坚信自己只有 18 岁,因为我有一颗 ...

  5. 在Tomcat上发布Web项目的方式

    一. Tomcat的使用: 安装:解压压缩包即可 注意:安装目录不能有中文 目录结构: ①bin:可执行文件 ②conf:可执行文件 ③lib:依赖的jar包 ④logs:日志文件 ⑤:temp:临时 ...

  6. PHP的json_encode和json_decode的区别

    经常搞混的两个PHP函数: json_encode()是对变量进行json编码 json_encode()为要编码的值,且该函数只对utf8编码的数据有效 json_decode($json)对jso ...

  7. Linux系统是什么?亲身自学经历分享

    我是数字媒体专业学生,第一次接触LINUX的时候,是大一C语言课程里看到的,书上讲了C语言的发展历史.说到C语言的起源,就离不开UNIX系统.在20世纪60年代,贝尔实验室的研究员Ken Thomps ...

  8. 使用 VSCode 在 Mac 上配置 C/C++ 调试环境

    Background VSCode是微软开发的一款开源代码编辑器,具有可拓展性强,多语言支持,跨平台等优点,在不同的个性化配置下几乎可以用作所有的轻量级开发.我在初学C的时候也使用的是类似于Xcode ...

  9. 玩转控件:扩展Dev中SimpleButton

    何为扩展,顾名思义,就是在原有控件属性.事件的基础上拓展自己需要或实用的属性.事件等等.或者可以理解为,现有的控件已经不能完全满足我(的需求)了.好的扩展会使控件更加完善,实用,好用.不好的扩展,说白 ...

  10. wxPython4.0.4关于我们

    源码地址:https://download.csdn.net/download/zy0412326/12154342 wxPython4改版后将AboutBox方特到adv包里面.如果想快速实现GUI ...