1、描述Linux发行版的系统目录名称命名规则及用途。
标准的Linux文件系统,文件名称大小写敏感。以.为开头的文件为隐藏文件。路径以/为分隔。文件名最长255个字节,包括路径在内文件名称最长4095个字节。除了斜杠和null外,所有的字符都有效,但是不太推荐使用特殊字符的目录名和文件名。以下是系统的一些常见目录及其用途:
/boot #引导文件存放目录,各种与内核相关的文件都存放在此
/bin #所有用户使用的基本命令
/sbin #管理类的基本命令
/lib #各种共享库文件
/lib64 #专用于x86系统的共享库文件存放位置
/etc #配置文件存放处
/home/USERNAME #普通用户家目录所在处
/root #管理员的家目录
/media #移动设备挂载点
/mnt #临时系统挂载点
/dev #设备文件及特殊文件存储位置
/opt #第三方应用该程序的安装位置
/srv #系统上运行的服务用到的数据
/tmp #临时文件存储位置
/usr #一些系统通用共享的一些文件
/var #系统内的一些可变数据存储位置
/proc #用于输出内核与进程信息相关的虚拟文件系统
/sys #用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux #selinux相关的安全策略等信息的存储位置
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件的元数据信息一般包含:文件的大小,文件的访问时间atime,文件的数据修改时间mtime,文件的元数据发生改变时间ctime,文件类型,文件的访问权限,UID,GID,节点号,链接数等,用stat命令查看文件元数据
[13:26:48 root@CentOS8/home/liu]$stat test.log
File: test.log
Size: 27 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 202576925 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2020-12-09 16:24:40.292609611 +0800
Modify: 2020-12-02 20:48:37.457889402 +0800
Change: 2020-12-02 20:48:37.457889402 +0800
Birth: -
3、总结软链接和硬链接的区别,并用实例操作说明。
本质上:文件的硬链接和原文件是同一个文件,软链接和原文件是不同的文件,软链接是一个快捷方式文件
[16:17:26 root@CentOS8/home/liu/data]$ln test1.txt test2.txt
[16:18:51 root@CentOS8/home/liu/data]$ln -s test1.txt test3.txt
[16:19:19 root@CentOS8/home/liu/data]$ls -l
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test1.txt
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test2.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:19 test3.txt -> test1.txt
跨设备:软链接支持跨设备创建,硬链接不支持跨设备创建
[16:49:34 root@CentOS8/home/liu/data]$ln test1.txt /data/test5.txt
ln: failed to create hard link '/data/test5.txt' => 'test1.txt': Invalid cross-device link
[16:49:47 root@CentOS8/home/liu/data]$ln -s test1.txt /data/test5.txt
[16:49:57 root@CentOS8/home/liu/data]$ls -l /data
lrwxrwxrwx. 1 root root 9 Dec 13 16:49 test5.txt -> test1.txt
inode:硬链接文件的inode和原文件相同,软链接文件的Inode和原文件不同
[16:20:40 root@CentOS8/home/liu/data]$stat test1.txt
File: test1.txt
Size: 2782 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 202199025 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2020-12-13 16:17:02.877252158 +0800
Modify: 2020-12-13 16:17:02.878252158 +0800
Change: 2020-12-13 16:18:50.412255593 +0800
Birth: -
[16:19:20 root@CentOS8/home/liu/data]$stat test2.txt
File: test2.txt
Size: 2782 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 202199025 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2020-12-13 16:17:02.877252158 +0800
Modify: 2020-12-13 16:17:02.878252158 +0800
Change: 2020-12-13 16:18:50.412255593 +0800
Birth: -
[16:20:35 root@CentOS8/home/liu/data]$stat test3.txt
File: test3.txt -> test1.txt
Size: 9 Blocks: 0 IO Block: 4096 symbolic link
Device: 802h/2050d Inode: 202198154 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2020-12-13 16:19:20.546256556 +0800
Modify: 2020-12-13 16:19:18.320256485 +0800
Change: 2020-12-13 16:19:18.320256485 +0800
Birth: -
链接数:创建新的硬链接,链接数会增加,删除硬链接,链接数会减小;软链接创建和删除,链接数不变
[16:50:56 root@CentOS8/home/liu/data]$ln test1.txt test6.txt
[16:51:57 root@CentOS8/home/liu/data]$ln -s test1.txt test7.txt
[16:52:41 root@CentOS8/home/liu/data]$ls -l
-rw-r--r--. 3 root root 2782 Dec 13 16:17 test1.txt
-rw-r--r--. 3 root root 2782 Dec 13 16:17 test2.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:19 test3.txt -> test1.txt
-rw-r--r--. 3 root root 2782 Dec 13 16:17 test6.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:52 test7.txt -> test1.txt
[16:52:44 root@CentOS8/home/liu/data]$rm -rf test6.txt
[16:53:31 root@CentOS8/home/liu/data]$rm -rf test7.txt
[16:53:41 root@CentOS8/home/liu/data]$ls -l
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test1.txt
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test2.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:19 test3.txt -> test1.txt
文件夹:不能对文件夹创建硬链接,但是可以对文件夹创建软链接
[16:54:55 root@CentOS8/home/liu/data]$ln dir1 dir1s
ln: dir1: hard link not allowed for directory
[16:55:11 root@CentOS8/home/liu/data]$ln -s dir1 dir1s
[16:55:24 root@CentOS8/home/liu/data]$ls -l
drwxrwxr-x. 2 liu liu 6 Dec 9 16:04 dir1
lrwxrwxrwx. 1 root root 4 Dec 13 16:55 dir1s -> dir1
相对路径:创建硬链接时,原文件的相对路径是相对与当前工作目录;创建软链接时,原文件的相对路径是相对于链接文件的相对路径
[17:23:17 root@CentOS8/home/liu]$cat test.log
i love you
[17:22:20 root@CentOS8/home/liu/data]$ln -s ../test.log dir2/test.log.link
[17:22:45 root@CentOS8/home/liu/data/dir2]$ls -l
lrwxrwxrwx. 1 root root 11 Dec 13 17:22 test.log.link -> ../test.log
[17:22:47 root@CentOS8/home/liu/data/dir2]$cat test.log.link
cat: test.log.link: No such file or directory
原文件的删除:删除硬链接的原文件是,链接数减一,但访问不受影响,当链接数减为0时,文件不存在。删除软链接的原文件,链接文件将无法访问
[16:55:24 root@CentOS8/home/liu/data]$ln test1.txt test2.txt
[16:55:24 root@CentOS8/home/liu/data]$ln -s test1.txt test3.txt
[16:55:24 root@CentOS8/home/liu/data]$ls -l
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test1.txt
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test2.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:19 test3.txt -> test1.txt
[16:55:26 root@CentOS8/home/liu/data]$rm -rf test1.txt
[16:57:18 root@CentOS8/home/liu/data]$cat test2.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[16:57:24 root@CentOS8/home/liu/data]$cat test3.txt
cat: test3.txt: No such file or directory
文件类型:硬链接文件的文件类型与原文件相同,软链接文件的类型与原文件无关
[16:55:24 root@CentOS8/home/liu/data]$ln test1.txt test2.txt
[16:55:24 root@CentOS8/home/liu/data]$ln -s test1.txt test3.txt
[16:55:24 root@CentOS8/home/liu/data]$ls -l
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test1.txt
-rw-r--r--. 2 root root 2782 Dec 13 16:17 test2.txt
lrwxrwxrwx. 1 root root 9 Dec 13 16:19 test3.txt -> test1.txt
4、Linux上的文件管理命令都有哪些,其常用的使用方法机器相关示例演示。
创建文件
[17:25:59 root@CentOS8/home/liu]$touch test9.txt
创建目录
[17:26:07 root@CentOS8/home/liu]$mkdir dir1
查看文件
[17:27:58 root@CentOS8/home/liu]$cat test9.txt
i love you
更改目录
[17:28:02 root@CentOS8/home/liu]$cd dir
[17:29:43 root@CentOS8/home/liu/dir1]$cd .. #返回上一级目录
列出目录内容
[17:31:31 root@CentOS8/home/liu/dir1]$ls
file1.txt file2.log file3.log file4.log
-a 包含隐藏文件
-l 显示额外信息
-R 目录递归
-ld 不展示目录内文件
-1 文件分行显示
-t 按mtime时间排序
复制文件和目录
cp [option]... 源文件(一个) 目标文件
cp [option]... 源文件(多个) 目标文件夹
cp [option]... -t 目标文件夹 源文件(多个)
[17:38:16 root@CentOS8/home/liu/dir1]$cp file1.txt ../dir2/file1.txt.bak
[17:38:19 root@CentOS8/home/liu/dir1]$cd ../dir2
[17:38:26 root@CentOS8/home/liu/dir2]$ls -l
total 4
-rw-r--r--. 1 root root 2782 Dec 13 17:38 file1.txt.bak
-i 如果目标已存在,覆盖前提示
-n 不覆盖
-r,-R 递归复制目录及内部所有内容
--preserv=mode/ownership/timestamp/links/xattr/context/all 复制保留一部分属性
-a 归档=--preserv=all
-d 不复制原文件,只复制链接名
-p 复制文件的所有属性
-b 目标存在时,覆盖前先备份filename~形式
--backup=numbered 目标存在,覆盖前先备份加数字后缀,可以保留多个版本
移动文件(用法同cp)
[18:09:46 root@CentOS8/home/liu]$mv win.txt dir1
删除文件(用法同mv)
[18:09:57 root@CentOS8/home/liu]$rm -rf win.txt
显示目录树
[18:11:52 root@CentOS8/home/liu]$tree dir1
dir1
├── file1.txt
├── file2.log
├── file3.log
├── file4.log
└── win.txt
5、复制/etc/profile至/tmp目录下,用查找替换命令删除/tmp/profile文件中的行首的空白字符。
[18:12:42 root@CentOS8~]$cp -p /etc/profile /tmp
[18:13:16 root@CentOS8~]$cd /tmp
[18:13:23 root@CentOS8/tmp]$ls -l profile
-rw-r--r--. 1 root root 2123 Apr 7 2020 profile
6、在vim中设置tab缩进为4个字符。
临时设置
用vim打开文件,在拓展命令模式下设置set tabstop=4即可
:set tabstop=4
永久设置
/etc/vimrc文件里新增一条配置
set tabstop=4