python,shell

Shell编程规范和变量

一、Shell脚本编程规范:①shell脚本应用脚本

                       ②shell编程规范

                       ③管道与重定向

1.Shell脚本变量:①自定义变量

                 ②特殊变量

Linux运行靠各种命令进行控制,命令要运行在Linux中他是一种程序,此程序为命令解释器,这个命令解释器在Linux中的另一个名字就是shellshell:壳,贝壳,炮弹,外形)

 

2.Shell脚本的概念:

①将要执行的命令按(逻辑)顺序保存到一个文本文件

②给该文件可执行权限,便可运行

③可结合各种shell控制语句已完成更复杂的操作

3.Shell脚本应用场景:重复性操作,批量事务处理,自动化运维,服务运行状态监控,定时任务执行,等等。

4.Shell脚本的构成:

① 脚本声明 #!/usr/bin/bash    (属于绝对路径)

② 注释信息 :以”#”号开头

③ 可执行语句 echo,pwd,cd,.....(按顺序进行罗列,一行一命令)

④ 查看系统脚本

more /etc/sysconfig/network-scripts/ifup ps:终端或者xshell中都可以运行)

shell中,“#!”这两个符号连在一起使用是运行的意思,并且在shell运行中是可以被读取的。但是只有一个#就是注释的意思。

echo “aaa”(ps: /双引号里是什么内容,回车后就输出什么内容)

5.脚本的执行方式

① 绝对路径 :对当前账户起作用,需要chmod用户权限

② 相对路径 :对当前账户起作用,需要chmod用户权限

③ sh脚本路径 :不需要chmod任何执行权限。

which sh  --回车-->/urs/bin/sh

ls -l /usr/bin/sh --回车-->:   ...->bash

which bash --回车-->: /usr/bin/bash

sh first.sh --回车-->就会自动调用bash

④ source 脚本路径:属于本地shell,也不需要chmod任何权限

 

6.管道与重定向:

(1)管道:

① 管道操作符号 “|”

② 将左侧的命令输出结果,作为右侧命令的处理对象

③ 格式 cmd1 | cmd2  [... | cmdn]

栗子:

① cat /etc/httpd/conf/httpd.conf | less

② cat /etc/passwd | grep “root” 

③ cat /etc/passwd | grep “bash” | wc -l

(2)重定向操作:

标准输入:从该设备接收用户输入的数据

标准输出:通过该设备向用户输出数据

标准错误:通过该设备报告执行出错信息

重定向操作分类:

(1)

     类型          操作符合            用途

 ①重定向输入:                <                     从指定的文件读取数据

 ②重定向输出:             >或者>>            将输出的结果保存到或者追加到指定的文件

 ③标准错误输出:         2>或者2>>         将错误信息保存到或者追加到指定的文件

 ④混合输出:                $>或者$>>         将标准输出、标准错误输出保存到或者追加到指定文件

 

tail -l /etc/shadow  : 查看所有用户状态。

tail:尾巴,跟踪;shadow:影子)

(2)

①重定向输入:

useradd tom

vi mima (ps:要输入两遍,第一遍是输入,第二遍是重新输入)

passwd tom < mima (ps: 省掉了两次手动输入密码的过程)

cat /etc/passwd | wc -l (ps:统计所有设置的密码个数)

 

重定向输出:(ps:>所保存到的文件,若没有会自动创建,再输入会覆盖)

 

 

二、shell脚本变量

1.变量的概念:

变量是用来存放系统或用户需要使用的特定参数或值

② 变量的值可以根据用户设定或者系统环境的变化而相应变化

shell脚本中使用变量,可以使脚本更加灵活,适应性更强

2.变量的分类:

① 自定义变量:由用户自己定义、修改和使用

环境变量:由系统维护,用于设置工作环境

位置变量:通过命令行给脚本程序传递参数

预定义变量:Bash中内置的一类变量,不能直接修改

 

2.1变量:字母或下划线开头,区分大小写

给变量赋值:(ps:①区分大小写②$取值③后一个所赋值覆盖前一个④可不加引号⑤${}进行区分⑥除了下划线,中间可加特殊字符)

2.2赋值可使用的引号:

双引号:允许通过$符号引用其他变量值

单引号:禁止引用其他变量值,$视为普通字符

③反撇号``或者$():命令替换,提取命令的执行结果

2.3输入输出:

① 输入格式:read [-p “提示信息”] 变量名

输出格式:echo $变量名

3.变量作用范围:

默认情况下,新自定义的变量只在当前shell环境中有效,因此称为局部变量

当进入子程序,或进入新的子shell环境时,局部变量将无法在使用

为了使用户定义的变量在所有的子shell环境中能够继续使用,减少重复设置工作,可以通过内部命令export将指定的变量导出为“全局变量”

格式1 export 变量名...

格式2 export 变量名=变量值...

两种格式可以混合使用

   注意:

          输入个bash回车,虽没任何提示,但已进入新的子shell中。

          输入exit或者Ctrl+d退回到上一个shell环境

4.变量的算术运算:

变量的数值运算多用于脚本程序的过程控制

只能进行简单的整数运算,不支持小数运算

整数值的运算主要通过内部命令expr进行

格式:

expr 变量1 运算符 变量2 [运算符 变量3]...

运算符:

    +  :加法运算

     -  :减法运算

    \*  :乘法运算,注意不能仅使用”*”符号,否则将被当成文   件通配符

     /  : 除法运算

    % :求模运算,又称为求余运算,用来计算数值相除后的   余数

 

   注意:

     expr只能运算整数:(ps: 5 / 3   值也是整数)

 

5.预定义变量:又称特殊变量

预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值

预定义变量使用”$”符号和另一个符号组合表示

③$*$@  都保存了脚本要处理的所有参数

④$*是把所有要处理的参数看成一个整体,即:一个对象

⑤$@是把所有要处理的参数看成一个个小整体。

⑥$0  是保存了脚本的名称

⑦$? (0为真,非0为假)    保存了命令或者脚本运行状态码

⑧$#   保存了脚本要处理的参数的个数

 

date +%s  : 从1970年1月1日0时0分0秒,到现在的秒数

6.位置变量:

① 为了在使用shell脚本程序时,方便通过命令行,为程序提供操作参数,Bash引入了位置变量的概念

② 位置变量有$0, $n , n1~9的数字

③ $0:第一个字段表示命令名或脚本程序名

④ $1:为脚本要处理的第一个参数,$2......

⑤ Shell 脚本最多可以直接处理9个参数

 

6.环境变量:

① 指的是出于运行需要而由Linux系统提前创建的一类变量,主 要用于设置用户的工作环境

② 使用env命令可以查看到当前工作环境下的环境变量

③ PATH变量用于设置可执行程序的默认搜索路径

④ 环境变量的全局配置文件为/etc/profile,每个用户还有自己的 独立配置文件~/.bash_profile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值