zoukankan      html  css  js  c++  java
  • bash shell

    bash shell
        命令的记录功能:
          bash shell总是记录上次登入shell时所执行的命令,这些命令都记录在.bash_history,而这次登入shell后所执行的命令都记录在内存中,当退出shell的时候,将这次登入shell后执行的命令写入.bash_history文件。(默认可以记忆1000个命令)
        命令与文件名补全功能:
           双击两次tab键就会自动补全文件名或命令。
     命令别名设置功能:
        例: alias lm='ls -al';那么之后运行lm,相当于执行 ls -al.
     程序化脚本:
         可以将要运行的命令集合都写在一个文件中,然后交给bash shell运行,这个文件就是shell脚本。
      

    shell的环境变量
    当登录进入linux系统,用户就会得到一个bash的应用程序,负责与linux系统进行交互,既然bash是一个应用程序,那么在bash运行之前,需要一些参数,而这些参数就是当前运行bash的环境变量,一般环境变量都使用大写,如PATH,MAIL,SHELL。

    自定义变量
      1.设定变量
          myName=hujingwei    //设定了一个值为"hujingwei"的myName变量
     注:等号两边不能直接接空格,若变量内容有空格,可以使用单引号或双引号将内容结合起来。
     双引号:(特殊字符会保持原有的特性)
          var="lang is $LANG"
          echo $var   //lang is en_US
     单引号:(所有的特殊字符都将作为一般字符处理)
         var='lang is $LANG'
          echo $var   //lang is $LANG
       2.在一串指令中还需要其他指令提供信息,可使用反单引号或$(指令)。如下:
          version=$(uname -r)
          echo $version //2.6.18-128.el5
       3.可以通过export将自定义变量变成环境变量,供子程序使用。
            export myName;
            那么myName就会变为当前这个shell程序的环境变量,如果在这个程序中再启动一个shell程序,那么新启动的shell就是之前shell的子shell,那么这个子shell在初始化的时候,环境变量中就直接包含了myName变量。一般情况下,父程序自定义的变量,子程序是无法使用的,但是有了export,父程序定义的变量,子程序也可以使用了。
       4.取消变量
           如果不想使用myName变量了,如下:
           unset myName
    在bash中,反单引号的意思是,反单引号内的命令先执行,例如:
          ls -l `locate crontab`
    locate指令可以列出所有文件的文件名,所以上面的命令就是先使用locate指令列出所有文件的文件名,然后再使用ls指令列出各个文件的权限。


    如果想要查看bash的环境变量,就使用env、export命令即可。
    set指令用于观察所有的变量(包含环境变量和自定义变量)。

    $本身也是一个变量,代表目前这个shell的进程代号,也就是PID。
    ?代表执行上个指令的回传值,如果执行成功,则会回传一个0值,如果执行后错误,则回传一个非0值。

    当登录进入linux并取得一个bash之后,当前bash就是一个独立的程序,接下来在这个bash底下下达的任何指令都是这个bash衍生出来的,那些被下达的指令就是子程序。


    命令的执行顺序:
    1.以相对路径/绝对路径执行指令,例如[/bin/ls]或[./ls]
    2.由alias找到该指令来执行
    3.由bash内建的命令来执行
    4.通过$PATH这个变量的顺序搜索到第一个指令来执行。

    读取配置文件,以下命令是一样的:
    source ~/.bashrc
    . ~/.bashrc

    管道命令:
    例: ls -al /etc|less
    管道命令由"|"分割,后一个命令只能接收前一个命令执行成功时,本该打印在屏幕上的信息作为自身的输入数据,如果前一个命令执行失败,那么后一个命令的输入就为空。

    撷取命令:cut、grep

  • 相关阅读:
    Java 8特性
    11成最多体积的容器
    MySQL数据库理解
    java范型
    ArrayList源码分析
    1.面试题
    jvm简单了解
    121. 买卖股票的最佳时机
    有效的括号
    java如何判断一个字符串中某个字符有几个
  • 原文地址:https://www.cnblogs.com/hujingwei/p/5970437.html
Copyright © 2011-2022 走看看