linux命令之 df file fsck fuser

时间:2023-03-08 17:39:05

有非常多人说,网上非常多知识点都有了。为什么你还要在自己的博客中反复这些东西呢?

我想说的是。别人写的东西是别人理解的东西,同一时候也是别人学习过程的总结,对于自己来说。自己写自己的博客最基本的目的就是为了记录下自己的学习历程,同一时候对自己学的东西进行下总结。当过了一段时间后能够回头看看,自己以前经历的,这也是一种学习。也是一种人生态度。


以下言归正传:继续介绍下linux的几个命令

df 磁盘管理命令

功能:检查文件系统的磁盘空间占用情况。

获取磁盘空间的剩余空间和已使用空间。

语法:df [选项]

df命令能够显示全部文件系统对i节点和磁盘块的使用情况。

參数:

-a 显示全部文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统

-k 以k字节为单位显示

-i 显示i节点的信息。而不是磁盘块的

-t 显示各指定类型的文件系统的磁盘空间使用情况

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)

-T 显示文件系统类型

$ df
Filesystem 1 K-blocks Used Available Use% Mounted on
/dev/hda2 1361587 1246406 44823 97% /

df命令的输出清单:

Filesystem:代表文件系统相应的设备文件路径(即磁盘分区)

K -blocks:分区包括的数据块(1024字节)的数目

used:已使用数据块

available:未使用数据块

use%:普通用户空间使用百分比

Mounted on :所挂载的文件夹

说明:第三、四列的块数之和不等于第二列的总块数。这是由于缺省的每一个分区都留了少量空间供系统管理员使用,即使普通用户空间已满,管理员仍能登录和留有解决这个问题所需的工作空间。

eg:列出文件系统i节点的使用情况

$ df -ia
Filesystem Inodes IUsed IFree Iused% Mounted on
/dev/ hda2 352256 75043 277213 21% /
none 0 0 0 0% /proc
localhost:(pid221) 0 0 0 0% /net
eg:列出文件系统的类型
$ df -T
Filesystem Type 1K-blocks Used Available use% Mounted on
/dev/hda2 ext2 1361587 1246405 44824 97% /

file 命令

功能: 辨识文件类型

语法: file [-beLvz] [-f <文件名称称>] [-m <魔法数字文件>...] [文件或文件夹]

參数:

-b 列出辨识结果时。不显示文件名称称

-c 具体显示指令运行过程。便于排错或者分析程序运行的情形

-f <名称文件> 指定名称文件。其内容有一个或多个文件名称称,让file依序辨识这些文件,格式为每列一个文件名称称

-L 直接显示符号连接所运行的文件的类型

-m <魔法数字文件> 指定魔法数字文件

-v 显示版本号信息

-z 尝试去解读压缩文件的内容


fsck命令

功能:被用于检查而且试图修复文件系统中的错误。

当文件系统错误发生四化。可用fsck指令尝试加以修复。

语法:fsck [-aANPrRsTV][-t ][文件系统...]

參数:

-a 自己主动修复文件系统,不询问不论什么问题
-A 按照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。

-N 不运行指令,仅列出实际运行会进行的动作。
-P 匹配“-A”參数时使用,会同一时候检查全部的文件系统。

-r 採用互动模式,在运行修复时询问问题,让用户得以确认并决定处理方式。
-R 当搭配"-A"參数使用时,会略过/文件夹的文件系统不予检查
-s 依序运行检查作业,而非同一时候运行。
-t 指定要检查的文件系统类型
-T 运行fsck指令时,不显示标题信息
-V 显示指令运行过程

eg:检查msdos档案系统的/dev/hda5是否正常。假设有异常便自己主动修复

 fsck -t msdos -a /dev/hda5

运行fsck命令后产生的文件有什么用?

当运行fsck命令时,fsck命令假设发现存在孤立的文件或文件夹,这些孤立的文件或文件夹对于系统管理员或用户来说,无法訪问到它。由于它与它的上级文件夹失去了关联。假设用户同意fsck又一次把它们找回来的话,fsck命令就会把这些孤立的文件或文件夹放在文件系统的/lost+found文件夹下。并用各自的i-node号来命名。以便用户查找自己须要的文件。Lost+found文件夹通过它的英文含义我们都能够知道,它是一个失物认领处。因此当某个用户发现自己丢失了某个文件,能够在运行fsck之后到/lost+found文件夹下去查找,这时通过文件名称已无法辨认出文件的作用,仅仅能用file之类的命令来确定文件的类型,假设是数据文件,能够用more或vi命令来查看,假设是二进制文件。能够用dbx命令来调试或者试着运行它(注意它可能是一个具有破坏性的程序)。知道文件或文件夹的作用之后。能够对其进行改名。


fuser命令

功能:识别出正在对某个文件或port訪问的进程。

同一时候lsof也能够找出正在对指定文件訪问的进程。差别在于fuser能够一次杀死那些正在訪问指定文件的进程。

fuser命令列出了本地进程的进程号,哪些本地进程使用了file參数指定的文件或远程文件。对于堵塞特别设备,此命令列出了使用该设备上不论什么文件的进程。

列出的每一个进程号后面都尾随一个字母,该字母指示进程怎样使用文件

eg:

$ fuser -v -n tcp 80
USER PID ACCESS COMMAND
80/tcp: root 3067 F.... (root)httpd
apache 3096 F.... (apache)httpd
apache 3097 F.... (apache)httpd

>c 指示进程的工作文件夹

>e 指示该文件为进程的可运行文件(即进程由该文件拉起)

>f 指示该文件被进程打开,默认情况下f字符不显示

>F 指示该文件被进程打开进行写入,默认情况下F字符不显示

>r 指示该文件为进程的根文件夹

>m 指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存

语法:fuser[-c|-d|-f][-k][-u][-x][-V]文件

參数:

-l 列出全部已知信号名

-a 显示命令行中指定的全部文件

-k 杀死訪问指定文件的全部进程

-i 杀死进程前须要用户进行确认

-m 指定一个被载入的文件系统或一个被载入的块设备

-n 选择不同的名称空间

-u 在每一个进程后显示所属的username

-V运行时显示具体处理信息

-c 显示包括file的文件系统中关于不论什么打开的文件

-d 暗示使用了-c和-x标志,显示不论什么与文件系统(自父文件夹删除的)无链接的打开的文件,当与-v一起使用时,也会报告被删除文件的节点号和大小。

-x 与-c和-f连用,显示除标准fuser输出以外的可运行的和可载入的对象

-f 仅显示对文件的打开实例

eg:

挂载usb设备并显示所属的用户

$ fuser -m -u /mnt/usb1
/mnt/usb1: 1347c(root) 1348c(guido) 1349c(guido)

列出全部已知信号

$ fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

杀死全部和root文件夹相关的进程

$ fuser -k /root
/root: 4552c 4630c 4661c 4664c 4666c 4669c 4671c 4732c 4733c 4735c 4736c 4740c 4741c 4743c 4744c 4750c 4751c 4767c 11065c 30632c 31755c