第二篇也不知道该写什么,就简单回顾一下Shell吧。

36 阅读2分钟

Shell复习笔记

一、Shell基础

1. 什么是Shell:命令行解释器,连接用户与Linux内核,执行用户指令(如bash、sh、zsh,默认bash)

2. 启动与退出:终端直接启动;退出用exit或Ctrl+C

3. 核心概念

  • 命令格式:命令 [选项] [参数](短选项-,长选项--)
  • 环境变量:全局(/etc/profile)、用户级(~/.bash_profile)、局部(仅当前会话)
  • 常用环境变量:PATH(命令搜索路径)、HOME(用户家目录)、USER(当前用户)、PWD(当前路径)

二、Shell脚本基础

1. 脚本结构

开头:#!/bin/bash(指定解释器)

执行:chmod +x 脚本.sh;./脚本.sh 或 bash 脚本.sh

2. 变量

  • 定义:变量名=值(无空格,如name="test")
  • 使用:$变量名 或 ${变量名}(如echo $name)
  • 位置参数:$0(脚本名)、$1-$n(参数)、$#(参数个数)、$和$@(所有参数)、$?(上一条命令退出状态,0成功非0失败)
  • 只读变量:readonly 变量名
  • 删除变量:unset 变量名(只读变量不可删)

3. 条件判断

格式1:

if [ 条件 ]; then 
    执行; 
elif [ 条件 ]; then 
    执行; 
else 
    执行; 
fi

格式2:

case $变量 in 
    模式1)
        执行;;
    模式2) 
        执行;; 
    *)
        执行;;
esac

常用判断:

  • 文件判断:-f(普通文件)、-d(目录)、-r(可读)、-w(可写)、-x(可执行)
  • 数值判断:-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于等于)、-le(小于等于)
  • 字符串判断:-z(空字符串)、-n(非空字符串)、==(等于)、!=(不等于)

4. 循环结构

for循环:

for 变量 in 列表; do
  执行
done

while循环:

while [ 条件 ]; do
  执行
done

5. 函数

函数名() {
  执行内容
  return 退出状态
}

6. 输入输出重定向

  • >:覆盖输出(echo "test" > 文件名)
  • >>:追加输出(echo "test" >> 文件名)
  • <:输入重定向(read var < 文件名)
  • 2>:错误输出重定向(命令 2> 错误日志)
  • &>:所有输出重定向(命令 &> 日志)

三、核心要点总结

  • 命令记住核心选项,避免冗余,结合管道(|)组合使用(如ps aux | grep java)
  • 脚本注意语法规范:空格([]前后必须有空格)、引号(字符串含空格用双引号)、注释(# 单行注释)
  • 环境变量修改后,source 配置文件使其立即生效(如source ~/.bash_profile)
  • 权限管理核心是rwx的组合,chmod 755是常用可执行权限