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
相关推荐
迪小莫学AI15 分钟前
【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程
linux·服务器·vscode
等一场春雨32 分钟前
linux 查找redis 的配置文件 (`redis.conf`)
linux·运维·redis
ltwoxc38 分钟前
04-Linux系统编程之进程
linux
hope_wisdom44 分钟前
Linux系统编程之多线程
linux·多线程·pthread·linux编程
蒲公英的孩子1 小时前
DCU异构程序——Bank冲突
linux·分布式·算法·架构
xxxx1234451 小时前
Linux-Ubuntu之RTC实时时钟显示
linux·c语言·ubuntu
三天不学习2 小时前
【linux系统】mysql 数据库迁移至新服务器
linux·服务器·数据库
北顾南栀倾寒2 小时前
[Linux]进程间通信-共享内存与消息队列
linux·运维·服务器
冬天vs不冷2 小时前
Shell编程详解
linux·ssh
cuckooman2 小时前
Ubuntu无法创建python venv环境
linux·python·ubuntu