PLC
直播中

fejlkel

8年用户 1046经验值
擅长:制造/封装
私信 关注

shell是什么?shell中的变量有哪些

shell是什么?
Linux提供的Shell解析器有哪几种?
shell中的变量有哪些?

回帖(1)

侯倩

2021-9-30 16:42:53
  shell是什么
  shell是一个命令解释器,它接收应用程序/用户命令,然后调用操作系统内核。shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。
  shell解析器
  Linux提供的Shell解析器有以下六种:
  cat /etc/shells
  /bin/sh :
  /bin/bash : Centos默认的解析器是/bin/bash
  /***in/nologin:
  /bin/dash:
  /bin/tcsh:
  /bin/csh:
  shell入门
  1.脚本格式
  (1) 脚本以 #!/bin/bash 开头 (指定解释器)
  (2) 脚本执行方式:
  ① sh test.sh
  ② bash test.sh
  ③ 。/test.sh :这种方式需要授予test.sh脚本执行权限
  2.shell中的变量
  (1) 常用的系统变量 ① $HOME:当前用户的家目录 ② $PWD:当前的目录 ③ $SHELL:默认的解析器 ④ $USER:当前用户 (2) 自定义变量 ① 基本语法:变量=值 ② 撤销变量:unset 变量 ③ 声明静态变量:readonly变量,注意:不能unset ④ 变量定义规则: 《1》 环境变量名建议大写 《2》 等号两边不能有空格 《3》 在bash中,变量默认都是字符串类型,无法直接进行数值运算 《4》 变量的值如果有空格,需要用双引号或单引号括起来
  特殊变量:$n
  $n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,10以上的参数需要用大括号包含,如 ${11} )
  特殊变量: ①。 $* :代表命令行中所有的参数,$*把所有的参数都看成是一个整体 ② $@ :代表命令行中所有的参数,$@把每个参数区分对待 ③。 $# :代表命令行中的参数个数;eg: sh test.sh para1 para2 ,则$#的值为2 ④。 $? :上一个命令执行的返回状态,如果这个状态值是0,证明上一个命令执行正确,反之不是0,则证明上一个命令执行失败
  5 运算符
  ① $((运算式)) :$(( 3 + 4 )) ② $[运算式] : $[(2+3)*4] ③ expr + , - , * , / , % 加,减,乘,除,取余 :*expr `expr 2 + 3` \** 4* 6 条件判断
  ① 【condition】前后要有空格 ② 条件非空即为true,反之为false ③常用的判断条件 《1》两个整数之间的比较 = : 字符串比较 -lt : 小于 -le : 小于等于 -eq : 等于 -ge : 大于等于 -gt : 大于 -ne : 不等于 《2》按照文件权限进行判断 -r : 有读的权限 -w : 有写的权限 -x : 有执行的权限 《3》 按照文件类型进行判断 -f : 文件存在,并且是一个常规的文件(file) -e : 文件存在 -d : 文件存在,并且是一个目录(directory) 7 流程控制
  ① if 判断
  if [ 条件 ];then if [ 条件 ] 程序 then else 程序 程序 else fi 程序 fi ② case
  case $变量名 in “值1”) 程序1 ;; “值2”) 程序2 ;; *) 默认程序 ;; ③ for循环
  语法1: for(( 初始值;循环控制条件;变量变化 )) s=0 do for(( i=0;i《100;i++ )) 程序 do done s=$[$s+$i] done echo $s 语法2 for 变量 in 值1,值2,值3.。. for i in $* do do 程序 echo “value is $i” done done ④ while循环
  while [ 条件表达式 ] do 程序 done
  read读取控制台输入
  read 选项 参数
  选项: -p : 指定读取值时的提示符 -t : 指定读取值时等待的时间 参数: 变量:指定读取值时的b变量名 实例:提示7s内,读取控制台输入的名称 touch read.sh vi read.sh #!/bin/bash read -t 7 -p “Enter your name in 7 seconds ” NAME echo $NAME sh read.sh
  函数
  1系统函数
  ① basename: eg: basename /opc/home/aa.txt 输出: aa.txt eg: basename /opc/home/aa.txt .txt 输出: aa ② dirname: eg: dirname /opc/home/aa.txt 输出:/opc/home 2 自定义函数
  基本语法 [funciton] funname[()] { Action [return int;] } funname
  
  cut 工具
  cut [选项参数] filename
  选项参数
  -f:列号,提取第几列 -d:分隔符,按照指定分隔符分格列 2.实例
  eg: cut -d “ ” -f 1 aa.txt
  eg: ifconfig eth0 | grep “inet addr” | cut -d : -f 2 | cut -d “ ” -f 1
  sed工具
  1.sed是一种流编辑器。一次处理一行内容,把当前处理的行存储在临时缓冲区中,成为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾,文件内容并没有改变,除非你使用重定向存储输出。
  2.用法:
  sed [选项参数] ‘command’ filename 选项参数: -e : 直接在指令列模式上进行sed的动作编辑 命令功能描述: a: 新增 d:删除 s:查找并替换
  3.实例
  sed “2a mytest” aa.txt : 将mytest插入到aa.txt的第二行下
  sed “/mytest/d” aa.txt :将aa.txt中的mytest删除
  sed “s/mytest/youtest/g” aa.txt : 将aa.txt中的mytest替换成youtest
  sed -e “2d” -e “s/mytest/youtest/g” :先删除第二行,在替换aa.txt中的mytest为youtest
  awk工具
  1.一个强大的文本分析工具,把文本逐行的读入,以空格为默认分割符将每行切片, 切开的部分在进行分析处理
  2.基本语法 awk [选项参数] ‘pattern1 {action1} pattern2 {action2} 。.. ’ filename pattern :表示awk在数据中查找的内容,也就是匹配模式 action :在找到匹配内容时执行的一系列命令 参数说明 -F : 指定输入文件的分隔符 -v : 赋值一个用户定义变量 3.实例 awk -F : ‘/^root {print $7}’ /etc/passwd // 只显示/etc/passwd 的第一列和第七列,以逗号分隔, //且在所有行前面添加列名user,在最后一行添加“test,ch” awk -F : ‘BEGIN {print “user”} {print $1,“,” $7} END{print “test,ch”}’ /etc/passwd
  sort
  1.sort 命令在linux中非常有用,它能将文件进行排序,并将排序结果标准输出。
  2.语法
  sort [选项] [参数] 3.选项
  -n 依照数值大小排序 -r 以相反的顺序排序 -t 设置排序时所用的分隔符 -k 指定需要排序的列
  4.实例
  
  sort -t : -nrk 3 aa.txt
举报

更多回帖

发帖
×
20
完善资料,
赚取积分