技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

linux shell编程入门demo

1,基本的shell编程入门接下来我们会写一个小例子来介绍如何写一个简单易懂的linux shell小脚本,我们给这个脚本其名字first.sh。接下来我说明实际的开发步骤。使用vi编辑器创建文件,vi filename 来创建。编写脚本#!/bin/sh #This is my first linux shell program a="Hello World" echo $a" new People coming Linux"默认创建好的shell脚步默认没有可执行权限,我们要赋予可执行权限,chmod +x filename.执行shell脚本./filename.sh... 全文

linux shell linux shell

Linux shell学习之:unix/linux shell的发展历程

学习linux Shell脚本编程时,你可能会遇到Shell分类的问题,这里将介绍Shell的几种分类,经过仔细整理,在这里拿出来和大家分享一下。... 全文

linux Shell

Linux的Shell编程 Shell基本语法

Shell基本语法像高级程序设计语言一样,Shell也提供说明和使用变量的功能。对Shell来讲,所有变量的取值都是一个字串,Shell程序采用$var的形式来引用名为var的变量的值。Shell有以下几种基本类型的变量。(1)Shell定义的环境变量:Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量,常用的Shell环境变量有:HOME 用于保存注册目录的完全路径名。... 全文

Linux Shell编程 Shell基本语法

Linux的Shell编程 运行Shell程序的方法

用户可以用任何编辑程序来编写Shell程序。因为Shell程序是解释执行的,所以不需要编译成目的程序。按照Shell编程的惯例,以 bash为例,程序的第一行一般为“#!/bin/bash”,其中 # 表示该行是注释,叹号 ! 告诉Shell运行叹号之后的命令并用文档的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行Shell程序的内容。执行Shell程序的方法有3种。1.sh Shell程序文件名这种方法的命令格式为:bash Shell程序文件名... 全文

Linux Shell编程 运行Shell程序

Linux的Shell编程 Shell程序设计的流程控制

和其他高级程序设计语言一样,Shell提供了用来控制程序执行流程的命令,包括条件分支和循环结构,用户可以用这些命令创建非常复杂的程序。与传统语言不同的是,Shell用于指定条件值的不是布尔运算式,而是命令和字串。1.测试命令test命令用于检查某个条件是否成立,它可以进行数值、字符和文件3个方面的测试,其测试符和相应的功能分别如下。(1)数值测试:-eq 等于则为真。-ne 不等于则为真。-gt 大于则为真。-ge 大于等于则为真。-lt 小于则为真。-le 小于等于则为真。(2)字串测试:= 等于则为真。!= 不相等则为真。-z字串 字串长度伪则为真。-n字串 字串长度不伪则为真。(3)文件测试:-e文件名 如果文件存在则为真。... 全文

Linux的 Shell编程 Shell程序设计

linux下查询网卡型号

将搜索到网卡信息导入一个文件: kudzu --probe --class=network|grep 'desc:' > net.txt将这个文件里面的空格替换成换行符: sed -i "s/ /\n/g" net.txtshell脚本################################while read linedo echo "$line" > lin.txt a=`cat lin.txt|awk '/([0-9][A-Z])+/'` b=`cat lin.txt|awk '/([A-Z][0-9])+/'` if [ -n "$a" ] then      echo "$a"elif [ -n "$b" ] then      echo "$b" fidone < net.txt ################################ 本文出自 “学海无涯苦作舟” 博客,请务必保留此出处http://linuxshow.blog.51cto.com/1572053/785825... 全文

linux shell shell linux网卡型号 linux linux查询网卡型号

linux登录时shell与非登录时shell

登录Shell与非登录Shell首先给大家介绍一个文件,startup文件,登录shell时要执行的文件,在以后登录时初始化用户登录后的环境。在linux中,若果默认Shell为bashshell时,默认有多个startup文件,不去读取的方式和次序也并不相同。... 全文

登录Shell与非登录Shell   linux 休闲 职场

Linux shell中的那些小把戏

我日常使用Linux shell(Bash),但是我经常忘记一些有用的命令或者shell技巧。是的,我能记住一些命令,但是肯定不会只在特定的任务上使用一次,所以我就开始在我的Dropbox账号里用文本文件写下这些Linux shell的小技巧,现在我决定共享它给你。这个表我以后还会更新。记住,这里的一些贴士需要在你的Linux发行版上安装额外的软件。... 全文

Linux shell Shell

Linux shell编程学习之一:什么是shell

