最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 云计算 >
Shell是什么?有什么用?
CSDN发表于 2020-09-07 09:36 次浏览
         Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
Shell基础知识

补充:

  • 笔记中特殊符号: 1)' ':待填写的内容;2)。。。:任意数量和运算
    Shell中的注释:以#开头
    

一、变量与运算符

1.变量

1)变量的声明与取值

  • #①赋值
    '变量名' = '变量值。。。'
    #②取变量的值
    $'变量名'
    

2)变量的参数

  • $0	#脚本名称
    $1	#运行脚本第一个参数 $2 $3 ...以此类推
    ${10}	#运行脚本第十个以上参数要用
    $#	#参数的个数,常用于循环
    $*	#所有参数,值得注意的是:加双引号的"$*"代表参数整体
    $@	#所有参数
    $?	#最后一次命令的返回状态:0:正确执行
    

2.运算符

  • #用于计算的变量通常使用运算符包裹
    $(('运算式'))
    $['运算式']
    

二、条件判断

1.判断格式

  • #1)基本语法
    [ '判断条件' ] #注意判断条件与[]之间要有空格 返回true或false
    [ -x ... ]
    [ -a ... -b ]
    #2)字符串比较
    = 
    #3)两个整数之间比较
    -lt #小于(less than)
    -le #小于等于(less equal)
    -eq #等于(equal)				
    -gt #大于(greater than)
    -ge #大于等于(greater equal)	
    -ne #不等于(Not equal)
    #4)按照文件权限进行判断
    -r #有读的权限(read)			
    -w #有写的权限(write)
    -x #有执行的权限(execute)
    #5)按照文件类型进行判断
    -f #文件存在并且是一个常规的文件(file)
    -e #文件存在(existence)		
    -d #文件存在并是一个目录(directory)
    

2.三元运算

  • [ '判断条件' ] $$  '判断为true执行此处' || '判断为false执行此处'
    [ '判断条件' ] $$  "可以是[ '判断条件' ]" || '也可以是值'
    

三、流程控制

  • 1.if

  • #if后要有空格,条件判断式与[]之间要有空格
    if [ '条件判断' ] 
    	then 
        '执行语句' 
    elif [ '条件判断' ]
    	then
    		'执行语句'
    else
    		'执行语句'
    fi
    

2.case

  • #1);;对应java case语句中的break
    #2)*)对应java case语句中default
    case $'变量名' in 
      "'值1'") 
        '变量的值等于值1,执行此语句 '
        ;; 
      "'值2'") 
        '变量的值等于值2,执行此语句 '
        ;; 
    # 。。。
      *) 
        '变量的值都不是以上的值,执行此语句 '
        ;; 
    esac
    

3.for

  • #语法格式1
    for (( '初始值';'循环控制条件';'变量变化' )) 
      do 
       '执行语句'
      done
    #语法格式2
    for '变量' in '值1 值2 值3。。。 '
      do 
        '执行语句'
      done
    

4.while

  • while [ '条件判断' ] 
      do 
       '执行语句'
      done
    

四、输入与输出

1.输入

  • #-p:提示符,-t:等待时间
    #读取输入的字符,给变量名赋值
    read -t '输入等待时间' -p '提示内容' '变量名'
    

2.输出

  • echo '字符串'
    echo $'变量名'
    
  • hell工具

1.cut

  • #-d:指定切割字符,-f:指定要得到的列
    cut -d '指定以什么字符进行切割' -f '提取切割的哪几列' '文件名'
    #可搭配管道符|和grep行过滤,进行迭代切割
    cut -d '字符'  -f '1,2。。。' '文件名' | grep '过滤字符' | cut -d '字符'  -f '1,2。。。' | 。。。
    

2.awk

  • #-F:指定分割符,-v:指定变量并赋值,{print '打印内容,可以计算和拼接字符串'。。。},/'正则表达式过滤'/
    awk -v i=1 -F: '/^root/{print $3+i","}' '文件名' #以:分割以root开头,打印第3列与1的和末尾拼接','
    #内置变量
    FILENAME	#文件名
    NR	#已读的记录数
    NF	#浏览记录的域的个数(切割后,列的个数)
    

六、正则表达式

1.基本语法

  • 'ls' | grep '正则表达式'
    

2.常用正则

  • ^'字符A'  #以A起始
    '字符B'$	#以B结尾
    ^$		 #空值
    . 		#类似sql中的_
    *		#类似sql中的%
标签:Shell是什么
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2020-09-14 16:31:22 关键词:Shell是什么
摘要:你知道企业运维shell的面试题都有哪些吗?在这里我简单统计整理了一下,让我们一起来看看都有哪些? 一、取出/etc/passwd文件中shell出现的次数 问题:下面是一个/etc/passwd文件的部分内..