陈超众-Shell脚本
一. 命令基础
/
:根目录
~
:用户目录
ls -alF
: 可连续输入几个参数
touch
: 创建文件
cat
: 查看文件
vim
: 命令行编辑器
i
:插入
esc
:退出编写
:
接受命令
wq
:保存并退出
二. 第一个Shell脚本
实例:
#是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell
#!/bin/bash
echo "Hello World !"
运行shell脚本两种方法
1. 作为可执行程序
#使脚本具有执行权限
$chmod +x ./test.sh
#执行脚本
$./test.sh
2. 直接运行解释器
$
/bin/sh test.sh
$/bin/php test.php
三. Shell变量
定义变量
#定义变量时不加美元$符号; 变量名与符号之间不能有空格
your_name="chenchaozhong"
使用变量
your_name="chenchaozhong"
echo $your_name
#花括号是可选的,加花括号是为了帮助解释器识别变量的边界
echo ${your_name}
只读变量
readonly your_name
删除变量
unset your_name
Shell 字符串
# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字串中不能出现单引号
your_name='chenchaozhong'
#双引号里可以有变量, 双引号里可以出现转义字符
str="Hello, I know your are "$your_name"! \n"
# 获取字符串长度
echo ${#your_name}
#提取字符串
echo ${your_name:1:4}
#查找子字符串, 注意反引号
echoexpr index "$your_name" on
Shell 数组
#定义数组,空格分开,
数组名=(值1 值2 ... 值n)
#获取所有数组
echo ${array_name[@]}
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
最通俗的用法
zip -q -r -e -m -o [yourName].zip someThing
-q 表示不显示压缩进度状态
-r 表示子目录子文件全部压缩为zip //这部比较重要,不然的话只有something这个文件夹被压缩,里面的没有被压缩进去
-e 表示你的压缩文件需要加密,终端会提示你输入密码的
// 还有种加密方法,这种是直接在命令行里做的,比如zip -r -P Password01! modudu.zip SomeDir, 就直接用Password01!来加密modudu.zip了。
-m 表示压缩完删除原文件
-o 表示设置所有被压缩文件的最后修改时间为当前压缩时间
当跨目录的时候是这么操作的
zip -q -r -e -m -o '\user\someone\someDir\someFile.zip' '\users\someDir'
zip -r -e SuperMovieiPhone.zip SuperMovieiPhone