1、Linux 文件系统入门

文件介绍

在 Linux 系统中,任何软件和硬件都被视为文件。Linux 中的文件名最多支持 256 个字符,分别可以用 A~Z、a~z、0~9 等字符来命名。

Linux 下的文件分为5种类型,即普通文件、目录文件、链接文件、设备文件和管道文件。

目录介绍

/bin:存放使系统最经常使用的命令。例如,cp、ls、cat等。

/boot:操作系统启动时所需的文件。

/dev:接口设备文件目录。

/etc:存放系统管理所需要的配置文件和子目录。

/home:一般用户的主目录或FTP站点目录。

/mnt:装置的文件系统加载点。例如光驱、软盘等。

/proc:该目录是一个虚拟的目录,是系统内存的映射,该目录的内容不在硬盘上而是在内存中。

/root:管理员的主目录。

/sbin:存放系统启动时所需执行的程序。

/tmp:用来存放一些临时的文件。

/usr:存放用户使用的系统命令和应用程序等信息。

/lib:存放系统最基本的动态链接共享库。

/lost+found:该目录平时是空的,当系统不正常关机后,存放恢复的文件。

/var:具有变动性质的相关程序目录。

2、文件的基本操作

新建和删除文件

1.删除文件

rm /root/file1

2.新建目录

mkdir /linux

3.删除空目录

rmdir /linux

4.删除目录及目录下的所有文件

rm -fr /linux

5.创建链接文件(将/linux目录下的file文件链接到/root目录下,-s表示创建的是符号链接)

ln -s /linux/file /root/file.ln

查看和创建文件

1.查看文件内容

cat /root/1.txt(查看文件)

cat >/root/2.txt(创建文件)

cat -b /root/1.txt(显示行号)

cat /root/1.txt /root/2.txt(合并显示)

cat /root/1.txt /root/2.txt>/root/3.txt(合并新文件)

2.分页显示文件内容

more /etc/imrc(Enter键:下一行,空格键:下一页)

more +3 /etc/imrc(从第3行开始起的内容)

more +do /etc/imrc(寻找到某个字符后的内容)

3.交互式操作显示文件内容

less /etc/imrc(H键:在线使用说明,Q键:离开浏览模式)

复制和移动文件

1.复制文件

cp /test1/file1 /test2/file2(复制file1文件,并更名为file2)

cp -ax dir1 dir2(将dir1下的所有目录都复制到dir2下,并改变文件系统格式)

2.移动文件

mv /test1/file1 /test2/file2(移动file1文件,并更名为file2)

3、压缩和解压缩

创建.zip文件

1.zip命令的基本使用方法

zip file.zip *(将当前目录下的所有文件直接压缩为 file.zip)

2.压缩后,自动删除原文件

zip -m file.zip file1.txt(把file1.txt文件压缩成file.zip,然后删除file1.txt)

3.将子目录一起压缩

zip -r file.zip *(将当前目录下的子目录一起压缩到file.zip)

4.忽略子目录的内容

zip -j file.zip *(将当前目录下的所有文件压缩到fiel.zip,但不包括子目录)

5.将已压缩的或没有必要压缩的文件去掉

zip -n .mpg:.jpg:.gif(将.mpg、.jpg、.gif排除在外,在各种类型文件中间要用:分开)

6.压缩某一日之后的文件

zip -t 101812 file.zip(将当前目录下2012年10月18日以后的文件压缩为file.zip)

7.不压缩链接文件的原文件

zip -y file.zip *(将当前目录下的所有文件压缩为file.zip,不压缩链接文件的原文件)

8.指定压缩率压缩文件

zip -9 file.zip *(压缩率的范围为-1~9,-9的压缩率最高)

9.压缩大量文件

zip -@ file.zip

file1.txt

file2.txt

(在所有文件输入完成后,按 Ctrl+D 组合键完成输入,进行压缩)

10.将不需要压缩的文件排除在外

zip file.zip * -x file2.txt(压缩当前目录下的所有文件,但将当前目录file2.txt文件排除在外)

