Linux编程基础之三——Linux文件管理操作

来源:互联网 发布:学生自杀数据 编辑:程序博客网 时间:2024/04/28 00:20

Linux文件概念

分类

Linux操作系统文件分为:普通文件、目录文件、字符 设备文件、块设备文件、符号链接文件、管道文件、 socket文件

普通文件

  • 文件名最长不能超过255个字符
  • 可以用除保留字符以外的任何字符给文件命名
  • 扩展名对LINUX系统来说没有任何意义

目录文件

文件系统中一个目录所包含的目录项组成的文件。目录文件只允许系统进行修改。用户进程可以读取目录文件,但不能对它们进行修改。
特别地:
. 代表目录本身
.. 代表父目录

设备文件

字符设备文件和块设备文件。Linux把对设备的
I/O作为对文件的读取/写入操作内核提供了对设备处理和对
文件处理的统一接口。

设备文件没有文件长度,它
有两个值分别是主设备号和
次设备号;两者共同构成一
个唯一的号码,内核根据它
找到对应的设备驱动程序

链接文件

又称符号链接文件,它提供了共享文件的一种
方法。

管道(FIFO)文件

用于在进程间传递数据。Linux对管道的
操作与文件操作相同,它把管道做为文件进行处理。
(mkfifo)

Socket(套接字)文件

处理

Linux中 文件是一个字节序列,并把所有东西看做文件处理。

Linux继承了UINX,把文件名和文件控制信息分开管理,
文件控制信息单独组成一个称为i节点(inode)。
Linux的目录项主要由文件名和inode号组成。

文件系统结构

Linux文件系统结构

主目录/登陆目录(Home Directories)

输入命令: echo $HOME 可以查看
字符”~“表示主目录

当前工作目录/当前目录(Present Working Directories )

当前目录 . (dot)
父目录 .. (dot dot)

绝对路径(Absolute Pathnames)

从根目录开始的路径

相对路径 (Relative Pathnames )

从当前工作目录或用户主目录开始的路径

一些标准目录和文件

根目录(/)

根目录位于分层文件系统的最顶层,用斜线(/)表示。它
包含一些标准文件和目录,因此可以说它包含了所有的目录和文件。

/bin

也称二进制(binary)目录,包含了那些供系统管理员和普通用户使用的重要的Linux命令的可执行文件。包括一些常用命令、系统恢复命令和网络命令。目录/usr/bin下存放了大部分的用户命令。

/boot

在这个目录下存放系统启动时要用到的程序。包括Linux内核的二进制映像。内核文件名是vmlinux加上版本和发布信息。

/dev

dev 是设备(device)的英文缩写。在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。

/etc

etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这
个目录下。

/sbin

这个目录是用来存放系统管理员的系统管理程序

/home

存放用户的主目录。如果建立一个用户,用户名是“ji”,那么在/home目录下就有一个对应的/home/ji路径,用来存放用户的主目录。

/lib

lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。

/mnt

这个目录主要用来临时装载文件系统,系统管理员运行mount命令完成装载工作。

/opt

该目录用来安附加软件包

/proc

目录存放了进程和系统得信息,可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。

/root

根(root)用户的主目录。如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。

/sbin,/usr/sbin,/usr/root/sbin

存放了系统管理的工具、应用软件和通用的root用户权限的命令。

/tmp

用来存放不同程序执行时产生的临时文件。

/usr

是linux文件系统中最大的目录之一。它存放了可以在不同主机间共享的只读数据。

/lost+found

目录中存放所有和其他目录没有关联的的文件,这些文件可以用Linux工具fsck查找得到。

/var

用来存放易变的数据,这些数据在系统运行过程中会不断变化。 /var/spool/mail 存放收到的电子邮件,/var/log 存放系统的日志, /var/ftp 。

文件系统概念

文件系统是操作系统中以文件方式管理计算机软件资源的软件和被管理的文件和数据结构(如目录和索引表等)的集合。
常用的文件系统:

  • FAT(MS-DOS文件系统)
  • FAT32(VFAT)(win98文件系统)
  • ext2、ext3、ext4(linux文件系统)
  • UFS (UNIX文件系统)
  • iso9660 (CD-ROM文件系统)
  • NFS(网络文件系统)
  • proc(linux虚拟文件系统)
  • VFS (linux虚拟文件系统)

文件操作

文件系统挂载

在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。

mount

Linux 使用 mount 命令挂载文件系统,通常需要有 root 权限

语法

mount [-t fstype] [-o options] device dirname

