Linux终端生存指南 文件类型(linux终端生存指南 文件类型是什么)
nanshan 2024-11-07 11:25 19 浏览 0 评论
这是一系列基础命令的集合,我会从使用角度介绍,看完这些以后你能够在Linux终端下完成大部分之前需要鼠标和键盘才能完成的操作。
今天是第二篇,Linux下的几种特殊文件类型介绍。
- 普通文件和目录
- 链接文件
- 管道文件
- 套接字文件
- 设备文件
查看文件类型
Windows中我们经常通过后缀名来区分文件类型,比如我们常见的.exe、.doc、.ppt等。
但是Linux中一般不通过后缀名来判断文件类型,因为Linux除了一些特定软件通过后缀名来区分自己的软件支持的文件类型,Linux中的文件一般都不带后缀名。
Linux查看文件类型是通过命令 ls -l 实现:
ubuntu@ubuntu-virtual-machine:~$ ls -l
总用量 64
drwxrwxr-x 2 ubuntu ubuntu 4096 4月 12 22:55 1
-rw-rw-r-- 1 ubuntu ubuntu 11 4月 15 21:16 2.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 4月 12 22:55 3
-rw-rw-r-- 1 ubuntu ubuntu 4 4月 12 22:57 4.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 4月 12 23:00 5.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 4月 12 23:01 7.txt
drwxr-xr-x 2 ubuntu ubuntu 4096 4月 10 22:58 桌面
drwxrwxr-x 3 ubuntu ubuntu 4096 4月 9 19:10 develop
drwxrwxr-x 2 ubuntu ubuntu 4096 4月 12 23:26 mydir
drwxrwxr-x 2 ubuntu ubuntu 4096 4月 12 23:32 mydir2
drwxrwxr-x 2 ubuntu ubuntu 4096 4月 12 23:32 mydir4
drwx------ 5 ubuntu ubuntu 4096 4月 12 22:22 snap
-rw-rw-r-- 1 ubuntu ubuntu 0 4月 12 22:51 t.txt
根据文件显示信息的第一个字符可以判断文件类型:
第一个字符 | 文件类型 |
- | 普通文件 |
d | 目录 |
b | 块设备文件 |
c | 字符设备文件 |
s | 套接字文件 |
p | 管道文件 |
l | 链接文件 |
还有一个命令也可以查看文件类型:file命令,直接执行file 文件路径:
ubuntu@ubuntu-virtual-machine:~$ file ./2.txt
./2.txt: ASCII text
每一种文件类型都有自己的使用场景,我在此简单说明类型和主要功能,后面我会对每种文件的实现和使用专门整理。
普通文件和目录
这两个文件类型在上一篇文章介绍得非常详细,这里不在说明。
链接文件
链接文件请现在就了解并能够使用,一种软链接,一种硬链接。
链接文件都可以直接读取和修改源文件的内容。
硬链接有很多局限性,所以日常工作中用得最多的应该是软链接。
通过ln命令创建链接文件,命令格式:
ln [选项] 源文件 目标文件
选项:
- s:soft ,即制定创建的链接文件类型是软链接文件;如果不加 "-s" 选项,就是硬链接文件;
- f:force,强制选项。如果被创建的链接文件存在同名文件,则删除目标文件后再建立链接文件;
软链接
这是最常用的链接文件,我们前面说了Linux下一切皆文件。
而软链接类似于 Windows 系统中给文件创建快捷方式,它的文件内容中保存了源文件(或目录)的绝对路径。
注意:一定是绝对路径,否则会出现链接的源文件找不到的情况。
使操作者可以通过另一个文件符号访问另一个文件。
创建软链接的例子:
ubuntu@ubuntu-virtual-machine:~$ ln -s 2.txt 2.txt.s
ubuntu@ubuntu-virtual-machine:~$ ls -l
总用量 64
-rw-rw-r-- 1 ubuntu ubuntu 11 4月 15 21:16 2.txt
lrwxrwxrwx 1 ubuntu ubuntu 5 4月 15 21:33 2.txt.s -> 2.txt
软链接显示的文件信息是链接文件,并且显示了文件的源文件名和链接文件名。
硬链接
硬链接这里就介绍一下他与软链接的主要使用区别:
- 不能跨文件系统
- 不能链接目录
这两个明显的缺点使平时使用比较少。
创建硬链接的例子:
ubuntu@ubuntu-virtual-machine:~$ ln 2.txt 2.txt.h
ubuntu@ubuntu-virtual-machine:~$ ls -l
总用量 68
-rw-rw-r-- 2 ubuntu ubuntu 11 4月 15 21:16 2.txt
-rw-rw-r-- 2 ubuntu ubuntu 11 4月 15 21:16 2.txt.h
硬链接文件信息的显示和源文件一模一样,连文件类型都是一模一样的。
注意
删除了源文件,软链接就没有操作主题了,当你去操作软链接的时候会报错找不到对应的文件。
而硬链接不受到影响,即使已经没有了源文件,仍然可以操作,其内容与删除源文件之前的内容一致。
ubuntu@ubuntu-virtual-machine:~$ rm 2.txt
ubuntu@ubuntu-virtual-machine:~$ cat 2.txt.s
cat: 2.txt.s: 没有那个文件或目录
ubuntu@ubuntu-virtual-machine:~$ cat 2.txt.h
1234
4567
1111
管道文件
管道是一种进程间通信的方式,而且管道也有两种类型,有名管道和无名管道。
管道顾名思义,就像一根实际的管道那样为进程间建立一个通讯的通道,相互收发数据。
有名管道和无名管道的区别主要是:有名管道可以在任意两个进程之间通讯,而无名管道只能在父子进程之间通讯。
我想你可能目前还对进程的概念不太清楚,你可以先忽略管道类型差异,这样简单理解:管道可以是在两个程序之间建立一个通道,相互读写数据。而对于两种管道类型目前这个阶段记住两个关键字:有名管道fifo,无名管道pipe。
套接字文件
网络通信的文件符号,网络编程以此为锚点进行读写操作。
这个与管道一样也是一种进程间通信方式,目前阶段请了解这是用于网络通信,记住关键词:socket即可。
设备文件
设备文件一般在/dev/目录下。我们在这个目录下可以看到很多设备文件:
ubuntu@ubuntu-virtual-machine:~$ ls /dev/
autofs dm-0 hugepages loop4 nvram sg0 tty12 tty25 tty38 tty50 tty63 ttyS17 ttyS3 vcs vcsu vsock
block dm-1 hwrng loop5 port sg1 tty13 tty26 tty39 tty51 tty7 ttyS18 ttyS30 vcs1 vcsu1 zero
bsg dma_heap initctl loop6 ppp shm tty14 tty27 tty4 tty52 tty8 ttyS19 ttyS31 vcs2 vcsu2 zfs
btrfs-control dmmidi input loop7 psaux snapshot tty15 tty28 tty40 tty53 tty9 ttyS2 ttyS4 vcs3 vcsu3
bus dri kmsg loop8 ptmx snd tty16 tty29 tty41 tty54 ttyprintk ttyS20 ttyS5 vcs4 vcsu4
cdrom dvd lightnvm loop9 pts sr0 tty17 tty3 tty42 tty55 ttyS0 ttyS21 ttyS6 vcs5 vcsu5
cdrw ecryptfs log loop-control random stderr tty18 tty30 tty43 tty56 ttyS1 ttyS22 ttyS7 vcs6 vcsu6
char fb0 loop0 mapper rfkill stdin tty19 tty31 tty44 tty57 ttyS10 ttyS23 ttyS8 vcsa vfio
console fd loop1 mcelog rtc stdout tty2 tty32 tty45 tty58 ttyS11 ttyS24 ttyS9 vcsa1 vga_arbiter
core fd0 loop10 mem rtc0 tty tty20 tty33 tty46 tty59 ttyS12 ttyS25 udmabuf vcsa2 vgubuntu
cpu full loop11 midi sda tty0 tty21 tty34 tty47 tty6 ttyS13 ttyS26 uhid vcsa3 vhci
cpu_dma_latency fuse loop12 mqueue sda1 tty1 tty22 tty35 tty48 tty60 ttyS14 ttyS27 uinput vcsa4 vhost-net
cuse hidraw0 loop2 net sda2 tty10 tty23 tty36 tty49 tty61 ttyS15 ttyS28 urandom vcsa5 vhost-vsock
disk hpet loop3 null sda5 tty11 tty24 tty37 tty5 tty62 ttyS16 ttyS29 userio vcsa6 vmci
常见设备文件命名规则作如下:
- /dev/hd[a-t]:IDE设备
- /dev/sd[a-z]:SCSI设备
- /dev/fd[0-7]:软驱
- /dev/md[0-31]:软raid设备
- /dev/loop[0-7]:回环设备
- /dev/ram[0-15]:内存
- /dev/null:黑洞,丢进去的东西就再也找不到了
- /dev/ttyS[0-3]:串口
- /dev/tty[0-63]:虚拟终端
- /dev/lp[0-3]:并口
- /dev/console:控制台
- /dev/fb[0-31]:framebuffer
块设备
用程序可以随机访问设备数据,程序可自行确定读取数据的位置。
硬盘、软盘和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置进行数据读写。
sda1块设备属于块设备:
ubuntu@ubuntu-virtual-machine:~$ ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 4月 11 22:07 /dev/sda1
字符设备
提供连续的数据流,可以顺序读取,但通常不支持随机存取。
键盘和串口是常见的字符设备,只能顺序的读写数据。
tty串口设备属于字符设备:
ubuntu@ubuntu-virtual-machine:~$ ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0 4月 12 22:21 /dev/tty
相关推荐
- Let’s Encrypt免费搭建HTTPS网站
-
HTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入...
- 使用Nginx配置TCP负载均衡(nginx tcp负载)
-
假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。以下是实验种设置的详细信息:Nginx(CenOS8Minimal)-192.168.1.50Kube...
- Nginx负载均衡及支持HTTPS与申请免费SSL证书
-
背景有两台minio文件服务器已做好集群配置,一台是192.168.56.41:9000;另一台是192.168.56.42:9000。应用程序通过Nginx负载均衡调用这两台minio服务,减轻单点...
- HTTPS配置实战(https配置文件)
-
原因现在网站使用HTTPS是规范操作之一,前些日子买了腾讯云服务,同时申请了域名http://www.asap2me.top/,目前该域名只支持HTTP,想升级为HTTPS。关于HTTPS的链接过程大...
- 只有IP地址没有域名实现HTTPS访问方法
-
一般来说,要实现HTTPS,得有个注册好的域名才行。但有时候呢,咱只有服务器的IP地址,没注册域名,这种特殊情况下,也能照样实现HTTPS安全访问,按下面这些步骤来就行:第一步,先确认公网...
- 超详解:HTTPS及配置Django+HTTPS开发环境
-
众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种。在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数...
- Godaddy购买SSL之后Nginx配置流程以及各种错误的解决
-
完整流程:参考地址:https://sg.godaddy.com/zh/help/nginx-generate-csrs-certificate-signing-requests-3601生成NGI...
- Nginx从安装到高可用,一篇搞定(nginx安装与配置详解)
-
一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgc...
- 阿里云免费证书申请,配置安装,使用tomcat,支持http/https访问
-
参数说明商品类型默认已选择云盾证书服务(无需修改)。云盾证书服务类型SSL证书服务的类型。默认已选择云盾SSL证书(无需修改),表示付费版SSL证书。如果您需要免费领取或付费扩容DV单域名证书【免费试...
- 你试过两步实现Nginx的规范配置吗?极速生成Nginx配置小工具
-
NGINX是一款轻量级的Web服务器,最强大的功能之一是能够有效地提供HTML和媒体文件等静态内容。NGINX使用异步事件驱动模型,在负载下提供可预测的性能。是当下最受欢迎的高性能的Web...
- 从零开始搭建HTTPS服务(搭建https网站)
-
搭建HTTPS服务的最初目的是为了开发微信小程序,因为wx.request只允许发起HTTPS请求,并且还必须和指定的域名进行网络通信。要从零开始搭建一个HTTPS的服务需要下面4...
- 群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问
-
安全第一步,群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问【新手导向】NAS本质还是一个可以随时随地访问的个人数据存储中心,我们在外网访问的时候,特别是在公网IP下,其实会面临着很多安...
- 让网站快速升级HTTPS协议提高安全性
-
为什么用HTTPS网络安全越来越受到重视,很多互联网服务网站,都已经升级改造为https协议。https协议下数据包是ssl/tcl加密的,而http包是明文传输。如果请求一旦被拦截,数据就会泄露产生...
- 用Https方式访问Harbor-1.9版本(https访问流程)
-
我上周在头条号写过一篇原创文章《Docker-Harbor&Docker-kitematic史上最详细双系统配置手册》,这篇算是它的姊妹篇吧。这篇文章也将用到我在头条写的另一篇原创文章的...
- 如何启用 HTTPS 并配置免费的 SSL 证书
-
在Linux服务器上启用HTTPS并配置免费的SSL证书(以Let'sEncrypt为例)可以通过以下步骤完成:---###**一、准备工作**1.**确保域名已解析**...
你 发表评论:
欢迎- 一周热门
-
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)