解压缩

1.排除不需要解压缩的文件

unzip file.zip -x file3(用于将压缩文件file.zip中除了file3的其他文件进行解压)

2.查看压缩包的内容

zip -z file.zip(查看file.zip压缩包的内容,也可以使用-l、-v来查看压缩包的内容)

3.gzip命令的基本使用方法

gzip file2.txt(将文件file2.txt进行压缩)

4.压缩率

zip -9 file.txt(按照压缩率为-9将file.txt进行压缩)

5.解压缩.gz文件

gunzip file.gx 或 gzip -d file.gz(用来查看压缩包的详细信息)

文件打包

1.tar 命令的基本作用方法

tar 参数 打包后的文件名 要打包的文件

2.打包操作

tar -cvf file.tar * (将当前目录下的所有文件和目录打包到file.tar中,并显示打包的详细过程)

3.再打包

tar -hcvf file.tar *(如果要打包的文件为符合链接,则不打包符合链接而是将符号链接指向的文件打包)

4.将新文件加入已打包的包文件

tar -rvf file.tar file.txt(将文件file.txt添加到已经存在的tar包file.tar中)

5.打开包的操作

tar -xvf file.tar(将tar包file.tar中的文件释放出来)

6.tar 命令参数

-c:创建新文件

-v:显示命令执行的信息

-f:指定压缩为文件形式

-x:解开tar文件

-h:重新进行打包

-r:将一个新文件加入到打包的文件中

4、设置文件/目录访问权限

对于 Linux 系统中的文件而言,其权限可以分为4种:读权限、写权限、执行权限和无权限,分别用r、w、x和-来表示。不同的用户具有不同的读、写和执行权限。Linux 系统按文件所有者、文件所有者同组用户和其他用户3类规定不同的文件访问权限。

Linux 文件系统安全模型通过给系统中的文件赋予两个属性来起作用。赋予每个文件的两个属性称为所有者(ownership)和访问权限(access rights)。Linux 下的每一个文件必须严格地属于一个用户和一个组。

10种权限属性:drwxr-xr–

第1个字符与权限无关,表示文件的类型。字符d表示该文件是一个目录;b表示该文件是一个系统设备,使用块输入/输出与外界交互,通常为一个磁盘;c表示该文件是一个系统设备,使用连续的字符输入/输出与外界交互,如串口和声音设备;.表示该文件是一个普通文件,没有特殊属性;-表示为文件。

第2~4个字符用来确定文件的用户(user)权限,第5~7个字符用来确定文件的组(group)权限,第8~10个字符用来确定文件的其他用户(other user)的权限。

使用 chmod 命令

用户可以使用 chomd 命令来修改文件权限,通常用两种方式来表示权限类,即数字表示法和文字表示法。

1.以数字表示法修改存取权限(rwx=4+2+1=7)。

chmod 764 文件名(rwxrw-r–)

2.以文字表示法修改存取权限

chmod [who] [+/-/=] [mode] 文件名

操作对象 who 表示4种不同的用户,u 表示“用户(user)”,g 表示“同组(group)用户“,o 表示“其他(others)用户“,a 表示“所有(all)用户”。是系统默认值。

而权限 mode 仍为3种:r 为可读,w 为可写,x 为可执行。

与数字表示法不同的是,文字表示法不仅可以重新设置权限,还可以在原来的权限上,增加或减少权限,利用[+/-/=]来实现。

chmod u+x,g-w,o=r /root/file

3.目录权限的修改

目录权限的修改和文件相似,但是如果要修改目录中所有文件的存取权限,则应该用 * 来表示。

