zoukankan      html  css  js  c++  java
  • linux中的bash

    转至(https://www.cnblogs.com/kevinzr/p/12522494.html

    个人学习资料

    一、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

  • 相关阅读:
    新版vscode配置eslint自动格式化代码
    vue cli4 拿到一个项目后
    windows 网页打不开github网站
    PHP+jQuery-ui拖动浮动层排序并保存到数据库实例
    php+html5兼容手机端的图片选取裁剪上传实例
    PHP+MySQL设计高效发表评论留言功能
    5种PHP生成图片验证码实例
    PHP+jPaginate插件制作无刷新分页实例
    PHP+Mysql实现网站顶和踩投票功能实例
    jQuery+PHP实现购物商城常用的星级评分效果
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/13258146.html
Copyright © 2011-2022 走看看