一、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. 对JS中事件委托的理解

    什么是事件委托: 事件委托——给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件.(不理解冒泡的可以去百度下) 定义:利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托. 使 ...

  2. Linux学习资料地址汇总-不定时更(一)

    https://linux.linuxidc.com/ 用户名和密码都是www.linuxidc.com

  3. Javascript中的Math.max()和Math.min()

    Math.max()是求最大值,Math.min()是求最小值 Math.max(value1,value2,value3....) 但是如果是数组或者对象呢? var numArr = [1,2,4 ...

  4. var, let ,const区别

    ES6中加入了let,const字符,先说说新的区别: 作用域:let 声明的变量只在它所在的代码块内有效,而且不存在变量提升,即变量可以在声明之前使用,值为undefined.let未声明变量前会报 ...

  5. Apache Tomcat 文件包含漏洞(CVE-2020-1938)

    2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938).该漏洞是由于Tomcat AJP协议存在缺陷 ...

  6. R时间序列分析实例

    一.作业要求 自选时间序列完成时间序列的建模过程,要求序列的长度>=100. 报告要求以下几部分内容: 数据的描述:数据来源.期间.数据的定义.数据长度. 作时间序列图并进行简单评价. 进行时间 ...

  7. go中处理各种请求方式以及处理接口请求参数

    话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/ ...

  8. Python操作系统

    一 为什么要有操作系统 (两本书:现代操作系统.操作系统原理,学好python以后再去研究吧~~) 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输 ...

  9. Python基础类型(1)

    整数 整数在Python中的关键字用int来表示; 整型在计算机中运于计算和比较 在32位机器上int的范围是:  -2**31-2**31-1,即-2147483648-2147483647 在64 ...

  10. C++ 指针实现字符串倒序排列

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <coni ...