Linux系统中bash shell编程的10个基础问题讲解
第1问:为何叫做shell?
在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透...
第1问:为何叫做shell?
在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透...
> 與 < 差在哪?
谈到I/O redirection,不妨先让我们认识一下File Descriptor(FD)。程序的运算,在大部份情况下都是进行数据(data)的处理,这些数据从哪读进?又,送出到哪里呢?这就是File d...
说到shell可控多线程,网上分享的大部分是管道控制的方案。这种方案,张戈博客也曾经实战并分享过一次:《Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点》,感兴趣的朋...
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折的网站,更是拿松哥的博客大全举例。当然,我也是深以为然。前些时间,看到...
张戈博客很久以前分享过一个CC攻击的防御脚本,写得不怎么样,不过被51CTO意外转载了。博客从此走上了经常被人拿来练手的不归之路。当然,还是有不少朋友在生产环境使用,并且会留...
英文标题:USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor)
原标题:HANDY ONE-LINERS FOR SED (Unix stream editor)
整理:Eric Pement - 电邮:pemente[at]northpark[dot...
由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。
shell中的if语句需要做一个正则判断,查了一下语法记录之。
DATEPATTERN="^...
有时候,我们需要在 Bash 中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一些更好的方式,例如,数量掌握以下的快捷键。1) !!:重复执行上一...
监控硬件运行状况shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员。
原理:
1.获取cpu,memory,load average的数值
2.判断数值是否超过自定义的范围,例如...
实现代码:awk ‘BEGIN{for(i=1;i<=9;i++) {for(j=1;j<=i;j++) {printf “%d%s%d%s%dt”,j,“*”,i,“=”,i*j;}printf “n”}}' 效果图:...
shuf -n5 main.txtsort -R main.txt | head -5awk -vN=5 -vC="`wc -l file`" 'BEGIN{srand();while(n<N){i=int(rand()*C+1);if(!(i in a)){a[i]++;n++}}}NR in a' filewhil...
最近一直在使用Linux操作系统,也熟知一些简单的命令,那么下面我将介绍几个不为人知却十分有用的命令:1.mtr命令,查看mtr运行的主机和某个网站的直接网络连接,如下mtr google.com...
脚本内容:java_check.sh#! /bin/bash # if [ -z `pidof java` ]; then echo -e `date +%Y-%m-%d` `date +%R`. “33[31m33[1m(JAVA)Process does not exist! 33[0m” >>...
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:#!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....."elseec...
Linux 环境下的 hosts 一键部署脚本,由 @lstoars 贡献; @fluviusmagnus 提供增强版本。官方网站:https://github.com/racaljk/hosts/tree/master/hosts_tools#!/bin/sh## scri...
条件判断:if语句语法格式:if [ expression ]thenStatement(s) to be executed if expression is truefi注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。if 语...
1)端口判断法==>仅适合数据库本地使用法1:if条件判断方法[root@oldboy scripts]# cat check_db01.sh#!/bin/sh#created by oldboy#mail:oldboy521@gmail.comPortNum=`netstat...
今天第一天写,先说下写shell脚本的基本知识1. shell脚本以.sh 为扩展名,通常运行 ./${filename}.sh 或者 sh ${filename}.sh
2. shell 脚本开头以 #!/bin/bash #!读作 “sheba...
comm命令比较两个已排序文件每行数据的差异,并将其结果显示出来,如果没有指定任何参数,comm命令读取这两个文件,然后生成三列输出:1>仅在file1中出现的行2>仅在file2中出现的行3...
先来熟悉下权限,以上一个例子comm下的文档为例
$ls -l-rw-rw-r-- 1 yjplxq yjplxq 36 7月 30 22:40 A.txt
-rw-rw-r-- 1 yjplxq yjplxq 27 7月 30 22:41 B.txt
-r...
之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试touch:将每个文件的访问时间和修改时间改为当前时间。
不存在的文件将会被创建为空文件,除非...
linux file 命令简介:该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。
更...
这又是一个文件比较命令,熟练掌握会节省你很多工作。还记得comm命令吗?diff比他更加复杂,好用,不仅能比较文件,还能比较目录。 当一个文件有多个版本时候,或者更多复杂的文件,目录...
里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释。当然本来也是有些赶文的嫌疑,望指正。经常在linux上操作,有在不同的目录下切换某几个固...
head命令中文介绍:用法:head [选项]... [文件]...将每个指定文件的头10 行显示到标准输出。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或...
全称wc是一个用于统计的工具,全拼为:Word Count(单词统计)实例:1. 统计行数$wc –l file2. 统计单词数$wc –w file3. 统计字符数$wc –c file4. 统计流中的字符数$echo –n 12...
tree命令是以图形化的树结构打印文件和目录的主角。通常linux发行版本中并没有包括这个命令。你需要用包管理器自行安装。实例:1. tree打印当前目录下所有文件2. tree –p ${...
从这篇开始,是文本内容操作,区别于文本操作。Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Exp...
说明:cut 按列切分文件,你可以指定分隔每列的定界符。在cut的术语中,每列都是一个字段,就是有时候说第一列,可能表述称第一个字段。实战:假设有文件data.txt,格式如下NO Name...
说明:sed是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。sed和awk是文件编辑最重要的两个命令了。尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写...
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切...
注:在awk命令之后,没有太多复杂命令,都是一些基础命令。说明:cat,是单词 concatenate 的缩写, 把文件的内容输出到stdout.当与重定向操作符 (> 或
>>结合使用时, 一般都是用来...
说明:tac和rev没有必然联系,唯一相同的是,他们是“反派”。tac其实是cat的反写,cat正常输出,那tac就倒着输出,不过从行的最后一行输出,那rev呢?rev是每行的最后一个字母到第一个字母...
小知识(以ps为例):查看命令路径 which ps
命令帮助 ps --help
命令完全手册: man ps说明ps全称是:Process Status (进程状态),他就是提供进程信息的。ps命令用于报告当前系统的...
df命令磁盘管理df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法df(选项)(参数)...
du命令磁盘管理du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。语法du [选项][文件]选项-a或-al...
git在团队项目中的使用流程1.首先从一个git远程仓库中clone项目到本地git clone 仓库地址2.创建开发分支一般我们写代码不会在master分支上面写,而是新建一个分支git checkou...
gitbook安装: https://nodejs.org/#download 下载node.js源代码(点击绿色的INSTALL),解压./configuremakemake install 成功执行后,npm就被安装好了。2. gitbook 安装命令
npm in...
同一服务器,同一托管平台,多个账号问题1、添加key我们暂且以oschina为例。为了更好的说明问题,我们在oschina平台分别用账号111新建项目test111和账号222新建项目test222,记得项...
前言 这里就不介绍 git 了,表一看到命令行就怕怕,常用的命令也就这些,基本满足 99% 以上的项目需求,非常实用。
正文 一、常用 git 命令 1.1 git clone <url>...
很久没更新了,很久没看脚本了
想想应该继续看脚本了#14 Formatting Long Lines#!/bin/sh# A version of fmt, using nroff. Adds two useful flags: -w X for line width# a...
原本书上这个例子是教调试脚本的,它故意给出的脚本中有几个错误,教我们认识系统提示的错误,并修改运行。但比较难写出来,所以把修改好了的脚本放上来,这个脚本比较有趣味的#!/bin...
To turn the functions in this chapter into a library for use in other scripts, extract all the functions and concatenate them into one big file. If we call this...
实现代码:#!/bin/sh# ANSI Color -- Use these variables to make output in different colors# and formats. Color names that end with 'f' are foreground (text) colors...
经常在 shell 脚本里要阻止其它进程,比如 msmtp 自带的mail queue 脚本,这个脚本的互斥做法是不正确的,下面介绍下发现的三个通过文件达到互斥的正确做法。1. util-linux 的 fl...
这次的shell案例比较简单,但有其特点。#!/bin/sh# scriptbc - Wrapper for 'bc' that returns the result of a calculation.if [ $1 = "-p" ] ; then precision=$2 shift 2e...
这是第8/101个脚本There are as many ways to solve this quirky echo problem as there are pages in this book. One of my favorites is very succinct:function echon{...
今儿个讲得是判断输入的日期是否正确,有利用到我们之前03这个例子中的函数
下面是代码#!/bin/sh# valid-date -- Validates a date, taking into account leap year rules.ex...
这个shell是来判断输入的数字是否为合理的浮点数实现代码如下:#!/bin/sh# validfloat -- Tests whether a number is a valid floating-point value.# Note that this script...
Given a number, shows it in comma-separated form.Expects DD and TD to be instantiated. Instantiates nicenum. or, if a second arg is specified, the output is ech...