1、统计目录下的文件夹数量:
ls -l | grep '^d' | wc;
grep '^d'统计文件夹,grep ‘^-’ 统计文件数目;
word count程序,用户统计字符数,-l 参数是统计一下有多少行
2、列举最老的2个文件:
ls -tr | head -2 | sargs
ls实现列文件按时间排序
1) ls -lt 时间最近的在前面
2) ls -ltr 时间从前到后
3、删除所有文件:rm -rf *;
if [$# -lt 1]; then
echo "You must use like this://publish.sh <packageName> <projectName>"
exit
fi
$# 表示提供到shell脚本或者函数的参数总数
4、删除10天前的备份数据
find /home/20* -type f -mtime +10 -print -exec rm -rf {}\;
查找文件用find命令
-type f 查找文件
-type d 查找目录
-mtime -2 修改时间在两天内
-mtime +3 修改时间在三天前
-exec rm -rf {}\ 将找到的文件删除
5、mkdir -p:创建目录以及目录下的文件。允许创建目录及子目录;
6、awk '{print $2}'
say we have a text file containing the following
bob 23 45 hello
jim 12 88 bye
awk {print $2}
23
12
awk {print $1,$4}
bob hello
jim bye
7、PID=`ps -aux|grep java|awk '{print $2}'`
8、在中括号中判断变量的值,加不加双引号的问题:
-z判断变量的值,是否为空;zero=0
-变量的值,为空,返回0,为ture
-变量的值,非空,返回1,为false
-n判断变量的值,是否为空name=名字
-变量的值 非空 返回0 为true
-变量的值 为空 返回1 为false
示例:pid=‘’123‘’
[-z "$pid"] 单对中括号变量必须加双引号
[[-z $pid]] 双对括号,变量不用加双引号
[-n "$pid"] 单对中括号变量必须加双引号
[[-n $pid]] 双对括号,变量不用加双引号
9、ps -ef|grep -v grep|grep ${servicePath} | grep java |awk '{print "kill -9 "$2}'|sh
等同于:
PID=`ps -ef|grep -v grep|grep ${servicePath} | grep java |awk '{print $2}'
kill -9 PID
kill 掉java这个程序
ps -ef | 获取当前服务器所有进程
grep -v grep 相当于grep自己过滤掉自己,就是不显示grep
grep java过滤出java
awk截取$2第二个域的pid号。通过调用外部命令kill来干掉java;
10、BAK_DIR=$backupPath/`date +%Y%m%d%H%M%S`:获取当前时间。
11、Linux下打包和解包的命令:
zip -r ${packageName} * && mv ${packageName} $BAK_DIR/ && rm -rf $servicePath/*
zip命令的基本用法:
zip [参数] [打包后的文件名] [打包的目录路径]
-a 将文件转成ASCII模式
-F尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
-y 保留符号链接
-x 指定不追加到zip包里的文件
示例:
zip -q -r html.zip /home/Blinux/html
将/home/Blinux/html这个目录下所有文件和文件夹打包为当前目录下的html.zip;
zip -q -r html.zip html
目前在这个目录下,执行以下操作可以叨叨同样的结果
zip -q -r html.zip *
比如我现在在html目录下,我操作的zip压缩命令将该目录下的所有文件压缩到html.zip
unzip -o ${packageName} -d $servicePath && rm -rf ${packageName} && rm -rf $servicePath/conf
unzip命令用于解压缩由zip命令压缩的.zip压缩包
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件
-l:显示压缩文件内所包含的文件
-p:与-c参数类似,会将压缩的结果显示到屏幕上,但不会执行任何转换
-t:检查压缩文件是否正确
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。
示例:
将压缩文件text.zip在当前目录下解压缩。
unzip test.zip
将压缩文件text.zip在指定目录/tmp
下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
unzip -v test.zip
将压缩文件test.zip在指定目录/tmp
下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d tmp/
12、