一、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. 有史以来最全的CMD命令

    说在前面的话: 本篇是博主通过网上查找整理而成的,且都是亲测可以的一些cmd命令,可以说是很齐全了,当然,如果有不可以运行的代码,欢迎大家留言指出,我会不断完善的,谢谢. CMD作用: 掌握一些基本的 ...

  2. JZOJ 1492. 烤饼干

    1492. 烤饼干 (Standard IO) Description NOIP烤饼干时两面都要烤,而且一次可以烤R(1<=R<=10)行C(1<=C<=10000)列个饼干, ...

  3. iview的render函数使用

    render渲染函数详解 https://www.cnblogs.com/weichen913/p/9676210.html iview表格的render函数作用是自定义渲染当前列,权限高于key,所 ...

  4. Android开发进阶 -- 通用适配器 CommonAdapter

    在Android开发中,我们经常会用到ListView 这个组件,为了将ListView 的内容展示出来,我们会去实现一个Adapter来适配,将Layout中的布局以列表的形式展现到组件中.     ...

  5. py2.7 批量转换文件为 utf8 编码

    source insight 不支持 utf8 ,但是在 linux 上查看的时候是 utf8 编码,就会显示不正常,所以写了个 python 小脚本,可以批量转换 py2.7 #coding:utf ...

  6. DBProxy快速入门

    1. DBProxy安装 1.1 安装依赖项 CentOS yum install -y Percona-Server-devel-55.x86_64 Percona-Server-client-55 ...

  7. 误用git reset -hard 的检讨书

    误用git reset -hard 的检讨书 消失的代码们: 我知道你们可能看不到了,但是我还是需要自我反省自己,因为自己的误操作,导致了你们的消失. 事情的始末 夜阑人静,周围除了少年敲击键盘的声音 ...

  8. 使用VS2017进行Python代码的编写并打印出九九乘法表

    我们来盘一盘怎么使用VS2017进行python代码的编写并打印出九九乘法表. 使用Visual Studio 2017进行Python编程不需要太复杂的工作,只需要vs2017安装好对Python的 ...

  9. Python数据科学手册(1) IPython:超越Python

    1.1 shell还是Notebook Jupyter Notebook 是 IPython shell 基于浏览器的图形界面,提供了一系列丰富的动态展示功能.Jupyter Notebook 不仅可 ...

  10. python基础学习day02

    pycharm的安装以及简单使用 辅助开发软件,代码逐行调试,设计高端 python的种类: ​ CPython:官方推荐可以转换成c能够识别的字节码. ​ JPython:可以转化为Java语言能够 ...