计算机网络/计算机科学与应用/系统/运维/开发

一、Shell基本入门

一、学习Shell条件

1、熟练使用vim编辑器 配置ssh终端 以及 .vimrc 等

2、多掌握命令 熟练使用 

3、掌握Linux正则表达式及三剑客 grep sed awk 

4、熟悉常见的Linux网络服务部署、优化、日志分析及排错


二、学号shell编程 

1、掌握Shell脚本基本语法的方法

2、掌握Shell脚本的各种常见语法

3、形成自己的脚本开发风格

4、从简单做起,简单判断,简单循环

5、多模仿,多放下参考资料练习,多思考

6、学会分析问题,逐渐形成编程思维

7、编程变量名字要规范,采用驼峰语法表示

http://edu.51cto.com/pack/view/id-546.html


三、shell脚本入门

1、什么是shell 

作用是解释执行用户输入的命令及程序等,用户每输入一条命令,Shell就解释执行一条。

这种从键盘一输入命令,就可以立即得到回应的对话方式,称为交互的方式

2、什么是shell脚本?

命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序就被称为Shell脚本


四、脚本语言种类 

一类是Bourne shell,另一类是C shell

1、Bourne shell

Bourne shell(sh)、Korn shell(ksh)、Bourne Again Shell(bash)三种类型


2、C shell 

csh、tcsh两种类型

命令查看Shell支持:

[root@localhost ~]# cat /etc/shells 
 /bin/sh
 /bin/bash
 /usr/bin/sh
 /usr/bin/bash
 /bin/tcsh
 /bin/csh


3、查看系统默认的shell

[root@localhost ~]# echo $SHELL
 /bin/bash
 
 [root@localhost ~]# grep root /etc/passwd
 root:x:0:0:root:/root:/bin/bash
 operator:x:11:0:operator:/root:/sbin/nologin



五、Shell脚本建立与执行

修改vi别名:

[root@oldboy ~]# echo "alias vi='vim'" >>/etc/profile
 [root@oldboy ~]# tail -1 /etc/profile
 alias vi='vim'
 [root@oldboy ~]# source /etc/profile



1、开头第一行(幻数)

#! /bin/bash
 或
 #! /bin/sh #<==255个字符以内


实例test.sh

#!/bin/bash 
 echo "hello shell"


[root@localhost ~]# cat /etc/redhat-release 
 CentOS Linux release 7.9.2009 (Core)
 [root@localhost ~]# bash --version
 GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
 Copyright (C) 2011 Free Software Foundation, Inc.



2、注释

#注释内容 


3、脚本执行 

   执行时先查找系统环境变量ENV

   指定了环境文件(加载顺序通常是/etc/profile、~/.bash_profile、~/.bashrc、/etc/bashrc等),在加载了上述环境变量文件后,Shell就开始执行Shell脚本中的内容

   

   执行方式:

   bash script-name 或者 sh  script-name

   path/script-name 或 ./script-name  (需要执行权限 chmod +x script-name)

   source script-name或.script-name

   source 或 .

   sh<script-name或cat scripts-name|sh


4、脚本开发规范

   Shell脚本的第一行是指定脚本解释器

   #!/bin/bash 

   或 

   #!/bin/sh 

   

   Shell脚本的开头会加版本、版权等信息

# Date:    16:29 2012-3-30

# Author: Created by oldboy

# Blog:http://oldboy.blog.51cto.com

# Description:This scripts function is.....

# Version:1.1

   尽量避免中文 

    export LANG="zh_CN.UTF-8"

 

   Shell脚本的命名应以.sh为扩展名

   script-name.sh 


   Shell脚本应存放在固定的路径下   

     /server/scripts 


5、脚本开发习惯

成对的符号应尽量一次性写出来,然后退格在符号里增加内容

{}、[]、''、``、""


中括号([])两端至少要有1个空格


对于流程控制语句,应一次性将格式写完,再添加内容

if 条件内容

          then

            内容

        fi


通过缩进让代码更易读

if条件内容

          then

            内容

        fi


对于常规变量的字符串定义变量值应加双引号,并且等号前后不能有空格

OLDBOY_FILE="test.txt"


脚本中的单引号、双引号及反引号必须为英文状态下的符号,其实所有的Linux字符及符号都应该是英文状态下的符号


学会在学习中寻找乐趣,学会乐在其中并保持热情

评论

^