Linux第二周作业
第二周作业
一、基础班
1. 描述Linux发行版的系统目录名称命名规则以及用途。
文件系统:
1.文件和目录被组织成一个单根倒置树结构
2.文件系统从根目录下开始,用“/”表示
3.根文件系统(rootfs):root filesystem
4.文件名称区分大小写
5.以.开头的文件为隐藏文件
6.路径分隔的 /
7.文件有两类数据:
元数据:metadata
数据:data
8.文件系统分层结构:LSB Linux Standard Base
9.FHS: (Filesystem Hierarchy Standard)
http://www.pathname.com/fhs/
系统目录名称命名规则:
1.文件名最长255个字节
2.包括路径在内文件名称最长4095个字节
3.蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件
灰色-->其他文件
4.除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,
有些字符需要用引号来引用它们
5.标准Linux文件系统(如ext4),文件名称大小写敏感
例如:MAIL, Mail, mail, mAiL
用途:
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
2. 描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件的元数据信息:
Size:显示文件大小
Blocks:文件使用的数据块总数
IO Block:IO块大小
regular file:文件类型(常规文件)
Device:设备编号
Inode:Inode号
Links:链接数
Access:文件的权限
Gid、Uid:文件所有权的Gid和Uid。
1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
touch命令
格式:touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
查看:stat命令
修改文件的时间戳信息(touch命令等)
3. 结软连接和硬连接区别,并用实例操作说明。
硬链接:
1.创建硬链接会增加额外的记录项以引用文件
2.对应于同一文件系统上一个物理文件
3.每个目录引用相同的inode号
4.创建时链接数递增
5.删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
6.不能跨越驱动器或分区
7.语法:
ln filename [linkname ]
软连接:
1.一个符号链接指向另一个文件
2.ls - l的 显示链接的名称和引用的文件
3.一个符号链接的内容是它引用文件的名称
4.可以对目录进行
5.可以跨分区
6.指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减
少目标文件inode的引用计数
7.语法:
ln -s filename [linkname]
硬链接和软链接区别:
1.本质:硬链接同一个多个名字,软链接不同文件
2.跨分区:硬链接不能跨分区,软链接可以
3.目录:硬链接不能,软链接可以
4.相互关系:
5.inode号:硬链接还是使用原本文件的inode号,软链接使用新的inode号
6.链接数:硬链接会随着链接数增加而增加,软链接不会
7.相对路径:原始文件路径
8.文件类型:硬链接显示为和原本相同文件,软链接则变成链接文件
9.ln -s
示例:
[root@centos7 ~]#ln md5.log 11
[root@centos7 ~]#ln -s md5.log 111
[root@centos7 ~]# ll
-rw-r--r-- 2 root root 45 Feb 19 11:52 11
lrwxrwxrwx 1 root root 7 Feb 22 22:49 111 -> md5.log
-rw-r--r-- 2 root root 45 Feb 19 11:52 md5.log
4. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1.touch命令
格式:touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
示例:
[root@centos7 data]# touch -c text1.txt
[root@centos7 data]# touch test.txt
[root@centos7 data]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 8 2020 test.txt
2.cp命令
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
-i 覆盖前提示
-n 不覆盖,注意两者顺序
-r, -R 递归复制目录及内部的所有内容
-a 归档,相当于-dR --preserv=all
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
-p 等同--preserv=mode,ownership,timestamp
-v --verbose
-f --force
-u --update 只复制源比目标更新文件或目标不存在的文件
-b 目标存在,覆盖前先备份,形式为 filename~
--backup=numbered 目标存在,覆盖前先备份加数字后缀
cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中
基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
cp SRC... DEST
SRC... 多个文件
DEST 必须存在,且为目录,其它情形均会出错
cp SRC DEST
SRC是目录:此时使用选项:-r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
3.mv命令
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
4.rm命令
rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
示例:
rm -rf /* 不可行 */
5.tree命令
tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
6.mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
7.rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
5. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
[root@centos7 data]# cp /etc/profile /tmp/
[root@centos7 data]# vim /tmp/profile
:%s@^[[:blank:]]\+@@
6. 在vim中设置tab缩进为4个字符
配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
添加:
set tabstop=4