文件

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字节。

字符设备:没有缓冲区,直接读写文件。

 

posted @ 2019-06-09 12:58  Jary霸  阅读(132)  评论(0)    收藏  举报