--- title: Linux下二进制文件的放置 tags: - DevOps - Linux - Directory - Management categories: - - DevOps - 系统管理 keywords: '系统管理,Linux,bin,usr,sbin,二进制,放置' date: 2021-05-28 11:27:11 --- 在Linux系统的使用过程中,如何放置二进制文件一直是困扰很多人的难题。其实Linux对于二进制文件的放置始终都是有其独特的规定的。 ## 常见目录的功能与区别 在Linux中,常用来放置二进制文件的目录就那么几个(不算手动增加到`PATH`环境变量中的目录)。这些目录之间的区别可以参考下表,在向其中放置文件的时候可以避免放入错误的文件。 | 二进制文件目录 | 面向用户 | 更新频率 | 放置内容 | |---|---|---|---| | `/bin` | 所有用户 | 系统更新 | 系统命令。 | | `/sbin` | 超级用户 | 系统更新 | 系统命令。 | | `/usr/bin` | 所有用户 | 应用安装 | 一般都是安装到系统供处理日常操作的应用。 | | `/usr/sbin` | 超级用户 | 应用安装 | 一般都是安装到系统的用于对外提供服务的应用,例如Nginx。 | | `/usr/local/bin` | 所有用户 | 手工更新 | 本机无关的第三方应用。 | | `/usr/local/sbin` | 超级用户 | 手工更新 | 本机无关的第三方应用。 | ## 推荐应用的手工安装过程 由于上面这些目录中的内容可能会随着系统的使用变得越来越臃肿,所以在手工安装应用的时候并不推荐直接将应用放置在这些目录中。 这里比较推荐的一种软件的安装方式是使用符号链接来安装。不少应用的安装说明上都会要求用户在安装应用以后修改`PATH`环境变量把应用的安装目录添加进去。但是这样做的后果就是,随着应用的安装,`PATH`环境变量中的内容会越来越多,每次执行一个命令的时候,系统都会沿着`PATH`中的所有路径去搜索一遍。 然而使用符号链接的安装方法就比较方便了,可以使用以下步骤来操作。 1. 创建一个所有用户都拥有访问权限的目录,不要选择当前用户或者某个用户的Home目录。 1. 将需要安装的应用解压缩到这个目录中。 1. 记录下其中二进制可执行文件的位置,例如`./bin`。 1. 用下面的命令把所有的可执行文件都链接到`/usr/local/bin`目录里。 ```bash find ./bin -type f -and -perm +100 | xargs -I @ sh -c 'ln -s @ /usr/local/bin/`basename "@"`' ``` 删除就比较费事了,需要做好几个判断。 ```bash find /usr/local/bin -type l | xargs readlink | grep /app | xargs -I @ sh -c 'rm `basename "@"`' ```