Linux系统Shell编程基础知识储备

===============================================================================

Shell程序由OS执行用户从键盘输入的命令。首先理解一个概念, Shell脚本,那什么是Shell脚本?,其实

Shell脚本是用shell语言写的程序,shell语言语法简单,关键字少,是一种解释型语言,程序由Shell解释

器解析执行。在终端输入 echo $SHELL 查看本机所用的Shell是哪种类型。


Shell类型
Shell类型 开发人员 开发机构 备注
sh (Bourne shell) Steven Bourne(斯蒂夫-波恩) AT&T Bell实验室 1978  Unix 默认Shell, 是其他各种Shell开发基础, Bourne Shell 编程方面优秀,在处
理与用户的交互方面不够友好
bash(Bourne Again Shell) Brian Fox(布莱恩-福克斯) 自由软件基金会(FSF)
/bin/bash
1989
Linux 默认Shell
csh(C Shell) Bill Joy Berkeley
(BSDSystem)
/bin/sh
具有与C编程语言类似的Shell语法
ksh(Korn Shell) David Korn AT&T Bell lab  
tcsh Ken Greer  /bin/tch 普通C Shell, 以用户为中心, 速度快,与
Berkeley Unix C Shell 兼容



















==================================================================================

编写Shell脚本的目的:(1)Linux系统监控 (2)数据备份和创建快照(3)针对MySQL等数据库备份的转储工作

(4)查询网络服务是否正常 (5)搜索耗费系统资源的进程.....

首先你应该对Linux基本命令了解, pwd, cd, ls, less, more, cat, file, chmod, chown, chgrp,pipe, sort, uniq, 

grep, pr, head, tail, sed, awk

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Shell脚本构成要素(1)if~else, for, while, loop指令(2)grep, awk等文本处理工具(3)Shell命令和可执行文件

特殊参数变量
特殊参数变量 定义
$# 表示十进制数的位置参数的总数
$$ 表示当前shell的进程的PID
$@ 表示从1开始的位置参数的扩展,具有总参数值
$0 表示分配已执行的脚本名
$1....${10} 表示分别浏览位置的参数
$_ 表示表示执行参数目录的Shell脚本的绝对路径
$? 表示最后执行的前台管道的终止状态

运算符 备注
= 字符串等于符号
!= 字符串不等于符号
-eg 数字等于符号
-ne 数字不等于符号
-a 逻辑与 and
-o 逻辑或 or
! 逻辑非 not
-gt 大于
-ge
-lt
-le
大于等于
小于
小于等于

文件测试
参数 说明 参数 说明
-b  filename 若filename存在且为块设备则为真 -r    filename
-w   filename
-x   filename
若filename存在且可读则为真
若filename存在且可写
则为真
若filename存在且可执行则为真
-c  filename 若filename存在且为字符设备则为真 filename1 -nt
flename2
若filename1的修改日期比filename2晚则为真
-d  filename 若filename存在且为目录则为真 filename1 -ot
filename2
若filename1的修改日期比filename2早则为真
-f   filename 若filename存在且为普通文件则为真 ilename1 -ef
filename2
若filename1和filename2具有相同设备,索引节点编号则为真
-L  filename 若filename存在且为链接文件则为真 -z str 若str长度为0则为真
-p  filename 若filename存在且为管道文件则为真 -n str 若str长度不为0则为真
-S filename 若filename存在且为套接字则为真 str1
 =
str2
str1等于str2则为真
-s filename 若filename存在且大于0则为真 str1
 != 
str2
str1不等于str2则为真
    ! 表达式 表达式为假则为真



























======================================Shell语法========================================

Linux系统Shell编程基础知识储备_第1张图片

Linux系统Shell编程基础知识储备_第2张图片

==============================================End======================================










你可能感兴趣的:(Linux系统Shell编程基础知识储备)