二、Linux 文件管理与结构
1.描述Linux发行版的系统目录名称命名规则以及用途。
Linux系统基础目录的命名法则:
- 遵循FHS(Filesystem Hierarchy Standard)标准;
- 文件名最长255个字节;
- 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们;
- 严格区分大小写;
- 目录也是文件,在同一路径下,两个文件不能同名。
Linux发行版基本目录架构及用途描述:
2.描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
- 文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息;
- 三个时间戳:
- access time:访问时间,简写atime,读写文件内容
- modify time: 修改时间,mtime,改变文件内容(数据)
- change time:改变时间,ctime,元数据发生改变
- 修改文件的时间戳:touch
- touch - change file timestamps
- -c: 指定的文件路径不存在时不予创建;
- -a: 仅修改access time;
- -m:仅修改modify time;
- -t STAMP
3.总结软链接和硬链接的区别,并用实例操作说明。
硬链接:本质时对同一个文件起多个文件名。所以表现为一个inode号可以对应多个文件名。
特性:
- 创建硬链接会增加额外的记录项以引用文件;
- 对应于同一文件系统上一个物理文件;
- 每个目录引用相同的inode号;
- 创建时链接数递增;
- 删除文件时:
- rm命令递减计数的链接
- 文件要存在,至少有一个链接数
- 当链接数为零时,该文件被删除
- 不能跨越驱动器或分区
实例:
[root@localhost data]# ll -i
total 24
644 drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
67160128 drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
647 -rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
67 -rw-r--r--. 1 root root 20 Aug 7 11:41 f1.txt
33555198 drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
646 -rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
100663962 drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# ln f1.txt file.txt
[root@localhost data]# ll -i
total 28
644 drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
67160128 drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
647 -rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
67 -rw-r--r--. 2 root root 20 Aug 7 11:41 f1.txt
67 -rw-r--r--. 2 root root 20 Aug 7 11:41 file.txt
33555198 drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
646 -rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
100663962 drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# rm file.txt
rm: remove regular file ‘file.txt’? y
[root@localhost data]# ll -i
total 24
644 drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
67160128 drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
647 -rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
67 -rw-r--r--. 1 root root 20 Aug 7 11:41 f1.txt
33555198 drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
646 -rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
100663962 drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
软链接:就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的inode号以及用户数据块。
特性:
- 一个符号链接指向另一个文件;
- ls - l的 显示链接的名称和引用的文件;
- 一个符号链接的内容是它引用文件的名称;
- 可以对目录进行;
- 可以跨分区;
- 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
实例:
[root@localhost data]# ll
total 24
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 20 Aug 7 11:41 f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# ln -s f1.txt file.txt
[root@localhost data]# ll
total 24
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 20 Aug 7 11:41 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# rm f1.txt
rm: remove regular file ‘f1.txt’? y
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# touch f1.txt
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 0 Aug 10 16:57 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
4.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
目录命令:mkdir,mv,cp,rm
实例:
[root@localhost data]# mkdir test
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 0 Aug 10 16:57 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 2 root root 6 Aug 10 17:08 test
drwxr-xr-x. 7 root root 66 Aug 7 15:41 testdir
[root@localhost data]# mv test testdir
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 0 Aug 10 16:57 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 8 root root 78 Aug 10 17:08 testdir
[root@localhost data]# cp testdir test
cp: omitting directory ‘testdir’
[root@localhost data]# cp -a testdir/ test/
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 0 Aug 10 16:57 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
drwxr-xr-x. 8 root root 78 Aug 10 17:08 test
drwxr-xr-x. 8 root root 78 Aug 10 17:08 testdir
[root@localhost data]# rm -rf test/ testdir/
[root@localhost data]# ll
total 20
drwxr-xr-x. 3 root root 27 Aug 10 14:08 backup
drwxr-xr-x. 78 root root 8192 Aug 7 14:42 backup2020-08-07
-rw-r--r--. 1 root root 532 Aug 10 14:08 backup.sh
-rw-r--r--. 1 root root 0 Aug 10 16:57 f1.txt
lrwxrwxrwx. 1 root root 6 Aug 10 16:57 file.txt -> f1.txt
drwxr-xr-x. 3 root root 18 Aug 7 15:10 rootdir
-rw-r--r--. 1 root root 998 Aug 10 12:01 sysinfo.sh
文件指令:cat,more,less,head,tail,wc
实例:
[root@localhost data]# touch file.txt
[root@localhost data]# vim file.txt
[root@localhost data]# cat file.txt
welcome to shenzhen!
hello, world !
[root@localhost data]# cat file.txt |head -1
welcome to shenzhen!
[root@localhost data]# cat file.txt |tail -2
hello, world !
[root@localhost data]# wc file.txt -l
3 file.txt
用户指令:useradd,usermod,userdel
实例:
[root@localhost data]# useradd test
[root@localhost data]# cat /etc/passwd |tail -10
varnish:x:1011:1012::/home/varnish:/bin/bash
mysql:x:1012:1013::/home/mysql:/sbin/nologin
docker:x:1013:1014::/home/docker:/bin/bash
mongodb:x:1014:1015::/home/mongodb:/bin/bash
redis:x:1015:1016::/home/redis:/bin/bash
zabbix:x:1016:1017::/home/zabbix:/bin/bash
tomcat:x:1017:1018::/home/tomcat:/bin/bash
git:x:1018:1020::/home/git:/bin/bash
linux:x:1019:1023::/home/linux:/bin/bash
test:x:1020:1024::/home/test:/bin/bash
[root@localhost data]# usermod -aG test git
[root@localhost data]# id test
uid=1020(test) gid=1024(test) groups=1024(test)
[root@localhost data]# id git
uid=1018(git) gid=1020(git) groups=1020(git),1024(test)
[root@localhost data]# userdel -r test
userdel: user 'test' does not exist
组别操作:groupadd,groupmod,groupdel
实例:
[root@localhost data]# groupadd linuxso
[root@localhost data]# groupmod -n linux linuxso
groupmod: group 'linux' already exists
[root@localhost data]# groupmod -n test linuxso
[root@localhost data]# cat /etc/group |tail -5
apps:x:1019:
git:x:1020:
dbs:x:1022:
linux:x:1023:
test:x:1024:
[root@localhost data]# groupdel test
[root@localhost data]# cat /etc/group |tail -5
tomcat:x:1018:
apps:x:1019:
git:x:1020:
dbs:x:1022:
linux:x:1023:
5.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符。
# :%s@^[[:blank:]]\+@@g
6.在vim中设置tab缩进为4个字符。
[root@localhost ~]# vim .vimrc
set ts=4