/bin, /usr/bin, /sbin, /sur/sbin 区分

上述几个目录都用来存放文件。

/bin 是所有用户都可以访问并执行的可执行程序。包括超级用户及一般用户。
/usr/bin 是系统安装时自带的一些可执行程序。即系统程序,轻易不要去动里面的东西,容易入坑。
/usr/local/bin 是用户自行编译安装时默认的可执行程序的安装位置,这个不小心误删点什么,不会影响大局。

如果某个命令例如ls或cat本应该在/bin目录中但是发现并没有时,可能是出了故障,需要自己重新添加,这时候可以在/usr/bin中添加相应的文件。   

从命令功能来看,/sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的基本命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。

    从用户权限的角度看,/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理员和一般的用户都可以使用。

    从可运行时间角度看,/sbin,/bin能够在挂载其他文件系统前就可以使用。

   而/usr/bin,/usr/sbin与/sbin /bin目录的区别在于:

    /bin,/sbin目录是在系统启动后挂载到根文件系统中的,所以/sbin,/bin目录必须和根文件系统在同一分区;

    /usr/bin,usr/sbin可以和根文件系统不在一个分区。

    /usr/sbin存放的一些非必须的系统命令;/usr/bin存放一些用户命令,如led(控制LED灯的)。

    转下一位网友的解读,个人认为诠释得很到位:

    /bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
    /sbin一般是指超级用户指令主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
    /usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

    /usr/sbin   放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
    如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么
    首先就要考虑root 的$PATH里是否已经包含了这些环境变量。
    可以查看PATH,如果是:PATH=$PATH:$HOME/bin则需要添加成如下:
    PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

<think>嗯,用户让我解释一下这个命令:export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:~/bin。首先,我需要理解这个命令的作用。PATH环境变量是系统用来查找可执行文件的路径列表,当用户在终端输入命令时,系统会按照PATH中的顺序搜索这些目录。 用户可能是在设置自己的PATH变量,或者在遇到命令找不到的问题时尝试修改PATH。需要注意这个命令是覆盖现有的PATH,而不是追加,所以可能导致一些问题。比如,如果原来的PATH有其他重要路径,直接这样设置会丢失它们。这时候应该用export PATH=$PATH:/new/path来追加。 接下来,分解每个路径的作用: - /usr/local/bin:通常用户自己安装的软件,比如用brew安装的。 - /bin和/usr/bin:系统自带的命令,比如ls、cp等。 - /sbin和/usr/sbin:系统管理命令,通常需要sudo权限。 - /usr/local/sbin:可能是用户安装的系统管理工具。 - ~/bin:用户个人的脚本目录,方便存放自己的可执行文件。 顺序很重要,系统会按从左到右的顺序查找。如果用户把~/bin放在前面,那么当有同名命令时,会优先使用自己目录下的版本,而不是系统的。这可能是有意为之,也可能导致意外行为。 需要提醒用户这个命令是临时的,只在当前shell会话有效。如果想永久生效,需要写入配置文件如.bashrc或.zshrc。另外,覆盖PATH可能导致其他软件找不到,所以正确做法是追加而不是替换,除非用户明确知道自己在做什么。 用户可能的误区是直接覆盖PATH而不是追加,或者路径顺序安排不当。需要指出这些潜在问题,并给出正确的方法。同时,用户可能在使用不同shell,所以配置文件的位置也不同,比如Bash和Zsh的区别。</think>我们来逐步解释并理解这条命令的作用和注意事项: 1. **命令结构分析** `export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:~/bin` 2. **核心作用** - 重新定义系统的 `PATH` 环境变量 - 定义当用户在终端输入命令时,系统查找可执行文件的**路径顺序** 3. **路径解析(从左到右优先级递减)** | 路径 | 典型用途 | |--------------------|----------------------------------| | `/usr/local/bin` | 用户手动安装的软件(如 Homebrew) | | `/bin` | 系统基础命令(如 `ls`, `cp`) | | `/usr/bin` | 系统常规命令(如 `gcc`, `python`) | | `/usr/local/sbin` | 管理员手动安装的管理工具 | | `/usr/sbin` | 系统管理命令(需 root 权限) | | `/sbin` | 系统关键管理工具(如 `fdisk`) | | `~/bin` | 用户个人脚本/程序(自定义工具) | 4. **关键注意事项** - ⚠️ **覆盖式修改**:此命令会完全替换原有 `PATH`(而非追加),可能导致已安装软件不可用 - ✅ 推荐的安全追加方式: ```bash export PATH=$PATH:/new/path # 将新路径追加到现有 PATH 末尾 ``` - ⏳ **临时生效**:仅在当前终端会话有效,退出后失效 - 🔧 永久生效方法:将命令写入 shell 配置文件 ```bash # 对于 Bash echo 'export PATH=/usr/local/bin:/bin:...' >> ~/.bashrc # 对于 Zsh echo 'export PATH=/usr/local/bin:/bin:...' >> ~/.zshrc ``` 5. **典型使用场景** - 调试环境变量问题 - 优先使用自定义安装的软件版本(如将 `/usr/local/bin` 放在系统路径前) - 临时添加个人工具目录(如 `~/bin`) 6. **潜在风险** - 路径顺序错误可能导致命令冲突 - 缺少关键路径(如 `/usr/bin`)会造成系统命令无法识别 - 路径中包含非安全目录可能引发安全风险 建议通过 `echo $PATH` 查看当前路径列表,使用 `which 命令名` 验证命令查找优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值