学习总结4.6 Linux文件/目录链接

Linux中的链接类似于Windows的快捷方式,也就是很多的链接文件(link file)其实都指向同一个源文件(source file)。

Linux中链接文件又分为硬链接和软链接两种。

Linux硬链接

硬链接指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种链接就是硬链接。

硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止误删的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的链接。只删除一个链接并不影响索引节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬链接文件均被删除。

硬链接特点如下:

  • 文件有相同的inodedata block
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同inode号的文件。

具体命令如下:

ln 源文件 目标文件

案例演示一:

为当前目录下的文件testFile创建一个硬链接testFileLink,可以使用如下命令:

ln testFile testFileLink

ls结果的最左边一列,是文件的inode值,你可以简单把它想成C语言中的指针。它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。可以看到,这两个文件就如同一个文件一样,inode值相同,都指向同一个区块。

Linux软链接

软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

与硬链接不同的是,符号链接确实是一个新文件,当然它具有不同的I节点号;而硬链接并没有建立新文件。

软链接特点如下:

  • 源文件和目标文件有不相同的inodedata block
  • 软链接没有硬链接的限制,可以对目录文件做符号链接;
  • 软链接可以在不同文件系统之间做软链接;
  • 在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l
  • 符号链接的大小是其链接文件的路径名中的字节数;

具体命令如下:

ln -s 源文件 目标文件

案例演示一·:

为当前目录下的文件testFile创建一个软链接myLink,可以使用如下命令:

ln -s testFile myLink

使用ls -li查看两个文件的详细信息,可以看到两个文件的inode节点号不同,文件myLink的类型为l,可以看到myLink是指向文件testFile的,同时myLink文件的大小为8,正是文件名testFile的字符个数。

案例演示二:

为当前目录下的目录testDir创建一个软链接myDirLink,可以使用如下命令:

