初识shell

小白的shell之路

系统版本 Red Hat Enterprise Linux Server release 7.

【基础篇】
认识shell和基本运算符

 1.什么是shell脚本:

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

 
 
2.查看本机现有解释器: cat /etc/shells 3.修改用户的shell解释器
useradd -s /bin/ksh zhangsan 【创建用户张三的时候指定登陆shell】 usermod -s /bin/ksh zhangsan 【修改已有用户张三的登陆shell】 4.查看历史命令: history vim /etc/profile 【进入配置文件】 HISTSIZE=1000 【可修改默认历史数量】 history -c 【清空历史命令】 5.历史命令的应用: ![序号] 【再次执行该序号的命令】 !cat 【再次执行最近以cat开头的命令】 6.重定向标准输入/输出/错误输出 > 将命令执行的正常输出重定向到文
>>:只收集前面命令的正确输出 2>:只收集前面命令的错误输出 &>:前面命令的正确与错误输出 >&2:将正确的输出结果变成错误的输出 运算符: 1.expr 【注:数字间有空格】

expr的常用运算符:

  • 加法运算:+
  • 减法运算:-
  • 乘法运算:\*
  • 除法运算:/
  • 求摸(取余)运算:%
[root@server0 ~] # expr 10 % 3 【求10与3的余数】 1 2.$[] [root@server0 ~] # echo $[5*3] 【求5乘3】 15 [root@server0 ~] # x=5 【分别为x和y赋值并求乘积】 [root@server0 ~] # y=10 [root@server0 ~] # echo $[x*y] 50 3.let 【不显示结果】 [root@server0 ~] # x=6 [root@server0 ~] # y=6 [root@server0 ~] # let i=x+y [root@server0 ~] # echo $i 12 简写运算: [root@server0 ~] # x=5 [root@server0 ~] # let x++ 【为x值加1】 [root@server0 ~] # echo $x 6 [root@server0 ~] # x=5 [root@server0 ~] # let x+=5 【为x值加5】 [root@server0 ~] # echo $x 10 let x*= 5 【为x值晨乘 5】 let x/= 5 【为x值除以 5】 let x%= 5 【为x值取余】 4.bc 【计算器】 5+ 5 10 5. 取小数点后x位 scale=x 取小数点后两位 [root@server0 ~] # echo "scale=2;2/10" | bc . 20 6. 比较:test 或 [ 参数 = 参数 ] 【括号内一定要有空格】 [root@server0 ~] # [ a = a ] [root@server0 ~] # echo $? 【判断是否执行】 0 7.判断空值 -z [root@server0 ~] # [ -z $p ] [root@server0 ~] # echo $? 0 [root@server0 ~] # p=5 [root@server0 ~] # [ -z $p ] [root@server0 ~] # echo $? 1 1.一行打多条命令 a && b 仅当a成功时,才执行b a || b 仅当a失败时,才执行b a ; b 执行a,执行b 示例: 创建用户登陆超过两个邮件报警 #!/bin/bash num= `who | wc -l` [ $num -gt 2 ] && mail -s error root < /root/mail 编辑邮件内容vim /root/mail 2.判断文件/目录的状态 -e 判断对象是否存在,存在即为真 -d 判断对象是否为目录,存在即为真 -f 判断对象是否为文件,存在即为真 -r 读 -w 写 -o 执行本 注:root对所有对象皆为真『脚本除外』 [Moring晨] #chmod -x who.sh [Moring晨] #ll who.sh -rw-r--r--. 1 root root 81 4 24 11 : 52 who.sh [Moring晨] #[ -o who.sh ] [Moring晨] #echo $? 1 [判断] && 命令 存在即执行命令 [判断] || 命令 不存在即执行命令 ! 取反 比较整数大小【带g的都有大于二字,带e的都有等于二字,带l的都有小于二字】 -gt :大于 -ge :大于等于 - eq: 等于 - ne:不等于 - lt:小于 - le:小于等于 单分支 if 只能判断对 双分支 if 判断对和错 多分支 if 多次判断

猜你喜欢

转载自blog.csdn.net/drem_of_it/article/details/80140631