Linux系统自动化sh脚本

Linux系统自动化sh脚本

前言

Linux系统中,可以编写自动化sh脚本,并在终端中自动加载。可用来简化复杂命令或创建专属命令,提升工作效率。

功能

  1. init_workspace:可以识别Host和Docker,初始化工作目录
  2. source_my_func:完成自加载,用于更新此自动化sh脚本
  3. .bashrc (system and docker):终端自动加载,适用于Host和Docker
  4. custom_function:编写自定义函数,简化复杂命令,创建专属命令

优点

  1. 自动化提升效率
  2. 同一脚本可同时用于System内和Docker内
  3. 化简复杂命令,形成自己的专属命令
  4. 保留命令历史记录
  5. 改善打字慢问题
  6. 自动补全改善错别字问题

步骤

  1. 创建sh脚本
    创建sh脚本,并完成功能,例如:script.sh
  2. 添加bash解释器
    在sh脚本的首行添加bash解释器,一般为:#!/bin/bash
  3. 添加可执行权限
    为sh脚本添加可执行权限:chmod +x [script.sh]
  4. 临时加载sh脚本
    使用 source 命令在终端中临时加载sh脚本:source script.sh
    永久生效
    .bashrc 文件中自动加载sh脚本:vim ~/.bashrc

示例

文件名称:my_func.sh

shell 复制代码
#!/bin/bash

# 全局变量
workspace="/workspace"
work_user="root"
# relative_path="shell/script/my_func.sh"
relative_path="CodeLib/Shell/script/my_func.sh"

# main函数
function my_func_main() {
    # 调用函数,初始化workspace
    init_workspace
    echo "my_func init success, workspace: $workspace"
}

# 初始化workspace函数
function init_workspace() {
    if [ -d "/workspace" ]; then
        workspace="/workspace"
        work_user="root"
    else
        workspace="/home/nsjim/work"
        work_user="nsjim"
    fi
    # echo "workspace init success: $workspace"
}

# 添加可执行权限
function add_x() {
    # chmod +x $1.sh
    chmod -R +x $1
}

# 添加读写权限
function add_rw() {
    chmod -R a+rw $1
}

# 开启docker
function docker_start() {
    docker start mlir_ns
    docker exec -it mlir_ns /bin/bash
}

# 进入docker
function docker_exec() {
    docker exec -it mlir_ns /bin/bash
}

# 初始化docker服务(docker内)
function docker_init() {
    # ssh service
    eval ssh-agent
    service ssh start
}

# 重新加载此脚本
function source_my_func() {
    init_workspace
    # source /workspace/CodeLib/Shell/script/my_func.sh
    source ${workspace}/${relative_path}
}

# 显示此脚本路径
function show_my_func_path() {
    init_workspace
    echo "script path: ${workspace}/${relative_path}"
}

# 加载PATH环境变量
function export_path() {
    init_workspace
    # 环境变量使用冒号隔开,使用如下命令可添加环境变量
    # export PATH=/path/to/dir:$PATH
    export PATH=$workspace/CodeLib/Python/Tool:$PATH
}

# 加载PYTHONPATH环境变量
function export_pythonpath() {
    init_workspace
    # 环境变量使用冒号隔开,使用如下命令可添加环境变量
    # export PYTHONPATH=/path/to/dir:$PYTHONPATH
    export PYTHONPATH=$workspace/model-apt/ml-cvnets:$PYTHONPATH
}


#### 调用main函数
my_func_main
相关推荐
Sheffield13 小时前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield21 小时前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
Johny_Zhao2 天前
centos7安装部署openclaw
linux·人工智能·信息安全·云计算·yum源·系统运维·openclaw
haibindev2 天前
在 Windows+WSL2 上部署 OpenClaw AI员工的实践与踩坑
linux·wsl2·openclaw
0xDevNull3 天前
Linux切换JDK版本详细教程
linux
进击的丸子3 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
Johny_Zhao4 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1236 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑6 天前
Ubuntu系统安装CodeX出现问题
linux·后端