Linux的文件种类与扩展名

一、文件种类:
1.普通文件(regular file)第一个字符为[ - ]
包括:
①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档。是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。
②二进制文件(binary): 你的Linux中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的。
③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data file)。一般用cat看到的都是乱码。

2.目录(directory): 第一个字符为[ d ]

3.连接文件(link)第一个字符为[ l ]

4.设备和设备文件
  快设备文件,即一些存储文件,如硬盘、软盘等,第一个字符为[ b ]
  字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等,第一个字符为[ c ]

5.套接字(sockets)第一个字符为[ s ]
   还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过数据接口文件来进行数据通信。

6.管道(FIFO,pipe)第一个字符为[ p ]
  FIFO也是一种特殊的文件类型,他主要的目的解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out。
注意:设备文件最好不要随便修改,链接文件说白了就是win下的快捷方式。

二、linux的文件扩展名
     一般来说,Linux中的文件是不需要扩展名的,这点与windows的区别很大,我们知道在windows中可执行文件扩展名结尾通常是.exe,.com,.bat,而在Linux中文件可否执行就是看权限位的x位是否有x,图片文件扩展名结尾通常是.jpg,.gif,.bmp,.png等。

Linux下扩展名的作用:
1 tar,.tar.gz,.tgz,.zip,.tar.bz表示压缩文件,创建命令一般为tar,gzip,unzip等。
2 sh表示shell脚本文件,通过shell语言开发的程序。
3 pl表示perl语言文件,通过perl语言开发的程序。
4 py表示python语言文件,通过python语言开发的程序。
5 html,htm,php,jsp,do表示网页语言的文件。
6 .conf表示系统的配置文件。
7 .rpm表示rpm安装包文件。

三、linux的文件名限制
在 Linux底下,使用默认的 Ext2/Ext3 文件系统时,针对文件名长度限制为:
  单一文件或者目录的最大容量文件名为 255 个字符;
  包括完整路径名称及目彔 (/)的完整文件名为 4096 个字符。
此外尽量避免用特殊字符,因为他们在命令行模式下有特殊的含义。

 文件权限:

链接:

硬链接的创建:

软链接: 

 

创建软链接:

硬链接和软链接:

演示硬链接和软链接的关系:

总结:

 一个文件,文件/.,文件/..  都是硬链接:

 第三关的第二题:(企业测试题)

解答:

2个,一个/oldboy/ett,一个是/oldboy/ett.

3个,一个/oldboy/ett,一个是/oldboy/ett.,一个是/oldboy/ett..

如下演示:

第二关第四题:(企业测试题):

11、企业场景面试题:
描述Linux下软链接和硬链接的区别:

答题思路2:

也可以直接画图:

 

问题:Linux文件删除原理:

 ***企业级案例:Web服务器磁盘满了故障深入解析:

问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小,即找不到硬盘分区是怎么被写满的。

工作人员说生产线服务器硬盘满了,该删的日志都删掉了,可空间还是满的,问题出在哪?如何解决?

 解答:

其实这个原理就是文件和文件链接删了,但是服务进程没有删除,需要重启服务就好了。

 案此题例演示:

其实这个原理就是文件和文件链接删了,但是服务进程没有删除,需要重启服务。

查看被删除的但仍有进程占用的文件名:lsof命令:

重启服务:

 磁盘满的另外的故障:

上面的情况是:block满了但是inode没满。

还有一种情况是:inode满了,但是block没满。

**要想删除程序正在执行的文件不要删文件,而是清空文件!!!

文件属性之用户和组:

  

Linux下软硬链接文件原理图及文件删除原理

软硬链接文件原理

硬链接,通过索引节点来进行链接

硬链接原理图

硬链接的创建:

   直接执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接。

硬链接知识小结:
1、具有相同Inode节点号的多个文件是互为硬链接文件。
2、删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。
3、只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。
4、当所有硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。
5、硬链接文件就是文件的另一个入口。
6、可以通过给文件设置硬链接文件,来防止重要文件被误删。
7、硬链接文件可以用rm命令删除。
8、对于静态文件(没有进程正在调用的文件)来说,当对应硬链接数位0(i_link),文件就被删除。i_link的查看方法(ls -l结构的第三列就是)

软链接原理图:

软链接或叫符号链接,相当于windows的快捷方式
软链接的创建:

   直接执行命令“ln -s 源文件 硬链接文件”,即可完成创建软链接。

软链接知识小结:
1、 软链接类似windows的快捷方式(可以通过readlink查看其指向)。
2、 软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。
3、 删除源文件,软链接文件依然存放,但是无法访问指向的源文件路径内容了。
4、 失效的时候一般是红字白底闪烁提示。
5、 软链接和源文件是不同类型的文件,也是不同的文件。inode号也不相同。
6、 删除软链接文件可以用rm命令。

