Shell

  bash shell配置:

1.bash shell变量

     变量时代表一些值的符号:

        可以通过变量来设置shell或者其他程序

        存在于内存中

        linux有自定义变量(local)和环境变量(environment)

        自定义变量和环境变量作用范围不同.

 使用以下命令查看变量:

  set 可以查看所有变量 

  env只能查看环境变量

bash shell有以下几种设置方式

  1.通过自定义变量设置

     VARIABLE = value来设置。即前面时变量名字后面是变量的值的格式。

   如KEY1= key 设置好了以后可以通过set命令(由于set时查看所有的变量,所以时需要慢慢找的)查看,也可以通过echo $KEY1(这个指令可以直接就看出刚刚设置的变量)查看。

   echo $变量名称

 如果直接的echo 变量名称---最终输出的是【变量名称】这个字符串,要想输出变量名称对应的值应该加上$

  变量名设置规则:

       1.不能有数字或者特殊字符开头

        变量名和=之间不能有空格,变量值之间也不能有空格,如果需要有空格,请加上""(可以时双引号也可以时单引号)引号引起来。

     但是注意:

   在使用单引号和双引号的时候需要注意的地方:

   1.如果需要引用已经存在的变量对应的值,比如:

    KEY1="test one"或者'test one'

    方法一:

  此时KEY2需要使用KEY1的值,就应该这样设置:KEY2="value is $KEY1" (只能使用双引号

   此时使用命令:echo $KEY2 或者 echo "$KEY2"---打印结果为value is test one

                            echo '$KEY2'(当作一个字符串变量)----  打印结果为KEY2

 方法二:

  KEY3需要使用KEY1的值,KEY3=$KEY1 --打印结果:test one

                                              KEY4=$KEY1----    ---打印结果:test one---

    

变量名前面不能加?,应该也有其他符号限制,等后面看到资料了再来补充...

 变量名的使用有很多好处,比如你平时需要查找一个目录,可能就需要cd切换好几层才能找到,可以将那些常用的目录赋值给一个变量,以后使用的时候就直接通过给定的变量名就可以得到具体的目录。


删掉定义的变量:unset 变量名称

删掉以后可以使用set |grep 变量名称 来查看是否已经不再存在,grep是匹配的意思。

set |grep HIST   这个指令用于 

常见的变量:

       HISTFILESIZE:记录历史指令保存的最大值

       COLUMNS:终端窗口显示的宽度

       LINES:终端窗口显示的高度

       PS1:设置提示符号前面的内容样式(\d,\h,\t,\u,\w,\!,\$,\l)

   

  2.通过别名(Aliases)设置

   alias lss="ls -la"

     (ls指令在bin目录下)

  使用alias自身查看所有的alias

  使用alias和alias名称查看alias值

  Type -a alias名称

  unalias删除别名定义

  3.通过set指令设置

     set自身查看所有变量值

     设置shell内部的属性值(set -o noclobber, set -o vi)


  4.通过环境变量设置

     自定义变量只能在当前的shell环境中有效

     环境变量会在整个主机下的shell环境中生效

     使用$ export [变量名]来设置

     如果当前登录的不是root账户,而是其他账户,使用unset 变量名时只能在当前环境下删除该变量的,如果使用的时root账户,使用unset就会彻底删除这个变量。

   常用变量介绍:

     HOME:指向当前用户的家目录

     LANG:应用程序用何种语言来显示界面

     PWD:指向用户当前的工作目录路径

     PASS环境变量:

        系统预设的环境变量

        执行一些没有指定路径的指令时会去该路径中找

        PATH=$PATH: 将隐藏路径设置到PATH中,会带来安全问题

shell startup scripts原理和功能

   shell startup scripts概述

     用户登录或其他非登录动作时会自动执行的一些shell脚本:

       1.建立自定义变量或者执行set指令设置shell

       2.建立环境变量,设置其他程序

       3.使用alias,简化后续操作

       4.登录的时候执行哪些程序

       5.分为login和non-login脚本


      login shell:

          1.通过完整的(需要通过输入用户名和密码) 登录流程时运行的shell

          2.首先会读取/etc/profile(PATH/UER/HOSTNAME/HISTSIZE等)

          3.读取/etc/profile..d/*.sh(颜色、语言、指令别名等)

          4.~/.bash_profile、~/.bash_login、~/.profile(只依次读取其中一个)

          5.~/.bash_rc、/etc/bashrc

          6.source指令加载脚本的变更

   

     non-login shell

     1.不需要通过登录即可运行的shell,如su和原bash下的新bash动作

     2. 涉及到的脚本:~/.bash_rc、/etc/bashrc

     3.读取/etc/profile.d/*.sh(颜色、语言、指令别名等)

    ~/.bash_logout

       1.在注销用户时会运行该脚本

       2.可执行备份、缓存和临时文件清理等任务


数据流重定向和管道命令

一、标准输入输出和错误输出

      相关概念:

          标准输入(stdin[standard input])时指令数据的输入,代码为0,使用<或者<<,默认是键盘

          标准输出(stdout)是指令执行成功返回的结果,代码为1,使用>或者>>,默认由屏幕显示

          标准错误输出(stderr)是指令执行失败返回的错误信息,代码为2,使用2>或者2>>,默认是屏幕显示

          用指令查看设备下都有哪些输入输出指令:

        

二、数据流重定向的使用

      < 指定数据的数据媒介来源

      1> 将正确的内容覆盖输出到指定的媒介

      1>> 将正确的内容追加到指定的媒介

      2> 将错误信息覆盖输出到指定的媒介

      2>> 将错误信息追加输出到指定的媒介

    多个指令指令的判断方法:

    bash1&&bash2(前者执行成功才会执行后者)

    bash1||bash2(前者执行完毕且失败才执行后者)

三、管道命令概述

       1.管道符号:|

       当需要显示的信息很多的时候并且需要分页显示的时候,可以使用管道符|more(通过管道符传递给more,最后显示出来的数据都是通过more指令输出的)

      2. 能够接收标准输入,如tail/more/grep等

      3.能够接收来自于前一个指令的正确输出的数据成为stdin进行处理

四、常用的管道命令举例

      grep指令,grep [-cinv] 'key' filename,支持正则

      -v:显示没有该字符的行

      -i:忽略大小写

      -c:统计字符出现的次数

      -n:输出行号

     sort指令:sort [-fbknrtu] filename

            -f:忽略大小写

            -b:忽略最前面的空格

            -M:以月份英文名字排序

            -n:使用数字排序

            -r:逆向排序

            -t:分隔符,默认是tab分割

            -k:以第几列来排序

      wc指令,wc[-lwm] filename,统计功能。

         -l:统计行

         -w:统计词

         -m:统计字符


    

   


   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值