/bin、/sbin、/usr/bin、/usr/sbin目录的区别
在linux下我们经常用到的四个应用程序的目录是/bin、/sbin、/usr/bin、/usr/sbin 。
而四者存放的文件一般如下:
/bin:
bin为binary的简写主要放置一些
系统的必备执行档
例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、
mount、rm、su、tar等。
这里的mount大家要注意,在/sbin目录下也有,注意区别。
/usr/bin:
主要放置一些应用软件工具的必备执行档
例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。
/sbin:
主要放置一些系统管理的必备程序
可以这样理解,就是在普通用户下要加sudo获取到超级用户权限才可以执行的
例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/sbin:
放置一些网路管理的必备程序
例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等
综述:如果这是用户和管理员必备的二进制文件,就会放在/bin。如果这是系统管理员必备,但是一般用户根本不会用到的二进制文件,就会放在 /sbin。相对而言。如果不是用户必备的二进制文件,多半会放在/usr/bin;如果不是系统管理员必备的工具,多半会放在/usr/sbin。
如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么首先就要考虑root 的$PATH里是否已经包含了这些环境变量。
可以查看PATH,如果是:PATH=$PATH:$HOME/bin则需要添加成如下:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
附:根目录
/
(这就是著名的根)
├── bin
(你在终端运行的大多数程序,比如cp、mv...)
├── boot
(内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
│
└── grub
(grub引导程序和引导菜单就放在这里)
├── cdrom
├── dev
(存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│
├── block
│
├── bsg
│
├── bus
│
├── char
│
├── disk
(磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
│
│
├── by-id
(硬盘分区的永久性符号链接)
│
│
├── by-label
(按卷标识别的硬盘分区,常用于挂载)
│
│
├── by-path
(硬盘分区的节点链接)
│
│
└── by-uuid
(按UUID识别的硬盘分区,常用于挂载)
│
├── dri
│
├── fd
│
├── input
│
├── net
│
├── pts
│
├── shm
│
└── snd
├── etc
(存放所有程序和系统的配制文件和全局变量,对所有用户生效,非常值得备份)
├── home
(这就是著名的home目录了,注意不是”家目录”,强烈建议把一个独立分区挂载到这里!)
│
├── adagio
(这才是我真正的家!一般来说目录名就是帐号名,当然也可以不是,随便。命令行中用波浪线~代表这里)
│
├── MNT
(这是我挂载其它硬盘分区的地方,你可以看到用硬盘品牌、容量或用途区分的目录名)
│
│
├── MAX40NT1
(迈拓40G)
│
│
├── ST160NT1
(希捷160G第一分区,下面两个类似)
│
│
├── ST160NT2
│
│
├── ST160SYS
│
│
├── ST320G
(希捷320G)
│
│
│
├── MOVIE
│
│
│
├── MUSIC
│
│
│
└── P2P
(电驴、BT的缓冲区)
│
│
├── ST80G
(希捷80G)
│
│
│
├── PROGRAM
│
│
│
├── ST80PE
│
│
│
└── YEAR
│
│
└── WD1000
(西数1T)
│
│
├── WD2
│
│
├── WD3
│
│
├── WD5
│
│
├── WD6.Lib
│
│
└── WD7
│
└── test
(我建立的另一个帐号的家目录,专门用于测试,一旦搞到无法收拾的地步,只需简单的
│
把里面的所有文件删除,就可以恢复默认。实际上你可以拥有无数个帐号)
├── lib
(所有程序共享的库文件)
├── lost+found
(磁盘扫描出现的丢失的数据)
├── media
(你在文件管理器里点击后自动挂载的分区就在这里,按卷标命名,没有卷标则按大小命名)
├── mnt
(同样用于挂载磁盘,这是最传统的位置,喜欢挂哪里随便)
├── opt
(某些特殊的程序喜欢把数据放在这里,比如JAVA)
├── proc
(当前系统所有的详细信息,这里的”文件”并不存在于硬盘中,而是在内存或缓存里,每次启动后都不一样)
├── root
(这是系统最高权威root用户的家!他是老大,所以不住在/home里,那里是草民住的)
├── sbin
(类似/bin,存放常用程序,但这里的程序都是要命的啊,比如格式化,所以只有root用户或sudo程序有权使用)
├── srv
(一些服务所要访问的文件)
├── sys
(系统的核心文件,类似/proc,不必管它)
├── tmp
(存放临时文件,所有用户均可使用,不过你要小心啊,这里的所有文件一旦重启就全没了,自动清空的)
├── usr
(你在X下使用的所有程序数据都在这里了,包括图标、manual等。所有用户都可以使用。也是最庞大的目录)
└── var
(variation,顾名思义就是变量,这里存放系统中经常变化的数据。和/tmp不同啊,很有用的地方)
├── backups
├── cache
│
└── apt
│
└── archives
(存放你安装的所有程序的deb包!重装系统时太有用了,一定要备份好,到时候放回来。
│
我建议把整儿/var单独挂载到一个独立分区,像/home一样。这样你重装好系统后,只
│
需要简单的把整儿分区挂载到/var就行了,省去了备份-还原的时间。要知道这些deb包
│
可不是几十M而已,而是有可能几百M、几个G,一来一回可够呛的。你也可以单独挂载
│
个分区到/var/cache/apt/archives,其他的都不要。
│
当然,这样又增加了一点系统构造的复杂度,喜欢怎样请自己斟酌。)
├── crash
├── games
├── lib
├── local
├── lock
├── log
(呵呵,这里的文件是系统运行的完整记录,出了问题一定要来这里看看)
├── mail
(这里是存放所有用户email的地方)
├── opt
├── run
├── spool
└── tmp
├── bin
├── boot
│
├── cdrom
├── dev
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
├── etc
├── home
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
├── lib
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var