1.Shell编程
- Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。
- 对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
- 对于大数据程序员来说,需要编写Shell程序来管理集群。
1.1 shell脚本的执行方式
- 脚本以#!/bin/bash开头
- 脚本需要有可执行权限
- 一般以.sh命名,当然后缀名不限制
编写一个shell脚本,输出“ hello world!”
[root@hadoop ~]# cd /home/shell
[root@hadoop shell]# vim myshell.sh (见下图)
[root@hadoop shell]# ll
总用量 4
-rw-r--r--. 1 root root 32 3月 30 00:05 myshell.sh
[root@hadoop shell]# /home/shell/myshell.sh
-bash: /home/shell/myshell.sh: 权限不够
# sh+.sh不用授权能执行shell脚本,但是不推荐
[root@hadoop shell]# sh /home/shell/myshell.sh
hello world!
# 授权
[root@hadoop shell]# chmod 744 myshell.sh
[root@hadoop shell]# ll
总用量 4
-rwxr--r--. 1 root root 32 3月 30 00:05 myshell.sh
# 执行
[root@hadoop shell]# /home/shell/myshell.sh
hello world!
1.2 shell变量
Linux Shell中的变量分为:系统变量和用户自定义变量。
1.2.1 系统变量
- 系统变量:
$HOME、$PWD、$SHELL、$USER 等; - 显示当前shell中所有变量:set
输出系统变量
[root@hadoop shell]# vim myshell.sh
[root@hadoop shell]# /home/shell/myshell.sh
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
USER=root
1.2.2 自定义变量
- 定义变量:变量=值
- 撤销变量:unset 变量
- 声明静态变量:readonly变量,注意:不能unset
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
- 等号两侧不能有空格
- 变量名称一般习惯为大写
[root@hadoop shell]# vim myshell.sh
[root@hadoop shell]# /home/shell/myshell.sh
A=100
A=
# 声明静态的变量不能unset
[root@hadoop shell]# vim myshell.sh
[root@hadoop shell]# /home/shell/myshell.sh
A=100
/home/shell/myshell.sh: line 9: unset: A: cannot unset: readonly variable
A=100
1.2.3 将命令的返回值赋给变量
[root@hadoop shell]# vim myshell.sh
[root@hadoop shell]# /home/shell/myshell.sh
总用量 68 -rwxr-xr-x. 1 tom police 0 2月 21 23:19 abc.txt -rw-r--r--. 1 tom root 0 2月 21 19:27 apple.txt -rw-r--r--. 1 root police 1796 2月 17 21:43 a.txt -rw-r--r--. 1 root root 53 2月 18 11:03 hello.txt -rw-r--r--. 1 root root 142 2月 17 21:46 mycal -rw-r--r--. 1 root root 5685 2月 18 14:41 myhome.tar.gz -rw-r--r--. 1 root root 6510 2月 18 11:29 mypackage.zip -rwxr--r--. 1 root root 26 3月 3 19:39 mytask1.sh -rwxr--r--. 1 root root 49 3月 3 19:54 mytask2.sh -rwxr--r--. 1 root root 75 3月 3 22:22 mytask3.rh drwxr-xr-x. 3 root root 4096 3月 4 00:24 newdisk drwxr-xr-x. 2 root root 4096 3月 30 01:34 shell drwxr-xr-x. 3 root root 4096 3月 3 19:57 test drwx------. 4 tom police 4096 2月 22 01:07 tom -rw-r--r--. 1 root root 440 2月 25 01:07 to.txt drwx------. 4 tom police 4096 2月 15 18:07 xm drwx------. 5 zwj wudang 4096 3月 8 19:45 zwj
date=2022年 03月 30日 星期三 01:34:31 CST
1.3 设置环境变量
|