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,\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指令来找到某个指令所在的位置。

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

    

    

时间: 2024-11-03 10:21:18

Linux的Bash Shell详解的相关文章

Shell学习之Bash变量详解(二)

Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这种变量中主要保存和系统操作环境相关的数据. 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的. 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的. Bash变量注意点 1.变量名称可以由字母.数字和下划线组成,但是不能以数字

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux笔记Linux 系统命令及其使用详解(大全)

开机默认界面修改:字符界面和图形界面-->修改ect/inittab文件 Windows远程Telnet访问Linux系统:telnet+远程Linux系统IP地址 Linux目录结构: /:根目录 /bin:存放必要的命令 /boot:存放内核以及启动所需的文件等 /dev:存放设备文件 /etc:存放系统的配置文件 /home:用户文件的主目录,用户数据存放在其主目录中 /lib:存放必要的运行库 /mnt:存放临时的映射文件系统 /proc:存放存储进程和系统信息 /root:超级用户的主

【转】linux中inittab文件详解

原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬

shell详解

============================================================================1.shell详解:shell是基于c语言的基础上编写的程序,是用户与Linux内核之间沟通的桥梁:shell既是一种命令语言,又是一种程序语言.shell是只一种应用程序,这个应用程序提供一个界面,用户通过这个界面访问操作系统内核的服务. 2.shell脚本:是一种为shell编写的脚本程序:shell脚本就是将各种命令通过逻辑语句组合而成的程

Linux网络配置知识点详解

Linux网络配置知识点详解 一.Linux网络配置 1.网络配置文件 (1)/etc/sysconfig/network-scripts/ifcfg-en0xxx文件 用来指定服务器上的网络配置信息 (2)/etc/hostname文件 包含了Linux系统的主机名 (3)/etc/resolv.conf文件 文件配置了DNS客户,包含了主机的域名搜索顺序和DNS服务器地址 (4)/etc/hosts IP地址和主机名映射 (5)/etc/host.conf 和主机名解析顺序 (6)/etc/

linux中ls命令详解

s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件的 i 节点的修改时间,并以此排序.-d 将目录象文件一样显示,而不是显示其下的文件.-e 输出时间的全部信息,而不是输出简略信息.-f -U 对输出的文件不排序.-g 无用.-i 输出文件的 i 节点的索引信息.-k 以 k 字节的形式表示文件的大小.-l 列出文件的详细信息.-m 横向输出文件名

linux nc命令使用详解(转)

linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参 数: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其数值为4的

Linux开机启动程序详解

我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核.请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存.因此,内核就必须完整地加载到可用RAM的第一个兆字节之内.为了实现这个目的,内核是被压缩了的.这个文件的头部包含着