关闭

linux脚本基础篇--21条入门学习笔记

标签: shell 脚本 linux 入门 基础
107人阅读 评论(0) 收藏 举报
分类:
Linux Shell Scrip入门笔记
1、$表示取变量值

2、常用系统变量:PS1,PS2,HOME,PATH,PWD,UID,其中~=HOME

3、${ }

4、脚本可以进行参数传递,$0、$1、$2...其中$1、$2。。。分别是第一个、第二个参数

5、PATH--路径,多个路径之间用:连接。将自定义的存放脚本的目录加入PATH后,就可以直接输入脚本名执行脚本。

6、登录脚本:用户登录时会自动执行的脚本。系统在用户登录时会在用户目录下检测登陆脚本,比如sirius用户登录时会在/usr/home/sirius目录下检测一下三个脚本文件:~/.bash_profile ~/.bash_login ~/.profile 可将添加PATH的命令写入此脚本中,这样就不用每次登陆都手动添加PATH.

7、read命令,从键盘读入。若read没有带参数,则读入的内容会放入REPLYA变量中,通过$REPLAY可读取read的值。read可带参数,参数为变量,会将输入的内容按字分别送给个变量。若输入的字数多余参数变量,则多余字全部赋予最后一个变量。

8、命令替换允许将管道行的输出赋值给变量。比如讲date命令的输出分支给a。方法:a=$(date)。当输入echo $a时,就能显示日期和时间。

9、basename命令,用完整的路径名做参数,它将路径名去掉只送回基本的文件名。如:输入basename HOME/file1
则输出file1

10、退出状态$?  当执行一条命令或管道行时,用返回0来表示执行成功,用非0来表示执行失败。返回状态保存在$?中。

11、一些特殊状态变量:
$?--保存shell最后执行的命令的退出状态
$$--保存当前的shell的PID
$#--保存给传送当前script的命令参数的数目。
举例:test 1 2 3
$#为3
$*为“1 2 3”
$@为“1” “2” “3”
以上特殊状态变量只可以都,不可赋值。

12、流程控制语句if
if expression
 then
 else
fi

13、流程控制语句test
test -e f 如果文件f存在,返回真值
test -f f 如果f是普通文件,返回真值
test -d f 如果f是目录
test -r/-w/-x f 如果能读/写/执行文件,返回真值
test -z str 如果str长度为zero
test -n str 如果str长度不为zero
test str1=strt2
tset str1!=str2
test num1 -eq num2  注意字符串和数字的比较方法不同
   -ne
          -lt  Less than
   -gf  Grave than
   -le  less and equal
   -ge
test exp1 -a exp2 两者都成立
test exp1 -o exp2 
test !exp

14、shell支持算数表达式
如:$ num1=2
    $ num1=$[$num1*3+1]
    $ echo num1
      7

15、while condition
    do
    commands
    done

16、sleep N 脚本挂起N秒,用于延时

17、until condition
    do
   commands
    done

19、用法一
for variable in wordlist
do
 commands
done
例:
for i in 1 2 3
do
 echo value of i is $i
done
常用for i in $*
把输入的参数作为for的参数列表,常简写为for variable,由命令自动补充in $*部分

20、case选择
case string in
exp1)
 command_1
 ;;
exp2)
 commmand_2
 ;;
.
.
.
*)
 default_commands
 ;;
esac

21、信号
内核有时会向进程或脚本发送信号,比如kill操作杀死进程,实际上是Kill通过内核通知进程或脚本,使其结束。在脚本中,能够捕获这种信号,当特定的信号发生时,做出相应的反应。
一些常用的信号的对应数值如下:
信号     数值       说明
hangup      1        退出登录时用来结束你的进程的信号
interruppt  2        从键盘产生的中断信号(ctrl-c)
quit     3  从键盘产生的退出信号(ctrl-\)
kill        9  不能忽视的强制结束进程信号
alarm     14  在alarm()系统调用结束时产生的警告信号
terminate   15  kill命令的默认结束信号
当系统收到一个信号后,他可以做出三种反应:
1、忽视  trap "" signal.list
2、接受信号的默认操作 trap signal.list 注:信号9只能是默认
3、执行一段程  trap "commands" signal.list
signal.list 用数字 1 2 3 9 14等来表示
如 trap "rm ./passwd" 2 3 表示收到2 或3信号是执行rm命令
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:930次
    • 积分:38
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档