linux经过长时间的发展,很多用户都很了解linux Shell编程了,这里我发表一下个人理解,和大家讨论讨论。linux Shell编程对于每一个接触 AIX 和 LINUX 的人都比较熟悉。Shell 以它易于编写,无需编译,快速部署和执行的特点,赢得了很多人的青睐,当然它强大的功能也是 Shell 编程广泛被使用的一个最大的原因,它能很大程度地提高了系统管理员、程序员等使用者的工作效率,能在很少的代码内完成强大的功能。... 全文

linux Shell编程

linux shell编程之菜单选择(二)

#!/bin/bashcat <<EOF *-(A)输入A查看/etc/password最后5个用户。 *-(B)输入B的话就显示系统开机时间多久了 *-(C)输入C的话就判断当前磁盘根目录使用情况是否超过50%,如果超过50%就显示“disk space is used over 50%”;如果没超过50%就显示“disk space is user below 50%” *-(D)输入D的话就显示出系统当前处于LISTEN状态的PID进程程序名称,以“program-name(pid)”这种形式显示。 *-(E)输入E的话获取系统的IP和掩码,以"IP/NETMASK"形式显示 *-(F)输入F的话添加系统用户,完了后添加该用户密码(记得给以提示操作) *-(G)输入G的话显示系统使用率最多的10条命令,还有使用的次数EOFread -p "请输入你的选择 A|B|C|D|E|F|G: " inputcase $input in  A)tail -n 5 /etc/passwd | awk -F: '{print "user:"$1, "UID"$3}'  ;;  B) awk '{print $1/60/60"hours"}' /proc/uptime  ;;  C) df -h | awk '$6=="/"{if($5>50)print "disk space is used over 50%";else print "disk space is user below 50%"}'  ;;  D) netstat -nptl | awk '/LISTEN/{print $7}'|awk -F/ '{print $2"("$1")"}'  ;;  E) ifconfig eth0 | awk -F"[ :]+" 'NR==2{print $4"/"$NF}'  ;;  F)echo -e "Please input username"        read user        echo -e "Please input password"        read pass        useradd $user        echo $pass | passwd --stdin $user  ;;  G)awk '{++a[$1]}END{for(i in a)print i,a[i]|"sort -k2 -nr"} ~/.bash_history' | head  ;;  *)    printf "your input is wrong\n";;esac本文出自 “平凡的日子” 博客,请务必保留此出处http://wolfchen.blog.51cto.com/2211749/964997... 全文

linux shell shell编程

Linux Shell 之 Shell中的函数调用

说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法。一、Shell中函数的定义为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西。而Shell中函数的定义有两种方法,如下:function fname(){statements;}或fname(){statements;}注意,()内是没有参数的,它并不像C语言那样,在()里可以有参数。那大家可能就郁闷了,函数调用或多或少总是会需要一些参数,那么这些参数要怎么传递进来呢?其实参数传递方式为:fname;(不需要传递参数)或fname agr1 arg2(需要传递两个参数);二、自定义函数的例子不知道大家的情况如何,反正一开始我就觉得很别扭,因为在C语言中,例如我定义一个函数int cmp(int a, int b),那么我就会在函数中使用到函数头中声明的变量a和b,而在Shell中却没有定义参数,那我的函数又需要用到这两个参数,怎么办好呢?下面就用一个例子来说明好了。#! /bin/bash # Filename:LoopPrint.sh function LoopPrint() { count=0; while [ $count -lt $1 ]; do echo $count; let ++count; sleep 1; done return 0; } read -p "Please input the times of print you want: " n; LoopPrint $n;先来说说这个程序的功能吧,就是输入一个数字n,然后从0开始每隔1秒输入一个数字,直到输出n-1为止。首先,程序会要求你输入一个数学,然后调用函数来进行输出的功能。注意注释1的那一句,里面有一个变量$1,大家应该还记得调用函数时参数的传递方式,即fname agr1 arg2,这里的$1就是表示第一个参数,依此类推,$2就是第二个参数,$3就是第3个参数,$n就是表示第n个参数。所以$1就是变量n的值。这样说大家懂了吧!补充一下,就是:$0:是脚本本身的名字;$#:是传给脚本的参数个数;$@:是传给脚本的所有参数的列表,即被扩展为"$1" "$2" "$3"等;$*:是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个,即被扩展成"$1c$2c$3",其中c是IFS的第一个字符;$$:是脚本运行的当前进程ID号; $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误;特别注意,传递参数时,(这个例子中)一定要写成LoopPrint $n;而不能写成LoopPrint n。为什么?例如你输入的是20,则n的值($n)为20,前者表示的是把n的值,即20传递给函数LoopPrint,而后者则表示把字符n传递给函数LoopPrint。这点与在静态语言中的函数参数传递是很不同的,因为在Shell中变量的使用并不需要先定义,所以要使用变量,让Shell知道它是一个变量,并要传递它的值时,就是用$n,而不能直接用n,否则只把n当作一个字符来处理,而不是一个变量。三、作用域问题函数的作用域与C/C++语言中的作用约束是一样的,函数的定义一定要出现在函数的调用语句之前,但是有一点跟C/C++中不一样的就是变量的作用域问题,经过本人的试验,在注释1的语句改为while [ $count -lt $n ];也是可行的,即函数可以使用本文件中出现的任何变量,但是本人还是建议使用上面例子中的方法,即while [ $count -lt $1 ],并且不要随意使用函数中的变量之外的变量,因为你并不一定知道你调用函数时函数外有什么变量存在也不知道它的值是什么,也不能保证别人在使用你的函数时会传递你在函数中使用到的变量名,如这里的n,别人在使用时可能传递的就是他自己定义的变量,如Count等。... 全文

