shell脚本学习 五
来源:互联网 发布:济南软件测试培训 编辑:程序博客网 时间:2024/05/23 01:16
case “字符串变量” in
值1) 指令1
;;
值2)指令2
;;
*) 指令
esac
[3-9] 表示 3到9 的整数
apple|APPLE 中间可以用或
给文字加颜色,就是在文字两头加上特定的字串
字颜色:30—–37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40—–47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”
最后面控制选项说明 www.2cto.com
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
函数:就是函数名() {......}
调用的时候就是直接用:函数名 参数 参数 参数...就可以了
Linux 系统中有 NFS : net file system 或者Portmap脚本
less /etc/init.d/portmap less 命令表示 查看文档 pageup 和pagedown 可以翻页
lsof -i : 80 #lsof -i 用以显示符合条件的进程情况 “:80” 这样条件的进程被选了出来
命令行的最后一个& 表示的是 该行程序 是后台执行的程序
如果要调入前台 可以用 fg 命令
用cont+z 暂停
输入 bg 丢入后台去
输入jobs 显示所有后台进程
fg 序列号 就可以拿到前台
也可用nohup /server/scripts/uptime.sh & #nohup 也是把进程放入后台的方式
系统 crontab 最小的时间粒度是一分钟,但是用while 方式后台执行可以用到粒度为妙(微秒)
-f 表示文件是否存在并且为普通文件
-e 表示文件是否存在。
RSYNC
rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步
用/etc/init.d/rsyncd start|stop|restart 来启动服务。不建议用service rsyncd start 来启动服务
重要脚本 /etc/init.d/functions 和 /etc/rc.d/rc.sysinit 以及 nfs portmap httpd
while 条件
do
指令...
done
uptime 查看系统负载情况
04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20
当前时间 04:03:58
系统已运行的时间 10 days, 13:19
前在线用户 1 user
平均负载:0.54, 0.40, 0.20,最近1分钟、5分钟、15分钟系统的负载
printf “totalsum is :$sum\n ” #格式化输出更好看些
计算程序时间 用time关键字 加到 欲计算时间的脚本之前
seq 10 -1 1 打印 从10 打到1 间隔 -1长度
awk ‘{print $10}’ xxxxx |grep -v -|tr "\n" "+" #把xxxxx文件打印第10列 然后过滤 - 然后把换行变成 + 求和
但是最后会多出一个加号
所以 awk ‘{print $10}’ xxxxx |grep -v -|tr "\n" "+" |sed ‘s#yyy#zzz#g’ 最后的是 把yyy替换成zzz
输出计算字符串集合才能送往bc echo `mmmmmmmm`|bc (注意要用反引号)
!!! 打印输出的内容才能传入管道
while read line # 表示读入的时候是一行一行的处理
do
size=`echo $line|awk '{print $10}'`
["$size"=="-" ] &&continue
((sum=sum+$size))
done<access_2010-12-8.log
或者用exec<file 在前面读入文件 exec是命令不是变量,其他一样
或者用 cat ${FILE_PATH} | while read line 用管道的方式读入
for 循环的方式
for num in $size #(其中$size 可以省略) 省略时相当于in “$@”
do
xxxxx
done
for((exp1;exp2;exp3))
do
指令
done
ls -l |grep ^d 找出当前目录下 的子目录(类型为d)
ls -F | grep / 同上
ls *.jpg|awk -F 'ttt' '{print "mv" $0 " " $1 " .jpg"}'| bash # 把拼接好的命令交给bash处理
echo -en
-n 不要在最后自动换行
-e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
LANG=en 表示设定英文显示
chkconfig --list |grep 3:on 显示所有开机选项里 “3:on” 的行
seq -w 10 会输出 01 02 。。。10 这样等长(2个长度)的序列
for n in $(seq -w 10)
do
useradd oldboy-$n
echo "$n"|passwd --stdin oldboy-$n #添加10个用户 密码录入对应的用户,密码是$n
done
随机数 echo $RANDOM 和 echo $(date +%t%N)
把随机数交给md5 echo $(date +%t%N)|md5sum
把不用的结果定向到空>&/dev/null 这样输出更好看
- shell脚本学习 五
- Shell脚本学习笔记(五)--函数
- Linux shell脚本全面学习(五)
- 【Shell】【学习笔记】Linux Shell脚本应用(五)
- linux学习(五) shell脚本(2)
- 详细介绍Linux shell脚本基础学习(五)
- Shell脚本基础学习(五)----case命令
- 【脚本学习】区分shell与shell脚本
- shell编程学习五
- Linux学习-shell(五)
- Shell脚本学习
- Shell脚本 学习
- shell脚本的学习
- shell脚本学习-1
- shell脚本学习-2
- shell脚本学习小结
- Shell脚本学习一
- shell 脚本学习
- Android自定义控件之日历控件
- LINUX DHCP学习
- Shiro简介
- iOS开发的就业形势怎么样
- leetcode001 Two Sum
- shell脚本学习 五
- Spring(六):Bean 的作用域
- linux内核设计与实现--内存寻址
- 面对对象思想5
- 关于java中除0的问题
- ubuntu14.04 LTS安装firefox最新版
- Conturbatio
- Java输出一个对象
- Java 常用正则表达式