Linux链接文件包括,Linux操作系统——系统各目录有什么作用、以及文件链接过程...

三、 Linux 系统目录结构

187467767_1_20200407093629807

/bin — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。

/sbin — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。

/root — 根用户(超级用户)的主目录。

/mnt — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/.

/boot — 包括内核和其它系统启动期间使用的文件。

/lost+found — 被 fsck 用来放置零散文件(没有名称的文件)。

/lib — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。

目录 /usr/lib/ 中含有更多用于用户程序的库文件。

/dev — 贮存设备文件(注意,设备文件不是驱动程序。过去,在添加新磁盘或设备后,往往需要手动增加设备文件。现在通常我们不需要手动增加设备文件,运行一下service kudzu start ,系统就会自动配置相应的设备)。

/etc — 包含许多系统配置文件和目录。

/var — 用于贮存 variable(或不断改变的)文件,例如日志文件和打印机假脱机文件。

/usr — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。

/proc — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。

/etc/rc.d — 启动的配置文件和脚本。

/tmp/ — 用户和程序的临时目录。所有系统用户均可读写。

/home — 用户主目录的默认位置。

/opt — 可选的(optional),可用来存放准备安装的文件。

四、 文件的连接

187467767_2_20200407093629885

Linux 采用索引节点 inode 记录文件信息,每个文件或目录都唯一地对应 inode 数组中的一个元素。但一个元素可以与多个文件或目录名对应。文件名与索引节点号的对应称之为连接。

ln 命令用来对一个已经存在的文件建立连接。

例:cd /root

cp /etc/passwd .

ln /root/passwd /root/passwd.2

执行命令 ls –l 可在第二列看到连接数变为 2。

执行命令 ls –i 可以看到 passwd 和 passwd.2 具有相同的 inode。

这种通过相同 inode 共享同一个物理文件的方法称之为硬连接。

优点:可在不同目录通过不同路径访问同一个文件,节省磁盘空间又便于数据一致性;有一定防止误删除功能,只有同一个 inode 属于唯一一个连接时,数据才被物理删除。

缺点:不能连接目录,不能跨越不同文件系统(如分区、驱动器)。

加参数-s 执行 ln 命令可建立软连接,也称符号连接,如:

ln –s passwd passwd.2

执行 ls –l ,可看出 passwd.2 是 passwd 的符号连接。

passwd.2 和 passwd 是两个不同的文件,前者的文件数据是指向后者的路径。即便在源文件不存在的情况下也可建立符号连接。

五、 mv 命令

Linux 中没必要配备专门的文件更名命令,使用移动命令 mv 即

可完成文件的更名操作。mv 实际上是在创建一个新的硬连接后

删除旧的硬连接,以此实现文件的搬移或更名。如

mv passwd.2 passwd.b

执行 ls –i 命令可发现文件名变了但 inode 没变。

六、 获得帮助

①使用 man topic 命令查阅手册页,如欲了解 ls 命令,可:

man ls

man 命令只显示查找到的第一项。若同一主题的内容可在多个

部分找到(如 kill 既是 shell 命令又是系统调用),则需:

man –t 2 kill

⑵使用参数 - -help 可显示命令的帮助信息,如:

ls - -help 第四章 磁盘设备

一、 关于挂装的基本常识

·与 DOS/Windows 采用驱动器标识符(A:、B:、C:)使用磁盘设备的方法不同。Linux 采用单根目录树管理全部文件系统。磁盘设备必须挂载到系统目录树上才能使用。

(Linux 启动过程已完成对/、/ boot 和/swap 三个分区的挂装)

·所谓挂装,就是将该设备的文件系统作为一个分枝嫁接到主文件系统的过程。嫁接的位置称为挂装点。

·挂装点必须是个已经存在的目录。该目录可以不空,但用作挂装点后原内容将不可见,直到卸载为止。

·Linux 为用户的后续挂装专门提供了/mnt 目录,/mnt 下的目录用作挂装点。若无特别原因,应尽量遵循这一约定。

