shell脚本语言基本语法学习

Qiniu 七牛问题解答

shell脚本语言入门

问题解决方案Shell日常学习Cd / 进入到根目录Pwd 当前目录结构Tab 模糊查找补全命令Ifconfg 查看当前网络的信息*?[] 通配符 方便查询星花* 匹配多个 ls *.tar ?匹配单个 ls m???[ ] ls m* [od] 列出以m开头结尾为od 的目录火文件Ls x* [0-9]Ls g *[m-p]目录操作命令:当前工作目录:pwd进入主目录:cd ~列出文件类型:ls -F列出隐藏文件: ls -a或者 ls -aF显示文件的各种属性: ls -l显示目录下文件的信息: ls -aF /etc或者显示目录:dir或者显示文件的详细属性:vdir显示文件行号: cat -n filenameCat 有缺陷。滚动显示More +filename 下一页,分屏显示 按空格滚动或者用管道: cat -n filename |more查看文件的前五行: head -n 5 filename查看最后五行的内容: tail -n 5 filename更为强大的 less用方向键可以上下滚动,输入 q 可退出查找文件的信息: grep 内容 文件名在当前目录中查找文件名称中含有bash: find ./ -name *bash*查看文件类型 type +文件名查找某个目录下面名称为init.d 文件类型为目录的:find /etc -name init.d -type d -printType (c d f)C 为链接D 为目录f为普通文件指定时间在100天以内没使用过的命令: find /usr/bin/ -type f -atime +100 -print指定最后修改时间为一天之内的普通文件 : find ./ -type f -mtime -1 -print快速查找: locate filenameUpdatedb打开火狐浏览器:firefoxFirefox & 在后台运行Firefox 查找程序文件: whereis find查找find 命令的位置,和文档位置查看命令存在的目录: which ls查看当前系统中有哪些用户存在: who查看当前系统的版本信息:uname – a帮助命令: man find简单帮助命令: whatis ls正则表达式:Nl + filename : 以行查看文件,代替cat列出文件中以a 开头,以t结尾的文本:点代表任意字符,*代表任意次数,¥代表结 尾,…^代表开头。Egrep “^a.*t$” filename查看刚才的输出有多少个:加个| wc -w示例:Egrep “.at” filename这个命令显示出来的是at前面至少一个单词可能不会满足我们的需要,如果我们想要前面只有一个单词那么我们只能这样Egrep “\&;.at\&;”filename字符集的概念:以abc 其中一个开头的文件名Egrep “[abc]at” filename列出文件中,所有以大写字母开头,小写字母t结尾的:Egrep “^[[:upper:]]t$” filenameShell 编程

Vi helloword.sh

!/bin/bash这是一个实例文件

Echo “helloword”

Chmod u+x helloword.sh

./helloword.sh

另一个示例:

!/bin/bash

Log =”monday” Echo “this is monday” Echo (log)”

单引号括起来,所有都不解释 双引号。除了$,等不解释

!/bin/bash

Log=saturday

Echo “today is $log”

Echo ‘today is $log’

Echo “today is date”

输出结果

Shell执行命令和循环执行和控制语句

If判断命令

Case:

if

有关循环重复的语句。

! /bin/bash

Sum=0 Number =1 While test number ] Let nmber= sum”

-le -gt 大于

Cut命令

主要作用,从输入的行中,,提取指定的部分

源文件:

Beijing 010 Shanghai 021 Tianjin 022 Hangzhou 0571

命令: cut -c 3-6 city

命令: cut -f1 city 提取输入行的第一列

Sort 命令:

Sort city: 对第一列进行排序

Sort -r city: 对第一列进行反序排序

Sort -k 2 city : 对第二列进行排序

如果有重复的行:

首先要先排序一下,才能用uniq命令

Sort city |uniq 将几个字符替换成小写,输入在city中 Tr “BHS” “bhs”

代码实践一#!/bin/bashfunction gotoLogFile(){) echo $2 , $3; cd ~/logs/$2/REQ/UP; timePoint=`echo $3 |sed ‘s/.$/0/’`; echo “${timePoint}.log”; cat “${timePoint}.log” | awk -F ‘\t’ ‘{if($8 == 579){print substr($0, index($0, “uid”) + 5, 10)}}’ | sort -rn | uniq -c |sort -rn | head -20;;”4xx” ) echo “404”;;”6xx” )~/logs/$2/REQ/RS;timePoint1=`echo $3 |sed ‘s/.$/0/’`;echo “${timePoint1}.log”;cat “${timePoint1}.log” | awk -F ‘\t’cat “${timePoint}.log” | awk -F ‘\t’ ‘{if($8 == 579){print substr($0, index($0, “uid”) + 5, 10)}}’ | sort -rn | uniq -c |sortcat 16-40.log | awk -F ‘\t’ ‘{ if($8 ~/^4/){print $8, substr($0, index($0, “uid”) + 5, 10) }}’ | awk ‘{if( $1 == 404){a[$2] +=1 } else if($1 == 200){b[$2 +=1]} else{} } END{for (i in a) print a[i] ” ==>” i ; for (i in b) print b[i] ” ==>” i}’ ;;esac}]; <错误码> <日期> <当天时间点> for example $0 519 2014-12-28 11-29″;exit 1;figotoLogFile 代码实践二#! /bin/bashnumber=1filenumber=1length=200cd /home/liuhanlin/test/qiushi/totalfile=`ls -l |wc -l`echo “$totalfile”center=$totalfileflag=-1bound=mkdir mv number=center=$[ $center – $length ]echo “$flag”>config.txtecho “$center”>config.txt”>config.txtlet bound=$[ $length * $filenumber ]echo “$bound”>config.txtif [ $center -le $length ];mkdir mv number=$number+1done

如果心在远方,只需勇敢前行,梦想自会引路,

shell脚本语言基本语法学习

相关文章:

你感兴趣的文章:

标签云: