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
相关推荐
jugt44 分钟前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos
多多*2 小时前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua
何双新3 小时前
第21讲、Odoo 18 配置机制详解
linux·python·开源
21号 13 小时前
9.进程间通信
linux·运维·服务器
Gaoithe8 小时前
ubuntu 端口复用
linux·运维·ubuntu
德先生&赛先生9 小时前
Linux编程:1、文件编程
linux
粉红色回忆9 小时前
在bash中进行基本数值计算
shell
程序猿小D9 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
多多*10 小时前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
IT界小黑的对象12 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器