chmod +0
相当于没变化。
chmod 0
那么就没人能访问这个文件(但root除外)。
磁盘分区后还要进行格式化,操作系统才能使用这个文件系统。每个操作系统能识别和使用的文件系统不完全相同,如 Windows98 以前支持 FAT,Windows2000 后支持 NTFS。Linux 传统的操作系统是 ext2(Linux second Extended file system,ext2fs)。以前一个分区只能格式化为一个文件系统,而一些新的技术可以将一个分区格式化为多个文件系统(如 LVM 逻辑卷)。
较新的操作系统的文件会保存文件权限、文件所有者等信息,这些信息存放在 inode,实际的文件数据保存到数据区块。 另外有一个超级区块记录整个文件系统的整体信息,包括 inode 与数据区块的总量、使用量、剩余量等。
1、文件描述符
Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
0——标准输入(stdin)
1——标准输出(stdout)
2——标准错误(stderr)
fd0,fd1,fd2指向的文件默认情况下分别是/dev/stdin、/dev/stdout和/dev/stderr,这才是真正的标准输入,标准输出,错误输出
ls 123.txt 1> stdout.txt
ls 456.txt 2> stderr.txt
cmd 2> stderr.txt 1>stdout.txt
ps aux | grep "xx" 2>&1 1>/dev/null
command > file 2>&1 == command 1> file 2>&1
/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO
Linux中获取已后台运行进程的输出
strace -p {pid} -ewrite
这个命令可以将程序的输出打印出来,当然它输出了所有IO,为了过滤,可以这样:
strace -p {pid} -ewrite | grep 'write(1,'
这样就可以只过滤标准输出了,当然,并不完美,因为strace只是输出了一部分,如果文字比较多,它会截断
日志输出到文件
``./a.out > a.log或者使用tee同时将输出写入文件和标准输出:
./a.out | tee a.log(末尾追加):
./a.out | tee -a a.log`
一个>
与两个>
的区别
如果文件已存在,则清空并写入当前的日志信息
ls > test.log
如果文件已存在,则在末尾追加日志信息
ls >> test.log
lsblk 查看设备块
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。
字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。
块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。
因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到应用进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。
当然,这是以磁盘的 I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
而且,由于使用的是原始分区,没有采用文件系统的管理方式,对于Unix维护文件系统的开销也都没有了,比如不用再维护I-node,空闲块等,这也能够导致性能的提高。
第一代扩展文件系统,于 1992 年 4 月发表,是为 Linux 核心所做的第一个文件系统。采用 Unix 文件系统(UFS)的元数据结构,以克服 MINIX 文件系统性能不佳的问题。
第二代扩展文件系统,LINUX 内核所用的文件系统。它开始由 Rémy Card 设计,用以代替 ext,于 1993 年 1 月加入 linux 核心支持之中。ext2 的经典实现为 Linux 内核中的 ext2fs 文件系统驱动,最大可支持 2TB 的文件系统,至 Linux 核心 2.6 版时,扩展到可支持 32TB。
早期 Linux 支持的文件系统,性能低下,没有时间标记,文件名最长 14 个字符。只能使用 64M 硬盘分区。
Minix 修订的文件系统,解决文件名和支持的硬盘大小的问题。
微软 dos、windows 和一些 OS/2 系统支持的文件系统,文件名格式是 8.3。
Linux 兼容 Msdos 使用的文件系统,支持长文件名、权限、所有者设置。
标准的 CD-ROM 文件系统。此标准有不同的说明级别,一级,文件必须是 8.3 格式(文件名不得多于 8 个字符,后缀名不得多于 3 个字符),并且都得是大写字母。目录也不得多于 8 个字符。在二级和三级中,文件名可以达到 32 个字符。
Windows 较早支持的文件系统,以前软盘也一般使用 FAT 格式。 FAT16 只支持 2G 磁盘空间,FAT32 增加了管理能力。
文件系统发生变化时,把相关信息写入一个日志区域,再把变化写入主文件系统。当文件系统发生故障时,日志文件辅助实现一致性,可以较快恢复。
EXT3 是第三代扩展文件系统(英语:Third extended filesystem,缩写为 ext3),是一个日志文件系统,常用于 Linux 操作系统,完全兼容 ext2 文件系统。它提供了高可用性、数据完整性、提高了文件系统的速度,支持多日志模式。
是 ext3 文件系统的后继版本。ext4 是由 ext3 的维护者 Theodore Tso 领导的开发团队实现的,并引入到 Linux2.6.19 内核中。其与 ext3 兼容(可能指令将 ext3 在线升级到 ext4)、支持无限数量的子目录。
VFAT 是“扩展文件分配表系统”的意思,它对 FAT16 文件系统进行扩展,并提供支持长文件名,文件名可长达 255 个字符,VFAT 仍保留有扩展名,而且支持文件日期和时间属性,为每个文件保留了文件创建日期/时间、文件最近被修改的日期/时间和文件最近被打开的日期/时间这三个日期/时间。linux 处理的时候把 fat/vfat/fat32 的文件系统统一用 VFAT 来表示。
XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。SGI 原有文件系统(existing filesystem,EFS)有一些缺陷,SGI 因此设计一种全新的高性能 64 位文件系统,并于 1994 年随 IRIX 5.3 的发布。它至今仍作为 SGI 基于 IRIX 的产品(从工作站到超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。
Linux 内核支持最久的日志文件系统之一,支持海量磁盘和磁盘阵列,开发团队大部分是在俄罗斯国内。2006 年其作者被抓,2008 年判处 25 年监禁,此系统随后丧失了竞争力。
Oracle 于 2007 年写成在开发的文件系统,用以取代 ext3,其改善 ext3 的限制,特别是单一文件大小的限制、总文件系统大小限制以及加入文件校验和特性。
IBM 贡献到 Linux 内核,提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。JFS 能够在几秒或几 分钟内就把文件系统恢复到一致状态。JFS 能够保证数据在任何意外宕机的情况下,不会造成磁盘数据的丢失与损坏。
高性能文件系统 (High Performance File System ,HPFS),HPFS 是微软的 LAN Manager 中的文件系统,同时也是 IBM 的 LAN Server 和 OS/2 产品。在 OS/2 中,它就是 HPFS,但是在 LAN Manager 和 LAN Server 产品中,它是 HPFS386,这是 HPFS 的改进版本。HPFS 提供了 DOS 文件系统中的文件分配表(FAT)所没有的长文件名和性能增强特性。另外,HPSF 还能访问较大的硬盘驱动器,提供更多的组织特性并改善了文件系统的安全特性。HPFS386 增加了对 HPFS 文件系统的 32 位访问,另外还增加了容错和安全性功能。
NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。
方便是 windows 和 Unix 系统之间共享文件的一种协议,主要用于 Windows 和 Linux 下的文件共享、打印共享,可以实现匿名与本地用户文件的共享、支持多节点挂载。
swap(交互分区)一起就是把硬盘的一部分空间拿来作为内存使用,即虚拟内存。Linux 上交换分区需要使用专门的文件系统,使用 mkswap 创建,命令选项:
通过 swapon 启用新的 swap 文件系统。
文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux 内核空间和用户间之间进行通信。
Linux 文件系统的抽象层,向上提供了统一的文件访问接口,向下兼容了不同的文件系统,让 Linux 复杂的文件系统建立关联关系。
创建和维护分区表。必要参数:
选择参数:
菜单操作说明
命令格式: mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
参数 :
在 /dev/hda5 上建一个 msdos 的文件系统,同时检查是否有坏道存在,并且将过程详细列出来 :
mkfs -V -t msdos -c /dev/hda5
命令格式:
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
参数说明:
将 /dev/hda1 挂在 /mnt 之下:
mount /dev/hda1 /mnt
# umount -v /dev/sda1 通过设备名卸载
/dev/sda1 umounted
# umount -v /mnt/mymount/ 通过挂载点卸载
/tmp/diskboot.img umounted