文件
0.硬盘是有一个个的分区的,当windows初次加载时,会给每个分区命名,即盘符的分配,将第一个分区命名为c盘,第二个d盘。。。。。也就是将第一个分区挂载到C盘,第二个。。。。,此后,每个盘都是一颗颗树,c:,d:,e:都是作为相对应的盘的树根,找文件就从树根开始往下找起。
结构:
/ (这就是著名的根)
├── 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
1.Linux下的目录树其实是一种逻辑结构,在逻辑上,bin目录属于根目录,但是在实际的物理存储上,bin目录和根目录可以分别指向不同的分区处。
2.useradd aaa:随后在home目录下会创建一个aaa。可以通过cd ~aaa进去,原理:bash先对字符串进行7步扩展成完整的路径,然后再启动。
3.df: 查看磁盘分区使用情况。
4.对于Linux来说,它将一个分区挂载到/,而对于/下的所有目录都可以成为其他分区的挂载平台,将实体挂上到概念上。
umount /boot:把挂载到boot上的分区去掉,由于数据在分区上,这个时候,boot里面就什么都看不到了。
再: mount /dev/sd1 /boot : 再把分区挂载回去,即将sd1挂载到/boot上去。这个时候就能看到数据了。修改什么的都在对应的分区修改的。
5.linux开启过程:先将硬盘的BIOS程序读入内存,将sda1挂载到根,然后读取硬盘的sda1分区里面的grub引导程序到内存运行它,再将boot目录下的内核读入内存运行,此时kernel掌管整个系统,它将更改将sda3挂载到根,接着把sda1挂载到boot目录。然后启动sbin目录下的init程序,这个init是用户空间的第一个程序(id=1),接着启动其他用户程序,。。。。直到登录程序。
6.文件类型
d:目录
-:用户的普通文件
b:块设备文件
c:字符设备文件
l:符号链接文件
块设备:有缓冲区缓存数据,当时机成熟时,把缓冲区的数据写到文件里面或者从文件写入到缓冲区,以块为单位访问,例如512字节。
字符设备:没有缓冲区,直接读写文件。


浙公网安备 33010602011771号