zoukankan      html  css  js  c++  java
  • Linux Unix shell 编程指南学习笔记(第三部分)

    第十三章  登陆环境

    登陆系统时。输入username和password后。假设验证通过。则进入登录环境。


    登录过程

    文件/etc/passwd

    $HOME.profile

    定制$HOME.profile


    /etc/passwd 文件解析(抽取当中的一行作为演示样例):

      1             2       3       4         5               6                7
    root:	        x:      0:      0:       root:           /root:         /bin/bash
    第  1   域  :  登录名
    第  2   域  :  加密后的password
    第  3   域  :  用户标识号(用于系统内部区分用户,假设多个用户相应的用户标识号一样。系统觉得他们是同一个用户,但能够有不同的口令,不同的主文件夹以及不同的登陆shell)
    第  4   域  :  组标识号(标识用户所属的组,他相应/etc/group 中的一条记录)
    第  5   域  :   用户全名
    第  6   域  :   用户根文件夹
    第  7   域  :   用户默认的shell

    登陆成功后,系统运行两个环境设置文件:/etc/profile 和  用户根文件夹下  .profile


    /etc/profile 

    该文件包括:

    1、全局或局部环境变量

    2、PATH 信息

    3、终端设置

    4、安全命令

    5、日期信息或放弃操作信息


    stty : stty 用于设置终端特性。


    logout文件(在ubuntu 12.04中 为用户根文件夹下的  .bash_logout  文件):

    此文件保存有运行e x i t命令时,在进程终止前运行的命令。


    第十四章   环境和shell变量

    shell 变量

    环境变量

    变量替换

    导出变量

    特定变量

    向脚本传递信息

    在系统命令行下使用位置參数


    shell 变量:shell 变量用一个 “有效的”字符串表示,用于暂存信息。

    本地变量:  本地变量在用户如今的shell生命周期的脚本中使用,用户不能在其它shell或进程设置此变量有效。

    变量的各种设置模式:

    Va r i a b l e - n a m e = v a l u e设置实际值到v a r i a b l e - n a m e
    Va r i a b l e - n a m e + v a l u e 假设设置了v a r i a b l e - n a m e,则重设其值
    Va r i a b l e - n a m e : ?

    v a l u e 假设未设置v a r i a b l e - n a m e,显示没有定义用户错误信息
    Va r i a b l e - n a m e ?

    v a l u e 假设未设置v a r i a b l e - n a m e,显示系统错误信息
    Va r i a b l e - n a m e : = v a l u e 假设未设置v a r i a b l e - n a m e。设置其值
    Va r i a b l e - n a m e : - v a l u e 同上。可是取值并不设置到v a r i a b l e - n a m e,能够被替换

    清除变量:unset   variable-name

    显示全部变量:   set     (readonly 显示全部的仅仅读变量)

    连接变量值:   ${var1}${var2}${var3}${...}  (将变量并排就能够实现变量结合在一起)

    測试变量是否已经赋值:   var1:-newValue  (假设var1 已经赋值则使用原来的值,否则用newValue作为新的值,可是newValue并没有赋值给var1)

    设置仅仅读变量。格式:

    variable-name = value
    readonly variable-name


    环境变量

    环境变量用于全部用户进程。

    环境变量能够在命令行中设置,但用户注销时这些值将丢失,因此最好在. p r o f i l e文件里定义。

    环境变量应用于用户进程前,必须用e x p o r t命令导出。环境变量与本地变量设置方式同样。


    环境变量设置  var=value:export var   或

    var = value
    export var

    显示环境变量和显示本地变量一致,使用${var} ,  

    查看全部的环境变量: env

    清除环境变量: unset var  (跟清除本地变量一致)


    嵌入shell变量

    linux预留的环境变量。通常在/etc/profile中建立这些嵌入变量。

    CDPATH:cd 一个文件夹时先查找这个变量,假设存在则此文件夹成为当前文件夹。

    EXINIT:保存使用vi编辑器时的初始化选项。

    HOME:保存用户根文件夹,使用cd直接进入该文件夹

    IFS:指定shell默认域分隔符(能够指定多个域分隔符)

    LOGNAME:保存登录名

    MAIL:保存邮箱路径名

    MAILCHECK:邮箱检測频率(/s)。默认是60秒。

    PATH:保存命令或脚本查找的文件夹顺序(频繁-->一般-->不经常使用)

    PS1:基本提示符(包括shell提示符),默认root为  # 。 其它用户为  $

    PS2:附属提示符,多用于多余一行的命令

    SHELL:保存默认shell,通常在/etc/profile中配置

    TERMINFO:保存终端配置文件位置。

    TERM:保存终端类型。

    TZ:保存时区值。

    一下环境变量没有提供默认值(上面的环境变量中某些在ubuntu12.04中也没有提供默认值)

    EDITOR:设置默认编辑器

    PWD:当前文件夹名

    PAGER:保存屏幕翻页命令

    MANPATH:保存系统中man文件的文件夹

    LPDEST  或 PRINTER: 默认打印机名


    导出变量

    使用 export 导出变量后。子进程就能够 “看得见”该变量。


    位置变量(位置变量參数),仅仅读的

    使用位置变量參数能够想shell脚本传递信息。该參数能够为随意多,可是仅仅有前面 9 个能够被訪问

    $ 0$ 1$ 2$ 3 $ 4$ 5 $ 6$ 7 $ 8$ 9  ($0为脚本名字,其余为參数)


    特定变量,仅仅读的

    特定变量表:

    $ #		传递到脚本的參数个数
    $ *		以一个单字符串显示全部向脚本传递的參数。与位置变量不同,此选项參数可超过9个
    $ $		脚本执行的当前进程I D号
    $ !		后台执行的最后一个进程的进程I D号
    $ @		与$ #同样。可是使用时加引號,并在引號中返回每一个參数
    $ -		显示s h e l l使用的当前选项,与s e t命令功能同样
    $ ?		显示最后命令的退出状态。0表示没有错误,其它不论什么值表明有错误


    第十五章     引號

    双引號可引用除字符$、`、外的随意字符或字符串。


    单引號与双引號类似,不同的是假设屏蔽了其特殊含义时,会将单引號和其内部的值作为一个新的字符串。

    BOy=‘boy’
    echo "like '$BOY'"
    echo "like "$BOY""
    两个echo 输出的内容是不一样的,前面的echo 多了 一对单引號。


    反引號:shell 将 反引號括起来的  内容  作为系统命令,并运行。
    反斜线:反斜线用于屏蔽特殊字符的特殊意义。


  • 相关阅读:
    学习FastDfs(三)
    学习FastDfs(二)
    学习FastDfs(一)
    学习ELK日志平台(五)
    学习ELK日志平台(四)
    学习ELK日志平台(二)
    学习ELK日志平台(一)
    并不对劲的CTS2019
    并不对劲的BJOI2019
    并不对劲的bzoj1095:p2056:[ZJOI2007]捉迷藏
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6905738.html
Copyright © 2011-2022 走看看