`
音频数据
  • 浏览: 36692 次
文章分类
社区版块
存档分类
最新评论

Shell编程入门入篇

阅读更多

一、Shell变量 主要有本地变量和环境变量。

1、本地变量  -- 在用户现有运行的脚本中使用

1) 定义本地变量      格式: variable-name=value

例子:[root@jike1 /root]# LOCALTEST="test"

[root@jike1 /root]# echo $LOCALTEST            (注意:echo $LOCALTEST 和 echo ${LOCALTEST}的效果是一样的)

(在变量名前加$, 可以取得此变量的值,使用echo命令可以显示变量的值)

2) 显示本地变量      格式: set

例子:[root@chinaitlab root]# set

3) 清除本地变量     格式:unset  variable-name

例如:[root@jike1 /root]# unset LOCALTEST

此时再执行echo $LOCALTEST将看不到变量LOCALTEST的输出。

 

 

2、环境变量 -- 在所有的子进程中使用

1) 定义环境变量     格式: export  variable-name=value (与本地变量的定义相比,多了一个export关键字)

例子:[root@chinaitlab /root]# export DOMAIN="chinaitlab.com"

[root@ chinaitlab shell]# vi testenv.sh

#!/bin/bash                        #表示用bash来解析脚本

#testenv.sh

echo $DOMAIN

[root@chinaitlab shell]# chmod +x testenv.sh

[root@chinaitlab shell]# ./testenv.sh

chinaitlab.com

2) 显示环境变量     格式: env     (本地变量的显示使用set,环境变量的显示使用env)

例子: [root@chinaitlab test]# env

3) 清除环境变量     格式:unset  variable-name     (用法与本地变量相同,都使用unset)

例子: [root@chinaitlab shell]# unset DOMAIN

此时再执行./testenv.sh将看不到变量DOMAIN的输出。

3、其它变量

1) 位置变量     $0,$1,$2,$3……$9

2) 只读变量  readonly variable

注意:只读变量不能被清除和改变其值,所以要谨慎使用。

3) 特殊变量     $#,$?,

(表示当前进程的PID)…… 

二、运算符和表达式 

 

 

1、运算符是对计算机发的指令,运算符类型有: 

算术运算符(+、-、*、/) 

按位运算符(~、>、&、|、^) 

逻辑运算符(&&、||、 > 、= = 、>=) 

 

 

2、表达式是运算符和运算对象的组合体。 

1) $[]:可以接受不同基数的数字的表达式 

echo $[10+1]                            (输出:11) 

echo "$[2+3],$HOME"            (输出:5,/root) 

echo $[2>1]            (输出:16,4) 

echo $[2>3],$[3>2]                (输出:0,1 表达式为false时输出0,为true时输出1) 

2) 字符表达式:直接书写,采用单引号,双引号引起来。 

echo " $HOME,That is your root directory."     (输出:/root,That is your root directory.) 

echo ' $HOME,That is your root directory. '     (输出:$HOME,That is your root directory.) 

单引号和双引号的区别在于:单引号是原样显示,双引号则显示出变量的值。 

3) test表达式 

三、控制结构 

1、if语句 

例:  #!/bin/bash 

#if.sh 

if [ "10" -lt "12" ]            #注意:if和[之间,[和"10"之间,"12"和]都有空格,如果不加空格,会出现语法错误 

then 

echo "Yes,10 is less than 12" 

fi 

2、case语句 

例:  #!/bin/bash 

#case.sh 

echo -n "Enter a start or stop:" 

read ANS 

case $ANS in 

start) 

echo "You select start" 

;; 

stop) 

echo "You select stop" 

;; 

*) 

echo "`basename $0`: You select is not between start and stop" >&2 

#注意:>和&2之间没有空格,>&2 表示将显示输出到标准输出(一般是屏幕)上 

exit; 

;; 

esac 

3、for循环语句 

格式:   for 变量名 in 列表 

do 

命令1 

命令2 

... ... 

done 

4、until循环语句 

格式:   until 条件 

do 

命令1 

命令2 

... ... 

done 

5、while循环语句 

格式:   while 命令 

do 

命令1 

break 

命令2 

continue 

命令3 

... ... 

done 

四、输入输出 

 

 

1、几个重要的工具 

1) echo 

例:echo -n "Enter a number from 1 to 2:"    (-n 表示不换行,此时光标停留在行尾) 

2) read 

例:read ANS     (表示将用户的输入存放到变量ANS中) 

3) cat    (显示文件内容) 

4) 管道( | )    (一个程序的输出作为另一个程序的输入) 

例:ls -l | grep "d" 

5) 文件重定向( >和>> ) 

例:ls -l > /tmp/a.txt    (将输出的结果重写到a.txt这个文件中) 

ls -l >> /tmp/a.txt   (将输出的结果追加到a.txt这个文件中,常用于记录日志) 

6) 标准输入( $0 )、标准输出( $1 )和标准错误( $2 ) 

采用文件描述符($0、$1、$2)来定义。 

2、实例:readme.sh 

#!/bin/bash 

#readname.sh 

echo -n "First Name: " 

read firstname 

echo -n "Last Name: " 

read lastname subname 

echo -e "Your First Name is :${firstname}\n "             #加了-e表示将\n解析为转义字符 

echo -e "Your Last Name is :${lastname}\n " 

echo -e "Your Subname is :${subname}\n " 

echo "Your First Name is :${firstname}\n " >>firstname.txt        #这行没加-e,因此在输出中会原样显示\n 

echo  "Your Last Name is :${lastname}\n " >lastname.txt 

echo  "Your Subname is :${subname}\n " >&1 

五、文本过滤 

 

 

1、正则表达式    (就是模式匹配) 

2、find    (查找文件) 

例:find ./ -name "*.txt" -print 

3、grep    (查找字符) 

例:grep "[5-8][6-9][0-3]" access_log 

4、awk    (把一系列数据分域,即分成列) 

例:awk '{print $1"\t"$4}' access_log 

5、sed    (对数据进行查找和替换) 

例:sed  -n 's/chinaitlab/hello/p' myfile.txt    (将myfile.txt文件中的chinaitlab替换成hello,并打印到屏幕上来,s表示替换,p表示打印。如果加上重定向符就可以将替换后的 内容输出到一个文件中去。) 

6、sort    (排序) 

例:sort ip.txt 

7、uniq    (显示这一列是唯一的还是不唯一的,可以唯一化) 

例:uniq ip.txt 

8、split    (可以对文件进行分割) 

例:split myfile.txt 

9、实例:kill_process.sh 

#!/bin/bash 

#kill_process.sh 

current_PID=

 

ps -aux|grep "/usr/sbin/sshd"|grep -v "grep"|awk '{print $2}'>/tmp/${current_PID}.txt

for pid in `cat /tmp/${current_PID}.txt`

do

{

echo "kill -9 $pid"

kill -9 $pid

}

done

rm -f /tmp/${current_PID}.txt

六、Shell函数

1、定义函数有两种格式,分别为:

函数名()

{

命令1

... ...

}

function 函数名()

{

... ...

}

2、实例:func.sh

#!/bin/bash

#func.sh

# Source function library.            # /etc/rc.d/init.d/functions中存放了大量已经写好的函数

. /etc/rc.d/init.d/functions            # 引入/etc/rc.d/init.d/functions中的函数,相当于其它语言中的include

function hello ()

{

echo "Hello,$1 today is `date`"

}

echo "now going to the function hello"

hello chinaitlab

echo "back from the function"

原文:http://blog.csdn.net/mndscc/article/details/50057771

分享到:
评论

相关推荐

    Shell编程入门基础必备视频教程.zip

    1Linux下Shell编程入门及变量讲解.mp4 2Linux下Shell编程入门及变量讲解.mp4 3Shell编程企业实战菜单系列.mp4 4Shell编程企业实战菜单系列.mp4 5Linux下LAMP实战及脚本编程思路讲解.mp4 6Linux下LAMP实战及脚本编程...

    shell编程入门教程

    shell 编程入门教程 shell 编程是 Linux 操作系统中的一个重要组件,它允许用户输入命令并将其执行, shell 编程有两种执行命令的方式:交互式(Interactive)和批处理(Batch)。在 shell 编程中,有变量、流程...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...

    WINDOWS SHELL编程入门与提高的资料

    入门Windows Shell编程,首先需要了解以下几个关键概念: 1. **批处理脚本**:批处理文件是包含一系列命令的文本文件,用于一次性执行这些命令。它们常用于执行重复性的系统任务,如磁盘清理、文件备份等。 2. **...

    shell编程从入门到精通

    本教程“Shell编程从入门到精通”旨在帮助初学者快速掌握Shell编程的核心技能,并逐步提升至高级水平。 1. **Shell基础** - **Shell类型**:不同的Linux发行版和Unix系统可能使用不同类型的Shell,如Bash(Bourne-...

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程.rar

    《shell编程入门教程》、《shell脚本专家指南》以及《UNIX.shell编程24小时教程》会提供详尽的实例和练习,帮助你巩固所学并深化理解。 总之,Shell编程是Linux/Unix环境中不可或缺的技能,它能够提高工作效率,...

    linux Shell编程入门 实例讲解详解

    Linux Shell编程入门实例讲解详解 Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程...

    Linux下Shell从入门到精通完整版视频.zip

    1.Linux下Shell编程基础入门.mp4 2.Shell编程之变量及LAMP导航菜单编写.mp4 3.Shell编程之IF条件语句各种案例演练.mp4 4.使用if条件语句编写MySQL备份脚本.mp4 5.Shell编程之LAMP一键安装脚本实战.mp4 6.For循环及...

    Linux系统下的shell编程入门篇

    Linux系统下的shell编程入门篇 一、简介 在Linux系统中,shell编程是一种非常重要的技术,能够帮助我们高效地完成任务。在本篇文章中,我们将从基本概念开始,逐步深入到shell编程的各个方面。 首先,shell是什么...

    Windows Shell 编程.pdf

    在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    Linux下的shell编程入门.pdf

    从给定的文件信息来看,我们正在探讨的主题是“Linux下的shell编程入门”,这涉及到Linux操作系统中的shell脚本编写基础。下面将详细解析文件中提到的关键知识点。 ### 1. Shell编程简介 Shell编程是在Linux或类...

    华清远见 Shell编程从入门到精通 中文版

    《linux shell编程从入门到精通》由浅入深、循序渐进地详细讲解了linux shell编程的基本知识。这些基本知识包括shell编程的基本知识、文本处理的工具和方法、正则表达式、linux系统知识等。  《linux shell编程从...

    实验四 Linux Shell编程入门

    实验四 Linux Shell编程入门 通过实验掌握下列知识: 1、了解Linux下Bash Shell脚本编写的基本要求; 2、了解Bash Shell几种常用的控制结构; 3、能按要求编写简单的Bash Shell脚本;

    Linux Shell编程从入门到精通

    本书由浅入深、循序渐进地详细讲解了LinuxShell编程的基本知识。这些基本知识包括Shell编程的基本知识、文本处理的工具和方法、正则表达式、Linux系统知识等。  本书旨在通过理清Linux Shell编程的脉络,从基本概念...

    Linux Shell 脚本编程入门教程

    在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。 Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin...

    Linux.Shell编程从入门到精通详解

    书中从基础概念出发,通过实际案例教学,对Shell编程进行详细的讲解和指导。Shell编程是一种在Unix及类Unix系统中的脚本语言,负责接收用户输入的命令以及将其传递给系统执行。 本书分为几个关键部分,首先是Shell...

    Linux下Shell编程从入门到精通视频教程.txt

    20、Shell编程之学习心得分享及拓展.mp4 19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量...

    Bourne shell编程入门

    《Bourne shell编程入门》一文由大连理工大学的何斌武教授撰写,旨在为读者提供Bourne shell(简称sh)的基础知识及其在shell编程中的应用。文章内容详实,涵盖shell的基础概念、环境配置、变量管理、脚本编写技巧...

Global site tag (gtag.js) - Google Analytics