zoukankan      html  css  js  c++  java
  • Linux的Bash Shell详解

    一、Bash Shell概述

      1.什么是bash
              bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过bash操作内核完成系统的使用和管理。

      2.shell的种类
              /bin/sh(已经被/bin/bash替代)
              /bin/bash(默认的shell)
              /bin/ksh(源自贝尔实验室,兼容bash)
              /bin/tcsh(整合C shell,功能更为强大)
              /bin/csh(已经被tcsh取代)
              /bin/zsh(源自ksh功能更为强大)
              每种shell的功能比较类似,但是语法会稍有不同。

      3.bash的历史和发展

        

    二、Bash Shell的变量概述

      1.变量是代表一些值的符号。

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

      3.变量存在于内存中。

      4.Linux有自定义变量(local)和环境变量(environment)。

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

      6.可以使用以下指令查看所有变量

        set可以查看所有的变量

        env只能查看环境变量

    三、Bash Shell的设置方式

      1.通过自定义变量设置

        variable=value来设置

        $variable来取得变量的值 

        变量名不能以数字或者特殊字符开头

        如果想在值中有空格存在,则需要用双引号或者单引号来定义值,如:key="key is one"

        单引号和双引号的区别在于,双引号支持拿已存在变量作为值的一部分,如:key="key is $key2"

        unset key命令可以删除变量

        常见的变量
                    HISTFILESIZE:记录历史指令保存的最大值
                    HISTSIZE:记录使用history命令查看历史指定输出的个数最大值
                    COLUMNS:终端窗口显示的宽度
                    LINES:终端窗口显示的高度
                    PS1:设置提示符号前面的内容样式(d,h, ,u,w,!,$,l,#等)

      2.通过别名(Aliases)设置

        alias lss='ls -la'设置别名方式

        使用alias查看系统中所有的alias

        使用alias aliasName查看指定别名定义

        type -a alias名称来查看别名具体定义描述

        unalias删除别名定义

      3.通过set指令设置

        set 查看系统所有变量值

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

      4.通过环境变量设置

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

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

        使用export variable name来设置环境变量。

        常用变量介绍
                     HOME:指向当前用户的家目录。
                     LANG:应用程序使用何种语言来显示界面。
                     PWD:指向用户当前的工作目录路径。
                     PATH:
                          系统预设的环境变量。
                          执行一些没有指定路径的指令时去该路径中找。
                          PATH=$PATH.:将隐藏路径设置到PATH中,会带来安全性问题。
                          可以使用which指令来找到某个指令所在的位置。

    四、Shell startup scripts的概述

      1.Shell startup scripts是用户登录或其他非登录动作时会自动执行一些shell脚本

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

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

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

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

    五、login和non-login shell的详解

      1.login shell:
                通过完整的登录流程时运行的shell。
                首先会读取/etc/profile(PATH/USER/HOSTNAME/HISTSIZE等)。
                读取/etc/profile.d/*.sh(颜色、语言、指令别名等)。
                ~/.bash_profile、~/.bash_login、~/.profile(只依次读取其中一个)。
                ~/.bash_rc、/etc/bashrc。
                source指令可以加载脚本的变更,如:source /etc/profile。

      2.non-login shell:
                不需要登录流程就可以执行的shell,如su和原bash下的新bash动作
                ~/.bash_rc、/etc/bashrc
                读取/etc/profile.d/*.sh
                ~/.bash_logout:
                    在注销用户时会进行该脚本
                    可以执行备份、缓存和临时文件清理等任务

        

        

  • 相关阅读:
    DataFrame转矩阵Np-Array
    十月15
    十月14
    十月14
    十月12
    十月10
    2016-02-22 有无网络 2
    2016-02-22 有无网络的提示 1 h m
    2016-02-20 web view
    20160220 下拉刷新 上拉加载
  • 原文地址:https://www.cnblogs.com/hafiz/p/6752754.html
Copyright © 2011-2022 走看看