Linux shell

shell的运行过程

1.脚本运行环境

  • 登录后默认使用的Shell程序,一般为/bin/bash不同Shell的内部指令、运行环境等会有所区别
  • 查看shell cat letc/shells
    1. /bin/sh
    2. /binvbash
    3. /sbin/nologin
    4. /bintcsh
    5. /bin/csh
    6. /binksh

awk ‘(print $1)’:取某一列 awk -F: ‘(print $1,$2)’ wc -l统计行数

2.shell的编写与执行

  • 第一行:声明使用的bash:#!/bin/bash
  • 第二行:注释
  • 执行shell脚本的方式
    1. ./脚本,必须要有x权限
    2. sh 脚本 不一定需要x的权限
    3. source 脚本
  • 重定向与管道操作
    • 交互式硬件设备:
      1. 标准输入:/dev/stdin 0
      2. 标准输出:/dev/stdout 1
      3. 标准输出错误:/dev/stderr 2
重定向输入>将输出重定向到文件
重定向输出<将输入重定向文件
追加>>将文件以追加的方式重定向到文件
输出合并>&将输出文件合并
输入合并<&将输入文件合并
<<tag将开始标记tag和结束标记tag之间的内容作为输入
  • /dev/null :如果希望执行某个命令但是有不希望屏幕上显示输出结果,可以将输出重定向到/dev/null文件中。此文件是一个特殊的文件,写入的文件都会被丢弃,从此读取文件内容啥也读取不到,但是他会起到禁止输出的效果

2.变量

  • Shell变量的作用
    • 变量的作用
      1. 为灵活管理 Linux系统提供特定参数,有两层意思
      2. 变量名:使用固定的名称,由系统预设或用户定义
      3. 变量值: 据用户设置、系统环境的变化而变化
    • 变量的类型
      1. 自定义变量:由用户自己定义、修改和使用
      2. 环境变量:由系统维护,用于设置工作环境
      3. 位置变量:通过命令行给脚本程序传递参数
      4. 预定义变量:Bash中内置的一类变量,不能直接修改
  • 自定义变量
    1. 赋值时使用引号
    2. 双引号:允许通过$符号引用其他变量值
    3. 单引号:禁止引用其他变量值,$视为普通字符
    4. 反撇号:命令替换,提取命令执行后的输出结果
    5. read -p [” “] var 键盘输入内容为变量赋值
  • 设置变量的作用范围
    • export :全局变量

整数变量的运算

  • 格式: expr 变量1 运算符 变量2 运算符 变量3…
    1. 常用运算符
    2. 加法运算: +
    3. 减法运算:-
    4. 乘法运算:\ *
    5. 除法运算: /
    6. 求模(取余)运算: %
  • 环境变量:
    1. 配置文件:/etc/profile,~/bash_profile
  • 位置变量:$n,n为1-9之间的数字
  • 默认参数位置:
    1. $#:传递参数脚本的参数的个数
    2. $*:所有位置参数的内容
    3. $?:命令中执行后返回的状态
    4. $$:当前进程的进程号
    5. $!:后台运行的最后一个进程号
    6. $-:显示shell使用的当前选线
    7. $0:当前执行的进程名

CRONTAB

  • 计划任务(编写脚本时注意添加命令的脚本,先export 脚本变量)
    1. crontab -e:修改crontab文件
    2. crontab -l:显示crontab文件
    3. crontab -r:删除crontab文件
    4. crontab -ir:删除crontab文件前确认
  • 编写语法(某一列’*’表示全部范围有效):
    1. 第一列:分钟00-59
    2. 第二列:小时00-23
    3. 第三列:日1-31
    4. 第四列:月1-12
    5. 第五列:星期:0-6
    6. 第六列:运行的命令(要写完全路径)

3.条件测试

  • 条件测试:文件测试,整数值比较,字符型比较
    • if语句
      • test命令:测试指定表达式是否成立
        1. 格式:①test 条件表达式 ; ② test [ 条件表达式 ](中括号中间的表示与中括号两端都要有空格)
        2. 文件测试: 格式:【操作符 文件或目录】
          • -d 测试时候是目录
          • -f 测试是否是文件
          • -e 测试目录或者文件是否存在
          • -r,w,x:测试目标是否有相应的权限
        3. 数值比较 : [整数1 操作符 整数2]
          • -eq :等于
          • -ne: 不等于
          • -gt:大于
          • -lt:小于
          • -le:小于等于
        4. 字符串比较
          • 格式:[ 字符串1 = 字符串2 ]()等号的左右要有空格,【】与字符串之间也要有空格,而赋值语句则等号左右没有空格
          • 【 -z 字符串】判断是否是空白字符串
        5. 逻辑测试
          • 格式:【表达式1】操作符 【表达式2】
          • 格式2: 命令1 操作符 命令2
            • -a或者&&:逻辑与,而且的意思
            • -o或者||:逻辑或,或者的意思
            • !:逻辑否
      • if结构
          • 单分支结构:if then fi
          • 双分支结构: if then else fi
          • 多分枝结构:if then elif then else fi

3.循环

  • for循环
批量添加用户,并设置用户名
  • for循环写法
    1. for((i=1;i<=10;i++))
    2. for i in `seq 10`
    3. for i in {1…10}
  • 表达式的表达方法
    1. let var=a * j
    2. ((var=i*j))
    3. var=$i*$j
    4. var=$[i*j]
    5. var=`expr $i \* $j `
    6. var=`echo $i*$j |bc`
  • while循环
  • case
每一分支下使用“;;”结束,*)表示其他情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值