Linux-Shell脚本应用

Linux-Shell 脚本应用

应用 1——自动更新 apt 源

实现功能:确认当前用户系统,为用户自动换源(阿里源)。

相关前置

  • lsb-release -cs:获取当前 Linux 发行版的代号,常用于 Ubuntu、Debian 系列系统。

  • id -u:查看当前用户具体的 UID

  • sed 替换:

    sed -i 's/原本的字符串/你想替换成什么/g' 文件路径
    
    sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    	#将/etc/apt/sources.list文件中deb.debian.org替换为mirrors.ustc.edu.cn
    

脚本实现

脚本——自动更新 apt 源

应用 2——自动安装 docker 等

实现功能:安装、卸载 Docker;配置、清除 docker 代理;清理 dockers 缓存;安装、卸载 docker-compose。

相关前置

为 Docker 设置代理,让其通过代理连接。——开启该方式,则无需开启 TUN(虚拟网卡)模式(两种方式二选一即可)。

为 Docker 设置网络代理

  1. 创建新文件夹

    mkdir /etc/systemd/system/docker.service.d
    
  2. 新建文件

    mk /etc/systemd/system/docker.service.d/http-proxy.conf
    
  3. 在文件中写入内容

    [Service]
    Environment="HTTP_PR0XY=s0cks5://物理机VMnet8ip:7897/"
    Environment="HTTPS_PR0XY=S0cks5://物理机VMnet8ip:7897/"
    Environment="No_PROxY=localhost,127.0.0.1"
    
  4. 重新加载配置

    systemctl daemon-reload
    
  5. 重启 docker

    systemctl restart docker 
    

一次性删除所有容器与镜像

docker ps -a -q 				#一次显示所有容器ID
docker rm -f `docker ps -a -q` 	#一次删除所有容器

docker images -q 				#一次显示所有镜像ID
docker rmi `docker images -q` 	#一次删除所有镜像

自动删除软件

 apt autoremove docker		#自动删除docker

脚本实现

脚本——自动安装 docker 等

应用 3——JDK 安装与管理

实现功能:自动安装 JDK 各个版本,并支持版本切换。

相关前置

JDK、JRE、JVM

  • JVM(Java Virtual Machine),Java 虚拟机。
  • JRE(Java Runtime Environment),Java 运行环境,包含了 JVM 和 Java 的核心类库(Java API)。
  • JDK(Java Development Kit)称为 Java 开发工具,包含了 JRE 和开发工具。

jdk 常用版本

  • 7/8:做安全常用,有大量常见安全工具。
  • 11/17:常见的 java 程序。
  • 22:支持 Burp Suite,一个非常流行的网络安全测试工具,尤其用于 Web 渗透测试。

Linux 安装 java

wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.rpm
rpm -ivh jdk-8u202-linux-x64.rpm
update-alternatives --install /usr/bin/java java /usr/share/jdk8/$dir_name/bin/java 1

切换 java 版本

#Linux切换版本命令
update-alternatives --config

#交互式切换
update-alternatives --config java

#非交互式切换
update-alternatives --set java /usr/share/jdk8/$dir_name/bin/java

下载文件

下载到当前目录
wget URL地址

下载到指定目录,并重命名下载的文件
wget URL地址 -O 指定的下载目录/重命名的文件
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz -O /usr/share/jdk8.tar.gz

脚本实现

脚本——JDK 安装与管理

应用 4——一键配置网络

实现功能:通过识别系统,用户输入 ip、netmask、gateway、DNS 来配置网络,以及恢复 DHCP

相关前置

setenv

set		#查看系统内置变量
env		#查看环境变量
 envset
查看环境变量所有变量(环境 + 局部 + 函数 + 选项)
设置临时设置环境变量执行命令配置 Shell 行为,或查看变量
用途运行程序时临时改环境脚本调试,Shell 行为控制
影响范围只影响运行时命令影响当前 Shell 环境

正则表达式

正则表达式 是一种用来匹配字符串中字符的组合,可以用来匹配和搜索文本等。

$?

  • $? 是一个特殊的 退出状态变量,用于获取 上一条命令或函数的执行结果(返回值)

    • 0:表示 成功
    • 0:表示 失败,具体含义由命令决定。

EOF 标签

  • EOF(End Of File)是一个常见的 标签,通常用于 多行输入定义文本块,它的作用是标记输入的开始和结束,使得脚本可以方便地处理多行文本。

    cat > file << EOF
    内容
    EOF
    

UIDEUID

特性UIDEUID
全称User IDEffective User ID
作用标识进程的归属用户决定进程的实际权限
默认值启动进程的用户 UID通常与 UID 相同
可修改性一般不可变(除非特权操作)可通过 setuid 临时变更
权限检查不直接参与权限判断系统根据 EUID 判断访问权限

date

  • date 用于显示或设置系统日期和时间
date "+%Y-%m-%d %H:%M:%S"
符号含义示例
%Y四位年份2024
%m两位月份(01-12)06
%d两位日期(01-31)05
%H24小时制小时(00-23)15
%M分钟(00-59)30
%S秒(00-59)45
%A星期全称Wednesday
%a星期缩写Wed
%B月份全称June
%b月份缩写Jun
%Z时区名称UTC
  • %s:时间戳。

脚本实现

脚本——一键配置网络

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