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

上位机知识篇---脚本文件

终端命令启动运行

在 Linux 中,实现在终端打开时自动运行某些指令,常用的解决方法有修改用户配置文件利用图形界面设置以及创建服务等,以下是具体介绍:

  • 修改用户级启动脚本:Linux 中的 Bash 用户可以通过编辑~/.bashrc~/.bash_profile文件来实现。比如你经常需要进入某个特定目录工作,就可以打开~/.bashrc文件,在末尾添加cd /目标目录路径。保存文件后,重新打开终端,就会自动执行该指令,进入指定目录。也可以执行source ~/.bashrc使设置立即生效。
  • 使用图形界面的启动应用程序管理器(适用于有图形界面的系统):以 Ubuntu 为例,在主界面点击 “搜索” 或 “显示应用程序”,输入 “启动”,找到 “启动应用程序” 管理器并打开。点击 “添加”,在 “命令” 栏中输入要执行的指令。例如,你想每次打开终端都运行top命令查看系统资源使用情况,就在 “命令” 栏输入top,这样每次打开终端就会自动运行该命令。
  • 创建.desktop 文件(适用于 Ubuntu 等):可以通过创建一个.desktop文件并将其放置在/etc/xdg/autostart/目录中来实现。使用文本编辑器创建一个名为custom.desktop的文件,添加以下内容:
[Desktop Entry]
Type=Application
Name=Custom Command
Exec=gnome - terminal -- bash - c "your_command"
Terminal=true
StartupNotify=true

your_command替换为想要执行的命令,如python3 main.py。保存文件后,下次启动系统时,会自动打开一个命令行窗口并执行指定命令。

  • 使用 systemd 服务(适用于现代 Linux 发行版):如果你使用的是 Ubuntu、CentOS 7 及以上版本等基于 systemd 的系统,可以创建一个 systemd 服务单元文件。假设你要自动运行一个名为my_script.sh的脚本,先创建服务文件sudo vim /etc/systemd/system/my_service.service,内容如下:
[Unit]
Description=My Service
After=network.target[Service]
ExecStart=/path/to/my_script.sh[Install]
WantedBy=multi - user.target

保存后,执行sudo systemctl enable my_service启用服务,这样系统启动时就会自动运行该脚本。

  • 基于命令行 profile 文件(适用于所有用户):如果希望对所有用户都生效,可以编辑/etc/profile文件。使用文本编辑器打开,如sudo vim /etc/profile,在文件末尾添加要执行的指令。修改后想让设置立即生效,可以执行source /etc/profile,或者重启系统。不过要注意,有些涉及图形桌面相关的命令放在这里可能无法生效或导致异常

脚本文件

.sh 脚本文件是什么?

.sh是 Linux/Unix 系统中Shell 脚本文件的后缀,简单说就是把一系列终端命令写在一个文件里,让系统按顺序自动执行,相当于 “批量处理命令的小工具”。

一、应用场景(什么时候用.sh 脚本?)

  1. 重复操作自动化
    比如每天需要备份文件、清理日志、同步数据等固定步骤,写成脚本后双击或一条命令就能自动完成,不用手动敲一堆指令。

  2. 批量处理任务
    比如批量修改文件名(把file1.txt改成doc1.txt)、批量压缩图片、批量部署多个文件到服务器等。

  3. 简化复杂操作
    有些工作需要输入多条命令(比如启动服务、检查状态、输出日志),脚本可以把这些命令打包,一次运行搞定。

  4. 系统管理与维护
    管理员常用脚本监控系统状态(CPU / 内存使用率)、自动重启故障服务、定时执行任务等。

  5. 程序部署
    开发中常用脚本一键安装依赖、配置环境、启动程序(比如./start.sh启动服务)。

二、编写.sh 脚本的步骤(超简单!)

1. 新建脚本文件

用终端命令创建一个.sh文件,比如叫my_script.sh

touch my_script.sh  # 创建文件
2. 编写脚本内容

用文本编辑器打开(比如vimgedit,新手推荐gedit图形化编辑器):

gedit my_script.sh  # 用gedit打开编辑

