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配置文件里