跳至主要內容

规范

chanchaw大约 3 分钟ubuntu

概述

类似 java 开发中的规范,是针对开发者使用 ubuntu 中的一些约定俗成的规则

自定义脚本

  • 每个项目的脚本存放在各项目目录下
  • 通用脚本放在 ~/bin
  • ~/binREADME.md 中保存所有自定义的命令(包括软连接)
Linux系统通用规范

在 Linux 系统中,用户自定义的脚本通常存放在特定的目录中,以保持系统整洁并便于管理。以下是常见的存放位置及其用途:

分类脚本

1. 个人脚本目录(推荐)

~/bin~/.local/bin

  • 用途:存放当前用户的私有脚本,不需要 sudo 即可运行。
  • 特点:适用于个人使用的脚本,不影响其他用户。这些目录通常不在默认 $PATH 中,但可以手动添加到 ~/.bashrc~/.zshrc
export PATH="$HOME/bin:$HOME/.local/bin:$PATH"
  • 创建目录(如果不存在):
mkdir -p ~/bin
mkdir -p ~/.local/bin

2.系统级脚本目录(需 root 权限)

路径是 /usr/local/bin

  • 用途:存放系统所有用户均可使用的脚本。
  • 特点
    • 需要 sudo 权限才能写入。
    • 适合需要共享的脚本(如管理员工具)。
  • 示例
sudo cp change_ssh_port.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/change_ssh_port.sh

/usr/local/sbin

  • 用途:存放需要 root 权限运行的系统管理脚本(如网络配置、服务管理等)。
  • 特点
    • 普通用户无法直接执行,需通过 sudo 调用。

3. 临时或项目专用脚本

/tmp~/projects/scripts

  • 用途
    • /tmp:临时测试脚本(重启后可能丢失)。
    • ~/projects/scripts:项目相关的脚本集合,便于版本控制(如 Git)。

4. 系统标准目录(不推荐修改)

  • /bin/sbin/usr/bin/usr/sbin
    • 不推荐存放自定义脚本,因为这些目录由系统包管理器(如 apt)管理,可能被意外覆盖。

最佳实践建议

  1. 个人使用:优先放在 ~/bin~/.local/bin,并添加到 $PATH
  2. 系统级工具:放在 /usr/local/bin(需 sudo)。
  3. 需要 root 的脚本:放在 /usr/local/sbin,并通过 sudo 调用。
  4. 项目脚本:单独存放在项目目录中(如 ~/projects/foo/scripts)。

案例

如何将 ~/bin 添加到 $PATH,在 ~/.bashrc~/.zshrc 末尾添加

# 添加下面代码并保存
export PATH="$HOME/bin:$PATH"
# 执行下面代码应用配置
source ~/.bashrc  # 或 source ~/.zshrc

脚本存放示例

# 个人脚本
mv change_ssh_port.sh ~/bin/
chmod +x ~/bin/change_ssh_port.sh

# 系统级脚本(需 sudo)
sudo mv change_ssh_port.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/change_ssh_port.sh

通过规范脚本存放位置,可以避免混乱并提高可维护性。

安装软件

一般用户上传下载的文件在目录 /home/username/Downloads 安装软件相关的目录如下

  1. 可执行文件 /usr/bin/ - 用户安装的大多数命令行工具 /usr/local/bin/ - 用户手动编译安装的软件 /snap/bin/ - 通过 Snap 安装的软件
  2. 软件库文件 /usr/lib/ 或者 /usr/lib/x86_64-linux-gnu/ - 系统库文件 /usr/local/lib/ - 手动安装软件的库文件
  3. 配置文件 /etc/ - 全局配置文件 ~/.config/ - 用户级配置
  4. 第三方软件(Snap/Flatpak) Snap包: /snap Flatpak包:/var/lib/flatpak/
  5. 源码编译安装 默认路径 /usr/local/(通过 ./configure --prefix=/custom/path 可自定义)