第二周作业

谁都会走 提交于 2020-03-26 11:30:00

1、描述Linux发行版的系统目录名称命名规则以及用途。

系统目录名称的命名规则

  • 以 " / " 为顶点,文件和目录被组织成一个单根倒置的树状结构
  • 根文件系统(rootfs):root filesystem
  • 文件名称区分大小写
  • 以 . 开头的文件为隐藏文件
  • 路径分隔方式的 /

文件有两类数据:

  • 元数据:metadata
  • 数据:data

  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节
  • 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
  • 标准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、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

可以用ls -l或者ll来查看文件的属性

[root@centos ~]#ls -l a.txt 
-rw-r--r--. 1 root root 9 Feb  6 11:49 a.txt
    ①       ②     ③     ④       ⑤            ⑥

①文件的元数据一般由开头显示的11位组成:
1 位是文件的类型,- 普通文件,d 目录文件,b 块设备,c 字符设备,l 符号链接文件,p 管道文件pipe,s 套接字文件socket;
2-4 三位是文件所属组的权限位,其中r为读权限、w为写权限、x为执行权限,S为超级权限,X为特殊权限;
5-7 三位是文件所属组的权限位;
8-10三位是其他用户对文件的权限位;
. 位是表示SElinux的开关;
② 位是表示文件的硬链接数量;
③ 位是文件的所属用户和所属组的信息;
④ 位是文件的大小;
⑤ 位是文件默认的mtime也就是修改时间;
⑥ 位是文件的名称;
前面所有的数据,存在于文件的lnode索引节点里,后面文件的名称是存在于其父目录的block块里;

修改文件的时间戳信息:
stat file
三个时间戳:
access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变

可以使用touch命令更改文件的时间戳
touch命令
格式:touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建

[root@centos7 ~]#touch a.txt
[root@centos7 ~]#stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 201446171   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-03-26 10:25:37.215482671 +0800
Modify: 2020-03-26 10:25:37.215482671 +0800
Change: 2020-03-26 10:25:37.215482671 +0800
 Birth: -

[root@centos7 ~]#touch -a a.txt
[root@centos7 ~]#stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 201446171   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-03-26 10:26:22.451479809 +0800
Modify: 2020-03-26 10:25:37.215482671 +0800
Change: 2020-03-26 10:26:22.451479809 +0800
 Birth: -

[root@centos7 ~]#touch -m a.txt
[root@centos7 ~]#stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 201446171   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-03-26 10:26:22.451479809 +0800
Modify: 2020-03-26 10:26:45.006478382 +0800
Change: 2020-03-26 10:26:45.006478382 +0800
 Birth: -

[root@centos7 ~]#touch -t 02020202 a.txt
[root@centos7 ~]#stat a.txt
  File: ‘a.txt’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 201446171   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-02-02 02:02:00.000000000 +0800
Modify: 2020-02-02 02:02:00.000000000 +0800
Change: 2020-03-26 10:28:42.318470961 +0800
 Birth: -

3、总结软连接和硬连接区别,并用实例操作说明。

1、本质:
硬链接:同一个inode,只是多个名字。
软链接:是不同的文件,inode不同
2、跨分区
硬链接无法跨分区、跨设备建立,软链接可以
3、目录
硬链接无法创建目录硬链接,软链接可以
4、相互关系
硬链接没有主次之分,相互独立
软链接依赖于原文件,原文件被删除,软链接即不可用
5、链接数
硬链接会删除增加会影响链接数,软链接不会,因为inode不一样。
6、相对路径
硬链接创建时,原始文件路径是相对于当前路径。
软链接创建时,原始文件路径是 相对于软链接的路径
7、文件类型
硬链接的类型与原始文件类型一致,软链接则会显示 symbolic link
8、创建方式
硬链接创建:ln [原文件] [硬链接]
软链接创建:ln -s [原文件] [软链接]


4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

ls:列出当前目录的内容或指定目录
用法:ls [options] [files_or_dirs]
示例
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序

touch
格式:touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建

cp 复制
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中
基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容
填充至新文件中
复制文件和目录cp
cp SRC... DEST
SRC... 多个文件
DEST 必须存在,且为目录,其它情形均会出错
cp SRC DEST
SRC是目录:此时使用选项:-r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
cp常用选项
 -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 目标存在,覆盖前先备份加数字后缀

mv 移动
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份

rm 删除
rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/

关于目录的操作
cd 改变目录
使用绝对或相对路径:
cd /home/wang/
cd home/wang
切换至父目录: cd ..
切换至当前用户主目录: cd
切换至以前的工作目录: cd - 选项:-P

相关的环境变量:
pwd:当前目录路径
OLDPWD:上一次目录路径

tree 显示目录树(命令需要另外安装)
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
rm -r 递归删除目录树


5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符

[root@centos ~]#cp /etc/profile /tmp/

第二周作业

第二周作业


6、在vim中设置tab缩进为4个字符

临时生效:用vim打开一个文件,在扩展的命令行模式里,输入:set ts=4;
永久生效:写set tabstop=4进/root/.vimrc配置文件里

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!