linux复习(第四章)

简介: linux复习(第四章)

shell程序设计

shell特殊字符-引号

◦1.双引号 由双引号括起来的字符(除$、倒引号(`)和反斜线(\)外) 均作为普通字符对待。

◦2.单引号 由单引号括起来的字符全都作为普通字符出现

◦3.倒引号 倒引号括起来的字符串被shell解释为命令行,在执行时,shell 会先执行该命令行,并以它的标准输出结果取代整个倒引号部 分。 倒引号还可以嵌套使用。但应注意,嵌套使用时内层的倒引号 必须用反斜线(\)将其转义。

‘’别名

alias 起别名

unalias 取消别名

shell特殊字符-通配符

◦1.一般通配符

:1*(星号),它匹配任意字符的0次或多次出现,f*可以匹配 f,fa,f1,fa2,ffa.s

2?(问号),它匹配任意一个字符,f?可以匹配f1,fa,fb,不能匹配 fabc,f12

3[ ](一对方括号),其中有一个字符组。其作用是匹配该字符 组所限定的任何一个字符. f[abcd]可以匹配fa,fb,fc,fd,不能匹配 f1,fa1,fab等,也可写作f[a-d].

4 !(惊叹号),如果它紧跟在一对方括号的左方括号([)之后, 则表示不在一对方括号中所列出的字符f[!1-9].c表示以f开头, 后面一个字符不是数字1-9的.c文件名。

shell特殊字符-注释、管道线 和后台命令

◦1.注释 #!/bin/bash

2.管道线 ls-l $HOME | wc–l

3.后台命令 $ gcc m1.c&

shell特殊字符-输入/输出重 定向符

◦ 自动打开三个标准文件,即标准输入文件(stdin),标准输出文件(stdout)和标准错误输出文件(stderr)。

◦1.输入重定向符 一般形式是:命令 < 文件名 如:$ score < file1

◦2.输出重定向符 一般形式是:命令 > 文件名 如:$ who > abc

◦3.输出附加定向符 一般形式是:命令>>文件名 如:$ ps-l >> psfile

输入/输出命令 ◦

1.read命令

2. echo命令

环境变量 ◦1.常用的环境变量

HOME:用户主目录的全路径名

LOGNAME:即你的注册名,由Linux自动设置

MAIL: 你的系统信箱的路径

PATH: shell从中查找命令的目录列表。可以设置它, 如:PATH=P A T H : PATH:PATH:HOME/bin PS1:shell的主提示符。 bash默认的主提示符一般为“\s-\v$ ”。其中,\s表示shell的名称; \v表示bash的版本号 PS1="Enter Command> "

PWD:你当前工作目录的路径

SHELL:你当前使用的shell

TERM: 你的终端类型

.删除环境变量 $ unset NAME

.export语句
利用export命令将这些变量输出,使它们成为公用量
set命令
⑴ 显示迄今为止所定义的全部变量,包括局部量和公用量;

⑵ 用来设定位置参数的值;

⑶ 改变执行shell脚本时的选项设定,可以使用户改变shell的功能。

◦bash中算术运算的使用

控制结构-if语句

if 测试条件

then 命令1

elif 命令2

then 命令3

else 命令4

fi

有关文件方面的测试

-e filename 如果 filename存在,则为真

-L filename 如果 filename为符号链接,则为真

-r 文件名 若文件存在并且是用户可读的,则测试条件为真

-w 文件名 若文件存在并且是用户可写的,则测试条件为真

-x 文件名 若文件存在并且是用户可执行的,则测试条件为真


-f 文件名 若文件存在并且是普通文件,则测试条件为真
-d 文件名 若文件存在并且是目录文件,则测试条件为真


有关数值方面的测试

n1 -eq n2 如果整数n1等于n2,则测试条件为真

n1 -ne n2 如果整数n1不等于n2,则测试条件为真

n1 -lt n2 如果n1小于n2,则测试条件为真

n1 -le n2 如果n1小于或等于n2,则测试条件为真

n1 -gt n2 如果n1大于n2,则测试条件为真

n1 -ge n2 如果n1大于或等于n2,则测试条件为真

逻辑运算符

! 逻辑非( NOT

-a 逻辑与( AND )

-o 逻辑或( OR )

控制结构-case语句

在使用case语句时应注意: ⑴ 每个模式字符串后面可有一条或多条命令,其最后一条命令必须以两 个分号(即;;)结束。

case $1 in

-b) count=grep^b $2|wc -l

echo “The number of lines in $2 that start with b is $count.”;;

-s) count=grep^s $2|wc -l echo “The number of lines in $2 that start with s is $count.”;;

*) echo “That option is not recognized”;;

esac

控制结构-while语句

while [ $1 ]
 do
   if [ -f  $1 ] 
  then echo “display: $1” 
  cat $1 
   else echo “$1 is not a file name.” 
 fi 
 shift 
done

控制结构-until语句

它与while语句很相似,只是测试条件不同:当测试条件为假时,才进入循 环体,直至测试条件为真时终止循环。

until [ “$2”= “ ” ] 
do
  cp $1  $2
   shift  2 
 done 
 if [ “$1”!=“ ” ] 
 then echo “bad argument!” 

控制结构-for语句

其使用方式主要有两种: 一种是值表方式 另一种是算术表达式方式

1.值表方式

for 变量 [ in 值表 ];do 命令表;done

例:

for day in Monday Wednesday Friday Sunday

do

echo $day

done

2.算术表达式方式

for ((e1;e2;e3))

do

命令表

done

break continue exit

作业控制

jobs,kill,bg,fg和wait

jobs命令 不带参数时,可列出当前尚未完成的作业。

例如:

$ jobs

[2] +Done who|wc-cd

[1] -Stopped(SIGTTOU) man ls&

bg命令可以把前台作业切换成后台作业

fg命令可以把后台作业切换成前台作业

相关文章
|
6月前
|
存储 Linux Shell
Linux复习——基础知识
Linux复习——基础知识
82 0
|
5月前
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
588 14
|
消息中间件 人工智能 网络协议
Linux知识点(合集)
Linux知识点(合集)
120 0
|
Shell Linux 数据安全/隐私保护
|
存储 监控 Oracle
linux复习专用(第一章)
linux复习专用(第一章)
|
自然语言处理 NoSQL Linux
|
Unix Linux Windows
|
Linux 开发工具
超全的Linux基础知识思维导图(2)
超全的Linux基础知识思维导图(2)
超全的Linux基础知识思维导图(2)