目录链接:

① 对于目录,不可以创建硬链接,但可以创建软链接
② 目录的硬链接不能跨越文件系统
③ 每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”。
④ 在父目录里面创建一个子目录,父目录的链接数增加1(子目录里都有..来指向父目录)。但是在父目录里创建文件,父目录的链接数不会增加。

删除文件原理:

Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_link。

i_count的意义是当前文件使用者(或被调用)的数量,i_nlink 的意义是介质连接的数量(硬链接的数量);可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。

企业故障案例:Web服务器磁盘满深入解析及解决 推荐

原创 老男孩oldboy 2011-07-15 18:53:56 评论(22) 17454人阅读

#########################################################
# 硬盘显示被写满但是用du -sh /*查看时占用硬盘空间之和还远
#小于硬盘大小问的解决
#date:2010-06-09
#作者:老男孩---《老男孩linux就业培训中心 》
#QQ:31333741
#QQ交流群:385168604  
#blog: http://oldboy.blog.51cto.com
##########################################################

问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小
即找不到硬盘分区是怎么被写满的。

今天下午接到一学生紧急求助,说生产线服务器硬盘满了。该删的日志都删掉了。可空间还是满的,情况危急啊。这个问题,在多年以前直接和间接的遇到过3-4次。以前太懒惰了,这次记录下来和大家分享。

相关日志如下:

█ 查看硬盘分区大小
[root@www ~]# cat /etc/redhat-release
CentOS release 5.3 (Final)
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  111G     0 100% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm
这是一台web服务器(apache+tomcat+mysql)
通过dh -h命令查看 总大小117G,使用了111G
[root@www /]# fdisk -l

Disk /dev/sda: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        2108    16779892+  82  Linux swap / Solaris
/dev/sda3            2109       17849   126439582+  83  Linux
[root@www /]# fdisk -l /dev/sda3

Disk /dev/sda3: 129.4 GB, 129474132480 bytes
255 heads, 63 sectors/track, 15741 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda3 doesn't contain a valid partition table
==========================================================================================
█ 使用du命令查看到底哪些目录占用了空间
[root@www /]# du -sh /*
8.6M    /bin
6.1M    /boot
2.8G    /data ===》这里是DB目录
124K    /dev
60M     /etc
1.6G    /home ===》这里是日志目录
120M    /lib
24M     /lib64
16K     /lost+found
8.0K    /media
0       /misc
12K     /mnt
0       /net
8.0K    /opt
0       /proc
614M    /root
35M     /sbin
8.0K    /selinux
24K     /server
8.0K    /srv
0       /sys
24K     /tmp
2.5G    /usr
29G     /var  ==》这里是www目录

可以看出,上面所有目录之和 远小于总的空间占用111G,是什么占用了硬盘,还查不到呢?
---------------
解答:
出现上面问题原因:
在apache/tomcat服务在运行状态下,清空了运行服务的日志,这里是清理了当天或正在写入的apache及tomcat的日志文件,从而导致了上面问题。(有关原理细节见下文)

引申下:
一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。这点请大家要记牢。

本文的解决办法:
查找机器自身的服务,然后重起apache和tomcat。
重起apache后:
[root@www 07]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  109G  2.3G  98% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm

重起tomcat后:
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G   38G   74G  34% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm

删除文件原理图:

1
老男孩运维班28期上述案例实战模拟:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(1)安装httpd web服务
  yum install httpd -y
  /etc/init.d/httpd start
  lsof -i :80
  /etc/init.d/iptables stop
  cd/etc/httpd/conf 编辑配置文件,让日志记录到/app/logs下面。
sed -i's@#CustomLog logs/access_log common@CustomLog /app/logs/access_logcommon@g' httpd.conf 
 (2)创建一个小的文件系统,用于存放上述access_log日志。
  dd if=/dev/zero of=/dev/sdc bs=8K  count=10
  ls -l /dev/sdc
  mkfs -t ext4 /dev/sdc
  tune2fs -c -1 /dev/sdc
  mount -o loop /dev/sdc /app/logs
  echo oldboy >/var/www/html/index.html
 (3)重启httpd服务,确保日志记录到了上述文件系统挂载的/app/log下面
  /etc/init.d/httpd restart
 (4)写个循环脚本访问httpd,使得httpd日志充满/app/logs整个空间。
 for in `seq 100000`;do curl -s 127.0.0.1>/dev/null;done
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   73K    0 100% /app/log
     (5)错误的删除方案
[root@oldboylogs]# rm -f /app/logs/access_log
[root@oldboylogs]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3       8.8G 1.6G  6.9G  19% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M  36M  145M  20% /boot
/dev/sdc         73K  68K  1.0K  99% /app/logs
提示:此时空间并未被释放,你可知道原因?
    查看被删除的但仍由进程占用的文件名。