·只有 root 有权执行挂装与卸载操作。

·修改/etc/fstab 文件可实现启动时的自动挂装。

·gnome 和 KDE 环境支持光盘和软盘插入后的自动挂装。但在字符界面以及更多场合下,仍需用户手工挂装。

·挂装命令 mount,常用的语法格式是:

mount [-t 文件系统类型] [被挂装的设备文件] [挂装点]

常用的文件系统类型:

ext2 : Linux 的 ext2 文件系统

msdos : MS-DOS 的 FAT

vfat : Win95/98 的 VFAT

nfs : 网络文件系统

iso9660 : CD-ROM 光盘的标准文件系统

ntfs : WindowsNT 文件系统

auto : 自动检测文件系统的类型·卸载命令 umount,常用的语法格式是:

umount 挂装点或被挂装的设备文件

(如卸载光驱既可以 umount /mnt/cdrom 也可以 umount /dev/cdrom)

二、 应用实例:

①使用 CD-ROM:挂装:mount /dev/cdrom /mnt/cdrom卸载:umount /mnt/cdrom (挂装时也可使用-t iso9660 或-t auto 参数)②使用软盘:挂装:mount -t auto /dev/fd0 /mnt/floppy或 mount /dev/fd0 /mnt/floppy或 mount /mnt/floppy卸载:umount /mnt/floppy③使用 USB 盘:挂装:mount -t vfat /dev/sda1 /mnt/usb卸载:umount /mnt/usb说明:⑴Linux 将 USB 盘作为 SCSI 盘处理;⑵挂装前先要在/mnt 下创建一个 usb 目录;⑶必要是可先 fdisk –l /dev/sd? 查看 U 盘的设备名。④访问硬盘上的 DOS/Windows 分区先执行: fdisk –l /dev/hd?了解 DOS/Windows 主分区和逻辑分区所在的位置,如果Windows 有主分区 C 和逻辑分区 D 两个分区,一般是在hda1 和 hda5。以访问逻辑分区 D 为例:,挂装:mount -t auto /dev/hda5 /mnt/d卸载:umount /mnt/d当然/mnt/d 目录要事先存在。如下命令可避免 dos 盘上的汉字文件名出现乱码: mount -t auto –o iocharset=gb2312 /dev/hda5 /mnt/d若要使所有用户都对所挂装的/mnt/d 有读写权限,则需: mount –t vfat –o user,rw,exec,,umask-000 /dev/hda5 /mnt/d若仍无法写 DOS 分区,则可能需要设置挂装点权限: chmod a=rwx /mnt/d⑤使用 iso9660 映像文件:在/mnt 目录下建一个目录 iso;假设映像文件名为 a.iso,在/opt 目录下,则:挂装:mount -t iso9660 -o loop /opt/a.iso /mnt/iso卸载:umount /mnt/iso挂装期间,在/mnt/iso 目录中可对映像包括的文件进行操作。

三、 软盘操作

①格式化

先低格:fdformat /dev/fd0H1440

再 mformat a: 在低格过的软盘上建立 DOS 文件系统。

或 mkfs –t ext2 /dev/fd0 1440 建立 ext2 格式。

② 读写软盘

挂装后才能使用,取出软盘前一定先要卸载以保数据完整。

可用 Linux 命令对/mnt/floppy 进行软盘文件操作。另外

Linux 还提供了一套称之为 mtools 的访问 dos 软盘的工具,

用法类似 dos。主要有 mformat、mdir、mmd、mcd、mrd、

mcopy、mcomp、mdel、mdeltree、mattrib、mren、mtype、

mlabel 等,键入 mtools 回车可列出其命令清单。

③复制软盘

先存源盘映像 dd if=/dev/fd0 of =temp.img

再写到目标盘 dd if=temp.img of =/dev/fd0

(在一些资料中其举例常加参数 bs=1440k,实验不加也可)

复制软盘不必事先挂装。

