unix shell 范例精解第11章学习笔记.docx

上传人:b****5 文档编号:7497740 上传时间:2023-01-24 格式:DOCX 页数:9 大小:18.21KB
下载 相关 举报
unix shell 范例精解第11章学习笔记.docx_第1页
第1页 / 共9页
unix shell 范例精解第11章学习笔记.docx_第2页
第2页 / 共9页
unix shell 范例精解第11章学习笔记.docx_第3页
第3页 / 共9页
unix shell 范例精解第11章学习笔记.docx_第4页
第4页 / 共9页
unix shell 范例精解第11章学习笔记.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

unix shell 范例精解第11章学习笔记.docx

《unix shell 范例精解第11章学习笔记.docx》由会员分享,可在线阅读,更多相关《unix shell 范例精解第11章学习笔记.docx(9页珍藏版)》请在冰豆网上搜索。

unix shell 范例精解第11章学习笔记.docx

unixshell范例精解第11章学习笔记

1.1.1环境

初始化文件是在用户登录时,初始化一些参数为目的。

主要有三个

(1)/etc/profile 系统管理员可读写,为所有用户设置初始化参数

(2)$HOME/.profile每个用户各自的初始化文件

(3)$HOME/.kshrc 需要在.profile文件中设置了ENV参数才会执行该文件。

 

1.1.2set命令

set–o选项    用于设置位置参数

set+o选项    用于去除位置参数

set选项:

allexport    -a   设置变量自动导出

bgnice           后台任务在更低优先级下运行

vi               使用vi作为编辑器

emacs           使用emacs作为编辑器

ignoreeof       禁止用^D(Ctrl+D)登出

monitor       -m   允许作业控制

 

 

1.1.3.提示符

默认主提示符为PS1=”$”

 

1.1.4.搜索路径

在命令行输入命令后,ksh会在PATH变量所列的目录中搜索该命令,如果找不到,提示ksh:

filenamenotfound

 

1.1.5句点命令.

句点命令(.)是ksh的一个内置命令,该命令将一个脚本文件名作为命令参数,该脚本在当前shell环境下执行时不启动子进程。

句点命令通常在.profile或ENV文件修改后,重新执行他们。

 

1.2.1shell启动过程

init->getty->login->ksh

 

 

1.3命令行

1.3.1命令行执行次序

(1)关键字(如if,while,until)

(2)别名

(3)内置命令

(4)函数

(5)脚本和可执行程序

可以通过type命令来检查命令的类型,type命令为whence-v的别名

 

1.3.2退出状态

命令或者程序终止后,会向父进程返回一个退出状态。

退出状态是一个0~255之间的证书。

如果返回状态为0,表示命令执行成功;

如果返回状态为非零,则表示命令执行不成功

返回状态存储$?

变量中

 

1.3.3含多条命令的命令行和命令组

可以在同一行输入多个命令,命令之间使用;分号隔开

command1;command2

 

1.3.4命令的条件执行

command1&&command2 如果command1执行成功,这执行command2;如果前者执行不成功,这不执行后者。

command1||command2 如果command1执行不成功,这执行command2;如果前者执行成功,这不执行后者。

 

1.3.5后台执行的命令

command&在命令后面添加&后,该程序将在后台执行。

将产生一个作业ID进入后台执行,可以使用jobs查看改作业。

 

1.3.6命令行历史

可以使用history命令查看执行过的命令,用户执行过的命令都贮存在~/.sh_history中。

可以重用r命令重复执行命令

r+command将执行command命令最后一次执行的情况

r+number 将执行序列为number的command

 

1.3.7命令行编辑

ksh内置vi和emacs编辑器,

可以通过下来命令来设置默认编辑器

set-ovi或VISUAL=vi或EDITOR=/bin/vi

 

1.4文件名扩展

aix中不支持,linux可以使用tab键

 

1.5别名

别名是ksh或者用户定义的一个命令的缩写,别名可以包括字母和数字。

alias可以查看所有别名

aliascl='clear'可以创建别名

unaliascl可以删除别名

alias-t可以参看所有别名定位

 

1.6作业控制

作业控制来控制前台和后台作业的执行

一般系统都开启来作业控制,如果没开启可以使用set-omonitor

 

jobs或jobs-l列出所有的未完成的进程

^Z(Ctrl+Z)停止当前作业

fg%n在前台运行后台作业

bg%n在后台运行作业

wait%n等待作业号为n的作业结束

kill%n总之作业号为n的作业

 

1.7元字符

元字符是代表自身以外的内容的特殊字符

主要有以下一些

\       按字面含义解释他后面那个字符

&       在后台处理

