树莓派如何保存命令行操作?

临时保存:使用 history 命令

适用场景:快速查看或重复执行近期输入的命令。
操作步骤

  1. 查看历史命令:
    history
  2. 保存到文件(如 cmd_history.txt):
    history > cmd_history.txt

    注意:默认仅保存当前会话的命令,重启后可能丢失,需通过以下配置永久保存。


永久保存:修改 .bashrc 配置

适用场景:长期保留所有历史命令,避免重启丢失。
操作步骤

  1. 编辑配置文件:

    nano ~/.bashrc
  2. 在文件末尾添加:

    # 增大历史命令保存数量(默认1000条)
    HISTSIZE=5000
    HISTFILESIZE=10000
    # 实时追加命令到历史文件(避免丢失)
    shopt -s histappend
    PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
    # 忽略重复命令和空格开头的命令
    HISTCONTROL=ignoreboth
  3. 生效配置:

    source ~/.bashrc

    历史文件位置~/.bash_history,可直接用文本编辑器查看。


脚本保存:创建可执行脚本

适用场景:需要重复执行固定命令序列(如自动化任务)。
操作步骤

  1. 创建脚本文件(如 backup.sh):
    nano ~/backup.sh
  2. 写入命令(示例为备份脚本):
    #!/bin/bash
    sudo rsync -av /home/pi/Documents /mnt/external_drive/
    echo "备份完成!"
  3. 赋予执行权限:
    chmod +x ~/backup.sh
  4. 运行脚本:
    ./backup.sh

会话持久化:使用 screentmux

适用场景:长时间运行任务(如下载、编译),避免因断连中断。
tmux 为例

  1. 安装 tmux:
    sudo apt install tmux
  2. 创建新会话:
    tmux new -s mysession
  3. 在会话中执行命令(如安装软件):
    sudo apt update && sudo apt upgrade -y
  4. 断开会话(命令继续后台运行):
    Ctrl+B → 按 D
  5. 恢复会话:
    tmux attach -t mysession

启动自动执行:配置系统服务

适用场景:开机自动运行关键命令(如挂载磁盘、启动程序)。
示例:创建 systemd 服务

  1. 创建服务文件:

    sudo nano /etc/systemd/system/myservice.service
  2. 写入配置(示例为启动 Python 脚本):

    [Unit]
    Description=My Startup Command
    [Service]
    ExecStart=/usr/bin/python3 /home/pi/myscript.py
    [Install]
    WantedBy=multi-user.target
  3. 启用服务:

    sudo systemctl enable myservice
    sudo systemctl start myservice

注意事项

  1. 权限管理
    • 系统级操作(如挂载磁盘)需 sudo,脚本中谨慎使用 root 权限。
  2. 路径问题
    • 脚本中使用绝对路径(如 /home/pi/ 而非 ),避免因环境变量出错。
  3. 资源占用
    • 长期运行的任务(如 tmux)需监控 CPU/内存:tophtop
  4. 备份历史文件
    • 定期备份 ~/.bash_history 到外部存储,防止 SD 卡损坏丢失。

总结建议

  • 日常命令:通过 .bashrc 配置永久保存历史记录。
  • 重复任务:保存为脚本并添加执行权限。
  • 长时间任务:使用 tmuxscreen 维持会话。
  • 开机自启:通过 systemd 服务实现自动化。

引用说明:本文方法参考树莓派官方文档(raspberrypi.com/documentation)及 Linux 命令行权威指南《The Linux Command Line》(William Shotts 著),系统服务配置遵循 systemd 标准规范(freedesktop.org)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5457.html

(0)
酷番叔酷番叔
上一篇 2025年6月23日 23:13
下一篇 2025年6月23日 23:37

相关推荐

  • mci命令能做什么?

    mci(Media Control Interface)是 Windows 系统内置的多媒体控制接口,通过 mciSendString API 函数发送文本指令控制音频/视频设备(如播放、录制、暂停),它常见于批处理脚本(.bat)或编程语言(C++、Python等)中,适合自动化媒体操作,核心使用步骤基础语法……

    2025年7月18日
    4800
  • Linux命令行历史如何高效保存?必备技巧揭秘

    基础方法:手动保存命令历史查看历史命令 history显示当前用户的所有历史命令(默认存储于 ~/.bash_history),保存到文本文件 history > commands_backup.txt将历史命令导出到当前目录的 commands_backup.txt 文件中,进阶操作:添加时间戳(需先配……

    2025年6月28日
    5200
  • asp页面编码常见问题有哪些?如何正确设置避免乱码?

    在Web开发中,ASP(Active Server Pages)页面编码是确保页面内容正确显示、数据正确传输和存储的关键环节,编码问题处理不当,常会导致页面出现乱码、数据丢失或交互异常,影响用户体验和系统稳定性,本文将详细解析ASP页面编码的核心概念、设置方法、常见问题及解决方案,帮助开发者有效管理和优化页面编……

    3天前
    700
  • 你的简历为什么总被HR忽略?

    在Linux环境下,C语言可通过多种方式调用系统命令,核心方法包括system()、popen()和exec系列函数,以下是详细实现及安全实践:system() 函数:简单执行命令原理:直接调用系统的shell(如/bin/sh)执行命令,阻塞当前进程直到命令结束,示例:int main() { int sta……

    2025年7月16日
    4800
  • atsapi.dll文件缺失怎么办?

    atsapi.dll是Windows操作系统中一个重要的动态链接库(Dynamic Link Library,DLL)文件,其名称中的“atsapi”对应“AT Attachment Packet Interface”,即ATAPI接口,这是早期用于连接光驱、刻录机等ATAPI设备的通信协议,该文件主要由系统或……

    2天前
    500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信