![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell
Java 程序源
微信公众号: Java 程序源,敬请关注!
展开
-
01. Shell 脚本编程简介
Shell, 是一个用C 语言编写的程序, 它是用户操作Linux的桥梁, 也就是平时我们连接Linux 的所看到的命令行窗口. 平时我们输入的Linux 命令都是在Shell 程序中完成的.Shell 脚本, 笔者认为Shell 脚本就是一组在Shell 程序中能执行的命令按顺序执行的集合.笔者通常使用shell不会太复杂的操作, 因为shell 脚本对于实现一些比较复杂的逻辑比较麻烦, 对...原创 2019-08-27 16:15:52 · 12146 阅读 · 0 评论 -
15.Shell 实战-深度清理系统内存命令 freemem
在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching. 这样通过free 查看系统内存, 就会发现物理内存剩余很少.1. free 命令free 命令详解:totalusedfreesharedbufferscachedMem:物理内存已使用物理内存未使用物理内存线程共享内存磁盘写缓存...原创 2019-08-27 16:07:57 · 536 阅读 · 0 评论 -
14. Shell 实战-定时清理日志
在生产环境中, 应用日志数量是比较庞大的,通常我们会根据日志文件的时间进行归档或清理。 笔者写了一个简单的根据日志创建天数来清理日志的脚本. 可以在此基础上进行扩展,根据文件名, 创建时间, 最后修改时间等综合判断.1. 脚本脚本名称: clean-log, 接收两个参数:第一个参数: 日志目录第二个参数: 天数, 清理多少天之前的日志#!/bin/bash#Desc 清理过期...原创 2019-08-27 16:13:32 · 12303 阅读 · 0 评论 -
13. Shell 实战-Tomcat 重部署
在平时的工作中, 重部署应用服务器是经常的事情.部署步骤虽然不麻烦, 但是也是有很多步骤的. 如果每天进行几次重部署, 那么是相当繁琐. 关键在于还没有太大的技术含量. 笔者拿tomcat服务器来举例.1. tomcat 重部署逻辑笔者认为tomcat重部署应该执行的步骤:通过wincp 工具, 将项目war包上传到tomcat 临时目录 temp查看当前tomcat 是否在运行, ...原创 2019-08-27 16:13:37 · 12126 阅读 · 0 评论 -
12. Shell 实战-脚本中切换路径有效
默认情况下, 当Shell脚本执行结束后, 还会回到原来的目录, 在Shell 脚本中进行目录切换的cd操作,在脚本结束后并不能生效.因为当前shell 执行脚本时,会新打开一个子进程, 而子进程中的目录切换,环境变量修改并不能影响当前shell. 可通过source命令,强制使用当前shell 来执行脚本, 这样在脚本中做的修改都会影响当前shell,除了切换目录, 对环境变量的修改也会影响,...原创 2019-08-27 16:13:41 · 12387 阅读 · 0 评论 -
11. Shell 输入输出重定向
Shell 默认的输入为键盘输入, 默认输出则是终端的Shell 窗口. 但是有时候我们希望某些命令输出的内容不显示,或者想将输出的结果写入其它文件, 这就用到了输出重定向. 输出重定向不常用, 所以就不做描述了.1. Linux 下的标准输入输出Linux 下一切皆文件, 输入输出也不例外.虽然标准输入时键盘输入, 标准输出为终端显示器,但是在linux 中标准输入输出也对应着响应的文件...原创 2019-08-27 16:14:03 · 12249 阅读 · 0 评论 -
10. Shell-函数
Shell 函数Shell 函数调用和脚本执行方式一样, 但执行脚本时会为脚本单独创建一个新的Shell进程, 脚本结束后, 新创建的进程自动结束; 而调用函数时却不会, 是在原有进程中执行.定义函数时需要使用圆括号, 调用函数时不需要圆括号函数内部使用的变量, 默认都是全局变量. 除非使用local 关键字修饰函数必须在使用前先定义默认函数不能自定义返回值, 只能通过return来返...原创 2019-08-27 16:14:07 · 12239 阅读 · 0 评论 -
09. Shell 流程控制-循环
Shell 循环结构Shell 语言和Java 等其它语言类似,也拥有for, while, until 等循环结构, 只是语法结构略微不同而已. 需要注意的是Shell 循环体是用do 和 done 限制的, 而非大括号.1. for-each 循环for-each 中直接创建的循环变量var 是全局变量,除非实现使用local 定义for-each 数组或函数参数或脚本参数时,需...原创 2019-08-27 16:14:11 · 12165 阅读 · 0 评论 -
08. Shell 流程控制-判断分支
Shell 语言中用于判断的分支的语句有if-else 和 case.1. if-elseif-else 的判断表达式为中括号[]注意关键字elif, 不是elseif, 不要搞错了注意是以关键字fi 结尾, 不是以if 结尾注意if , [, 条件表达式, ] , ; , then 直接都要有空格注意代码缩进1.1 if-fi 结构shell 中的if 语句有两种写法,...原创 2019-08-27 16:13:45 · 12105 阅读 · 0 评论 -
07. Shell 判断表达式
格式: [ 表达式 ]结果: 判断表达是为真返回true, 为假返回false1 数值型判断虽然说shell 脚本中任何变量都是字符串, 但是比较的表达式时, 却可以区分按数值比较还是按字符串比较. 比如:11 和 2 , 如果按数值比较那么11 > 2, 如果按字符串比较则 11 < 2常用判断表达式表达式判断逻辑[ a -eq b ]判断相等, ...原创 2019-08-27 16:14:15 · 12165 阅读 · 0 评论 -
06. Shell 数组
Shell 语言中的数组和java中的数组还是有很大差别的, 笔者认为shell 中的数组更像java 中的哈希, 因为索引不是连续的. Shell中数组主要特点:索引数组下标支持负数关联数组下标可以不是数字, 类似于java中的哈希结构数组元素在内存中并不是占用连续的地址空间,也就是说存储并非连续的当移除数组元素时,数组索引并不会重新排列. 可以理解为,数组索引一旦创建就不会修改...原创 2019-08-27 16:14:18 · 12139 阅读 · 0 评论 -
05. Shell 输入与输出
Shell 默认的输入为键盘输入, 默认输出则是终端的Shell 窗口.Shell 脚本中添加合适的输入, 可以让脚本和用户进行交互起来; 合适添加输出语句, 可以让程序运行一目了然.1. 标准输入shell 脚本中使用 read 命令读取用户输入. read命令会读取一个输入行, 遇到换行符终止.1.1 命令格式read [选项] [变量]read 默认读取一行内容, 遇到回车键...原创 2019-08-27 16:14:22 · 12266 阅读 · 0 评论 -
04. Shell 变量-脚本参数变量
执行脚本时, 可以向脚本传入一些参数, Shell 内置了一些变量用于接收执行脚本时传入的参数。1. 变量引用变量名变量含义$#代表传入的参数格式$*代表传入的所有参数, 把所有传入的参数当做是一个字符串变量$@代表传入的所有参数, 把所有传入的参数当做一个数组$nn为数字,从1开始,表示传入的第几个参数,当超过9个参数时,需要用${n}$0...原创 2019-08-27 16:14:28 · 12305 阅读 · 0 评论 -
03. Shell 变量-内置变量
shell 脚本中除了自定义变量外,还有一些内置变量和环境变量.1. 环境变量shell 中可以直接引用环境变量shell 中修改环境变量需要使用 export 更新环境变量shell 中可以使用set 命令查看所有的环境变量, 配合less 查看更佳常用环境变量:环境变量描述PATH系统命令搜索路径, 以冒号分隔HOME用户宿主目录LOGN...原创 2019-08-27 16:14:32 · 12169 阅读 · 0 评论 -
02. Shell 变量-用户自定义变量
Redis 五种数据结构-String原创 2019-08-27 16:14:38 · 12295 阅读 · 0 评论 -
16. Shell 实战-linux系统关闭触摸板
笔者的笔记本安装了Linux mint 19.1 系统, 笔记本默认的触摸板是开启的, 在开发过程中, 会经常误操作到触摸板, 因此笔者就写了一个快速关闭笔记本触摸板的命令.1. 命令使用关闭触摸板: ./psmouse disable开启触摸板: ./psmouse enable2. 脚本源码#!/bin/bash#Desc 笔记本触摸板#Auth zongf#Date 20...原创 2019-08-27 16:07:01 · 303 阅读 · 0 评论