一、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. 微信h5页面audio标签在ios下不能自动播放

    背景介绍:在一个h5页面中,当用户提交表单到后台,后台返回的结果成功的话,开始自动播放背景音乐 出现的问题:在安卓手机上正常,iOS中没有反应 后来网上一番搜索后了解到时因为iOS不允许自动播放音乐, ...

  2. 关于Js的那些面试题

    1.javascript的typeof返回哪些数据类型 number string boolean Object function underfind 2.例举3种强制类型转换和2种隐式类型转换?强制 ...

  3. 每日一点:git 与 github 区别

    絮絮叨叨在前:以前的公司,都用svn 进行代码管理.最近我那程序猿先生真的受不了我,强迫我使用tortoiseGit. 一开始对于 git 和 github 傻傻分不清,干脆自己整理资料,总结一下. ...

  4. RabbitMQ 消息模式

    消息模式实例 视频教程:https://ke.qq.com/course/304104 编写代码前,最好先添加好用户并设置virtual hosts 一.简单模式 1.导入jar包 <depen ...

  5. Netty学习(4):NIO网络编程

    概述 在 Netty学习(3)中,我们已经学习了 Buffer 和 Channel 的概念, 接下来就让我们通过实现一个 NIO 的多人聊天服务器来深入理解 NIO 的第 3个组件:Selector. ...

  6. scrapy中间件中使用selenium切换ip

    scrapy抓取一些需要js加载页面时一般要么是通过接口直接获取数据,要么是js加载,但是我通过selenium也可以获取动态页面 但是有个问题,容易给反爬,因为在scrapy中间件mid中使用sel ...

  7. 【Python】2.11学习笔记 注释,print,input,数据类型,标识符

    前面学了好多内存什么的知识,没什么用(我有眼不识泰山233 吐槽一句,这课简直就是讲给完全的编程小白听得 就从语言开始写吧(其实好多已经看过了,再来一遍 话说我已经忘了\(Markdown\)怎么写了 ...

  8. Angular介绍

    Angulay介绍 1.介绍:是一个用于Html和TypeScript构建客户端应用平台与框架.Angular 本身就是用 TypeScript 写成的.基本构造块是 NgModule,它为组件提供了 ...

  9. C# 获取系统所有字体

    获取已安装的所有字体列表 System.Drawing.FontFamily StringBuilder str = ); InstalledFontCollection fonts = new In ...

  10. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (下篇)

    前言 回顾上一篇文章<使用Swagger做Api文档 >,文中介绍了在.net core 3.1中,利用Swagger轻量级框架,如何引入程序包,配置服务,注册中间件,一步一步的实现,最终 ...