Linux Shell 函数调用 作用域

Linux之Shell管理脚本(一)

一:Shell的作用及常见种类:Shell是一个特殊的应用程序,他介于操作系统内核与用户之间,负责接受用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行。因此,Shell程序在系统中充当了一个“命令解释器”的角色,eg:微软的cmd.exe也属于Shell程序;在Unix/Linux操作系统中,能够使用的Shell程序有很多种,功能也比微软的“cmd.exe”要强大的多,下面就是常见到的Shell程序环境,(功能可以自己去了解下:)Bsh:Csh:Ksh:Bash:Zsh:1、Shell环境的切换:... 全文

linux shell read shell脚本 环境变量

天外飞仙级别的Linux Shell命令

    本文编译自commandlinefu.com ( 应该是 Catonmat ) 的系列文章 Top Ten One-Liners from CommandLineFu Explained 。作为一个由用户推荐最有用shell命令的网站,其记录了数以万计的各色shell命令,其中不乏相当实用和有趣的,本文就要细数当中获投票最高的一些命令,从其中取材并加以细释,希望读者能从中受益。... 全文

Shell命令 天外飞仙 Linux Shell 休闲

不看后悔的Linux生产服务器Shell脚本分享

    作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份)、计划任务(crontab)、服务状态监控、FTP远程备份等。对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一。现在在Windows 2008里也出现了PowerShell的身影,十分不错。    下面我会用我的线上服务器的shell脚本举例来让大家了解shell及其用途。    【目录】... 全文

Linux Shell脚本 Shell 生产服务器 休闲

linux shell下转换unix时间

linux shell下转换unix时间 下面分享一个在 Shell 下转换 Unix 时间显示格式的小方法,对date命令熟悉的同学会立刻给出解决方法$date -d @1234567890Sat Feb 14 07:31:30 CST 2009但是date版本过低不支持@参数怎么办?来试试-d参数吧$date -d "UTC 1970-01-01 1234567890 secs"Sat Feb 14 07:31:30 CST 2009 如果你觉得每次输入好长一串字符记不住,那就自己写个小函数吧,可以放在~/.bashrc中调用。 # 转换 Unix 时间到本地时间字符串function ctime(){... 全文

转换 linux shell unix unix时间 linux

读《Linux Shell脚本攻略》第1章笔记

1. #!、shebang意义 Linux环境中的任何脚本语言,都是以这样一个被称为shebang的特殊行作为起始的,在这行中,字符#!被置于解释器路径之前。/bin/bash是解释器的位置http://zh.wikipedia.org/wiki/Shebang2. echo、printf echo 后面不用引号,用双引号,单引号区别,并总结双引号中需要转义(\)的特殊字符 printf使用引用文本或由空格分隔的参数,我们可以在printf中使用格式化字符串。我们还可以指定字符串的宽度、左右对齐方式等。在默认情况下,printf并不像echo命令一样会自动添加换行符,我们必须在需要的时候手动添加,比如在下面的脚本中: #!/bin/bash printf “%-5s %-10s %-4s\n” No Name Mark printf “%-5s %-10s %-4.2f\n” 1 Sarath 80.3456 printf “%-5s %-10s %-4.2f\n” 2 James 90.9989 printf “%-5s %-10s %-4.2f\n” 3 Jeff 77.564 输出结果: No    Name       Mark 1     Sarath     80.35 2     James      91.00 3     Jeff       77.56 %s、%c、%d、%f都是格式化字符,其所对应的参数可以置于带引号的格式化字符串之后。 %-5s格式化为左对齐宽度为5的字符串替代(-表示左对齐),如果不用-指定对齐方式,字符串则采用右对齐形式。宽度指定了保留给某个变量的字符数,列 和列本身有一个空字符串。对Name而言,保留宽度为10,所以看起来列和列之间有11个字符串。因此,任何Name字段的内容都会被显示在10字符宽的 保留区域内,如果内容不足10字符,余下的则会以空格符填充。如果超过10个字符,列对齐效果将被打乱。 %-4.2,其中.2指定保留2个小数位,对小数部分四舍五入。注意,在每行格式字符串后都有一个换行符\n。... 全文