;       分割命令

$       替换变量

?

       匹配单个字符

*       匹配零个或多个任意字符

(cmds)    在子shell中执行命令

{cmds}       在当前shell中执行命令

 

1.8文件名替换(通配符)

1.8.1noglob变量

set-onoglob可以关闭文件名替换,即不允许*、?

等替代文件名

 

1.8.2代字符号和连字符号扩展

~         表示当前用户的home目录

~user    表示user用户的home目录

~+        当前目录的完整路径

~-        此前目录的完整路径

-         此前的目录

$OLDPWD   此前的目录

 

1.8.3通配符

元字符  

含义

*

匹配零个或多个字符

匹配一个字符

[abc]

匹配a、b、c这组字符中的一个

[!

abc]

匹配除a、b、c以外的任一字符

[a-z]

匹配a到z范围内的任一字符

\

转义或精致后面那个元字符

 

1.9变量

1.9.1局部变量

(1)局部变量的值只能在当前shell中可见,不可以传递给子shell。

(2)要提取变量值只需在变量前添加美元符$,但只需部分字符串的为变量时,需要用{}括起来。

例如echo${car}go只会打印出$car的变量值后面跟上go

(3)设置只读变量,如下,test为只读变量

typeset-rtest=tom

(4)特殊变量$$为当前shell的ID

 

1.9.2环境变量

(1)环境变量对创建他们的shell和该shell派生的所有子shell和进程都可见。

按照惯例所有环境变量都应该大写

(2)可以使用export命令命名环境变量

 

1.9.3列出已设置的变量

set命令将输出所有的变量,包括局部变量和全局变量

env命令只显示全局变量

typeset命令显示所有的变量、整数、函数和已导出的变量

set-o命令显示ksh的所有选项

 

1.9.4复位变量

unset变量名

 

1.9.5显示变量的值

原先的echo命令还可以使用,但是推荐使用新的命令print,下面为print的一些选项

选项

含义

-

所有跟在他们后面的参数都不被认为是选项参数。

短线允许出现连字符的参数如-2

-f

在1988ksh版本以后出现,用力啊模拟printf

-n

标准输出不换行,如同echo-n

-p

发送输出到连接的进程或者管道而不是标准输出上

-r

阻止print命令对转义序列进行解释

-s

输出结果作为命令被追加到历史文件中,而非标准输出中

-un

重定向输出到文件描述符n上

1.9.6转移序列

转义序列由一个反斜杠后跟一个字符构成,当该字符序列包含在引号(单双引号都可以)中时,有着特殊的含义。

转移序列

含义

\a

响铃字符

\b

退格

\c

取消信号并忽略其后的任何参数

\f

换页

\n

换行

\r

回车

\t

制表符

\v

纵向制表符

\\

反斜杠\

\0x

一个用1、2或者3位ASCII值表示的8位字符,如\0123,显示结果为S

\E

作为转移序列使用,仅出现在1988年之后的版本中

 

11.9.7变量表达式和扩展修饰符

11.9.8变量子字符串扩展

11.9.9变量属性:

typeset命令

typeset可以控制一些变量属性,显示函数属性

命令

所做的动作

typeset

显示所有的变量

typeset-inum

将num设置为整型

typeset-x

显示所有已经导出的变量

typesetabc

设置局部变量a、b、c

typeset-f 

列出函数以及其定义,函数其实是它的别名

typset-rx=foo

将x设置为只读变量,值为foo

typeset+f

列出函数名称

11.9.10位置参数

shell脚本通常使用特殊内置变量--位置参数(positionalparameter)从命令行接受参数,位置参数还被函数用来保存传递给它的参数。

可以使用set来设置位置参数

参数表达式

作用

$0

表示当前shell脚本的名字

$1-$9

代表第1到第9个位置参数

${10}

第10个位置参数

$#

其值为位置参数的个数

$*

其值为所有的位置参数

#@

除了加双引号的情况,作用与$*相同

"$*"

其值为“$1$2$3"等

"#@"

其值为“$1”“$2”“$3"等

11.9.11其他特殊变量

变量

含义

$$

当前shell的PID

$-

当前的ksh选项设置

$?

shell执行的上一条命令的退出状态

$!

最后一个进入后台的作业的PID

 

11.10引用

11.10.1反斜杠

反斜杠用于防止单个字符被解释。

11.10.2单引号

单引号必须配对使用,以用来保护所有元字符不被解释。

要显示单引号,必须使用双引号包含起来,或者一个反斜杠对其进行转义。

11.10.3双引号

双引号必须配对使用,它允许其中的变量和命令替换但保护其他元字符不被shell解释。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1