四、 制作 ISO 光盘映像文件

将源文件用归入一个目录,如 myfiles;

mkisofs -L -l -v -r -o /tmp/outfile.iso myfiles

/tmp/outfile.iso 即是生成的 ISO 映像文件。

(-L 允许文件名的第一个字符为句号;-l 可使用 iso9660 32 字符长度的文件名,可能在 DOS 下无法正常读取; -v 执行

时显示详细信息; -r 使用 Rock Ridge Extensions,开放所有文件的读权限;-o 指定映像文件名称。)

五、 其它磁盘命令

① fdisk 磁盘分区命令。-l 参数用于列出指定的外设分区表。

② df 检查磁盘空间及利用状况

③ du 显示磁盘中目录或文件的大小

例:du –b /boot

显示/boot 目录的大小。-b 参数用以指定单位为字节。

④ dd 介质拷贝命令

用指定大小的块拷贝文件并进行指定的格式转换。

bs= 将输入 ibs 输出 obs 设定为指定的字节数

cbs= 每次只转换指定的字节数

conv= 指定文件的转换格式

count= 仅读取指定的扇区数

ibs= 指定每次读取的字节数

if= 输入文件名,省略则从标准设备输入

obs= 每次输出的字节数

of= 输出文件名,省略则输出到屏幕

seek= 输出数据跳过指定的扇区数。(扇长=obs)

skip= 读取跳过指定的扇区数。(扇长=ibs)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刚转Java?那准备转回.NET5吧!

再过几天就2021年了,回首今年最大的变化就是.NET5的发布,终结了.NET Framework和.NET Core两个分支。虽然因为新冠疫情原因,原定于.NET5的部分功能被推迟到.NET6了,但.NET5是一个非常非常重要的版本,会载入史册的一个版…

在 xunit 测试项目中使用依赖注入

在 xunit 测试项目中使用依赖注入Intro之前写过几篇 xunit 依赖注入的文章,今天这篇文章将结合我在 .NET Conf 上的分享,更加系统的分享一下在测试中的应用案例。之所以想分享这个话题是因为我觉得在我们开发过程中测试是非常重要的一部分,高…

利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具

利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具独立观察员 2020 年 12 月 26 日前一段看到微信公众号 “码农读书” 上发了一篇文章《如何使用 C# 中的 FileSystemWatcher》(翻译自:https://www.infoworld.com/article/3185447/how-to-work-w…

u盘安全删除 linux,为什么要安全删除U盘

原标题:为什么要安全删除U盘移除闪存设备时会对电脑造成危害吗?我们为什么要安全的移除它们?历史上,操作系统将磁盘作为信任对象不需要突然改变状态。当读写文件时,操作系统不希望文件在读写的过程中突然消失。如果文件…

如何在 C# 中使用 投影(Projection)

投影(Projection) 是一种可以将查询结果进行 塑性 的一种操作,你可以使用 投影 将一个 object 转成仅包含你需要属性的新对象,这篇文章中,我们就一起看看如何使用 投影 功能。C# 中的投影 LINQ 集成查询中有两个支持投影的扩展方法&#xff0…

Linux语言写的高通滤波,高通滤波器c语言实现

描述高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。高通滤波器是一种让某一频率以上的信号分量通过,而对该频率以…

在 WSL Ubuntu 上使用 .NET 进行跨平台开发新手入门

翻译自 haydenb 2020年6月3日的文章《Getting started with cross-platform development using .NET on Ubuntu on WSL》 [1].NET 是一个开源软件框架,用于在 Linux、Windows 和 macOS 上构建跨平台应用程序。WSL 上的 Ubuntu [2]允许您同时为 Ubuntu 和 Windows 构…

明源云·天际,地产⾏业的Salesforce Lightning Platform

源宝导读:2020年11月6日,明源云在CIO峰会上正式对外发布了“天际开放平台”,这是明源云凝聚其20多年行业经验打造的一款企业级PaaS平台。本文将介绍我们对企业级PaaS平台的行业思考,以及为加速泛地产生态链数字化转型而做的技术创…

