二、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
posted @ 2020-08-17 10:47  人生值得  阅读(247)  评论(0编辑  收藏  举报