Linux shell linux系统

轻松学习Linux之Shell的常用过滤器

下载高清视频: http://down.51cto.com/data/157818    大小3:MB      时长: 7分钟更多内容见: Linux爱好者的圣诞大餐-轻松学习Linux系列多媒体教程http://chenguang.blog.51cto.com/350944/462481本文出自 “李晨光原创技术博客” 博客,谢绝转载!... 全文

linux shell 过滤器 linux系统

linux shell编程之文件内容写入和日志记录

最近在学习linux的shell编程,由于在初级阶段,所以把平时写的些练习代码记录下来,也和大家共享下,希望和大家day day up,哈哈,这句中国式英语相信读者能明白吧,今天这个代码比前面的2次的稍微长点,功能还是比较简单的,老鸟高手们可以飘过。。。下面是源代码,菜菜们可以和我一起学习看下源代码: #!/bin/bash#filename:qqgroup.sh#QQ;384343423#world77@163.com#world77.blog.51cto.com#****************************#****************************#this chapter is input QQ member's base information#QQ_Number  nickname   local#***************************echo "please input QQ number:"read QQ_Numberwhile [ -z $QQ_Number ] do echo "you input null,please input you QQ_Number!" read QQ_Number done#echo "you input QQ_Number is:" $QQ_Numberecho "please input nickname:"read nicknamewhile [ -z $nickname ]do echo "you input null,please input you nickname!" read nicknamedone#echo "you input nickname is :"$nicknameecho "please input you local:"while [ -z $local ]do echo "you input null,please input you local!" read localdone#echo "you input local is:" $localecho "************************************"echo "************************************"echo "you input QQ_Number is :"$QQ_Numberecho "you input nickname  is :"$nicknameecho "you input local     is :"$localif [ ! -e member.info ]then touch member.info echo "----------create member information file success----------" > member.info echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info  echo "this file is record member's information" >> member.infofi echo $QQ_Number":"$nickname":"$local >>member.info#**************************************************#this chapter is about build log file to record operation informationlog_file=$(date +%Y%m%d)/$(date +%Y%m%d%H%M%S)if [ ! -d log ]then mkdir logfiif [  -d log ]then # mkdir log cd log if [ ! -d $(date +%Y%m%d) ] then  mkdir $(date +%Y%m%d) fi touch $log_file echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> $log_file echo "----------create log file success--------------" >> $log_file echo "you input QQ_Number,nickname,local into member information is :"$QQ_Number":"$nickname":"$local >> $log_filefi代码不是很长,介绍下功能,第一部分是要求你输入你的QQ号码,昵称和所在地,呵呵,然后检查下是否有member.info这个文件,如果没有,着建立这个文件,然后插入几句话if [ ! -e member.info ]                                           #如果没有member.info这个文件then touch member.info                                             #如果没有则新建文件 echo "----------create member information file success----------" > member.info echo $(date +%Y"."%m"."%d" "%k":"%M":"%S) >> member.info  echo "this file is record member's information" >> member.infofi                                #以上三句是初始化新建文件时候追加的话,记下创建的时间。 echo $QQ_Number":"$nickname":"$local >>member.info# 这句是把上面输入的QQ号码,昵称和所在地写入文件member.info.格式如下123:effect:shanghai234:world77:pudong呵呵,具体你运行下代码就知道了,呵呵,下面介绍下代码的第二部分。呵呵,看看代码的第二部分,个人觉得有点变态了,哈哈。第二部分代码先检查下是否有LOG这个文件夹,如果没有,则创建下LOG文件夹,接着进入这个目录,新建个目录,是以年月日为名。命令如下:if [ ! -d log ]                                        #判断是否有log这个目录,没有则创建then mkdir logfiif [  -d log ]                                                              #如果有这个目录,进入LOGthen # mkdir log cd log                                                                  #判断是否有今天的目录(以年月日为名) if [ ! -d $(date +%Y%m%d) ] then  mkdir $(date +%Y%m%d)                                   #创建目录,以年月日为名 fi 哈哈,上面的代码还是比较容易的,如果不明白的话,运行下代码就可以明白了,你可以更改下日期,然后你在运行下代码,看下LOG里面是否有变化,你就明白代码的含义了,呵呵,本人的表达能力实在有限,读者千万包涵,哈哈。。。如果到此为止,也不算变态,变态的还在后面,由于我是想用来做日志的功能,所以在log目录下,以日期新建了目录后,在这个目录下,我会以年月日时分秒的格式为文件名,记录下每次运行这个脚本的操作,即你可以到在这个日志文件里面看到你输入的信息,哈哈。有点变态吧,每次输入都能看到,想看具体效果,运行下代码就知道了,哈哈。。。 这个脚本还有很多地方需要改进,比如对输入的判断和长度的限制等,等我有时间了,功力提高了,会后续改进,并继续和大家分享。。。注:由于本人的基础不是很好,在以root身份运行代码的时候,没有任何问题,在以普通用户运行这个脚本的时候,出现了权限问题,所以不能运行,所以大家需要注意下,运行时要以ROOT的身份,呵呵。。。 下面贴下运行的权限问题时的报错如下:[root@localhost shell]# su joe[joe@localhost shell]$ sh qqgroup.sh please input QQ number:789please input nickname:kdsjfplease input you local:you input null,please input you local!skdfj************************************************************************you input QQ_Number is :789you input nickname  is :kdsjfyou input local     is :skdfjtouch: cannot touch `member.info': Permission deniedqqgroup.sh: line 52: member.info: No such file or directoryqqgroup.sh: line 53: member.info: No such file or directoryqqgroup.sh: line 54: member.info: No such file or directoryqqgroup.sh: line 56: member.info: No such file or directorymkdir: cannot create directory `log': Permission denied 如果哪位知道如何解决的话,告诉下,不胜感谢,呵呵。。。程序如果有问题,欢迎指出,我的联系方式脚本里都有的,希望和大家DAY DAY UP... 本文出自 “你是路人甲还是霍元甲” 博客,请务必保留此出处http://world77.blog.51cto.com/414605/231115... 全文