c程序设计语言选修难吗,欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题...

置顶欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题叶卡林娜发表于2017年01月05日首先欢迎大家选修浙大翁恺老师的C语言程序设计课程。开课2天就看到讨论区已经有这么多帖子,说明同学们的学习热情很高。结合前几次开课的经验以及目前在讨论…

IdentityServer4系列 | 支持数据持久化

一、前言在前面的篇章介绍中,一些基础配置如API资源、客户端资源等数据以及使用过程中发放的令牌等操作数据,我们都是通过将操作数据和配置数据存储在内存中进行实现的,而在实际开发生产中,我们需要考虑如何处理数据持久化呢&…

c语言修仙受控可看吗,强推三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花...

大家好,我是小龙。今天我给大家推荐三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花!一《c语言修仙》【一十四洲】【简介】: 林浔是一个程序员,通宵编代码后发现自己身体内多了一个程序输入窗口。他尝试编了一个循环程序…

【Vue】Vue与ASP.NET Core WebAPI的集成

SPA单页面应用已经遍地开花,熟知的三大框架,Angular、Vue和React,其中Angular与React均可集成至ASP.NET Core,且提供了相关了中间件。但是Vue没有:“As far as I’m aware, we don’t have plans to introduce Vue-specific featu…

引入Jaeger——封装

随着微服务的普及,微服务间的调用全链路跟踪也火了起来,Jaeger(https://www.jaegertracing.io/)是CNCF孵化的全链路跟踪型项目,在.net core中,提供了一个Jaeger的Nuget(https://github.com/jaegertracing/jaeger-client-csharp)包…

临近年关,发生两起磁盘占满引发的服务下线故障

一口气说两个因为磁盘空间不足引发的应用故障。作为拿起键盘一把梭的Coder, 开发--->部署-->收工--->心旷神怡,滋一口82年的可乐.过了几个月,服务突然下线了!CTO又有杀程序员祭天的理由了!事故1:Azure App Se…

c语言幼儿园积木游戏,幼儿园《积木游戏》课件【三篇】

【导语】课件制作本身就是作者综合素养的一种体现,它显现出制作者对教育、教学、教材改革方向的把握,对课堂教学的理解,对现代教育技术的领悟。因此教师在设计课件时一定要吃透教学内容,设计出符合教学的方案用于课件。下面是无忧…

蚂蚁调度AntJob-分布式任务调度系统

分布式任务调度系统,纯NET打造的重量级大数据实时计算平台,万亿级调度经验积累!面向中小企业大数据分析场景。开源地址:https://github.com/NewLifeX/AntJob使用教程:https://www.yuque.com/smartstone/blood/antjob体…

c语言怎么让图形界面单独显示,「分享」C语言如何编写图形界面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面。大家也都有回答,需要其他的库。MFC,GTK,QT。本人近期刚用GTK库加上纯C写成了第一个LINUX实用程序。现在与大…

如何在 ASP.NET Core 中 自定义中间件

ASP.NET Core 是一个跨平台,开源的,轻量级,高性能 并且高度模块化的web框架,同时扩展性也是非常强,你可以在 request -> response 请求管道中安插各种中间件来根据自己的场景定制化,比如说:监…

ASP.NET Core Authentication and Authorization

最近把一个Asp .net core 2.0的项目迁移到Asp .net core 3.1,项目启动的时候直接报错:InvalidOperationException: Endpoint CoreAuthorization.Controllers.HomeController.Index (CoreAuthorization) contains authorization metadata, but a middleware was not …

android dialog 自定义布局,如何设置AlertDialog的自定义布局?

调用我的对话框:alertDialog showInfoDialog(message "$wrongPasscodeMessage\n$retryMessage")方法如下:fun FragmentActivity.showInfoDialog(message: String?): AlertDialog? {return try {val customLayout layoutInflater.inflate(R.layout.custom_layout…