规范
大约 3 分钟ubuntu
概述
类似 java 开发中的规范,是针对开发者使用 ubuntu 中的一些约定俗成的规则
自定义脚本
- 每个项目的脚本存放在各项目目录下
- 通用脚本放在
~/bin下 - 在
~/bin的README.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)管理,可能被意外覆盖。
- 不推荐存放自定义脚本,因为这些目录由系统包管理器(如
最佳实践建议
- 个人使用:优先放在
~/bin或~/.local/bin,并添加到$PATH。 - 系统级工具:放在
/usr/local/bin(需sudo)。 - 需要 root 的脚本:放在
/usr/local/sbin,并通过sudo调用。 - 项目脚本:单独存放在项目目录中(如
~/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 安装软件相关的目录如下
- 可执行文件
/usr/bin/- 用户安装的大多数命令行工具/usr/local/bin/- 用户手动编译安装的软件/snap/bin/- 通过Snap安装的软件 - 软件库文件
/usr/lib/或者/usr/lib/x86_64-linux-gnu/- 系统库文件/usr/local/lib/- 手动安装软件的库文件 - 配置文件
/etc/- 全局配置文件~/.config/- 用户级配置 - 第三方软件(Snap/Flatpak) Snap包:
/snapFlatpak包:/var/lib/flatpak/ - 源码编译安装 默认路径
/usr/local/(通过./configure --prefix=/custom/path可自定义)
