Chap2 Linux文件系统
Linux的文件
Linux中一切都是文件,包括内核、shell。
文件分类:
普通文件:仅包含字符流的数据文件(文本文件、二进制文件)
目录文件:文件夹和子目录的详细信息(文件名和inode号)
设备文件:代表设备,完成对设备的读取和写入操作
文件命名规则:
字母和数字、符号(.-_)、可以有扩展名也可没有、区分大小写
文件系统结构

系统目录:
/:根目录
/home:用户目录
/bin:Unix常用命令,如bash,date,cat,tar等
/sbin:管理员命令,如fdisk,mkfs等
/etc:系统配置文件目录,如passwd,shadow(登录名和密码)等
/dev:设备文件目录,如硬盘等
/lib:库文件目录
/var:可变文件目录,如打印和邮件等
/tmp:临时文件目录
路径:
绝对路径名:从根目录开始
相对路径名:从当前目录开始
根目录:/
当前用户主目录:~或者环境变量$HOME
当前目录:.
父目录:..
文件操作命令
文件系统相关命令:
ls:列出文件
-a 显示以.开头的文件
-F 用*标记可执行文件,用/标记目录,用@标记符号链接
-l 以列表形式显示文件属性
-t 按最后修改时间排序(降序)
-u 按最后访问时间排序
-r 逆序排序
-R 递推显示子目录和文件
cd:改变当前工作目录
mkdir:创建目录(文件夹)
rmdir:删除空目录
-p 删除空目录树
cp:复制文件
-b 为已存在目标文件创建备份
-n 不覆盖已有目标文件
-i 覆盖时询问
-R 递推复制子目录和文件
mv:移动文件,重命名文件
-b 为已存在目标文件创建备份
-n 不覆盖已有目标文件
-i 覆盖时询问
rm:删除文件
-f 强制删除
-i 删除时询问
-R 递推删除子目录和文件
tar:存档管理
-c 创建存档
-x 提取存档
-t 显示存档中的文件
-f 指定存档名称
-v 显示执行过程
-z 同时使用gzip压缩文档
tar -cvf a.tar hello hello.c
hello
hello.c
gzip:压缩文件,解压缩文件
-d 解压缩
-k 保留原文件
-l 显示压缩文件内容
-r 递推压缩子目录和文件
压缩和解压缩命令:
压缩:
tar -zcvf 压缩文件名 .tar.gz 被压缩文件名
解压缩:
tar -zxvf 压缩文件名.tar.gz
用户管理相关命令
sudo:暂时以root权限执行命令(使用时会要求输入当前用户的密码)
sudo 命令
adduser:添加新用户(以交互方式简单方便地添加用户,为用户设定密码,为用户创建同名用户组和主目录)
adduser 用户名
passwd:修改用户密码
-d 删除用户密码
-l 锁定用户,阻止登录
-u 解锁用户
usermod:编辑用户信息
-c 账号说明
-d 修改主目录
-s 修改默认shell
-g 修改主群组
-G 修改附加群组
-L 锁定用户,阻止登录
-U 解锁用户
deluser:删除用户(默认不删主目录)
--group 删除用户组
--remove-home 删除用户主目录
--remove-all-files 删除系统中owner是该用户的所有文件
su:切换用户
- 复制当前环境变量
-c 以该用户身份执行一条命令,不切换用户
如不加参数,切换成管理员
文件属性
ls -l查看
总用量 72
-rw-r--r-- 1 wh1516 wh1516 114 10月 29 16:26 1.txt
-rwxr-xr-x 1 wh1516 wh1516 13176 12月 31 15:48 c
drwxr-xr-x 3 wh1516 wh1516 4096 6月 11 2020 cachelab-handout
drwxrwxr-x 2 wh1516 wh1516 4096 11月 14 15:03 ch3
drwxrwxr-x 2 wh1516 wh1516 4096 11月 14 15:43 CH4
-rw------- 1 wh1516 wh1516 6311 12月 31 15:38 ch6emp.tar.gz
-rw-rw-r-- 1 wh1516 wh1516 1341 12月 31 15:47 cond_exp.c
文件类型属性:第一个字符:-为普通文件,d为目录,l表示符号链接
文件权限属性:第一栏后九个字符,前三位所有者、中三位用户组、后三位其他用户。
文件所有权:第三和第四栏,所有权和用户组所有权。文件所有者可以修改文件权限,文件所有者对文件的操作权显示在权限字符串的前三位,用户组所有者对文件的操作权显示在权限字符串的中三位。
文件大小:第五栏。文件的字符数,与实际占用空间不同。目录的大小取决于所包含的文件名,显示的是预期值。
文件的最后修改时间:中间的日期栏。文件最后修改的时间戳。
chmod:改变文件权限。八进制权限表示,三位哪一位有权限即为1。
| 类别 | 操作 | 权限 |
| u 用户 | + 增加权限 | r 读权限 |
| g 用户组 |
- 删除权限 | w 写权限 |
| o 其他用户 | = 指定绝对权限 | x 执行权限 |
| a 全部 |
目录权限:
chmod 664 hello.c
-rw-rw-r--
chmod u-w newdir
cp hello.c newdir
Permission denied
umask:设定默认权限。最终权限=默认权限码-权限掩码(默认002)
umask 八进制权限掩码
chown:改变文件所有者。需要sudo才可执行。
sudo chown user2 hello.c
chgrp:改变文件用户组所有权。 需要sudo才可执行。
文件与inode:Linux支持多个文件系统,每个文件都使用inode编号与一个inode表格相关联。inode表格包含了文件的属性:类型、权限、链接数、所有者、用户组、文件大小、修改时间,是一个指向文件存储磁盘区块的指针数组。文件在一个文件系统中有唯一的inode编号。使用ls -i命令查看文件inode编号(第一栏)
文件链接:一个文件可以有多个文件名,称为一个文件有多个链接,可以通过任意一个链接访问该文件。ls -l的第二栏为链接数字:有几个链接指向它(名字数)。
ln:创建一个链接。(链接表示为lrwxrwxrwx)
硬链接:创建一个具有相同inode编号的文件名
符号链接:创建一个拥有独立inode的文件指向链接的文件
-s 创建符号链接
-f 强制创建链接(当链接名已被使用时)
ln 1.c 2.c
ls -li
total 2
123456 -rw-rw-r-- user1 user1 date 2.c
123456 -rw-rw-r-- user1 user1 date 1.c
硬链接的作用:可以在文件实际位置发生变化时使用链接访问文件。可以防止意外删除:使用rm命令只是删除了一个链接。
假设程序中引用了如下位置的文件:file/data.txt,之后该文件被移动到了新目录:newfile/data.txt,为了避免修改程序,可以在file目录中创建一个newfile/data.txt的硬连接。
ln newfile/data.txt file
符号链接的作用:类似Windows系统中的快捷方式,创建一个指向该文件的指针文件,支持跨文件系统建立链接。
stat:查看文件属性。
-f 查看文件系统属性

touch:修改时间戳,创建空文件。
-a 只改变访问时间
-c 不创建文件
-m 只改变修改时间
-t 使用YYMMDDhhmm更新时间
wc:计算行数、字数和字符数。显示:行数 字数 字符数
-c 计算字符数
-l 计算行数
-w 计算字数
find:查找文件。
find path –option expression
-name 按文件名查找
-perm XXX 按权限查找
-type f, d, l 按类型查找
-user 按所有者查找
-group 按用户组所有者查找
-ctime -x +x 按创建时间查找
本文介绍了Linux文件系统的概念,包括文件分类、文件系统结构、文件命名规则。详细讲解了Linux中的文件系统相关命令如ls、cd、mkdir等,以及用户管理命令如sudo、adduser等。此外,还阐述了文件属性、权限管理以及硬链接和符号链接的区别和应用。
1万+

被折叠的 条评论
为什么被折叠?



