Shell 基础

刷题:

思维导图:

#include <stdio.h> 
 
// 手动定义32位有符号整数的范围 
#define INT_MAX 2147483647 
#define INT_MIN (-2147483647 - 1) 
 
int reverse(int x) 
{ 
    int rev = 0; // 初始化反转后的数字为0 
    while (x != 0) 
    { // 当x不为0时,继续循环 
        int pop = x % 10; // 取出x的最后一位数字 
        x /= 10; // 去掉x的最后一位数字 
        // 检查溢出情况 
        if (rev > INT_MAX / 10 || (rev == INT_MAX / 10 && pop > 7))  
            return 0; // 如果反转后的数字大于最大值,返回0表示溢出 
        if (rev < INT_MIN / 10 || (rev == INT_MIN / 10 && pop < -8))  
            return 0; // 如果反转后的数字小于最小值,返回0表示溢出 
        rev = rev * 10 + pop; // 将最后一位数字添加到反转后的数字中 
    } 
    return rev; // 返回反转后的数字 
} 
 
int main()  
{ 
    int x; 
    printf("请输入一个整数: "); 
    scanf("%d", &x);  
    printf("Input: %d, Reversed: %d\n", x, reverse(x));  
    return 0;  
}

核心要点总结

一、Shell 基础
  1. 定义

    • Shell 是用户与内核交互的接口,本质是多个指令的集合,需满足逻辑关系。
    • 类比“贝壳”,保护内核。
  2. 作用

    • 作为用户与内核交互的核心接口。
  3. 语言类型对比

    • C语言:编译型语言,需编译器(如 gcc),修改后需重新编译。
    • Shell:解释型语言,需解析器(如 bash),每次执行都需解析,速度较慢,但能直接操作内核。

二、Shell 脚本创建
  1. 文件创建

    • 使用 vim ***.sh 创建脚本文件。
  2. Shebang 声明

    • 第一行添加 #!/bin/bash,指定解析器路径。
  3. 注释

    • 单行注释:以 # 开头。
    • 多行注释:使用 <<COMMENT ... COMMENT(可能报错,非必要不使用)。

三、运行 Shell 脚本
  1. 查看解析器

    • echo $SHELL:显示当前 Shell。
    • cat /etc/shells:查看系统支持的解析器。
  2. 常见解析器

    • bash(Debian/Ubuntu 默认)、sh(早期解析器)、dashcshksh
  3. 运行方式

    • 方式1bash ***.sh(新终端执行,结果返回当前终端)。
    • 方式2source ***.sh(直接在当前终端执行)。
    • 方式3
      1. 赋予执行权限:chmod +x ***.sh(或 chmod 777)。
      2. 直接运行:./***.sh

四、环境变量修改
  1. 意义

    • 将脚本路径加入 PATH,使脚本能像系统命令一样直接运行(如 ls)。
  2. 操作步骤

    • 临时生效(仅当前终端):

      bash

      export PATH=$PATH:/自定义路径  # 添加路径到环境变量
    • 赋予权限chmod +x ***.sh
    • 直接运行:输入脚本文件名(如 01_test.sh)。
  3. 查看环境变量

    • envecho $PATH

关键区别说明

  • bash ***.sh vs source ***.sh

    • bash 在新终端运行,脚本中的变量不会影响当前终端。
    • source 直接在当前终端运行,脚本中的变量和修改会保留。
  • 环境变量修改的时效性

    • export 命令仅临时生效,重启终端后失效。永久生效需修改配置文件(如 ~/.bashrc)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值