当前位置: 首页 > news >正文

linux脚本笔记

目录

1.增加环境变量

2.自定义命令快捷键

3.关闭selinux和防火墙

4.增加别名快捷键

5.Linux链接


1.增加环境变量

新建add_env.sh

#!/bin/bashapp_dir="/root/docker"# 检查配置文件中是否已存在相同的环境变量
if grep -q -E "^export APP_HOME=.*" ~/.bashrc || grep -q -E "^export APP_HOME=.*" ~/.bash_profile; thenecho "环境变量已存在,无需添加。"
else# 添加环境变量到配置文件echo "export APP_HOME=${app_dir}" >> ~/.bashrcecho "环境变量已添加到配置文件。"# 使环境变量立即生效source ~/.bashrcecho "环境变量已生效。"
fi

赋予执行权限,然后关闭当前窗口,重新开新窗口生效

chmod +x add_env.sh

验证方式export或者echo $APP_HOME

2.自定义命令快捷键

新建dctl,不用带文件后缀

#!/usr/bin/env bash# 显示帮助提示
show_help() {echo "Usage: $0 <command> [options]"echo "Commands:"echo "  start    Start containers"echo "  stop     Stop containers"echo "  restart  Restart containers"echo "  build    Build containers"echo "  ps       Show container status"echo "Options:"echo "  [container1 container2 ...]  Specify container names"
}# 处理参数函数
handle_param(){case $1 instart)# 处理启动逻辑echo "Starting..."docker-compose -f ${APP_HOME}/docker-compose.yml start "${@:2}";;stop)# 处理停止逻辑echo "Stopping..."docker-compose -f ${APP_HOME}/docker-compose.yml stop "${@:2}";;restart)# 处理重启逻辑echo "Restarting..."docker-compose -f ${APP_HOME}/docker-compose.yml restart "${@:2}";;build)# 处理构建逻辑echo "Building..."docker-compose -f ${APP_HOME}/docker-compose.yml build "${@:2}";;ps)# 处理构建逻辑echo "Status... ${APP_HOME}"docker-compose -f ${APP_HOME}/docker-compose.yml ps;;*)# 未知参数show_help;;esac
}#docker-compose -f ${APP_HOME}/docker-compose.yml $@
# 检查参数个数并处理每个参数
if [[ $# -eq 0 ]]; thenshow_help
elsehandle_param "$@"
fi

赋予执行权限,然后给出硬链接或者软连

chmod +x dctl
ln ~/dctl /usr/local/bin

验证方式

[root@localhost docker]# dctl 0
Usage: /usr/local/bin/dctl <command> [options]
Commands:start    Start containersstop     Stop containersrestart  Restart containersbuild    Build containersps       Show container status
Options:[container1 container2 ...]  Specify container names

3.关闭selinux和防火墙

新建disable_selinux_firewall.sh

#!/usr/bin/env bash# 检测发行版
if [ -f "/etc/redhat-release" ]; then# CentOS 或 RHELecho "Detected CentOS or RHEL."# 关闭SELinuxecho "Disabling SELinux..."sudo setenforce 0sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configecho "SELinux has been disabled."# 关闭防火墙echo "Stopping firewall..."sudo systemctl stop firewalldsudo systemctl disable firewalldecho "Firewall has been stopped and disabled."
elif [ -f "/etc/debian_version" ]; then# Debian 或 Ubuntuecho "Detected Debian or Ubuntu."# 关闭防火墙echo "Stopping firewall..."sudo ufw disableecho "Firewall has been stopped and disabled."
elseecho "Unsupported distribution. Cannot disable SELinux or firewall."exit 1
fi

4.增加别名快捷键

新建add_alias.sh

#!/usr/bin/env bash
if ! grep -q "alias fs_cli='docker exec -it switch fs_cli'" ~/.bashrc; thenecho "alias fs_cli='docker exec -it switch fs_cli'" >> ~/.bashrc
fiif ! grep -q "alias fs='docker exec -it switch bash'" ~/.bashrc; thenecho "alias fs='docker exec -it switch bash'" >> ~/.bashrc
fiif ! grep -q "alias exec=" ~/.bashrc; then
echo "function docker_exec() {docker exec -it \$1 bash}" >> ~/.bashrcecho "alias exec='docker_exec'" >> ~/.bashrc
fisource ~/.bashrc

5.Linux链接

Linux链接分两种:

一种被称为硬链接(Hard Link)
一种被称为符号链接(Symbolic Link)

默认情况下,ln 命令产生硬链接、ln -s 命令产生软链接。

原文件f1,硬链接文件f2,符号链接文件f3

区别如下:

  1. 删除符号连接 f3,对 f1,f2 无影响;
  2. 删除硬连接 f2,对 f1,f3 也无影响;
  3. 删除原文件 f1,对硬连接 f2 没有影响,导致符号连接 f3 失效;
  4. 同时删除原文件 f1,硬连接 f2,整个文件会真正的被删除。

http://www.lryc.cn/news/176497.html

相关文章:

  • 目标检测YOLO实战应用案例100讲-面向路边停车场景的目标检测(中)
  • [论文笔记]Prefix Tuning
  • electron快速入门
  • C语言的stdio.h的介绍
  • 使用香橙派 在Linux环境中安装并学习Python
  • 如何开发物联网 APP?
  • 配置pytorchGPU虚拟环境-python3.7
  • Logic Pro X10.7.9(mac乐曲制作软件)
  • 第一部分:HTML5
  • Linux 基础入门
  • 【数据结构】插入排序:直接插入排序、折半插入排序、希尔排序的学习知识总结
  • Magic Battery for Mac:让你的设备电量管理变得轻松简单
  • nodejs+vue大学食堂订餐系统elementui
  • nat综合实验
  • 【iOS逆向与安全】好用的一套 TCP 类
  • Ubuntu Kafka开机自启动服务
  • c#实现单例模式的两种方法(饿汉式、懒汉式)
  • Git与Repo:开源开发的得力工具组合
  • centos7 添加网卡设置动态ip,修改网卡为任意名称
  • 计算机竞赛 深度学习人脸表情识别算法 - opencv python 机器视觉
  • nvm安装后node或npm不是内部或外部命令
  • Kafka数据可靠性保证
  • 基于R的linkET包qcorrplot可视化Mantel test相关性网络热图分析correlation heatmap
  • IOTDB的TsFile底层设计
  • MATLAB算法实战应用案例精讲-【人工智能】边缘计算(补充篇)
  • Linux学习-HIS系统部署(1)
  • Cairo介绍及源码构建安装(3)
  • Mac电脑信息大纲记录软件 OmniOutliner 5 Pro for Mac中文
  • linux设置应用开机自启(通用:mysql、jar、nginx、solr...)
  • Offset Explorer(Kafka消息可视化工具)报invalid hex digit ‘{‘错误解决方法