脚本开头必须加一行 “声明”

#!/bin/bash

这行告诉系统 “用 bash 解释器来执行这个脚本”,固定格式,抄就行。

然后写要执行的命令,比如:

#!/bin/bash# 这是注释(#开头的行不会执行,用来写说明)
echo "开始执行脚本啦!"  # 打印一句话到屏幕# 示例1:创建一个文件夹并进入
mkdir -p my_folder  # -p表示如果文件夹已存在也不报错
cd my_folder# 示例2:创建一个文件并写入内容
echo "这是脚本自动生成的文件" > test.txt# 示例3:显示当前目录下的文件
ls -lecho "脚本执行完毕!"
3. 给脚本添加 “执行权限”

刚创建的脚本默认不能直接运行,需要授权:

chmod +x my_script.sh  # +x表示添加“可执行”权限
4. 运行脚本

在终端中输入以下命令即可运行:

./my_script.sh  # ./表示“当前目录下的”

运行后会按顺序执行脚本里的命令,屏幕会显示执行过程和结果。

三、实用小技巧

  1. 注释很重要:用#开头写注释,说明每个步骤的作用,方便以后自己看懂。
  2. 换行与分号:命令可以换行写(推荐,清晰),也可以用;分隔写在一行,比如:
    echo "第一步"; mkdir test; cd test
    
  3. 变量使用:可以在脚本中定义变量,方便重复使用,比如:
    #!/bin/bash
    folder_name="my_files"  # 定义变量
    mkdir $folder_name      # 用$调用变量
    cd $folder_name
    
  4. 条件判断:比如判断文件是否存在,存在才执行操作:
    #!/bin/bash
    if [ -f "test.txt" ]; then  # 如果test.txt存在echo "文件已存在"
    elseecho "文件不存在,创建它"touch test.txt
    fi
    

四、总结

.sh 脚本就是 “命令的集合”,核心作用是把手动操作变成自动执行,减少重复劳动。编写步骤简单:

  1. 开头写#!/bin/bash
  2. 中间写要执行的命令(可加注释)
  3. 授权chmod +x 文件名
  4. 运行./文件名

新手可以从简单的脚本开始(比如自动创建文件夹 + 文件),慢慢尝试复杂功能,非常实用!

http://www.dtcms.com/a/313109.html

相关文章:

  • Linux环境下使用Docker搭建多服务环境
  • Corrosion2靶场
  • xxljob总结
  • Obsidian结合CI/CD实现自动发布
  • 1、docker容器命令 | 生命周期管理
  • NX969NX972美光固态闪存NX975NX977
  • python 12 install jupyter时zmq.h或libzmq报错处理
  • MVCC:数据库事务隔离的 “时空魔法”
  • nvm切换本地nodejs环境
  • node中shapefile字符集判断
  • Sklearn 机器学习 数据聚类 KMeans实现聚类
  • wav音频格式中,ACM波形、A/mu-Law Wave、Windows PCM、Microsoft ADPCM的区别
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——9. 接入真实硬件:驱动USB摄像头
  • LeetCode 分类刷题:2824. 统计和小于目标的下标对数目
  • Go语言--语法基础7--函数定义与调用--自定义函数
  • Go语言实战案例:TCP服务器与客户端通信
  • HoloLens+vuforia打包后遇到的问题
  • 图像、视频、音频多模态大模型中长上下文token压缩方法综述
  • Connection refused: no further information: localhost/127.0.0.1:2375
  • Git的安装和配置
  • JavaWeb开发
  • XSS-DOM 2
  • [硬件电路-150]:数字电路 - 数字电路与模拟电路的异同
  • 洛谷 B3841:[GESP202306 二级] 自幂数判断
  • 当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题
  • 方差 协方差矩阵是什么
  • java的隐式类型转换和强制转换类型
  • 科威特塔观测指南:412米高空俯瞰石油城变迁
  • 在AI技术快速迭代的背景下,如何通过RAG技术提升模型的实时性和准确性?从Naive RAG到Modular RAG:AI技术进化的关键路径
  • 生成式人工智能展望报告-欧盟-04-社会影响与挑战