shell训练营 Day6「建议收藏」

shell训练营 Day6「建议收藏」shell训练营 Day6

大家好,又见面了,我是你们的朋友全栈君。

1.Shell是个啥:
shell是一种脚本语言 aming_linux blog.lishiming.net
可以使用逻辑判断、循环等语法
可以自定义函数
shell是系统命令的集合
shell脚本可以实现自动化运维,能大大增加我们的运维效率

2.Shell脚本结构和执行
开头需要 #!/bin/bash
脚本内容中以#开头的行作为解释说明
编写脚本时用#添加作者、用途、功能等注释,方便日后查看和使用
脚本的名字一般用“.sh”结尾,区分这是一个shell脚本
执行方法有两种:
给脚本添加执行权限“chmod 755 1.sh”,然后直接执行该脚本“./1.sh”;
使用sh或bash执行 # sh 1.sh;

3.date命令的用法
date 可以用来显示或设定系统的日期与时间
命令参数
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
日期格式字符串列表
%H 小时(以00-23来表示)
%I 小时(以01-12来表示)
%K 小时(以0-23来表示)
%l 小时(以0-12来表示)
%M 分钟(以00-59来表示)
%P AM或PM
%r 时间(含时分秒,小时以12小时AM/PM来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC
%S 秒(以本地的惯用法来表示)
%T 时间(含时分秒,小时以24小时制来表示)
%d 日期(以01-31来表示)
%D 日期(含年月日)
%m 月份(以01-12来表示)
%U 该年中的周数
%w 该周的天数,0代表周日,1代表周一,异词类推
%x 日期(以本地的惯用法来表示)
%y 年份(以00-99来表示)
%Y 年份(以四位数来表示)
[root@dl-001 shell]# date +%Y //查看当前年份(四位显示)
2018
[root@dl-001 shell]# date +%y //查看当前年份(简化显示)
18
[root@dl-001 shell]# date “+%Y-%m-%d %H:%M:%S %w” //查看当前 年 月 日 时 分 秒 星期
2018-12-20 10:01:00 6
[root@dl-001 shell]# date +%F //查看当前完整的年月日
2018-12-20
[root@dl-001 shell]# date +%W //查看当前时间是一年的第几周
50
[root@dl-001 shell]# date +%T //查看当前时间是几点
10:01:38

4.shell脚本中的变量
当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
使用条件语句时,常使用变量    if [ $a -gt 1 ]; then … ; fi
引用某个命令的结果时,用变量替代   n=wc -l 1.txt
写和用户交互的脚本时,变量也是必不可少的  read -p “Input a number: ” n; echo $n   如果没写这个n,可以直接使用$REPLY
内置变量 $0, $1, $2…    $0表示脚本本身,$1 第一个参数,$2 第二个 ….       $#表示参数个数
数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

5.shell中的逻辑判断
if判断
格式1:if 条件 ; then 语句; fi
格式2:if 条件; then 语句; else 语句; fi
格式3:if …; then … ;elif …; then …; else …; fi
逻辑判断表达式:
if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 切记[]里的两边都要有空格
且可以使用 && || 结合多个条件
if [ $a -gt 5 ] && [ $a -lt 10 ]; then
if [ $b -gt 5 ] || [ $b -lt 3 ]; then

if 判断文件、目录属性
[ -f file ]判断是否是普通文件,且存在
[ -d file ] 判断是否是目录,且存在
[ -e file ] 判断文件或目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行
例:if [ -f 1.txt ]

转载于:https://blog.51cto.com/12898947/2334380

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单片机控制步进电机正反转c语言程序,单片机控制步进电机1步10步100步正反转…

    单片机控制步进电机正反转c语言程序,单片机控制步进电机1步10步100步正反转…原标题:单片机控制步进电机1步10步100步正反转一,程序设计方案的构想:1)的控制原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响.即给电机加一个信号,电机则转过一个步距角.这一线形关系的存在,加上步进电机只有周期性的误差而无积累误差等特点,使得在线速度,位置等控制领域用步进电机来控制变的…

    2022年5月8日
    92
  • numpy数据类型dtype转换

    numpy数据类型dtype转换这篇文章我们玩玩numpy的数值数据类型转换 导入numpy&gt;&gt;&gt;importnumpyasnp 一、随便玩玩生成一个浮点数组&gt;&gt;&gt;a=np.random.random(4)看看信息&gt;&gt;&gt;aarray([0.0945377,0.52199916,0.62490646,…

    2022年5月4日
    34
  • 虚拟机上网的三种方式

    虚拟机上网的三种方式前言很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmware有三种网络模式,对初学者来说也比较眼花聊乱,今天我就来基于虚拟机3种网络模式,帮大家普及下虚拟机上网的背景知识。(博文原创自http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html)虚拟机网络模式无论是vmware,virtualbox

    2022年5月19日
    44
  • curl命令具体解释

    curl命令具体解释

    2021年12月3日
    53
  • 1到n全排列的hash函数(o(n))

    1到n全排列的hash函数(o(n))

    2021年8月11日
    60
  • layoutparser_你知道什么什么吗

    layoutparser_你知道什么什么吗从概念讲起LayoutParams,顾名思义,就是布局参数。而且大多数人对此都是司空见惯,我们XML文件里面的每一个View都会接触到layout_xxx这样的属性,这实际上就是对布局参数的描述。大概大家也就清楚了,layout_这样开头的东西都不属于View,而是控制具体显示在哪里。LayoutParams都有哪些初始化方法通常来说,我们都会把我们的控件放在XML文件…

    2022年9月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号