我的常用命令总结

Linux

查找带某个关键字的进程

方法一

ps aux | grep -i code

命令解释:

  • ps aux: 列出系统上所有用户 (a) 正在运行的进程的详细信息 (u),包括那些没有终端的进程 (x)。
  • |: 这是管道符,将前一个命令的输出作为后一个命令的输入。
  • grep -i code: 从输入中查找所有包含 “code” 的行,-i 表示不区分大小写(这样能同时匹配到 codeCode)。

方法二

pgrep -afl code

命令解释:

  • pgrep: “process grep”,专门用于查找进程。
  • -a: 显示完整的命令行。
  • -f: 在整个命令行中搜索模式(而不仅仅是进程名)。
  • -l: 显示进程名和PID。

kill 进程

pkill 命令可以直接根据进程的名称或其他属性来杀死进程,比手动查找 PID 更方便。

  1. 直接根据名称或关键词杀死进程:

    pkill -f "程序相关的关键词"
    • -f: 这个选项非常有用,它会匹配完整的命令行,而不仅仅是进程名。

    • 示例:

      杀死所有包含 my_script.py的进程。

      pkill -f my_script.py
    • 安全建议:

      在执行 pkill 之前,最好先用 pgrep (或 pkill -l) 命令来预览将要被匹配到的进程,确保没有误伤。

      pgrep -l -f my_script.py
      # 或者
      pkill -l -f my_script.py
  2. 强制杀死: pkill 同样支持 -9 选项来强制杀死进程。

    pkill -9 -f "程序相关的关键词"

分配 workstation

salloc -N1 -n12 --mem=24G

下载文件的工具:gdown

  • 这是什么: 这是一款专门用来从 Google Drive 下载单个文件或整个文件夹的 Python 工具。

  • 为什么用它: 它的优点是极其简单。您只需要提供 Google Drive 文件的分享链接或文件ID,它就能自动处理下载,包括绕过大文件下载时出现的“病毒扫描”确认页面。

  • 安装命令:

    pip install gdown
  • 使用命令:

    # 使用文件ID下载
    gdown --id <文件ID>
    # 或者下载整个文件夹
    gdown '<文件夹的分享链接>'

上传文件的工具:rclone

  • 这是什么: 这是一个功能非常强大的云存储管理工具。我们用它来实现从您的服务器上传文件到 Google Drive,以绕过您本地较慢的网络。
  • 为什么用它: 它不仅能上传,还能下载、同步、列出文件等,功能非常全面。对于大文件上传,它非常可靠,支持断点续传和进度显示。

使用命令

  1. (上传文件)

    # 再次运行这个命令,它只会上传新文件和被修改过的文件
    rclone copy /path/to/your/folder gdrive:YourDestinationFolder/ --progress
  2. 列出您在配置文件中设置的所有远程连接的名称

    rclone listremotes

Linux screen 命令核心用法总结

screen 是一个终端复用器,它允许您在一个 SSH 连接中创建多个虚拟终端窗口,并且在您断开连接后,这些窗口以及在其中运行的程序会持续在后台运行。

1. 创建会话 (Creating a Session)

  • 创建一个新的、未命名的会话:

    screen
  • 创建一个新的、并给它起一个有意义的名字 (推荐!):

    screen -S <session_name>

    示例: screen -S training_job

2. 脱离与连接会话 (Detaching & Connecting)

这是 screen 最核心的功能。

  • 从当前会话中脱离 (让它在后台运行): 在 screen 会话内部,按下组合键 Ctrl + A,然后松开,再按下 D 键。(D for Detach)

  • 列出所有正在运行的会话:

    screen -ls
    # 或者
    screen -list

    输出会显示会话的 PID 和名称,以及它的状态(AttachedDetached)。

  • 重新连接到一个已脱离 (Detached) 的会话:

    screen -r <session_name_or_pid>

    示例: screen -r training_jobscreen -r 12345

  • 强制脱离一个已附着 (Attached) 的会话并连接:

    当您发现一个会话显示为 (Attached) 但您找不到那个终端时,使用这个命令。

    screen -d <session_name_or_pid>

3. 关闭/终止会话 (Closing/Terminating a Session)

“关闭”和“删除”会话在 screen 的语境下通常指的是终止这个会话及其中的所有进程。

  • 方法一:从会话内部关闭

    1. 首先用 screen -r 连接到您想关闭的会话中。
    2. 在会话的 Shell 提示符下,输入 exit 命令并按回车。
    3. 如果您在这个会话中创建了多个窗口(使用 Ctrl+A, c),您需要在每一个窗口中都输入 exit。当最后一个窗口关闭时,整个 screen 会话就会自动终止。
  • 方法二:从会话外部“杀死” (推荐用于快速关闭) 这个方法不需要先连接进去。

    screen -S <session_name_or_pid> -X quit
    • -X quit 会向指定的 screen 会话发送一个“退出”指令,让它和它里面的所有程序优雅地关闭。
  • 方法三:使用 kill 命令 (强制删除) 如果 screen 会话卡死,无法响应 quit 指令,您可以使用 Linux 的 kill 命令来强制终止进程。

    1. screen -ls 找到会话的进程ID (PID)。

    2. 运行 kill命令:

      # 尝试正常终止
      kill <PID>

      # 如果不行,就用最强硬的方式
      kill -9 <PID>

4. 清理无效的会话记录

有时,即使您用 kill 命令杀死了进程,screen -ls 列表里可能还会残留一个 (Dead ???) 的条目。用这个命令来清理:

screen -wipe

Hugging Face CLI 上传文件

hf upload-large-folder --repo-type=model S-tanley/M2A .

修复 .venv 创建问题

python -m ensurepip --upgrade

Linux 压缩与解压缩常用命令速查

核心理念:在 Linux 中,tar 负责打包 (归档),而 -z / -j / -J 选项负责压缩

一、常用压缩 (打包) 命令

使用 tar -c...f 创建归档文件。

格式 压缩工具 压缩命令示例 (将 my_folder 压缩) 备注
.tar.gz / .tgz Gzip (-z) tar -czvf archive.tar.gz my_folder 最常用,速度快,兼容性好。
.tar.bz2 / .tbz2 Bzip2 (-j) tar -cjvf archive.tar.bz2 my_folder 压缩率较高,速度略慢。
.tar.xz / .txz XZ (-J) tar -cJvf archive.tar.xz my_folder 压缩率最高,速度最慢。
仅打包 tar -cvf archive.tar my_folder 仅打包,不压缩。
压缩选项解释:
  • -c: Create (创建归档文件)
  • -z, -j, -J: 对应的压缩算法
  • -v: Verbose (显示详细信息)
  • -f: File (指定文件名)

二、常用解压缩命令

使用 tar -x...f 解压归档文件。

格式 解压命令示例 解压到指定目录 (-C)
.tar.gz tar -zxvf file.tar.gz tar -zxvf file.tar.gz -C /target/dir
.tar.bz2 tar -jxvf file.tar.bz2 tar -jxvf file.tar.bz2 -C /target/dir
.tar.xz tar -Jxvf file.tar.xz tar -Jxvf file.tar.xz -C /target/dir
仅解包 (.tar) tar -xvf file.tar tar -xvf file.tar -C /target/dir
解压选项解释:
  • -x: Extract (解压缩/解包)
  • -C /path: 解压到指定目录 (Change Directory to…)

三、仅针对单个文件进行压缩/解压

这些命令会直接替换还原单个文件。

操作 Gzip (.gz) Bzip2 (.bz2)
压缩 gzip filename bzip2 filename
解压 gunzip filename.gz bunzip2 filename.bz2

Mac