《linux私房菜》 READING_NOTE

2017年11月2日 10:42:05

CHAPTER 13

第一行注释用的bash执行脚本

第二行注释程序的用途

第三行注释编写时间,作者,版本

第四行注释修改历史,时间,作者,版本

 

 

切换命令行界面和窗口界面:init 3为命令行界面,init 5为窗口界面。

 

SHELL编程

echo $a#显示变量内容,a为变量名

a=b  #将变量a设置为b,含有特殊字符时如空格,需要加上双引号(引号内的内容就是变量内容)或者单引号(引号内的为字符,无特殊符号)

unset a#取消变量a

 

a=1 #a变量为1

b=${a}2#b变量在a的基础上再多个字符2,、

 

a=1

b=’$a’#内容为$a

b=”$a”内容为1

 

read a#从用户的输入中读取变量a

[-t] n#n秒内等待输入

[-p] “  ”#prompt,输入时给出的提示,双引号内为提示的内容

 

declare [-a,i,x,r]       变量名 #默认是字符串

[-a]# 将变量定义为数组

[-i]#integer将变量定义为整数

[-x]#将变量变成环境变量

[-r]#readonly 将变量设置为只读

 

设置数组:

var[0]=“123”;

读取数组: echo ${var[0]}

 

登录界面: /etc/issue

远程登录界面:/etc/issue.net

 

数据重定向:>#覆盖写入,>>附加写入,

 

命令执行:a;b;c   #a执行完成之后,b执行,b结束之后c

a&&b       #a执行完成且正确,则b,否则不执行

b||c          #a执行完成且正确,b不执行。a执行完成且错误,则执行b

 

选取命令:cut –d ‘分割字符’ –f i,j        #以行为单位,以分割字符为特征切割字符串,并显示第i和j个

 

寻找字符串:grep  [-a,c,I,n,v]  ‘字符串’  filename

[-a] #将binary文件以text文件的方式查找

[-c]   #计算查找到字符串的次数

[-i] #忽略大小写

[-n]#输出行号

[-v]# 反向选择,即没有目标字符串的行

 

双向重定向:tee [-a ]    文件名 #将数据不仅重定向到文件中且继续在屏幕上输出

[-a]   #附加,没有则覆盖

 

 

 

shell script

1、  filename=${fileuser:-“filename”}

# 如果fileuser未配置或者为空,则filename=”filename”,否则filename=${fileuser}

2、  date1=${date –date=’2 days ago’ +%Y%m%d }

 

script执行差别,sh 是在子进程中执行,子进程的变量不会返回给父进程;

                                     source是在父进程中,执行会影响父进程的资源

 

$((运算内容))           #括号之间不能有空格

 

判断符号:[]

[  “$a”  ==  “d”  -o  “$a”  ==  “c”  ]  #判断变量a是否为d或者c,中括号之间的空格不能少

 

script中的默认变量: 如命令为: sh sh01.sh a bc

$0:被执行的文件名

$#: 命令后的参数个数,为3,a,b,c

$@:所有的参数:a b c

$1:第一个参数,a

$2:第二个参数,b,依次类推

shift n:拿掉前n个参数

 

条件判断式:

if   [  条件判断 ];   then

语句

fi                #反过来写代表结束

-----------------------------------------------------------------------------------------

if  [ ```  ];  then

```````````

else

``````````

fi

------------------------------------------------------------------------------------

if [`````];  then

`````````````````

elif [`````];  then

 

else

`````````

fi

 

declare的使用:

script中计算

declare –i date_total_s=$(($date_dem-$date_now))

# date_dem,date_now为变量

script中执行命令:

declare –I date_now=”$(date +%s)”

 

CASE语句:

case $变量名称  in

“第一个变量内容”)

程序段

;;

“第二个变量内容”)

程序段

;;

*)                 #表示其他情况

程序段

;;

esac

 

function学习:

function 函数名 ()  {

程序段

}

调用:函数名  参数1,参数2,···

函数体中取得参数的方法:$0,$1…含义类似

 

循环结构:

while [ 判断式 ]

do

循环体

done

 

until [ 判断式 ]

do

循环体

done

 

for 循环变量 in 第一次循环变量的值  第二次循环变量的值 ······

do

循环体

done

 

for ((initial_value;limited_value;step))

do

         #program_segment

done

 

shell script的调试:

sh [-nvx]  scripts.sh

n:不执行,仅查询语法的问题,有错误才显示

v:在执行前将内容输出在屏幕上,先整体输出再执行

x:将使用到的SCRIPT内容显示在屏幕上,输出一行执行一行,内容前有”+”

 

CHAPTER 14

CHAPTER 15

CHAPTER 16

CHAPTER 17

 

ctrl –z将命令放入后台执行

jobs [-lrs]

l:显示所有后台的命令与PID

r:显示正在执行的后台命令

s:显示暂停的后台命令

CHAPTER 18

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值