设为首页 收藏本站
查看: 902|回复: 0

linu系统管理中和shell编程中常用的技巧

[复制链接]

尚未签到

发表于 2018-8-28 07:56:00 | 显示全部楼层 |阅读模式
  1 循环(命令执行...但参数会变)
  如以下形式:
#!/usr/bin/env bash  
#encoding=utf-8
  
a="
  
value1
  
value2
  
value3
  
value4
  
value5
  
value6
  
"
  
for i in $a
  
do
  
        echo "cmd $i argv"
  
done
  注意: $a 不能写成"$a",否则只能成为一个变量,不能成为被迭代的循环
  2 使用系统自带函数,颜色输出
#!/bin/bash  
. /etc/init.d/functions
  
if grep -q swap /etc/fstab;then
  
    action "系统存在swap分区" /bin/true
  
else
  
    action "系统不存在swap分区" /bin/false
  
fi
  注意:
  1 使用的是系统库functions中的函数
  2 /bin/true返回码($?)是0,/bin/false 返回码是1
  3 携带在functions脚本中的环境变量
  # Set up a default search path.
  PATH="/sbin:/usr/sbin:/bin:/usr/bin"
  export PATH
  3 命令块一起执行----花括号的作用之一
  #!/bin/bash
[ -d /data/ ] && {  
cd /data
  
touch 1
  
rm -f 1
  
}
  注意:
  1 {} 一定要分行写或者带空格,并且cmd后面一定要有分号{ cmd1; cmd2; cmd3; },{cmd1; cmd2; cmd3}这个格式是错误的
  2 与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,所以避免使用小括号作为命令组,小括号会新开的一个shell,所以小括号中的变量不能被后面继续使用
  参考:http://blog.csdn.net/tttyd/article/details/11742241
  4 大括号的展开--发括号的作用二
  展开,以逗号进行分隔展开
touch {1,2,3}.txt  连续的扩展展开以..分隔顺序列表的起始
# echo {a..c}.txt  
a.txt b.txt c.txt
  注意:大括号中不允许存在空格
  5. ssh的自动化选项
ssh $ip -o UserKnownHostsFile=/dev/null -o ConnectTimeout=3  -o BatchMode=yes -o StrictHostKeyChecking=no  6 screen
  screen -S name  创建一个这样的窗口 虚拟终端
  screen -ls
  screen -r name/id  恢复窗口
  ctrl +a +d 退出但不关闭窗口
  ctrl +a  +k 杀掉当前会话窗口
  ctrl +a +z 将这个会话挂起回到 SHLVL=1 的状态(fg 1 恢复)
  screen -d pid/name 将这个窗口置为离线
  echo $SHLVL 可以检查是不是在窗口中还是在正常的shell终端中
  screen -x 多个人同时可以看处于Attached的窗口动态(适合远程多个人需要看屏
  幕)
  注: screen 中会话的三种状态
  1 Attached  处于运行当中的,如果你要 screen -x name/pid 可以看
  2 Detached 处于离线的 screen -r name/pid 可以恢复到那个窗口
  3 Dead 处于被kill -9 pid 杀死的,如果需要移除 screen -wipe pid/name
  7 shell中生成进度条的函数
function sleepPrograss() {  
    [ $# -eq 0 ] && echo "sleepPrograss Usage: sleepPrograss 10 "
  
    [ $# -eq 0 ] && return 1
  
    allTime=$1
  
    strDone=''
  
    stepTime=$(echo "scale=1; $allTime/100" | bc)
  
    for ((i=0; $i

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557484-1-1.html 上篇帖子: shell的几种运算方法 下篇帖子: shell linux日志分析脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表