常用参数

fstype:文件系统类型
  • iso9660 cd-rom使用的标准文件系统
  • vfat WINDOWS操作系统的fat32文件系统
  • ntfs WINDOWS的NTFS文件系统
  • msdos MS-DOS的fat文件系统
device:设备文件

格式:/dev/xxyN

  • /dev 保存所有设备文件的目录
  • xx 设备类型,如IDE硬盘为hd、SCSI硬盘和usb盘为sd、
    软盘为 fd
  • 同种设备的顺序号,如第一个硬盘为a
  • N 同一个设备编号,如硬盘的第一个分区为1,硬盘1-4为
    前面四个主分区,5开始为逻辑分区。
    常用设备文件名称:
  • /dev/hda1(第一个硬盘的第一个分区)
  • /dev/hda5、/dev/hda6(逻辑分区)
  • /dev/fd0(软盘)
  • /dev/hdc(光盘)
  • /dev/sda1(通常为移动硬盘或U盘的第一个分区)
dirname:挂载目录

可以挂载在mnt,也可以挂载在你的主目录下,fedora core 6挂载在media目录下。如:
 软驱:/mnt/floppy
 光驱:/mnt/cdrom

options:设备或文件的挂接方式

常用的参数有:
 loop:把一个文件当成块设备挂接(环回设备)
 ro:采用只读方式挂接设备
 rw:采用读写方式挂接设备
 iocharset:指定访问文件系统所用字符集

文件系统卸载

umount

使用 umount 命令卸载文件系统

语法

umount [设备名]或[挂载点]
例如:
umount /dev/hda5
umount /dosd

磁盘管理命令

df

查看系统中文件系统的空间占用情况

语法

df -[选项]

参数选项

  • a 显示所有的文件系统
  • k 以k字节为单位
  • t 显示指定类型文件系统
  • l 仅显示本地的文件系统
  • i 显示inode的使用量而非块的使用量
  • x 显示指定类型之外文件系统的情况
  • t 显示文件系统类型
  • h 用人们习惯方式显示

du

统计目录或文件占用空间

语法

du –[选项] 目录名

参数选项

  • s 只显示总数
  • a 递归地显示目录及其子目录各文件的大小
  • b 以字节为单位列出磁盘空间的使用情况
  • k 以k字节为单位列出磁盘空间的使用情况
  • c 最后加一总计
  • h 用人们习惯方式显示

free

语法

free [参数]

参数选项

  • -b : 以Byte为单位显示内存使用情况。
  • -k : 以KB为单位显示内存使用情况。
  • -m : 以MB为单位显示内存使用情况。
  • -s < sec> : 持续观察内存使用状况,< sec>为时间间隔秒数。
  • -t : 显示内存总和。

fdisk

查看硬盘分区情况及对硬盘进行分区管理
fdisk -l

文件结构导航

echo

显示文字。

语法

echo [options][字符串]
echo [–help][–version]

常用选项/功能

百度

cd

改变当前目录

语法

cd [directory]
cd 直接返回主目录

ls

显示指定目录下内容。

语法

ls [options [pathname-list]

常用选项

  • -a 显示所有文件及子目录
  • -l 除文件名称外,亦将文件类型、权限、拥有者、文件大小等详细列出
  • -r 将文件以相反次序显示
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” 及 “..”
  • -F 在列出的文件名称后加一符号,例如可执行文件则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下的文件亦皆依序列出

stat

列出元数据信息
例如:stat test.c
文件:”test.c”
大小:145 块:8 IO 块:4096 普通文件
设备:801h/2049d Inode:690767 硬链接:1
权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2013-11-21 13:02:25.609288710 +0800
最近更改:2013-11-13 18:09:27.315490413 +0800
最近改动:2013-11-13 18:09:27.323490413 +0800
创建时间:

mkdir

建立目录同时还可以给目录设置权限。

语法

mkdir [options] dirnames

常用参数

  • -p 若所要建立目录的上层目录目前尚未建立,则创建父目录
  • -m 建立目录时,同时设置目录的权限。权限的设置法与chmod 指令相同

rmdir

删除空目录

语法

rmdir [options] dirnames

常用参数

  • p 删除指定目录之后,若该目录的上层目录已变成空目录,则将其一并删除

touch

建立文件
若文件不存在,则建立一个空的文件
若文件已存在,则修改文件日期、时间等信息为当前日期、时间

语法

touch [options] file-list

file

显示文件内容

语法

file [options] file-list
file *

0 0