查看当前 sheel版本
echo $SHEEL
/bin/bash
[root@nt 桌面]# (date;ll;echo 1+1) # 命令之间用;分割 2021年 12月 20日 星期一 19:25:02 CST 总用量 68 -rwxr--r--. 1 root root 174 12月 18 12:15 1.sh -rw-r--r--. 1 root root 740 12月 20 14:42 array1.sh -rw-r--r--. 1 root root 117 12月 20 17:10 array2.sh -rw-r--r--. 1 root root 362 12月 18 15:00 case1.sh -rw-r--r--. 1 root root 295 12月 20 10:56 case2.sh -rw-r--r--. 1 root root 123 12月 18 15:17 for1.sh -rw-r--r--. 1 root root 412 12月 18 15:21 for2.sh -rw-r--r--. 1 root root 208 12月 18 15:32 for3.sh -rw-r--r--. 1 root root 936 12月 20 11:15 for4.sh -rw-r--r--. 1 root root 619 12月 20 11:37 for5九九乘法表.sh -rw-r--r--. 1 root root 940 12月 20 14:24 for6.sh -rw-r--r--. 1 root root 351 12月 20 14:21 for7.sh -rw-r--r--. 1 root root 1047 12月 20 16:57 function1.sh -rw-r--r--. 1 root root 116 12月 18 14:06 if1.sh -rw-r--r--. 1 root root 197 12月 18 14:42 if2.sh -rw-r--r--. 1 root root 410 12月 20 10:58 if3.sh -rw-r--r--. 1 root root 482 12月 20 14:30 while1.sh 1+1
[root@nt 桌面]# i=1;echo $i; # 给变量赋值 等号前后不能有空格 #$变量名:获取变量值 1
[root@]# touch 1.sh #创建空文件 [root@]# vim 1.sh #编辑文件 [root@]# ll #查看文件列表 总用量 8 -rw-r--r--. 1 root root 43 12月 18 09:31 1.sh -rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg [root@]# cat 1.sh # 查看文件内容 # /bin/bash date; i=1; echo $i; ls -l; [root@]# chmod u+x 1.sh #授予当前用户对1.sh的执行权 [root@]# ll 总用量 8 -rwxr--r--. 1 root root 43 12月 18 09:31 1.sh -rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg ``` ### 2.4 执行 sheel文件 - 方式一:./sheel文件 - 方式二:shource sheel文件 - 方式三:/bin/bash sheel文件 - 方式四:sh sheel文件 ```sheel [root@]# ./1.sh 2021年 12月 18日 星期六 09:34:12 CST 1 总用量 8 -rwxr--r--. 1 root root 39 12月 18 09:34 1.sh -rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg [root@]# source 1.sh 2021年 12月 18日 星期六 09:34:39 CST 1 总用量 8 -rwxr--r--. 1 root root 39 12月 18 09:34 1.sh -rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg [root@]# /bin/bash 1.sh 2021年 12月 18日 星期六 09:34:50 CST 1 总用量 8 -rwxr--r--. 1 root root 39 12月 18 09:34 1.sh -rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg ``` ## 3. window 与 Linux实现文件互传 ### 3.1 通过 rzmingl - 安装 rz - <font color=red>yum install lrzsz</font> ### 通过 xftp文件 ## 4. shell编程 ### 4.1 数据类型 - 字符串类型:双引号、单引号 - 整数:注意 boolean用0和1表示 - 浮点数 ### 4.2 语法 - 以分号表示语句结束 换行也可以表示语句结束 - 变量命名:由数字 字母 下划线组成,不能以数字开头 ,不能是shell关键字,区分大小写 ### 4.3 变量 - 给变量赋值 ```sheel [root@java37master ~]# i=1; #等号两边不能有空格 [root@java37master ~]# i= 1 -bash: 1: 未找到命令 [root@java37master ~]# i =1 -bash: i: 未找到命令 ``` - 输出变量 ```sheel [root@java37master ~]# echo $i; #输出变量i的值 并换行 1 [root@java37master ~]# printf $i; #输出变量i的值 但不换行 1[root@java37master ~]# ``` - $使用 ```sheel 1[root@java37master ~]# i=1;j=$i;echo $j; #$i :获取变量i的值 1 [root@java37master ~]# j=${i};echo $j; #${i} :获取变量i的值 1 [root@java37master ~]# j=$((i+1));echo $j; #$((式子)) :进行数学运算 2 [root@java37master ~]# j=$[i+1];echo $j; #$[式子] :进行数学运算 2 [root@java37master ~]# j=$(date);echo $j; #$(命令) :执行语句 并获取结果 2021年 12月 18日 星期六 09:59:11 CST ``` - 通过键盘给变量赋值:read 函数 ```sheel [root@java37master ~]# read -p "请输入一个整数:" i; 请输入一个整数:3 [root@java37master ~]# echo $i; 3 ``` ### 4.4 运算 ```sheel [root@java37master ~]# i=2; [root@java37master ~]# j=$((1+i));echo $j; #通过$((式子)) 3 [root@java37master ~]# j=$[1+i];echo $j; #通过$[式子] 3 [root@java37master ~]# j=$(expr 1+1); echo $j; #获取的是字符串 1+1 [root@java37master ~]# j=$(expr 1 + 1); echo $j; #有空格 才进行运算 2 [root@java37master ~]# j=$(expr 1 + i); echo $j; #必须是常量值 expr: 非整数参数 [root@java37master ~]# j=$(expr 1 + $i); echo $j; #$i获取的就是值了 3 [root@java37master ~]# j=`expr 1 + $i`; echo $j; #列表必须是破折号 在1旁边 3 [root@java37master ~]# j=$(expr 3 \* 2 ); echo $j; #乘法运算 6 [root@java37master ~]# j=$(expr 3 / 2 ); echo $j; #除法运算 1 [root@java37master ~]# j=$(expr 3 % 2 ); echo $j; #求余运算 1 ``` ### 4.5 运算符 **数字运算符** - -eq 等于 - -ne 不等于 - -gt 大于 - -ge 大于等于 - -lt 小于 - -le 小于等于 **字符串运算符** - = 判断是否相等 - != 判断是否不同 - -n 是否为空 **逻辑运算符** - ! 取反 - -a 与 - o 或