Linux Unix shell 编程指南学习笔记(第三部分)

第十三章  登陆环境

登陆系统时,输入用户名和密码后,如果验证通过,则进入登录环境。

登录过程

文件/etc/passwd

$HOME.profile

定制$HOME.profile

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

  1		2	3	4	  5		   6		     7
root:	<span style="white-space:pre">	</span>x:	0:	0:	root:	<span style="white-space:pre">	</span>/root:	<span style="white-space:pre">	</span>/bin/bash
第  1   域  :  登录名
第  2   域  :  加密后的密码
第  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 将 反引号括起来的  内容  作为系统命令,并执行。

反斜线:反斜线用于屏蔽特殊字符的特殊意义。

时间: 2024-08-05 11:08:57

Linux Unix shell 编程指南学习笔记(第三部分)的相关文章

Linux Unix shell 编程指南学习笔记(第一部分)

第一章:文件安全与权限: 1.文件和目录的权限 创建文件时系统保存了文件所有相关的信息,包括 文件的位置 . 文件类型 . 文件长度 . 哪位用户拥有该文件,哪些用户可以访问该文件 . i 节点 . 文件的修改时间 . 文件的权限位 . 文件类型: d: 目录 l : 符号链接(指向另一个文件) s: 套接字文件 b: 块设备文件 c: 字符设备文件 p: 命名管道文件 -: 不属于上述类型的文件 文件权限 XXX       XXX        XXX 最左边 XXX : 文件属主 权限位

Linux Unix shell 编程指南学习笔记(第五部分)

第二十五章 深入讨论 << 当shell 看到 << 的时候,它知道下一个词是一个分界符,该分界符后面的内容都被当做输入,直到shell又看到该分界符(位于单独的一行).比如: cat >> tmpfile <<DOC > this is the first line > this is the second line > third > forth >..... >DOC 其中DOC就是分界符,再次在新的行中输入DOC时

Linux Unix shell 编程指南学习笔记(第四部分)

第十六章  shell脚本介绍 此章节内容较为简单,跳过. 第十七章   条件测试 test命令 expr命令 test  格式  test  condition     或者  [ condition ]  (注意: condition两侧有空格) 文件状态测试: - d 目录 : - s 文件长度大于0.非空 : - f 正规文件 - w 可写 : - L 符号连接 : - u 文件有s u i d位设置 - r 可读 : - x 可执行 测试的逻辑操作符: -a   :逻辑与,操作符两边均

Linux Unix shell 编程指南学习笔记(第二部分)

第七章  正则表达式介绍 匹配行首与行尾 匹配数据集 职匹配字母和数字 句点 "." 匹配任意单字符. ^,在行首 匹配字符串或字符序列,如查询当前目录下的所有目录: ls -l | grep "^d" 在行尾以 "$"匹配字符串或字符  , 匹配所有以sh结尾的行: sh$ 匹配所有的空行: ^$ 使用*匹配字符串中单字符或重复序列: skdf*jl 使用 \ 转义特殊字符的含义: 特殊字符:   $  .   ''  '   *  [  ]

Linux与Unix shell编程指南(完整高清版).pdf

找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题.本书内容全面.文字简洁流畅,适合Shell编程人员学习.参考. 目      录 译者序 前言 第一部分   shell 第1章   文件安全与权限 1 1.1   文件 1 1.2   文件

maven权威指南学习笔记(三)&mdash;&mdash;一个简单的maven项目

目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project Object Model)有一个基本的理解 目前不准备深入学习maven故此使用工具ideaj 来帮助学习, 用idea创建一个默认的maven工程,结构如下: 相关命令: 打包:mvn package 编译:mvn compile 编译测试程序:mvn test-compile 清空:mvn cle

“Linux Shell编程”视频学习笔记

一.Linux Shell基础编程 视频1 1.1.查看你系统shell信息 $ cat /etc/shell 命令可以获取Linux系统里面有多少种shell程序 $ echo $SHELL 命令可以查看当前你所使用的shell是哪一个 1.2.查看文件信息,ls $ ls -l 查看文件信息:文件类型.文件权限.文件硬链接数.文件所属用户.文件所属组.文件大小.文件最近修改时间.文件名 1.3.改变文件权限,chmod 只有root用户或者文件的所有者能改变文件的权限 例子:$ chmod

Hive编程指南学习笔记(1)

hive一次使用命令: $ hive -e "select * from mytable limit 1;" OK name1 1 name2 2 Time taken: 3.935 seconds $ hive -e "select * from mytable limit 1;" > /tmp/myfile $ cat /tmp/myfile OK name1 1 name2 2 Time taken: 3.935 seconds 静默模式: $ hive

JavaScript面向对象编程指南——学习笔记1

第1章 引言 1.1 回顾历史 1.2 变革之风 1.3 分析现状 1.4 展望未来 1.5 面向对象的程序设计 1.5.1 对象(属性和方法的集合) 1.5.2 类 (相似对象的共同特征,如麻雀.老鹰都是鸟类) 1.5.3 封装 (将属性和方法集合起来,也有封闭作用域的概念,如封装一个播放器对象) 1.5.4 聚合 (将几个对象合并成一个对象) 1.5.5 继承 (一个实例对象继承父级对象的一些属性和方法) 1.5.6 多态 (一个对象调用其他对象的方法,call和apply) 1.6 OPP