linux shell 休闲 职场 linux系统

linux shell数组的建立和使用技巧

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。  1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo $a1 一对括号表示是数组,数组元素用“空格”符号分割开。 2.数组读取与赋值得到长度: [chengmo@centos5 ~]$ echo ${#a[@]}5用${#数组名[@或*]} 可以得到数组长度读取: [chengmo@centos5 ~]$ echo ${a[2]} 3[chengmo@centos5 ~]$ echo ${a[*]} 1 2 3 4 5    用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容赋值:[chengmo@centos5 ~]$ a[1]=100[chengmo@centos5 ~]$ echo ${a[*]} 1 100 3 4 5 [chengmo@centos5 ~]$ a[5]=100     [chengmo@centos5 ~]$ echo ${a[*]} 1 100 3 4 5 100 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素删除:[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ unset a[chengmo@centos5 ~]$ echo ${a[*]} [chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ unset a[1]   [chengmo@centos5 ~]$ echo ${a[*]} 1 3 4 5[chengmo@centos5 ~]$ echo ${#a[*]}4直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。  3.特殊使用分片:[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo ${a[@]:0:3}1 2 3[chengmo@centos5 ~]$ echo ${a[@]:1:4}2 3 4 5[chengmo@centos5 ~]$ c=(${a[@]:1:4})[chengmo@centos5 ~]$ echo ${#c[@]}4[chengmo@centos5 ~]$ echo ${c[*]} 2 3 4 5直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。替换:[chengmo@centos5 ~]$ a=(1 2 3 4 5)    [chengmo@centos5 ~]$ echo ${a[@]/3/100}1 2 100 4 5[chengmo@centos5 ~]$ echo ${a[@]}1 2 3 4 5[chengmo@centos5 ~]$ a=(${a[@]/3/100}) [chengmo@centos5 ~]$ echo ${a[@]}     1 2 100 4 5调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。从上面讲到的,大家可以发现linux shell 的数组已经很强大了,常见的操作已经绰绰有余了。转自: www.cnblogs.com/chengmo... 全文

linux linux shell的数组 职场 休闲

2 3 4 5 6 7 8 9 10 11