《鸟哥的Linux私房菜》学习笔记(3)——根文件系统

一、Linux目录结构                                                 

  rootfs:根文件系统,根是"/"。

1、/boot

  系统启动相关的文件,如内核、intrd、以及grub(bootloader)

root@hao:~# ls /boot
abi-3.2.0-29-generic-pae     grub                             memtest86+.bin            System.map-3.2.0-29-generic-pae
config-3.2.0-29-generic-pae  initrd.img-3.2.0-29-generic-pae  memtest86+_multiboot.bin  vmlinuz-3.2.0-29-generic-pae

2、/dev

  设备文件。所有的硬件都被识别为文件,比如插入一个U盘,也会在dev目录下创建一个文件,如下图。显示为青色的是符号链接文件,黄色为特殊文件,作为设备的访问入口存在。设备文件分为块设备和字符设备,块设备可以随机访问,按数据块访问。字符设备线性访问,字符为单位,比如显示器和鼠标。

3、/etc

  配置文件。系统中所有的程序的配置文件都在该目录或其子目录下。因此,这里的文件大多是纯文本格式。

4、/home

  用户家目录。默认为home下的跟用户名同名的目录,如

root@hao:~#  ls /home
hao

5、/root

  root用户家目录。直接在根目录下,而不是在home下。

6、/lib

  库文件及内核模块文件目录。库文件分为静态库.a和动态库.so(shared object 共享对象)两种。库是被调用的封装好的功能,在系统上执行时,共享库载入内存时,一份存储,多个程序使用。而静态库,直接链接到程序的地址空间并且作为程序的一部分存在。内核模块文件:/lib/modules。绿颜色,表示有执行权限。

7、/media

  挂载点目录。把某个设备与某个目录建立关系就叫做挂载。media 用于挂载移动设备

8、/mnt

  挂载点目录。挂载额外的临时文件系统。

9、/misc

  杂项

10、/opt

  可选目录。第三方程序的安装目录。现在通常放在/usr/local

11、/proc

  伪文件系统。系统未启动时,没有任何内容,其实为空。系统启动后便不为空,为内核映像文件,保存内核的可调参数和内核工作的统计数据,系统调优和性能监控都与其相关。

12、/sys

   伪文件系统。跟硬件设备相关的属性映射文件,修改磁盘调度队列时与其相关。

13、/tmp

  临时文件目录。一般每个月会清除。每个用户都可创建,仅可删除自己创建的文件。

14、/var

  可变化的文件目录。

15、/bin(binary)

  用户命令。可执行文件。系统启动时需要的执行文件(二进制)

16、/sbin

  管理命令。

17、/usr(Universal shared Read-Only)

  只读文件。

  /usr/(s)bin不同于/bin,这里的命令为了正常提供基本功能,与系统启动无关。

  /usr/lib不同于/lib,这里的库不是公共库

  /usr/local用来安装第三方软件

    /usr/local/(s)bin

    /usr/local/(s)bin

root@hao:~# ls /usr
bin  games  include  lib  local  sbin  share  src

二、Linux文件目录命名规则                                

1、长度不能超过255个字符

2、严格区分大小写

3、不能使用/

三、目录管理                                                    

前面讲的ls cd pwd命令外,还有下面命令

1、mkdir(make directory):创建空目录

  -p:未加该选项时,创建目录一定要保证其父目录的存在,如下面的mkdir x/y/z要创建z目录,一定要保证x与y存在,如果不存在则需要先创建x再创建y然后再创建z。加上该选项可以在没有父目录的情况下,连同父目录一块创建。

  -v(verbose):显示创建过程可以和-p选项一起使用

root@hao:~# mkdir x
root@hao:~# ls
x
root@hao:~# mkdir x/y
root@hao:~# mkdir x/y/z
root@hao:~# sudo apt-get install tree
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
root@hao:~# tree x
x
`-- y
    `-- z

2 directories, 0 files

root@hao:~# mkdir -p m/n/t root@hao:~# tree m m `-- n `-- t 2 directories, 0 files

 

   使用-pv,及花括号展开,来一次创建多个目录

root@hao:~# mkdir -pv /mnt/test/{x/m,y}
mkdir: created directory `/mnt/test'
mkdir: created directory `/mnt/test/x'
mkdir: created directory `/mnt/test/x/m'
mkdir: created directory `/mnt/test/y'
root@hao:~# tree /mnt
/mnt
`-- test
    |-- x
    |   `-- m
    `-- y

4 directories, 0 files

  使用-pv,在/mnt/test下创建 a_b,a_c,d_b,d_c

root@hao:~# mkdir -pv /mnt/test/{a,d}_{b,c}
mkdir: created directory `/mnt/test/a_b'
mkdir: created directory `/mnt/test/a_c'
mkdir: created directory `/mnt/test/d_b'
mkdir: created directory `/mnt/test/d_c'
root@hao:~# tree /mnt
/mnt
`-- test
    |-- a_b
    |-- a_c
    |-- d_b
    |-- d_c
    |-- x
    |   `-- m
    `-- y

8 directories, 0 files

2、rmdir(remove directory)删除目录

  只能删除空目录,如果该目录删除,其父目录也为空,则其父目录也删除,如此递归

root@hao:~# rmdir /mnt/test/y
root@hao:~# tree /mnt
/mnt
`-- test
    |-- a_b
    |-- a_c
    |-- d_b
    |-- d_c
    `-- x
        `-- m

7 directories, 0 files

root@hao:~# tree /root /root |-- m | `-- n | `-- t `-- x `-- y `-- z 6 directories, 0 files
root@hao:~# rmdir -p /root/x/y/z rmdir: failed to remove directory `/root': Directory not empty root@hao:~# tree /root /root `-- m `-- n `-- t 3 directories, 0 files

 

 

posted @ 2014-08-20 09:37  冥草有心  阅读(342)  评论(0编辑  收藏  举报