shell基础+面试问题笔记

本文介绍了Shell的基础知识,包括脚本编写、变量、表达式、流程控制和Linux常用命令。还涵盖了Shell脚本面试中常见的问题,如参数使用、字符串截取、文件判断、循环结构以及重定向等。
摘要由CSDN通过智能技术生成

shell介绍

  1. 自动化可以通过两种方式来实现: 工具 和 脚本

  2. 常见的脚本有两种:shell脚本、其他脚本, 诸如python脚本等

  3. shell 是一个 命令解释器 , shell是位于应用程序和操作系统之间的有效命令翻译工具.

  4. shell分为两大类:

    1. 图形化的shell , 如我们常说的操作系统的桌面
    2. 命令行的shell
  5. 查看系统shell类型: echo $SHELL

  6. 查看当前系统环境支持的shell : cat /etc/shells

  7. shell手工执行的时候有一个重要的特点:
    逐行输入命令, 逐行解释执行

shell脚本的基础知识

  1. 概念
    常用编辑工具 vim vi
    命名: 见名知义
  2. 注释
    1. 单行注释:除了首行加#不是注释外, 其他在行首加#均表示此行是单行注释
    2. 多行注释
        :<<!
        ...  #这里表示注释掉的内容
        !
      
  3. 脚本执行
    注意: 要修改文件的可执行权限 chmod +x script-name.sh
    1. 强烈推荐的方式: 写完整的路径名:/bin/bash /path/script-name.sh
    2. 当前路径下执行脚本:path/to/script-name.sh 或 ./script-name.sh
    3. 点 执行:source script-name.sh 或 . script-name.sh
  4. 脚本开发规范
    1. 命名要见名知义, 脚本后缀是 .sh
    2. 脚本首行是且必须是#!/bin/bash
    3. 第二行开始一般先写脚本的描述信息:
      1. 脚本名称, 功能, 版本, 作者, 联系信息等
      2. 注释不推荐中文, 避免不同的操作系统出现中文乱码的问题
    4. 脚本的执行也是从上到下依次执行, 但是可以通过 &灵活的使其中 部分阻塞式的命令在后台执行
    5. 代码书写规范
      1. 成对内容一次写出防止遗漏, 比如 ()等
      2. [ ]中括号内部的 两端要有空格
      3. 内部流程控制语句一次性书写完, 再添加内容.
      4. 通过缩进提高代码的 可读性, 即该有空格的地方要有空格

语法

变量

  1. 变量 包含变量名 (不变的部分)和变量值 (可变的部分)

  2. 本地变量:在当前系统的某个环境下才能生效的变量, 作用范围小
    本地变量包含两种普通变量命令变量 (必须掌握)

    1. 普通变量 的定义方式(三种)

      1. 方式一: 变量名=变量值 变量值必须是一个整体,中间没有特殊字符
      2. 方式二:变量名='变量值'
      3. 方式三: 变量名="变量值"
      4. 习惯: 数字不加引号、原样输出使用单引号、其他默认加双引号
    2. 命令变量 定义有两种方式:
      1.方式一: 变量名=命令
      2.方式二: 变量名=$(命令)

  3. 全局变量:在当前系统所有环境都能生效得变量

    1. 查看全局变量: env 命令查看系统的所有环境变量
    2. 定义全局变量:export 变量名=变量值
  4. 变量查看和取消
    查看:"${变量名}"
    取消: unset 变量名

和脚本文件有关

符号 意义
$0 获取当前执行的shell脚本文件名,包括脚本路径
$n 获取当前执行的shell脚本的第n个参数值,n=1…9,如果n大于9就要用大 括号括起来${10}
$# 获取当前shell命令行中参数的总个数
$? 获取执行上一个指令的返回值(0为成功 , 非0为失败)

字符串精确截取相关

格式: ${变量名:起始位置:截取长度}

  #示例代码:
  ${file:0:5}     从第1个字符开始,截取5个字符
  ${file::5}          从第1个字符开始,截取5个字符
  ${file:5:5}     从第6个字符开始,截取5个字符
  ${file:5}           从第6个字符开始,截取后面所有的字符
  ${file:0-5}     从倒数第5个字符开始,截取后面所有的字符
  ${file:0-6:3}       从倒数第6个字符开始,截取之后的3个字符

表达式

  1. 测试语句形式:[ 条件表达式 ] 条件成立, 状态返回值是0, 条件不成立, 状态返回值是1
    注意:[] 的内部两端与条件表达式之间至少有一个空格
  2. 条件表达式
    1. 逻辑表达式:&& 和 ||

    2. 文件表达式

      1. -f 判断输入内容是否是一个文件
         
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值