chmod 774 /home/linux/*

如果文件中还有其他子目录,则可以使用-R参数。

chmod -R u=rwx,g=rwx,o=r /home/linux/*

使用 chown 命令

一般情况下,文件的创建者就是文件的拥有者。若要改变文件的拥有者,则必须在 root 权限下才能进行修改。

chown iwanc /home/linux/file

5、管理磁盘

在 Linux 中,使用 df 命令可以显示文件系统的有效空间。

df -h(以比较容易阅读的MB和GB来显示磁盘空间)

du -h 文件或目录路径(该命令逐级进入指定目录的每一个子目录,并显示该目录占用文件系统数据块的信息)

磁盘分区操作

1.设备管理

在 Linux 中,每一个硬件设备都映射一个系统文件,包括硬盘、光驱等IDE或SCSI设备。Linux 为各种IDE设备分配了一个由hd前缀组成的文件。对于各种SCSI设备,则分配了一个由sd前缀组成的文件。例如,第一个IDE设备,Linux定义为hda;第二个IDE设备则定义为hdb;依此类推。而SCSI设备应该是sda、sdb、sdc等。

2.分区数量

要进行分区就必须针对每一个硬件设备进行操作。对于每一个硬盘(IDE或SCSI)设备,Linux分配了一个1~16的序列号码,代表了硬盘上面的分区号码。例如,第一个IDE硬盘的第一个分区,在Linux中的映射为hda1,第二个分区是hda2。对于SCSI硬盘而言,则是sda1、sdb1等。

3.各分区的作用

在Linux中规定,每一个硬盘设备最多拥有4个主分区(其中包含扩展分区)。任何一个扩展分区都要占用一个主分区号码。在一个硬盘中,主分区和扩展分区最多有4个。

主分区的作用是帮助计算机启动操作系统。因此,每一个操作系统的启动程序或引导程序,都应该存放在主分区上,这就是主分区和扩展分区、逻辑分区的最大区别。用户在指定安装引导Linux的bootloader的时候,都要指定在主分区上。

Linux规定了主分区(或者扩展分区)占用1~16号码中的前4个号码。例如,第一个IDE硬盘,主分区(或者扩展分区)占用了hda1~hda4,而逻辑分区占用了hda5~hda16。因此,Linux下面的每一个硬盘最多有16个分区。

对于逻辑分区,Linux规定它们建立在扩展分区上。因此,扩展分区能够提供更加灵活的分区模式,但不能用来作为操作系统的引导。

4.分区指标

对于每一个Linux分区,分区的大小和类型是最主要的指标。容量的大小就是分区的容量。分区的类型规定了改分区上文件系统的格式。Linux支持多种文件系统格式,其中包含了用户熟悉的FAT32、FAT16、NTFS、HP-UX,已经Linux特有的Linux Native和Linux Swap分区类型。在Linux系统中,可以通过分区类型号码来区别这些不同类型的分区。

6、使用光盘

要加载一个设备到系统,需要设备的驱动文件、软件配置及内核支持。所有的设备文件都保存在/dev目录中,包括光盘驱动器的设备文件。符号链接文件/dev/cdrom用于将普通的设备名称链接到实际使用的CD-ROM设备上。

挂载和卸载光盘

在命令行中输入mount命令,即可挂载光盘:

mount /mnt/cdrom

要哦卸载光盘需要用到umount,命令如下:

umount /mnt/cdrom

制作ISO文件

ISO文件就是光盘镜像文件。在Linux下制作ISO文件有很多方法,使用复制命令就可以制作,命令如下:

cp /dev/cdrom cdrom_img.iso

或者 dd if=/dev/cdrom of=cdrom_img.iso

该命令将光驱里的光盘进行镜像,制作成一个ISO文件cdrom_img.iso。要使用mkisofs来制作ISO文件,生成一个光盘的镜像文件,命令如下:

mkisofs -r -o cdrom_img.iso /mydir

上面的命令就是将/mydir目录下的文件进行处理,生成一个镜像文件cdrom_img.iso,文件生成后存储在/root目录下。

刻录光盘

光盘刻录是备份数据的好方法,可以避免在硬盘损坏后,用户数据全部丢失的后果。在Linux上刻录光盘非常简单,首先扫描刻录机设备号:

cdrecord -scanbus

扫描结果将自动发现刻录机的设备号。例如,设备号为dev=6,0,则在刻录光盘时,输入以下命令:

cdrecord -v speed=4 dev=6,0 cdrom_img.iso