shell 脚本

【1】文件系统类型
Linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:

磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、
磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、
Ext3、Ext4、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、ReiserFS、
XFS、JFS、FAT(File Allocation Table,文件分配表)、FAT16、FAT32、
NTFS(New Technology File System)等;

网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户
机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、
Samba(SMB/CIFS)、AFP(Apple Filling Protocol,Apple文件归档协议)和WebDAV等;

专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、
PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)。
【2】文件系统的逻辑结构
树形的结构
【3】linux文件系统目录
/bin 存放系统中最常见的可执行文件
/dev 存放设备文件
/lib 存放库文件
/home 存放用户的工作目录
/mnt 通常用来挂载
【4】file 查看文件信息
file 文件名
【5】ln创建链接文件
软链接
ln -s 源文件 链接文件
软链接又称为符号链接,类似于Windows下的快捷方式
特点:
1.修改源文件或者链接文件时,另外一个跟着进行修改
2.删除软链接,源文件没有影响
3.删除源文件,链接文件失效,当源文件重新建立,链接文件恢复
注意:创建链接的时候尽量用绝对路径
硬链接
ln 源文件 链接文件
硬链接与源文件的inode号一样,可以同一个文件的不同名字,它依然是一个普通文件
特点:
1.修改源文件或者链接文件时,另外一个跟着进行修改
2.删除硬链接,源文件没有影响
3.删除源文件,链接文件不失效,依然可以用,当源文件重新建立,链接文件不恢复
【6】压缩与解压缩
1.gzip
gzip file 对file文件进行压缩,生成file.gz
gunzip file.gz 对压缩包file.gz进行解压,生成file
注意:gzip没有归档功能,所以不能对目录及多个文件进行压缩
2.bzip2
bzip2 file 对file文件进行压缩,生成file.bz2
bunzip2 file.bz2 对压缩包file.bz2进行解压,生成file
注意:bzip2没有归档功能,所以不能对目录及多个文件进行压缩
3.zip
zip file.zip file 对file文件进行压缩,生成压缩文件file.zip
unzip file.zip 对file.zip进行解压
zip具有归档功能,所以压缩目录或者多个文件
zip test.zip test 对test目录进行压缩,生成test.zip
zip file.zip file1 file2 对文件file1和file2进行归档压缩
zip -r 对目录及目录的内容一起压缩
*4.tar
-c 创建归档文件
-x 释放归档文件
-f 用户指定归档文件的文件名,否则使用默认名称
-j 由tar生成归档,然后由bzip2压缩
-z 由tar生成归档,然后由gzip进行压缩

tar -cf file.tar file1 file2 对file1和file2生成归档文件file.tar
tar -xf file.tar 对file.tar进行释放归档

tar -cjf file.tar.bz2 file1 file2 对file1和file2生成归档文件并压缩
tar -xjf file.tar.bz2 对file.tar.bz2进行解压释放归档

tar -czf file.tar.gz file1 file2 对file1和file2生成归档文件并压缩
tar -xzf file.tar.gz 对file.tar.gz进行解压释放归档
【7】修改文件权限
chmod 选项 文件名
u 表示文件的所有者
g 表示文件所在的组
o 表示其他用户
a 所有,以上三者

+ 表示增加权限
- 表示取消权限

r 读权限
w 写权限
x 执行权限
例子:chmod u+x 文件名
chmod 0664 文件名
【8】shell脚本相关概念
C语言--编译型语言
shell脚本--解释型语言
shell脚本的本质:
shell命令的有序集合
【9】shell脚本编程的基本过程
1.建立shell文件
以.sh结尾的文件
2.赋予shell文件执行权限
chmod 0777 文件名
3.执行shell文件
./文件名 或者bash 文件名
【10】shell变量
shell允许用户建立变量存储数据,但是不支持数据类型
将任何赋值给变量的值都解释为一串字符

通常shell变量使用大写字母来表示

注意:shell中,赋值前后不能加空格
A = 100 × A=100 √
$A 取变量A的值

shell变量的分类
用户自定义变量
位置变量即命令行参数
预定义变量
环境变量
【11】echo的使用
1.在终端上输出数据 echo $A
2.-n 表示不换行
3.-e 支持转译
4.单引号使特殊符号没有了特殊意义
5.双引号使特殊符号没有了特殊意义,除了 $ \ `
6.\使近后面的一个字符没有了特殊意义
【12】注释方法
:<<!
!
一般用#这种方式
【13】位置变量
$0
$1
$2
。。。
$9
$# 包含命令行参数的个数
$@ 包含所有命令行参数
$? 前一个命令的执行状态
$* 包含所有命令行参数
$$ 正在执行进程的pid号

【14】shell程序和语句
shell程序由零或多条shell语句构成
shell语句:
说明性语句
以#开始,到该行结束,不被解释执行(注释)
功能性语句
任意的shell命令,用户程序或其他shell程序
结构性语句
条件测试语句、多路分支语句、循环语句、循环控制语句
【15】功能性语句
1.read 从终端输入数据赋值给变量
read val
把读入的数据存放到val中

-p 输出提示信息
read -p "please input two number >>>" A B
-t 在设定的时间范围没输入,如果时间到达还没有输入,不给变量赋值直接结束
read -t 5 -p "please input two number >>> " A B
-n 在设定的字符长度内容输入,如果达到字符长度,直接结束并赋值,没有达到
需要自己敲回车,输入是自带空格的
read -n 5 -p "please input two number >>>" A
2.expr
算术运算命令,+ - * / %
注意空格,按下面来

A=`expr 10 + 20

A=`expr 10 - 20`

注意乘号需要转译
A=`expr 10 \* 20`

 

A=`expr 10 / 20`

A=`expr 10 % 20`
注意+前后不能加空格
let A=10+20

A=$((10 + 10))

A=$[10 + 10]

 

 

【环境变量】
echo $PATH
echo $SHELL
echo $HOME

posted @ 2019-05-07 20:01  轩邈相映  阅读(136)  评论(0编辑  收藏  举报