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
相关推荐
食咗未几秒前
Linux USB HOST EXTERNAL VIRTUAL COM PORT
linux·驱动开发
没有啥的昵称15 分钟前
linux下用QLibrary载入动态库
linux·qt
飞Link25 分钟前
【CentOS】Linux(CentOS7)安装教程
linux·运维·服务器·centos
知识分享小能手28 分钟前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04中的过滤器知识点详解(13)
linux·学习·ubuntu
牛奔36 分钟前
Linux 的日志分析命令
linux·运维·服务器·python·excel
飞Link43 分钟前
【Linux】Linux(CentOS7)配置SSH免密登录
linux·运维·服务器
飞Link1 小时前
【Java】Linux(CentOS7)下安装JDK8(Java)教程
java·linux·运维·服务器
努力的小帅1 小时前
Linux_进程信号(Linux入门到精通)
linux·信号处理·信号捕捉·进程控制·linux入门
秋4271 小时前
ansible剧本
linux·服务器·ansible
oMcLin1 小时前
Linux系统的香港服务器性能调优指南:从 CPU、内存到 I/O
linux·运维·服务器