当前位置: 首页 > news >正文

Linux 必会基础语句 软硬连接区别 Linux文件类型

文件类型及对应看操作语句

普通文件(文件图片) REG

touch 文件名 #创建文件

stat  文件   #查看文件详细信息 包括文件大小、块儿 indoe

inode是用来存储这些数据的属性的,包含的属性信息有文件大小、属主、归属的用户组、读写权限、问价类型、修改时间,还有指向文件实体指针的功能(inode节点----block的对应关系),但是唯独不包含文件名

block是用来存储实际数据用的,例如:照片、视频等普通文件数据;

访问一个文件,通过文件名找到inode---->block

目录(dir)

cd ~/ 直接到root目录

pwd 查看目录路径

mkdir 创建目录 

连接(link)

主要分软连接和硬链接;

不管是通过编辑原文件还是通过其软链接去编辑文件,该原文件下的其他软链接打开的文件都随之改变;

ln 参数 原文件  目标文件  #参数部分不添加就是硬链接,添加就是软连接

通常语句如下,还有其他参数应用比较少

ln 源文件 目标文件 #硬链接

ln -s 源文件 目标文件 #软连接

 主要区别:

软连接:

  1. 删除原文件,其对应的软链接都不能使用,为无效链接。
  2. 删除其中任一的软链接文件,原文件以及该原文件下的其他软链接文件依然可用
  3. 软链接不保存实际的数据,只保存原始文件的路径。
  4. 软链接与源文件inode号不同,是不同的文件,是源文件的快捷方式

硬连接:

  1. 删除其中任一的文件,都会不影响到其他文件;
  2. 目录禁止创建硬链接
  3. 源文件和硬链接有相同inode号,理解为同一个文件或是一个文件多个入口

目录创建后,默认有.和..两个目录:

  • .的inode号就是当前目录的inode号,如同硬链接
  • ..的inode号是上级目录的inode号,如同父目录的硬链接
  • 因此任意一个目录,硬链接基数都是2(目录名+当前目录名)

 

块设备(block)

 /dev为设备目录,

linux中块设备是指以数据块形式被访问的设备,可以像文件一样被访问,其数据读写只能以块的倍数进行,块设备中应用程序可以随机访问设备数据,且程序可自行确定读取数据的位置,但不支持根据字符寻址,常见的块设备有硬盘、软盘、CD-ROM驱动器和闪存等。

字符设备 CHR

字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少要实现open、close、read和write的系统调用。

字符终端(/dev/console)和串口(/dev/ttyS0以及类似设备)就是两个字符设备,它们能很好的说明“流”这种抽象概念。

字符设备可以通过文件节点来访问,比如/dev/tty1和/dev/lp0等。这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道。然而,也存在具有数据区特性的字符设备,访问它们时可前后移动访问位置。例如framebuffer就是这样的一个设备,app可以用mmap或lseek访问抓取的整个图像。

ll查看

字符设备文件(类型为c),设备文件是没有文件大小的,取而代之的是两个号码:主设备号5 +次设备号1 ;块设备文件(类型为b)

socket

socket在Linux中对应的文件系统叫Sockfs,每创建一个socket,就在sockfs中创建了一个特殊的文件,同时创建了sockfs文件系统中的inode,该inode唯一标识当前socket的通信。

pipeline(管道)

在Linux系统中,目录也是一种特殊的文件,它们用来包含文件,文件一定在某个目录下。,管道有父子进程关系; 通常称为FIFO。

管道  | 管道可以 输入、衔接、输出 pipeline;

 

基本语句

Linux  0代表标准输入、1代表标准输出、2代表报错输出

$$ 当前bash的pid  当前交互进程的pid号 ($BASHPID)

lsof -op $$ 当前文件描述符的所有细节

 <> 重定向操作符

 

相关文章:

  • 【PAT甲级】1141 PAT Ranking of Institutions
  • JAVA基础(三十二)——反射之创建对象
  • java优秀毕业生推荐系统ssm
  • Group DETR
  • 设计模式 工厂方法模式
  • 自动控制原理7.3---z变换理论
  • 基于ISO14229协议的安全访问系列_1
  • 自动控制原理7.4---离散系统的数学模型
  • 【ELFK】之zookeeper
  • ALTERA FPGA IPCORE核之FIFO详细教程
  • 【ELK】日志分析系统概述及部署
  • MyBatis一对多查询,MyBatis中resultMap的使用,MyBatis中collection注意事项,MyBatis的级联搜索
  • STC15单片机-RS-485通信
  • 【JAVA-1】JDK、JRE安装及卸载,有手就会!
  • Python 操作MySql数据库(封装、优雅)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 345-反转字符串中的元音字母
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • angular学习第一篇-----环境搭建
  • eclipse(luna)创建web工程
  • Java读取Properties文件的六种方法
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Leetcode 27 Remove Element
  • PAT A1120
  • storm drpc实例
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 漂亮刷新控件-iOS
  • 山寨一个 Promise
  • 云大使推广中的常见热门问题
  • ​如何防止网络攻击?
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)Windows2003安全设置/维护
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .Mobi域名介绍
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net core控制台应用程序初识
  • .Net IE10 _doPostBack 未定义
  • .Net 代码性能 - (1)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net分布式压力测试工具(Beetle.DT)
  • .NET命令行(CLI)常用命令
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @JsonFormat与@DateTimeFormat注解的使用
  • @property python知乎_Python3基础之:property
  • @RequestBody与@ModelAttribute
  • @RequestMapping 的作用是什么?
  • @vue/cli脚手架
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [1181]linux两台服务器之间传输文件和文件夹
  • [20171106]配置客户端连接注意.txt