linux shell编程视频程

linux命令及shell编程 - 微信号codek2 @Android @Java @性能优化 @开源 - ITeye技术网站
博客分类:
今天写数据迁移脚本用到的一些命令
1、常用命令
1.1 find命令
find /home/admin/datas/dragoon2.5监控报警/*/10.20.136.15 -name 'jstat*'
在/home/admin/datas/dragoon2.5监控报警/这个目录任意子目录的10.20.136.15文件夹下查找含有jstat的文件
find .|xargs grep "app_env"
或grep 'app_env' -rs .
查找当前文件夹中文件及其子文件夹中包含app_env的文件
find -name '*.java' | xargs perl -pi -e 's|cn.trinea.app.customlayout.R|cn.trinea.gamecenter.R|g'
1.2 rm命令
rm -rf表示递归删除且不提示
find . -mtime +3 -exec rm -rf {} \;表示删除当前目录下所有3天前被修改的文件夹
find . -mtime +3 -exec rm -f {} \;表示删除当前目录下所有3天前被修改的文件
find . -mtime +3 -type f -name *.mail[12] -exec rm -f {} \;表示删除当前目录下所有3天前被修改且文件名包含mail1或mail2的文件
其中.表示当前目录,-mtime +3表示修改时间在3天前的,-exec rm -f --查找完毕后执行删除操作
-name *.mail[12] 表示适合这个规则的文件
1.3 查看大小
查看磁盘大小,执行df -h
查看文件夹大小,cd到文件夹所在目录下,执行du -sh
2、shell判断列举一个文件夹下所有文件(包括空文件)
listFileInDir() {
for file in $1/*
# judge file
if [ -f $file ] && [ ! -d $file ]; then
echo $file
判断文件和文件夹
-f file如果file存在,则为真
-s file如果file存在且内容字节数大于0,则为真。包含目录
-d directory如果文件存在且为目录,则为真
3、shell正则匹配
[ -d $ipFolder ] && [[ "$ipFolder" =~ "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" ]]; then
用=~ 来匹配正则,且两边必须是双括号。用[]括起来
关于ip正则更精确的见
4、shell字符串
4.1按字符查找子串
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要
vajra=home/monitor/datas/41/10.20.142.49
echo ${vajra##*\/}
echo ${vajra#*\/}
echo ${vajra%%\/*}
echo ${vajra%\/*}
10.20.142.49
monitor/datas/41/10.20.142.49
home/monitor/datas/41
4.2 按下标查找子串
${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。
EXCLAIM=cowabunga
echo ${EXCLAIM:0:3}
echo ${EXCLAIM:3:7}
4.3 字符串拼接
ipFolder=10.20.136.24
dirName= ${ipFolder}/jstat_gc
echo $dirName
echo $dirName$ipFolder
5、vi删除一个单词快捷键dw
修改vi tab为4个空格set tabstop=4
显示行号set nu
Y复制一行,p粘贴
ctrl +r 恢复,u撤销
vi文件比较、多屏查看文件
如比较a.txt和b.txt
首先:vi a.txt
然后:split b.txt便两屏查看两个文件,用ctrl+w切换视图
:set diff便可查看异同,用不同颜色高亮显示相关信息
6、shell变量初始化两边不能含空格
fileName = "a" # error
fileName= "a"
fileName ="a"
fileName="a" # right
7、shell写文件
shell写文件真是比java、c什么的都简单的多。。
monitorItemFolder=aaaaa
echo $monitorItemFolder && ~/jstatFile.txt
8、shell变量自增
if [ ${pidCount} -gt 0 ]; then
9、神奇的dollar符($)
9.1 $0, $1, $2,…${10}
$0表示当前脚本的文件名,$1表示第一个位置参数,以此类推,${10}表示第10个位置参数,10必须用{}括起来
都可以用于显示所有的位置参数,但$*将所有的位置参数当作一个整体,$@仍保持每个位置参数的独立性,只是一起显示而已
9.3 $#表示位置参数的个数
表示前面最后一个命令的退出状态,如wget是否成功,或是自定义脚本调用是否成功。
一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般系统指令程式倘若执行成功,其回传值为 0;失败为 1。脚本的返回值可以自定义
9.4 $$脚本运行的当前进程号
9.5 $!最后一个后台运行的进程进程号
9.6 $-显示当前shell的选项
示例代码如下:
#!/bin/bash
echo "\$0输出脚本名:$0"
echo "\$1输出第一个个位置参数:$1"
echo "\$*所有参数一个整体:$*"
echo "\$@所有参数,让保持独立性:$@"
echo "\$#参数总个数:$#"
wget "" && a.txt 2&&1
echo "\$?上一条命令状态:$?"
echo "\$\$当前进程号:$$"
echo "\$!最后一个后台运行进程的进程号:$!"
echo "\$-当前shell可选项:$-"
保存为文件ceShi.sh,执行命令./ceShi.sh p1 p2 p3 p4 结果如下:
$0输出脚本名:./ceShi.sh
$1输出第一个个位置参数:p1
$*所有参数一个整体:p1 p2 p3 p4
$@所有参数,让保持独立性:p1 p2 p3 p4
$#参数总个数:4
$?上一条命令状态:0
$$当前进程号:28501
$!最后一个后台运行进程的进程号:28502
$-当前shell可选项:hB
10、强制kill一些列进程
ps -ef|grep monitor|awk '{print $2}'|xargs kill -9
浏览: 878563 次
来自: 上海
中文加数字还是不行呀
多谢!!!!!!!!!!!!!!
这有些我开发过程遇到的最新问题及优化方案http://www. ...
lanxin_zxy_it 写道脑子里面有屎? 抄别人的干毛? ...
脑子里面有屎? 抄别人的干毛?有种发个demo出来?专题:领略Shell编程的魅力
【编者按】Shell是一种具备特殊功能的程序,它是介于使用者和 Uinx/Linux 操作系统之核心程序(kernel)间的一个接口。在Linux系统中,虽然有各种各样的图形化接口工具,但是Shell仍然是一个非常灵活的工具。用户既可以输入命令执行,又可以利用Shell脚本编程,完成更加复杂的操作。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修功课之一。下面我们一起来领略Shell编程魅力。
Shell编程大全
  Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口。为什么我们说 shell 是一种介于系统核心程序与使用者间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个系统资源的管理者……[][]
  本文主要解说BASH的ShellScript,用户LOGIN,端末软件启动等时的初期化文件和各个文件读入的顺序,并且将对初期化文件的内容进行详细的解说。
Linux的标准Shell是Bash,Bash的作用并不仅仅是对ShellScript的解释和实行,并且在用户登录控制Term端……[][]
  Linux环境中,Shell不仅是常用的命令解释程序,而且是高级编程语言。本讲介绍Shell概述、Shell变量、位置参数、特殊符号、别名、各种控制语句、函数等Shell编程知识。
Shell是Unix/Linux系统中一个重要的层次,它是用户与系统交互作用的界面……[][]
从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。
Shell小技巧
Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。Shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
您觉得以下哪一项是Shell的核心功能?
命令通配符
命令解释器
Shell脚本编程
责任编辑:杨春晖电话:010-Email:yangch@热门电子书
最新电子书
Linux Shell编程从初学到精通 伍之昂 著 中文 PDF 清晰版[81.4M]
Linux Shell编程从初学到精通 伍之昂 著 中文 PDF 清晰版[81.4M]电子书简介:
中文名: Linux Shell编程从初学到精通 作者: 华清远见嵌入式培训中心 伍之昂图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社 书号: 4 发行时间: 2011年03月 地区: 大陆 语言: 简体中文& 内容介绍: Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一。目前最流行的Shell称为bash Shell,bash Shell脚本编程以其简洁、高效而著称,多年来成为Linux程序员和系统管理员解决实际问题的利器。 本书结合大量的示例,系统、全面地介绍了bash Shell脚本编程的语法、命令、技巧、调试等内容,在书中还有很多练习可以引导读者思考,力求使读者掌握Linux bash Shell编程的所有特性。 本书结构清晰、易教易学、实例丰富、可操作性强、学以致用,对易混淆和实用性强的内容进行了重点提示和讲解,并配有光盘,光盘中提供书中出现的所有脚本文件、各章的讲解PPT,以及各章的讲解录像。 本书面向广大工程技术工作者,既可作为高等学校教师和相关专业学生的教材,又可作为各类培训班的培训教程。 读者对象:本书面向广大工程技术工作者,既可作为高等学校教师和相关专业学生的教材,又可作为各类培训班的培训教程。 目录: 第1章 Shell脚本编程概述1 1.1 Linux和Shell概述2 1.1.1 Linux简介2 1.1.2 Shell简介3 1.2 Shell脚本编程的优势5 1.3 第一个Shell脚本例子6 1.3.1 Shell脚本的基本元素6 1.3.2 执行Shell脚本7 1.4 本章小结8 第2章 Linux文件系统和文本编辑器9 2.1 用户和用户组管理10 2.1.1 用户管理常用命令10 2.1.2 用户组管理常用命令14 2.2 文件和目录操作16 2.2.1 文件操作常用命令17 2.2.2 目录操作常用命令21 2.2.3 文件和目录权限管理25 2.2.4 查找文件命令&&find28 2.3 文本编辑器31 2.3.1 vi编辑器31 2.3.2 Gedit编辑器35 2.4 本章小结36 2.5 上机提议37 第3章 正则表达式39 3.1 正则表达式基础40 3.2 正则表达式的扩展43 3.3 通配44 3.4 grep命令46 3.4.1 grep命令基本用法47 3.4.2 grep和正则表达式结合 使用的一组例子53 3.4.3 grep命令族简介57 3.5 本章小结58 3.6 上机提议58 第4章 sed命令和awk编程60 4.1 sed命令基本用法61 4.2 sed编程的一组例子63 4.2.1 sed命令选项的一组 例子63 4.2.2 sed文本定位的一组 例子66 4.2.3 sed基本编辑命令的 一组例子68 4.2.4 sed高级编辑命令的 一组例子76 4.3 awk编程79 4.3.1 awk编程模型80 4.3.2 awk调用方法80 4.4 awk编程的一组例子81 4.4.1 awk模式匹配81 4.4.2 记录和域82 4.4.3 关系和布尔运算符84 4.4.4 表达式86 4.4.5 系统变量88 4.4.6 格式化输出89 4.4.7 内置字符串函数91 4.4.8 向awk脚本传递参数93 4.4.9 条件语句和循环语句94 4.4.10 数组95 4.5 本章小结99 4.6 上机提议99 第5章 文件的排序、合并和分割101 5.1 sort命令102 5.1.1 sort命令的基本用法102 5.1.2 sort和awk的联合 用法106 5.2 uniq命令108 5.3 join命令111 5.4 cut命令114 5.5 paste命令115 5.6 split命令117 5.7 tr命令119 5.8 tar命令122 5.9 本章小结125 5.10 上机提议126 第6章 变量和引用128 6.1 变量129 6.1.1 变量替换和赋值129 6.1.2 无类型的Shell脚本 变量132 6.1.3 环境变量133 6.1.4 位置参数140 6.2 引用141 6.2.1 全引用和部分引用142 6.2.2 命令替换143 6.2.3 转义146 6.3 本章小结149 6.4 上机提议150 第7章 退出、测试、判断及操作符152 7.1 退出状态153 7.2 测试154 7.2.1 测试结构154 7.2.2 整数比较运算符154 7.2.3 字符串运算符156 7.2.4 文件操作符157 7.2.5 逻辑运算符159 7.3 判断161 7.3.1 简单if结构162 7.3.2 exit命令163 7.3.3 if/else结构164 7.3.4 if/else语句嵌套166 7.3.5 if/elif/else结构169 7.3.6 case结构172 7.4 运算符174 7.4.1 算术运算符175 7.4.2 位运算符176 7.4.3 自增自减运算符178 7.4.4 数字常量178 7.5 本章小结180 7.6 上机提议180 第8章 循环与结构化命令182 8.1 for循环183 8.1.1 列表for循环183 8.1.2 不带列表for循环187 8.1.3 类C风格的for循环188 8.2 while循环191 8.2.1 计数器控制的while 循环191 8.2.2 结束标记控制的while 循环193 8.2.3 标志控制的while 循环195 8.2.4 命令行控制的while 循环196 8.3 until循环198 8.4 嵌套循环199 8.5 循环控制符203 8.5.1 break循环控制符203 8.5.2 continue循环控制符206 8.6 select结构208 8.7 本章小结210 8.8 上机提议210 第9章 变量的高级用法212 9.1 内部变量213 9.2 字符串处理221 9.3 有类型变量227 9.4 间接变量引用230 9.5 bash数学运算232 9.5.1 expr命令232 9.5.2 bc运算器234 9.6 本章小结235 9.7 上机提议236 第10章 I/O重定向238 10.1 管道239 10.1.1 管道简介239 10.1.2 cat和more命令240 10.1.3 sed命令与管道242 10.1.4 awk命令与管道244 10.2 I/O重定向246 10.2.1 文件标识符246 10.2.2 I/O重定向符号及其 用法248 10.2.3 exec命令的用法252 10.2.4 代码块重定向255 10.3 命令行处理258 10.3.1 命令行处理流程258 10.3.2 eval命令261 10.4 本章小结264 10.5 上机提议264 第11章 Linux/UNIX Shell类型与区别266 11.1 Linux/UNIX Shell起源与 分类267 11.2 dash简介268 11.3 tcsh简介270 11.4 Korn Shell简介275 11.5 本章小结280 第12章 子Shell与进程处理281 12.1 子Shell282 12.1.1 内建命令282 12.1.2 圆括号结构285 12.2 Shell的限制模式290 12.3 进程处理292 12.3.1 进程和作业294 12.3.2 作业控制295 12.3.3 信号299 12.3.4 trap命令302 12.4 本章小结305 12.5 上机提议305 第13章 函数307 13.1 函数的定义和基本知识308 13.2 向函数传递参数311 13.3 函数返回值314 13.4 函数调用315 13.4.1 脚本放置多个函数316 13.4.2 函数相互调用317 13.4.3 一个函数调用多个 函数319 13.5 局部变量和全局变量320 13.6 函数递归321 13.6.1 使用局部变量的递归322 13.6.2 不使用局部变量的 递归323 13.7 本章小结325 13.8 上机提议326 第14章 别名、列表及数组328 14.1 别名329 14.2 列表332 14.3 数组334 14.3.1 数组的基本用法335 14.3.2 数组的特殊用法339 14.3.3 用数组实现简单的 数据结构343 14.4 本章小结349 14.5 上机提议349 第15章 一些混杂的主题352 15.1 脚本编写风格353 15.1.1 缩进353 15.1.2 {}的格式355 15.1.3 空格和空行的用法355 15.1.4 判断和循环的编程 风格356 15.1.5 命名规范357 15.1.6 注释风格358 15.2 脚本优化359 15.2.1 简化脚本359 15.2.2 保持脚本的灵活性361 15.2.3 给用户足够的提示362 15.3 Linux中的特殊命令364 15.3.1 shift命令364 15.3.2 getopts命令367 15.4 交互式和非交互式Shell 脚本369 15.4.1 非交互式Shell脚本369 15.4.2 交互式Shell脚本371 15.5 /dev文件系统372 15.5.1 /dev文件系统基础 知识372 15.5.2 /dev/zero伪设备374 15.5.3 /dev/null伪设备375 15.6 /proc文件系统376 15.6.1 使用/proc/sys优化 系统参数378 15.6.2 查看运行中的进程 信息379 15.6.3 查看文件系统信息380 15.6.4 查看网络信息380 15.7 Shell包装381 15.8 带颜色的脚本383 15.9 Linux脚本安全389 15.9.1 使用shc工具加密 Shell脚本390 15.9.2 Linux Shell脚本编写 的病毒391 15.9.3 Linux Shell中的木马392 15.10 本章小结392 15.11 上机提议393 第16章 Shell脚本调试技术395 16.1 Shell脚本调试概述396 16.2 Shell脚本调试技术398 16.2.1 使用trap命令398 16.2.2 使用tee命令401 16.2.3 调试钩子403 16.2.4 使用Shell选项404 16.3 本章小结409 16.4 上机提议409 第17章 bash Shell编程范例412 17.1 将文本文件转化为HTML 文件413 17.2 查找文本中n个出现频率 最高的单词417 17.3 伪随机数的产生和应用419 17.4 crontab的设置和应用423 17.5 使用MySQL数据库426 17.5.1 MySQL基础426 17.5.2 Shell脚本使用 MySQL427 17.6 Linux服务器性能监控系统432 17.6.1 Ganglia简介及安装432 17.6.2 提取服务器性能参数 名称及数据435 17.6.3 动态更新服务器监控 数据441 17.7 本章小结443 17.8 上机提议443 附录445 附录A POSIX标准简介446 附录B 常用ASCII码对照表447 附录C Linux信号及其意义452 附录D bash内建变量索引453 附录E bash内建命令索引455 参考文献458
下载地址:
相关电子书
解压密码:www.jb51.net 就是本站主域名,希望大家看清楚。
推荐使用 [
] 下载,使用 [
] 以上版本解压本站电子书。
如果这个电子书总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
下载本站资源,如果服务器暂不能下载请过一段时间重试!
如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
本站提供的一些商业电子书是供学习研究之用,如用于商业用途,请购买正版。
本站提供的Linux Shell编程从初学到精通 伍之昂 著 中文 PDF 清晰版[81.4M]资源来源互联网,版权归该下载资源的合法拥有者所有。
不知如何下载的,可以查看欢迎你的到来:
我们希望这里留下你们的脚印:最诚心学习Linux的小鸟们,最热爱Linux的朋友们,最精通Linux的高手们。
我们的希望从日开始。
如果博文对您有所帮助,希望能得到您的捐款支持。
看看最新文章
文章发布时间日历
2015年六月
891011121314
15161718192021
22232425262728
4 Comments to Shell编程中的“局部变量”和“导出变量”}

我要回帖

更多关于 linux shell脚本攻略 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信