SHELL 近期学习
由于项目中很少使用到shell脚本所以。只是偶尔自学一点。慢慢积累。下面就把近段时间积累的发出来。学习。
#sort sort 按首字母排序 sort -n 按数字大小 从小到大排序 sort -rn 按数字大小 从大到小排序 demo: sort -n test.txt | uniq - c 一般和uniq组合使用 去重在计组数 who 当前有多少用户同时登录 linux系统 正则表达式 ?代表0个或者一个前置字符 K?代表零个或一个K字符 + 代表1个或者多个前置字符 K+ 代表一个或多个K字符 ^字符开头 $字符结尾 ^KKK$ 表示KKK字符匹配 \w 匹配任何单词组成的字符 \W 匹配任何非单词组成的字符 \< \> 匹配单词的起始与结尾 \b 匹配单词的起始或结尾处所找到的空字符串.这是\<和\>运算符的结合 \B 匹配两个单词组成字符之间的空字符串 | 匹配与|符号前后的正则表达式 {n,m} 表示前置字符出现的次数 范围0~255 \( \) 将\(和\)直接模式存储在特殊的保留空间最多9个模式 \(ab\).*\1表示匹配与ab组合的两次出现 \n 重复\(与\)括号内第n个子模式至此点的模式,n为1到9的数字,1为由左开始 DEMO: 表达式 匹配 tolstoy 位于一行上任何位置的7个字母tolstoy ^tolstoy 7个字母tolstoy,出现在一行的开头 tolstoy$ 7个字母tolstoy,出现在一行的结尾 ^tolstoy$ 正好包括tolstoy这个7个字母的一行,没有其他的任何字符 [Tt]olstoy 在一行上的任何位置居中,含有Tolstoy或是tolstoy sed 流编辑器(Stream Editor) sed的设计就是用来以批处理的方式而不是交互的方式来编辑文件。当你知道要做好几个变更--不管是对一个还是对数个文件 时,比较简单的方式是将这些变更部分写到一个编辑中的脚本里。再将此脚本应用到所有必须修改的文件 -g (global 全局) $echo Tolstoy reads well. Tolstoy writes well. > demo.txt; $sed 's/Tolstoy/xiaoyan/g' $ 默认以 空格键分割 去第一个和第三个字符串 $awk '{print "Hello",$1 ,$3, "BeyBye!" }' 切割 指定位置的字符 1,2,3-10 切割前十个字符 cut -c 1,2,3-10 file.txt 以:分割字符串成字符串数组 去第一个字符串 awk -F ':' '{print $1}' 定时任务 crontab -e 编辑当前用户的定时任务 (edit user's crontab) crontab -l 展示当前用户的定时任务(list user's crontab) crontab -r 删除当前用户的定时任务(delete user's crontab) /etc/init.d/cron restart 重启crontab服务 */1 * * * 1,2,3,4,5 command 工作日期间每分钟执行一次命令 0 8 * * 1,2,3,4,5 command 工作日期间每天8:00执行命令 虚拟签到配合系统的定时任务可以定时签到的。 由cookie保持session信息。 curl -D cookie.txt -b cookie.txt 'http://127.0.0.1:8080/xxxLog/loginUser.do?userBean.userid=xxx&userBean.userpwd=xxx' curl -D cookie.txt -b cookie.txt 'http://127.0.0.1:8080/xxxLog/signInSign.do' ####循环获取参数 for i in $* do echo "i is $i" done #####一到十的参数 $1 $2 ....${10}
ftp xx.xx.xx.xx userName passWord bin//二进制格式 cd ,pwd get xx.txt 下载文件 put xx.tar 上传文件 ls 列出远程机的当前目录 cd 在远程机上改变工作目录 lcd 在本地机上改变工作目录 ascii 设置文件传输方式为ASCII模式 binary 设置文件传输方式为二进制模式 close 终止当前的ftp会话 bye退出
Stay Hungry,Stay Foolish!