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 将 反引號括起来的 内容 作为系统命令,并运行。
反斜线:反斜线用于屏蔽特殊字符的特殊意义。
Linux Unix shell 编程指南学习笔记(第三部分)的更多相关文章
- Linux Unix shell 编程指南学习笔记(第五部分)
第二十五章 深入讨论 << 当shell 看到 << 的时候,它知道下一个词是一个分界符.该分界符后面的内容都被当做输入,直到shell又看到该分界符(位于单独的一行).比方: ...
- Linux Unix shell 编程指南学习笔记(第四部分)
第十六章 shell脚本介绍 此章节内容较为简单,跳过. 第十七章 条件測试 test命令 expr命令 test 格式 test condition 或者 [ conditio ...
- Linux Unix shell 编程指南学习笔记(第二部分)
第七章 正則表達式介绍 匹配行首与行尾 匹配数据集 职匹配字母和数字 句点 "." 匹配随意单字符. ^,在行首 匹配字符串或字符序列,如查询当前文件夹下的全部文件夹: ls - ...
- Linux 与 unix shell编程指南——学习笔记
第一章 文件安全与权限 文件访问方式:读,写,执行. 针对用户:文件属主,同组用户,其它用户. 文件权限位最前面的字符代表文件类型,常用的如 d 目录:l 符号链 ...
- Linux与Unix shell编程指南(完整高清版).pdf
找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分 ...
- maven权威指南学习笔记(三)——一个简单的maven项目
目标: 对构建生命周期 (build lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...
- maven 一个简单项目 —— maven权威指南学习笔记(三)
目标: 对构建生命周期 (build lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...
- 摘自《Linux与unix shell编程指南》
shift运行后,$#随之减少:如果需要知道命令行中输入的最后一个参数(通常是一个文件名),可以有两种选择:使用命令 eval echo \$$#;使用shift命令:shift 'expr $# - ...
- Linux与unix shell编程指南
第14章 环境和shell变量 1.使用变量时,尽量用花括号将之括起来,防止shell误解变量值. 2.设置变量时的不同模式 variable-name=value 设置实际值到variable-na ...
随机推荐
- yolo源码解析(3):进行简单跳帧
视频检测命令 ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights ../../dataset/ ...
- 省市区js三级联动(原创)
看了一些网上的js三级联动,但感觉不是缺这,就是少那,决定亲自操刀写了一个,现记录如下,以备后用! <!DOCTYPE html> <html> <head> &l ...
- php的mcrypt
安装和使用php的mcrypt扩展 程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障.PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库 ...
- POJ 2513 trie树+并查集判断无向图的欧拉路
生无可恋 查RE查了一个多小时.. 原因是我N define的是250500 应该是500500!!!!!!!!! 身败名裂,已无颜面对众人.. 吐槽完了 我们来说思路... 思路: 判有向图能否形成 ...
- node.js date-utils
前端引用 <script type="text/javascript" src="date-utils.min.js"></script> ...
- 企业级时间轴插件Vue-timelinepick
简介 时间范围选择插件 取当前时间之前一段时间范围 按刻,小时,天分类 在线演示及下载 在线演示:https://yelingfeng.github.io/vue-timelinepick/ 本地下载 ...
- 深度讲解智能硬件手机APP开发流程
常州做APP开发公司紫竹云科技分析,智能硬件产品的软件开发,除了APP和后台之外还有一个固件端的开发,由于固件是要运行产品上的,不过此时的硬件也是刚开始进行研发,所以是无法提供硬件来运行固件的.因此在 ...
- 三维重建:深度相机方案对比-KinectFusion的基本原理(尺度)
算法原理请参考此文: kinect fusion 3D重建基本算法 http://log.csdn.net/xiaohu50/article/details/51592503 三维重建为三维空间实 ...
- JS面向对象(1)——构造函数模式和原型模式
1.构造函数模式 构造函数用来创建特定的类型的对象.如下所示: function Person(name,age,job){ this.name=name; this.job=job; this.ag ...
- VS2008中C++打开Excel(MFC)
VS2008中C++打开Excel(MFC)——摘自网络,并加以细化 第一步:建立project(新建项目) 英文版 中文版 选择C++下的MFC Application(基于对话框的项目) 英文版 ...