[root@oldboylogs]# lsof|grep del
httpd      6148     root    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38178   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38483   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38484   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38752   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
 (5)解决问题
1、请先停掉模拟访问测试脚本
forn in `seq 100000`;do curl -s 127.0.0.1 >/dev/null;done
2、重启Http服务
[root@C64log]# /etc/init.d/httpd restart
Stoppinghttpd:                                           [  OK  ]
Startinghttpd:                                          [ OK  ]
 (6)查看处理结果
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   14K  55K  21%/app/logs
(7)较好的处理方案
清空日志而不删除日志。
>/app/logs/access_log

转载于:https://www.cnblogs.com/sinsenliu/p/9019059.html

NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理相关推荐

  1. Linux的文件权限理解及文件种类与扩展名

    前言 Linux的环境为一个多人多任务环境,因此出于各个用户之间的保密性原因,它的文件管理权限就显得十分重要. Linux一般将文件可读写身份分为三种类别,分别为: 拥有者(owner) 所属群组(g ...

  2. linux如何用终端删除文件夹,linux删除文件夹命令

    在Linux系统中没有回收站,因此我们要删除文件夹的时候需要注意,下面由学习啦小编为大家整理了linux删除文件夹命令,希望对大家有帮助! linux删除文件夹命令详解 一.rm命令使用权限 所有用户 ...

  3. linux ls 中文乱码_每天一个linux命令:Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  4. 每天一个linux命令(目录文件操作):【转载】Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  5. Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  6. 计算机如何把文件设为隐藏,已知文件类型的扩展名如何设置显示与隐藏?

    当你想把文件扩展名隐藏或是显示的时候,有木有突然感觉有那么一瞬间皱着眉头过呢?当你想要设置显示与隐藏扩展名的时候却莫名其妙的发现"隐藏已知文件类型的扩展名"这一项选不见了,心理莫名 ...

  7. windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)

    摘要: 1.文件后缀名不可见,系统运维过程容易发生同名不同后缀的文件操作混淆的情况 2.windows系统默认是文件后缀名不可见 3.所以需要更改一下配置. 4.操作步骤如下图: (1)点击组织-文件 ...

  8. 在VSCode中自定义文件类型和扩展名关联

    目录 标题 概述 实现步骤 总结 标题 在 VSCode 中自定义文件类型和扩展名关联 Customize file type and extension associations in VSCode ...

  9. 扩展名不见了?怎么批量给文件添加扩展名?

    概要:有时候由于我们的误操作,会导致我们本地文件的扩展名丢失,或者网上下载下来的文件本来就没有扩展名.这样会导致我们在打开文件的时候,系统不知道该用什么软件去打开这些文件.那我们怎么给这些扩展名不见的 ...

最新文章

  1. 深度学习在不同领域的应用,我去,这也行!?
  2. 主角有智能芯片的种田小说_推荐3本克苏鲁类小说,压抑邪恶与搞笑逗乐并存,看看是你的菜吗...
  3. 思源黑体ttf_模块模板 | 简单方法替换将TTF格式字体转换为Magisk模块
  4. oracle日常维护(不断更新)
  5. db h2 数据类型_H2数据库函数及数据类型概述
  6. 转ubuntu下中文乱码解决方案(全)
  7. 揭秘情场高手的三大套路
  8. 学习指南!美国java程序员要求
  9. ECSHOP 如何删除商品列表页 购买弹出 商品属性框后面的价格
  10. 1057 字符转数字,判断
  11. [Architecture Pattern] Entity Expansion
  12. Android开发框架整理
  13. 修改Wordpress插件---advanced-access-manager.1.7.3---
  14. 如何用电脑制作VR全景图
  15. ffmpeg实现视频切割合并
  16. 产品经理和项目经理的职责分工
  17. 推荐1位AI产品经理求职信息(企业方可要简历),新增3个JD(共计59个、AI PM可内推)...
  18. python关于excel插入图片
  19. 移动网页布局基础:京东网页
  20. 驾考一点通维语版_驾考宝典维语版

热门文章

  1. 时间复杂度与空间复杂度完全解析
  2. excel怎么批量插行_Excel怎么批量插入空行?就这么简单!多种方法教给你
  3. 推荐6个高颜值 Linux 桌面主题
  4. CCF CSP 201909-4 推荐系统
  5. 工程伦理案例分析-波音737MAX空难
  6. 论文学习:Good practice for conducting and reporting MEG research
  7. 5名员工微信群调侃领导被开除,法院这样判!
  8. PS中影子、雨景、雪景、定义画笔预设制作流程
  9. QQ机器人开放式服务框架 Version 0.1 Draft - 测试用QQ机器人介绍
  10. 如何设置 Excel 的行标题