1.inode简介
inode是Linux文件系统的基础。
- 硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。一个文件可能会占用多个 block,但是一个块只能存放一个文件。虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 元信息 metadata:如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 存储文件元信息的区域就叫 inode,译为索引节点:i(index)+node。 每个文件都有一个唯一的 inode,存储文件的元信息。
- inode 是一种固定大小的数据结构,其大小在文件系统创建时就确定了,并且在文件的生命周期内保持不变。
- inode 的访问速度非常快,因为系统可以直接通过 inode 号码定位到文件的元数据信息,无需遍历整个文件系统。
- inode 的数量是有限的,每个文件系统只能包含固定数量的 inode。这意味着当文件系统中的 inode 用完时,无法再创建新的文件或目录,即使磁盘上还有可用空间。因此,在创建文件系统时,需要根据文件和目录的预期数量来合理分配 inode 的数量。
- 可以使用
stat
命令可以查看文件的 inode 信息,包括文件的 inode 号、文件类型、权限、所有者、文件大小、修改时间。
- inode:记录文件的属性信息,可以使用
stat
命令查看 inode 信息。 - block:实际文件的内容,如果一个文件大于一个块时候,那么将占用多个 block,但是一个块只能存放一个文件。(因为数据是由 inode 指向的,如果有两个文件的数据存放在同一个块中,就会乱套了)
2.硬链接和软链接
在Linux系统上,文件链接是一种特殊的文件类型,可以在文件系统中指 向另一个文件。常见的文件链接类型有两种:
硬链接:在Linux文件系统中,每个文件和目录都有一个唯一的索引节点号,用来标识该文件或目录。硬链接通过inode节点号建立连接,硬链接和源文件的inode节点号相同,两者对文件系统来说是完全平等的,删除其中任何一个对另外一个没有影响,可以通过给文件设置硬链接文件来防止重要文件被误删。使用ln 命令来创建硬链接。
软链接:软链接和源文件的inode节点号不同,而是指向一个文件路径。源文件删除后,软链接依然存在,但是指向的是一个无效的文件路径。类似于快捷方式,使用ln -s命令来创建软连接。
3.Linux文件类型
普通文件:用于存储信息和数据
目录文件: 用于表示和管理系统中的文件
符号链接文件:保留了指向文件的地址而不是文件本身
字符设备:用来访问字符设备,比如键盘
设备文件:用来访问块设备,比如硬盘、软盘
管道文件:一种特殊类型的文件,用于进程之间的通信
套接字文件:用于进程间的网络通信,也可以用于本机之间的非网络通信
4.常见目录说明
- /bin: 存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;
- /etc: 存放系统管理和配置文件;
- /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是/home/user,可以用~user 表示;
- /usr: 用于存放系统应用程序;
- /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里;
- /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
- /root: 超级用户(系统管理员)的主目录(特权阶级^o^);
- /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等;
- /dev: 用于存放设备文件;
- /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /boot: 存放用于系统引导时使用的各种文件;
- /lib 和/lib64: 存放着和系统运行相关的库文件 ;
- /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
- /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
- /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows 下叫什么.chk)就在这里
5.Linux常用命令(重要)
5.1 目录切换
cd usr #切换到该目录下的usr目录
cd .. #切换到上层目录
cd / #切换到系统根目录
cd ~ #切换到用户主目录
cd - #切换到上一个操作的目录
5.2 目录操作
ls #显示目录中的文件和子目录的列表
ll #看到目录下的所有目录和文件的详细信息
mkdir [选项] 表达式 #创建目录
find [路径][表达式] #在指定目录及其子目录中搜索文件或目录
pwd #显示当前工作目录的路径
rmdir [选项] 目录名 #删除空目录
rm [选项名] 目录名 #删除文件/目录
cp [选项] 源文件/目录 目标文件/目录 #复制文件或目录到指定位置
mv [选项] 源文件/目录 目标文件/目录 #移动文件或目录到指定位置,也可以用于重命名文件/目录
5.3 文件操作
touch [选项] 文件名 #创建新文件或者更新已存在文件
ln [选项] <源文件> <硬链接/软链接文件> #创建硬链接/软链接
cat/more/tail 文件名 #文件查看命令
vim 文件名 #修改文件的内容
5.4 文件压缩
tar -zcvf 打包压缩后的文件名 要打包压缩的文件 #压缩文件
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
tar [-xvf] 压缩文件 #解压压缩包
x:代表解压
5.5 文件传输
scp [选项] 源文件 远程文件 #用于通过SHH协议进行安全的文件传送,实现从本地到远程主机的上传和从远程主机到本地的下载
rsync [选项] 源文件 远程文件 #可以在本地和远程系统之间高效的进行文件复制并智能地处理增量复制
ftp #提供一种简单的方式来链接到远程FTP服务器并进行文件上传、下载、删除等操作
5.6 文件权限
操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在 Linux 中权限一般分为读(readable)、写(writable)和执行(executable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作
文件的类型:
d:目录
-:文件
l:软链接
权限种类:
r:代表可读,可以用数字4表示
w:代表可写,可以用数字2表示
x:代表可执行,可以用1表示
文件权限和目录权限的区别:
文件:
r:可以使用cat查看文件内容
w:可以修改文件内容
x:可以将其运行为二进制文件
目录:
r:可以查看目录下的列表
w:可以创建和删除目录下的文件
x:可以cd进入目录
超级用户可无视权限规则;
chmod命令修改权限:
chmod u=rwx,g=rw,o=r aaa.txt
或者 chmod 764 aaa.txt
5.7 用户管理
useradd [选项] 用户名 #创建用户账号
userdel [选项] 用户名 #删除用户账号
usermod [选项] 用户名 #修改用户账号属性、配置
passwd [选项] 用户名 #设置用户的认证信息,用户密码、密码过期时间
groupadd [选项] 用户组 #添加用户组
groupdel 用户组 #删除用户组
groupmod [选项] 用户组 #修改用户组属性
5.8 系统状态
top [选项] #用于实时查看系统的CPU使用率、内存使用率、进程信息等
htop [选项] #类似top,但提供了更加交互式和友好界面
uptime [选项] #用于查看系统总共运行时长,系统的平均负载等信息
vmstat [间隔时间] [重复次数] #查看进程、内存、I/O等系统整体运行状态
free [选项] #用于查看系统的内存使用情况
df [选项] [文件系统] # 用于查看系统的磁盘空间使用情况
du [选项] [文件] #用于查看指定目录和文件的磁盘空间使用情况
sar [选项] [时间间隔] [重复次数] #用于收集。报告和分析系统同的性能统计信息
ps [选项] #用于查看系统中的进程信息
systemctl [命令] [服务名称] #用于管理系统的服务和单元
5.9 网络通信
ping [选项] 目标主机 #测试与目标主机的网络连接
ifconfig/ip #用与查看系统的网络接口信息,包括网络接口的IP地址、MAC地址、状态等
netstat [选项] #用于查看系统的网络连接状态和网格统计信息
ss [选项] #比netsate更好用
5.10 其他
sudo + 其他命令 #以系统管理员身份执行命令
grep 要搜索的字符串 要搜索的文件 --clolor
kill -9 #杀死进程(-9表示强制终止),先用ps查找进程,然后使用kill
shutdown #shutdown -h now 指定立即关机 shutdown ——5 "System will shutdown after 5 minutes" 指定5分钟后关机,同时送出警告信息给登入用户
reboot #重开机 reboot -w 做个重开机的模拟
标签:选项,文件,文件系统,目录,Linux,inode,链接
From: https://blog.csdn.net/qq_53429120/article/details/141900245