Linux的Bash Shell详解

1、Bash Shell概述
shell

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

  • /bin/sh(已经被/bin/bash替代)安全

  • /bin/bash(默认的shell)bash

  •  /bin/ksh(源自贝尔实验室,兼容bash)app

  •  /bin/tcsh(整合C shell,功能更为强大)ide

  • /bin/csh(已经被tcsh取代)工具

  • /bin/zsh(源自ksh功能更为强大)
    每种shell的功能比较相似,可是语法会稍有不一样。学习

3.bash的历史和发展spa

image.png

2、Bash Shell的变量概述unix

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

2.能够经过变量来设置shell或者其余程序。

3.变量存在于内存中。

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

5.自定义变量和环境变量的做用范围不一样。

6.可使用如下指令查看全部变量

  • set能够查看全部的变量

  • env只能查看环境变量

3、Bash Shell的设置方式

1.经过自定义变量设置

  • variable=value来设置

  • $variable来取得变量的值 

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

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

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

  • unset key命令能够删除变量

  • 常见的变量

        HISTFILESIZE:记录历史指令保存的最大值
        HISTSIZE:记录使用history命令查看历史指定输出的个数最大值
        COLUMNS:终端窗口显示的宽度
        LINES:终端窗口显示的高度
        PS1:设置提示符号前面的内容样式(\d,\h,\t,\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指令来找到某个指令所在的位置。

4、Shell startup scripts的概述

1.Shell startup scripts是用户登陆或其余非登陆动做时会自动执行一些shell脚本

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

3.创建环境变量,设置其余程序

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

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

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:
        在注销用户时会进行该脚本
        能够执行备份、缓存和临时文件清理等任务

6、总结

    对于基础的学习,咱们要一步一个脚印的来,其中来不得半点的虚假,这样才能走的更远,努力,我一直在路上,你呢?

相关文章
相关标签/搜索