ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux中的bash

2020-07-06 23:08:45  阅读:271  来源: 互联网

标签:profile shell 变量 etc 命令 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

标签:profile,shell,变量,etc,命令,linux,bash
来源: https://www.cnblogs.com/pengpengzhang/p/13258146.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有