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
相关推荐
小兔薯了1 小时前
11. Linux firewall 防火墙管理
linux·运维·服务器
Linux技术芯2 小时前
浅谈SCSI寻址机制与工作阶段深度解析?
linux
☼←安于亥时→❦4 小时前
Linux 系统日志‘/var/log/syslog‘ 和 ‘/var/log/messages‘ 详解
linux
袁气满满~_~4 小时前
Ubuntu下配置PyTorch
linux·pytorch·ubuntu
倦王4 小时前
Linux看ip,改用户名字加权限,在单独用户下设置miniconda
linux·服务器·tcp/ip
少废话h4 小时前
Flume Kafka源与汇的topic覆盖问题解决
java·linux·kafka·flume
凤凰战士芭比Q5 小时前
Docker安装与常用命令
linux·运维·docker·容器
ASKED_20195 小时前
常用 Linux 命令大全(文件、网络、时间、进程、数据库、工具全覆盖)
linux·网络·数据库
a123560mh6 小时前
国产信创操作系统银河麒麟常见软件适配(MongoDB、 Redis、Nginx、Tomcat)
linux·redis·nginx·mongodb·tomcat·kylin
赖small强6 小时前
【Linux驱动开发】Linux MMC子系统技术分析报告 - 第二部分:协议实现与性能优化
linux·驱动开发·mmc