linux系统文件介绍
在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱。Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准。FHS 标准规定了 Linux 根目录各文件夹的名称及作用,统一了Linux界命名混乱的局面。
无论何种版本的 Linux 发行版,桌面、应用是 Linux 的外衣,文件组织、目录结构才是Linux的内心。
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
FHS 是根据以往无数 Linux 用户和开发者的经验总结出来的,并且会维持更新,FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态,如下表所示:
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz 为 linux 的内核文件,以及 /boot/gurb。建议单独分区,分区大小100M即可
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
注:/etc/X11 存放与 x windows 有关的设置。
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为 /lib/modules。
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于 /disk 中,此目录下就会自动产生目录 /disk/lost+found
/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的 KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
/root:系统管理员root的家目录,系统第一个启动的分区为 /,所以最好将 /root和 /放置在一个分区下。
/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls 时会查询 /usr/share/man/man1/ls.1.gz 的内容建议单独分区,设置较大的磁盘空间
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间
一切皆文件
Linux 对数据文件(.mp3、.bmp),程序文件(.c、.h、*.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。
文件分类:
1)普通文件( 数据文件 )
普通文件是用于存放数据、程序等信息的文件,一般都长期地存放在外存储器(磁盘)中。普通文件又分为文本文件和二进制文件。
2)目录文件
目录文件是文件系统中一个目录所包含的目录项所组成的文件。
3)设备文件
设备文件是用于为操作系统与设备提供连接的一种文件。在Linux系统中将设备作为文件来处理,操作设备就像是操作普通文件一样。每一个设备对应一个设备文件,存放在 /dev 目录中。
5)链接文件
似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。
6)管道文件
管道文件主要用于在进程间传递数据的一种特殊文件。
7)套接口文件
主要用于不同计算机间网络通信的一种特殊文件。
相关内容
传输文件
摘要:本文介绍linux下的几种网络共享文件的传输:NFS、Samba、FTP及基于SSH传输协议的sftp。这里仅介绍如何使用已有共享资源,对于服务器的配置暂不介绍。1、linux间的网络硬盘:NFS。
NFS目前只用于在linux和UNIX主机间共享文件系统。通过NFS可以方便地将一台linux(或者UNIX)主机上的文件系统挂载到本地。当然,这要求对方主机开启了NFS服务器,并对共享的文件系统做了相关的设置。
(1)如何安装NFS文件系统呢?
与安装本地文件系统一样,区别在于需要给mount命令指定一个远程主机名(或者IP地址)。
例:sudo mount 192.168.1.111:/default /mnt #将主机192.168.1.111上导出的/default安装到mnt目录下
安装成功之后就可以像使用本地文件一样使用它了,如果安装失败的话,可能是因为服务器端的NFS服务器没有正确导出这个目录,可以使用带-e选项的showmount查看服务器端导出的目录。
例:showmount -e 192.168.1.111 #查看主机192.168.1.111导出的目录
(2)在安装文件系统时,我们可以选择合适的安装选项来对文件系统进行安装:
在默认情况下,mount命令会根据NFS服务器上的设置,选择合适的安装选项。如果确定NFS服务器以可写方式导出了这个文件系统,那么可以使用-o选项配合rw标志,明确以可读写方式安装这个文件系统。
例:sudo mount -o rw 192.168.1.111:/default /mnt #以可读写方式挂载
注意:rw标志实际上是“推荐”mount命令用可读写方式安装文件系统。如果NFS服务器上的设置是不允许外部可写,那么mount会自动选择以只读方式安装。
常用的 NFS安装标志有:
rw:以可读写方式安装文件系统。
ro:以只读方式安装文件系统。
bg:如果安装失败,那么在后台继续发送安装请求。
hard:“硬安装”方式。如果服务器没有响应,那么暂时挂起对服务器的访问,直到服务器恢复。
soft:“软安装”方式。如果服务器没有响应,那么返回一条出错信息,并中断正在执行的操作。
intr:允许用户中断某项操作,并返回一条错误信息。
nointr:不允许用户中断。
timeo=n:请求的超时时间。n以十分之一秒为单位。
tcp:使用TCP协议传输文件(默认选择UDP)
async:要求服务器在实际写磁盘之前就回应客户机的写请求。
“硬安装”是mount命令的默认安装方式,使用这种安装方式有助于NFS传输的稳定。如果因为网络原因使某个程序的传输暂时被阻塞,那么客户机还会继续等待,直到传输恢复正常。与此相对,“软安装”时,一次短暂的故障就可能毁掉几个小时的劳动成果。但如果用户正在和一台不那么重要的NFS服务器打交道,那么soft标志有助于避免把时间浪费在无谓的等待上。
intr允许用户在发现某项操作没有回应的时候中断它,通常,给“硬安装”方式配合intr标志是一种比“软安装”更好的方式,这样既可以保证重要操作不会被意外中断,又能让用户在适当的时候中断某项操作。
使用逗号分隔多个不同的选项。下面这条命令以可读写、硬安装、可中断、后台重试安装请求的方式安装远程NFS文件系统。
例:sudo mount -o rw,hard,intr,bg 192.168.1.111:/default /mnt
(3)卸载文件系统:与本地文件系统的卸载一般,使用umount命令。
例:sudo umount /mnt
(4)如果需要在启东时让机器自动挂载远程的NFS文件系统,可以通过修改/etc/fstab进行配置。
例:192.168.1.111:/default /mnt nfs rw,hard,intr,bg 0 0 #文件系统类型为nfs
2、与Windows进行传输共享:Samba。
(1)Windows中,并不使用NFS,而是使用CIFS的协议机制进行共享文件。CIFS本质上是SMB的升级版本,是由Andrew Tridgell于1991年采用逆向工程对SMB协议进行实现开发出来的。Tridgell将这个开发出来的软件包取名为Samba。
(2)Samba包括一个服务器端和几个客户端程序。安装在linux主机上的Samba的服务器端程序向Windows机器提供linux共享,Windows主机不需要为此安装其他特殊的工具。Samba的客户端程序用于获取Windows主机的共享内容。
(3)smbtree:用于查看当前网络上的共享资源。
-S选项:简单的列出当前网络上的共享主机列表。当smbtree询问口令时,直接回车(表示不需要口令)即可。如果不指定—S选项,那么smbtree会试图与搜索到的共享主机建立连接。
—U:可以指定与哪个用户名进行连接,并提供对应的口令。
-b:指定smbtree使用广播的方式搜寻整个网络。
例:smbtree -b -U smbuser #以广播方式搜寻整个网络,并指定以用户smbuser与搜寻到的共享主机建立连接。
(4)nmblookup:可以查询某台主机对应的IP地址。如果需要使用IP地址来访问Samba资源的话,这个命令还是很不错的。
例:nmblookup lewis-laptop #查询lewis-laptop的IP地址
(5)smbclient:获取Samba共享资源。基本语法:smbclient //servername/sharename [-U username]
例:smbclient //172.16.25.128/share
登录成功后,smbclient会显示“smb:\>”提示用户输入命令。这里的命令与FTP及sftp的命令一般。在FTP时介绍。
quit:退出。
(6)mount.cifs:将windows的共享目录挂载到本地的目录下。
语法:mount.cifs service mount-point [-o options] #service表示服务器端的共享目录,和smbclient一样,应该使用//servername/sharename这样的写法。mount-point代表用于挂载该共享的本地目录。
例:sudo mount.cifs //10.171.20.225/share /srv/share
3、使用FTP:
(1)使用web浏览器:使用web浏览器连接FTP,记得在地址中加上“ftp://”前缀告诉浏览器要使用FTP协议。
(2)FTP图形客户端:常用的有FIleZilla。具体不介绍了,很简单。
(3)使用ftp命令:
ftp:是linux自带的一个命令行的FTP工具,可以完成所有基本的FTP操作。要使用ftp命令连接服务器,只要在这个命令后面跟上服务器名称或者IP就可以了。
例:ftp 10.171.37.1 #连接FTP服务器10.171.37.1
FTP服务器默认使用21端口,如果FTP没有使用默认端口,那么可以在主机后面再增加一个端口参数。
例:ftp 10.171.37.1 2121 #连接工作在2121端口的FTP守护进程。
建立连接后,ftp命令会要求输入登录的用户名。如果连接的是匿名FTP服务器(也就是任何人都能够访问的FTP服务器的话),那么应该输入anonymous,代表匿名用户。登录成功后,可以看到ftp提示符,等待用户输入命令:ftp>。
ftp程序用于浏览文件系统的命令和shell基本一致。
常用的ftp客户端命令:
!<command>:在本地执行命令。
?<command>:显示ftp命令的帮助信息。
open:连接FTP服务器。
close或disconnect:关闭连接但不退出FTP程序。
bye或quit:退出FTP程序。
cd:切换远程所在的目录。
ls或dir:列出远程目录中的内容。
get:下载文件。
mget:一次下载多个文件。
put:上传文件。
mput:一次上传多个文件。
mkdir:在FTP服务器上建立目录。
rmdir:删除FTP服务器上的目录。
delete:删除FTP服务器上的文件。
pwd:显示当前远程所在的目录。
lcd:切换本地所在的目录。
prompt:切换交互和非交互模式。
4、基于SSH的文件传输:sftp和scp。
(1)传统的FTP由于采用了不加密的传输方式,因此存在严重的安全隐患,而SSH则是目前最安全可靠地传输协议之一。使用sftp进行文件传输有助于保护用户账户和传输安全。首先确保主机开启了SSH的守护进程,然后使用如下命令建立连接。
例:sftp [email protected] #以用户lewis建立连接。
连接成功后,出现:sftp>。等待用户输入命令,这里的命令与FTP差不多。
(2)scp:用于从服务器上赋值一些文件。
例:scp [email protected]:/home/lewis/dump-0.4b41.tar.gz /srv/nfs_share/
#以lewis的身份从服务器10.171.33.221上的/home/lewis中复制文件dump-0.4b41.tar.gz到/srv/nfs_share/中。