ln -s testDir myDirLink

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分 Linux简介和原理介绍 第一章 概述 1.1 Linux 的历史及背景 1.1.1 什么是 Linux? 1.1.2 Linux 该怎么念? 1.1.3 Linux 的历史 1.1.4 Linux的优点 1.2 Linux与开源软件 1.3 Linux 与 Windows 的比较 1.3.1 开发模式和系统架构的区别 1.3.2 局部的区别 1.4 Linux 与 Unix的比较 1.5 Linux 的发行版本和内核版本 1.6 Linux 的适用场合 1.7 Linux 的未来 第二章 Linux系统基本原理 2.1 Linux的体系结构以图来表现 2.2 基本特点 2.2.1 单核心 2.2.2 多用户的操作系统 2.2.3 分时机制 2.2.4 多任务运行 2.3 核心与模块(模块分类、进程,核心结构图) 2.4 文件系统的基本概念 2.4.1 概述 2.4.2 Linux目录结构 2.4.3 mount 2.4.4 主要文件系统类型 2.4.5 日志文件系统 2.4.6 i结点 2.5 线程与进程的基本概念 2.5.1 基本概念 2.5.2 僵尸进程 2.5.3 进程和多任务的实现 2.6 Linux设备与网络 2.7 Shell控制台 第二部分 基础知识 第三章 Shell命令使用 3.1 控制台相关命令 clear 命令 echo 命令 yes 命令 3.2 目录操作命令 cd 命令 pwd 命令 mkdir 命令 rmdir 命令 3.3 文件操作命令 ls 命令 touch 命令 cat 命令 more 和 less 命令 head 和 tail 命令 rm 命令 cp 命令 mv 命令 ln 命令 find 命令 file 命令 grep 命令 wc 命令 sort 命令 3.4 属性与权限命令 chown 命令 chgrp 命令 chmod命令 3.5 系统相关命令 date 命令 nice 命令 ps 命令 who 命令 vmstat命令 top 命令 kill 命令 df和du 命令 reboot 命令 shutdown 命令 logout 命令 3.6 Shell的高级使用 3.6.1 管道和重定向(“|、>、>>、<”) 3.6.2 进程管理(fg/bg、ctrl-Z、 &、nohup) 3.6.3 模式匹配 3.6.4 特殊字符 3.7 环境变量 3.7.1 环境变量的概念 3.7.2 相关的命令 第四章 vi使用 4.1 vi 编辑器简介 4.1.1 vi的简介 4.1.2 vim简介 4.2 打开和退出 vi 4.2.1 进入vi 4.2.2 vi的退出 4.2.3 打开文件、保存文件和退出 vi 编辑器 4.3 vi 的三种模式 4.3.1 vi 的输入模式(Insert mode) 4.3.2 vi 的命令模式(Command mode) 4.3.3 vi 的底线模式(Last line mode) 4.3.4 vi 三种模式的切换 4.4 在文件中快速移动光标 4.4.1 基本的移动方式 4.4.2 在同一行中移动光标 4.4.3 在页面间移动光标 4.4.4 在底线模式下移动光标 4.4.5 查找字符或者文字 4.5 在文件中替换和删除文本 4.5.1 命令模式中的替换命令 4.5.2 在底线模式中的替换命令 4.5.3 底线模式中的删除方式 4.6 撤销和重复编辑命令 4.7 移动和复制文本 4.7.1 文本行的移动 4.7.2 在底线模式中的整行移动 4.7.3 粘贴和复制 4.8 在 vi 编辑器中与 shell交互 4.9 编辑多个文件 4.10 vi的定制 第五章 shell编程 5.1 变量和运算符 5.1.1 变量替换 5.1.2 位置变量 5.1.3 进程变量 5.1.4 bash 引号规则 5.1.5 运算符 5.1.6 表达式替换 5.1.7 标准shell变量 5.1.8 影响命令的变量 5.2 过程 5.2.1 在过程内部使用变量 5.2.2 shift 命令 5.2.3 建立局部过程变量 5.2.4 过程返回值 5.3 脚本执行命令 5.3.1 exit 命令 5.3.2 trap命令 5.3.3 if 命令 5.3.4 case 命令 5.3.5 for 语句 5.3.6 while命令 5.3.7 until命令 5.3.8 break 命令 5.3.9 continue 命令 5 .4 控制shell 5.4.1 创建命令表 5.4.2 创建复合命令 5.4.3 输入/输出重定向 5.4.4 读取输入 5.4.5 使用“-”文件 5.4.6 使用设备文件 5.4.7 使用exec 5.4.8 使用eval 5.4.9 使用后台进程 5.5 Shell 程序调试 5.6 Shell 脚本的举例 第六章 高级脚本编程 6.1 awk 的介绍 6.1.1 什么是awk? (语法与操作) 6.1.2 使用awk功能 6.2 sed 的介绍 6.2.1 什么是sed? (语法与操作) 6.2.2 使用sed功能 6.3 正则表达式的使用 6.4 使用perl 6.4.1 perl特性 6.4.2 perl 入门 6.4.3 perl 变量 6.4.4 使用静态信息 6.4.5 使用倒引号字符串 6.4.6 使用语句 6.4.7 使用文件 6.4.8 特殊变量 6.4.9 对象 6.4.10 使用模块 6.4.11 perl 脚本举例 第三部分 系统管理 第七章 Linux管理介绍 7.1 系统管理员职责 7.1.1 一般的职责 7.1.2 用户的支持 7.2 超级用户 7.2.1 su命令 7.2.2 日常管理 7.3 文档 7.3.1 Linux相关书籍 7.3.2 Internet 7.3.3 man 7.3.4 info 7.3.5 应用程序自带的文档 7.3.6 how-to和mini-how-to 第八章 用户管理 8.1 用户管理简介 8.2 用户类型 8.2.1 超级用户 8.2.2 普通用户 8.2.3 特殊用户 8.3 账号配置文件 8.3.1 /etc/passwd 文件 8.3.2 /etc/shadow 文件 8.3.3 /etc/group 文件 8.4 用户的创建与维护 8.4.1 添加用户 8.4.2 修改用户属性 8.4.3 禁用用户 8.4.4 删除用户 8.4.5 改变用户属主和所有权 8.4.6 用户身份转换 8.5 组的创建与维护 8.5.1 添加组 8.5.2 删除组 8.5.3 修改组属性 8.5.4 改变用户组和所有权 8.6 用户查询 8.6.1 who和w命令 8.6.2 finger 命令 8.6.3 id 命令 8.7 用户管理与维护 8.7.1 受限root访问 8.7.2 环境文件 8.7.3 环境的定义 8.7.4 umask 8.7.5 day信息 8.7.6 guest帐号 8.7.7 共享的组目录 第九章 进程管理 9.1 创建进程和启动进程 9.2 进程调度: crond与atd 9.3 进程监控与统计 9.4 信号 9.4.1 信号的概念 9.4.2 kill 9.4.3 进程的挂起和恢复 9.5 daemon 9.5.1 概念 9.5.2 创建daemon 9.5.3 daemon用法 9.5.4 识别 第十章 文件系统 10.1 分区管理 10.1.1 分区概念 10.1.2 fdisk与parted命令 10.2 文件系统创建与维护 10.3 磁盘限额 10.4 文件目录 10.4.1 访问控制 10.4.2 设定用户和组识别码 10.4.3 粘着位 10.4.4 文件权限命令 10.4.5 连(LINK) 10.5 proc文件系统 10.6 SWAP 10.7 NFS 10.8 RAID 10.9 LVM 第十一章 文件与数据备份 11.1 为什么要备份? 11.2 备份什么? 11.3 备份策略 11.4 备份命令的选择 11.4.1 tar 的使用 11.4.2 gzip和compress 11.4.3 联合使用 11.4.4 cpio 命令 11.4.5 dump 命令 11.5 第三方备份软件 11.6 磁带机的介绍及使用 第十二章 软件包管理 12.1 rpm 基础 12.2 rpm 主要运行方式和常用选项 12.3 查找 rpm 信息 12.4 rpm 包的安装与删除 12.5 rpm 包的升级 12.6 rpm 命令的用法 12.7 使用rpmbuild构建自己的rpm包 12.8 软件的编译安装(./configure、make、make install等过程) 12.9 共享库 第十三章 启动过程和启动脚本 13.1 理解系统启动过程 13.2 GRUB与LILO 13.3 启动配置文件和命令 13.4 rc目录和相关脚本 13.4.1 理解 rc.d 目录 13.4.2 /etc/rc.d/rc.svsinit 脚本 13.4.3 理解 rc 脚本 13.4.4 理解 rc.6 目录下的其他脚本 13.4.5 checkconfig 脚本 第十四章 linux内核及设备管理 14.1 编译内核 14.1.1 准备源码 14.1.2 配置内核 14.1.3 编译 14.1.4 安装 14.2 模块 14.2.1 编译和安装 14.2.2 模块操作命令 14.2.3 配置 14.3 内核的调整 第十五章 日志管理 15.1 基本概述 15.2 日志子系统类别 15.3 日志文件使用 15.3.1 dmesg 15.3.2 messages 15.4 日志文件的后台进程 15.4.1 syslog 15.4.2 klogd 15.4.3 logger 15.5 logrotate 15.6 log文件的分析工具 15.6.1 swatch 15.6.2 其他工具 第十六章 打印管理 16.1 Linux打印体系概述 16.1.1 Linux打印原理 16.1.2 新旧打印方式对比 16.2 打印机的设置 16.2.1 添加打印机 16.2.2 通过命令行管理打印机 16.2.3 通过web界面管理打印机 16.3 使用CUPS打印 16.3.1 打印文件 16.3.2 选择打印机 16.3.3 标准打印选项 第十七章 基本网络配置与管理 17.1 网络环境概述 17.1.1 使用ADSL连 17.1.2 普通modem拨号 17.1.3 局域网连 17.2 网卡设置(着重) 17.2.1 网络设置的相关文件 17.2.2 IP、掩码、静态路由 17.2.3 DNS选项的配置 17.3 常用网络管理命令(ifconfig、netstat和route命令) (着重) 17.4 常用服务的管理 17.4.1 xinetd与inetd(重点为xinetd) 17.4.2 DHCP配置及启动 17.4.3 telnet配置及启动 17.4.4 FTP配置及启动 17.4.5 SSH配置及启动 第十八章 系统安全简介 18.1 安全漏洞 18.2 补丁在系统安全中的重要作用 18.3 主机安全 18.4 PAM 18.5 用户设置:口令规则、过期等 18.6 文件权限 18.7 setuid和setgid 18.8 缓冲区溢出的安全保护 18.9 网络安全设置 18.9.1 TCP封装 18.9.2 端口限制 18.9.3 防火墙iptables 18.10 简单攻击检测 18.11 使用安全工具 18.11.1 saint 18.11.2 SSH 18.11.3 tcplogd 18.11.4 swatch 18.11.5 tcpdump 18.11.6 whois 第十九章 系统优化和核心参数调整 19.1 系统性能与优化概述 19.2 性能监视与测试 19.3 系统优化的相关命令 19.3.1 uptime 19.3.2 free 19.3.3 top 19.3.4 vmstat 19.3.5 ps 19.4 系统优化措施 第二十章 X Window配置 20.1 X Window有什么特点 20.2 组成X的基本元素 20.3 X系统的运行原理 20.4 X系统的启动与关闭 20.5 X系统的配置与升级 20.6 X Window的远程管理 20.7 X Window的桌面环境 附录 一、 vi命令汇总表 二、 常用命令列表(描述)可以加入DOS参照 三、 Linux 的技术资源(获取途径、以网上链为主、Linux社区分类介绍) 四、 GNU通用公共许可证(GPL) 五、 Linux发行版 六、 index(关键词索引)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值