第二周作业

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

文件和目录被组织成一个单根倒置树结构;文件系统从根目录下开始,用“/”表示;根文件系统(rootfs):root file system;文件名称严格区分大小写;以.开头的文件为隐藏文件;文件名最长255个字节;包含路径在内文件名称最长4096字节;蓝色表示目录,绿色表示可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其他文件;每个文件都有两类相关数据:元数据(metadate)即属性,数据(date)即文件内容。

Linux系统分层结构:FHS(Filesystem Hierarchy Standard)文件系统层级标准

系统目录用途

/bin:所有用户使用的基础命令程序文件

/boot:引导加载器必须要使用的各静态文件,如kernel、ramfs、grub、bootload等

/dev:设备文件和特殊文件存储位置

/etc:系统程序的静态配置文件

/home:普通的家目录的几种位置,一般每一个普通用户的家目录默认为此目录下与用户名同名的子目录

/lib:为系统启动或者根文件系统上的应用程序提供共享库,以及为内核提供内核模块

/lib64:特定字长系统上的库文件,如64位系统上为/lib64

/mnt:挂载点目录,通常挂载额外的临时文件系统

/media:挂载点目录,通常用来挂载移动设备

/opt:第三方应用程序的安装位置

/sbin:供管理员使用的工具程序

/srv:系统上运行的服务用到的数据

/tmp:临时文件

/usr:全局共享的只读数据路径

/var:频繁发生变化的文件,日志文件,缓存数据,应用程序数据池,锁文件,运行中的进程相关数据等

/root:管理员的家目录

/proc:虚拟文件系统,用于为内核及进程存储其相关信息

/run:存放动态的,持久的应用程序运行数据

/selinux:selinux相关的安全策略等信息的存储位置

2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

File:文件名称

Size:文件大小

Blocks:占用的磁盘块数

IO Blocks:IO块大小

regular file:显示文件类型

Device:所在设备

Inode:Inode节点号

Links:被链接的次数

Access:访问权限

Uid:属主ID

Gid:属组ID

Access:文件最近一次访问时间(读取文件内容)

Modify:文件修改时间(文件内容改变)

Change:文件改变时间(文件元数据改变)

通过stat命令查看:stat FILENAME

通过touch命令修改文件时间戳信息:touch [option]... FILE...

常用选项:

  • -a:仅改变atime和ctime
  • -m:仅改变ctime和mtime
  • -t:指定atime和mtime的时间戳
  • -c:如果文件不存在,则不予创建

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

硬链接和软链接区别:

  • 硬链接是同一个文件,节点编号相同,软链接不是同一个文件
  • 软链接可以跨分区,硬链接不支持
  • 创建或删除硬链接连接数会相应增减,删除源文件链接数减一,不影响链接文件访问;创建或删除软链接,链接数不会增减,删除源文件链接文件将无法访问
  • 硬链接的inode号相同,软链接不同
  • 硬链接的文件大小和原始文件相同,软链接只是一个链接文件
  • 硬链接原始文件相对路径是相对当前工作目录,软链接原始文件相对路径是相对于链接文件的相对路径
  • 软链接支持目录,硬链接不支持目录
  • 硬链接文件类型和源文件相同,软链接文件类型和源文件无关
[15:31:08 root@centos8-01 data]#ln /etc/passwd /data/passwd
[15:31:55 root@centos8-01 data]#ll passwd 
-rw-r--r-- 2 root root 1837 Nov 24 11:21 passwd
[15:32:28 root@centos8-01 data]#stat passwd /etc/passwd
  File: passwd
  Size: 1837      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 16935841    Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 15:31:59.430153050 +0800
Modify: 2020-11-24 11:21:13.189484186 +0800
Change: 2020-11-30 15:31:49.257034575 +0800
 Birth: -
  File: /etc/passwd
  Size: 1837      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 16935841    Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 15:31:59.430153050 +0800
Modify: 2020-11-24 11:21:13.189484186 +0800
Change: 2020-11-30 15:31:49.257034575 +0800
 Birth: -
[15:33:06 root@centos8-01 data]#ll /etc/passwd
-rw-r--r-- 2 root root 1837 Nov 24 11:21 /etc/passwd
[15:34:44 root@centos8-01 data]#ln /etc/fstab /boot/test
ln: failed to create hard link '/boot/test' => '/etc/fstab': Invalid cross-device link
[15:35:28 root@centos8-01 data]#ln /etc /data/etc
ln: /etc: hard link not allowed for directory


[15:36:15 root@centos8-01 data]#ln -s /etc/fstab /data/fstab
[15:36:49 root@centos8-01 data]#ll /data/fstab 
lrwxrwxrwx 1 root root 10 Nov 30 15:36 /data/fstab -> /etc/fstab
[15:36:55 root@centos8-01 data]#mv /etc/fstab /etc/fstab.bak
[15:36:59 root@centos8-01 data]#cat fstab 
cat: fstab: No such file or directory
[15:37:31 root@centos8-01 data]#ll
lrwxrwxrwx  1 root root    10 Nov 30 15:36 fstab -> /etc/fstab
[15:38:57 root@centos8-01 data]#ln -s /etc/ /data/etc
[15:39:08 root@centos8-01 data]#ll /data/etc
lrwxrwxrwx 1 root root 5 Nov 30 15:39 /data/etc -> /etc/
[15:39:29 root@centos8-01 data]#ln -s /etc/fstab /boot/test
[15:40:27 root@centos8-01 data]#ll /boot/test
lrwxrwxrwx 1 root root 10 Nov 30 15:40 /boot/test -> /etc/fstab
[15:40:33 root@centos8-01 data]#stat /etc/fstab /boot/test
  File: /etc/fstab
  Size: 579       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 16777347    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 13:06:50.426906512 +0800
Modify: 2020-10-30 10:56:09.169449069 +0800
Change: 2020-11-30 15:38:34.125749691 +0800
 Birth: -
  File: /boot/test -> /etc/fstab
  Size: 10        	Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d	Inode: 308         Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 15:40:33.815143603 +0800
Modify: 2020-11-30 15:40:27.301067739 +0800
Change: 2020-11-30 15:40:27.301067739 +0800
 Birth: -

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

pwd:显示当前工作目录

[14:20:58 root@centos8-01 scripts]#pwd
/data/scripts
[14:21:54 root@centos8-01 bin]#pwd -P
/usr/bin

cd:切换目录

[14:23:00 root@centos8-01 data]#cd /data/scripts/
[14:23:23 root@centos8-01 scripts]#cd ..
[14:23:26 root@centos8-01 data]#cd -
/data/scripts
[14:23:27 root@centos8-01 scripts]#
[14:23:27 root@centos8-01 scripts]#echo $OLDPWD
/data
[14:23:53 root@centos8-01 scripts]#echo $PWD
/data/scripts

ls:列出当前目录内容或指定目录

[14:23:59 root@centos8-01 scripts]#ls
arg.sh      checkdisk.sh     excute.sh    nologin.sh   rm.sh       yesorno.sh
argsnum.sh  checkint.sh      filetype.sh  per.sh       test10.sh
backetc.sh  chook_rabbit.sh  hostping.sh  pspcinfo.sh  test.sh
bmi.sh      creatuser.sh     login.sh     reset.sh     usr.tar.gz
[14:24:52 root@centos8-01 scripts]#ls /data/
bak.sh   err.log  home.tar      nianling.txt    scripts  spacefile  test10.txt
bc.log   f2.txt   kernel        parent.sh       sed      sql.log
dpt.img  hello.c  messages.zip  partition-sda1  son.sh   test
[14:24:56 root@centos8-01 scripts]#ll
total 76
-rwxr-xr-x. 1 root root  558 Nov 15 10:23 arg.sh
-rwxr-xr-x  1 root root  456 Nov 17 11:05 argsnum.sh
-rwxr-xr-x  1 root root  498 Nov 16 14:18 backetc.sh
-rwxr-xr-x  1 root root  372 Nov 17 17:05 bmi.sh
-rwxr-xr-x  1 root root  670 Nov 17 13:45 checkdisk.sh
-rwxr-xr-x  1 root root  636 Nov 18 10:43 checkint.sh
-rwxr-xr-x  1 root root  492 Nov 16 15:51 chook_rabbit.sh
-rwxr-xr-x  1 root root  730 Nov 18 09:08 creatuser.sh
-rwxr-xr-x  1 root root  469 Nov 17 14:21 excute.sh
-rwxr-xr-x  1 root root  764 Nov 18 09:51 filetype.sh
-rwxr-xr-x  1 root root  516 Nov 17 11:24 hostping.sh
-rwxr-xr-x  1 root root  460 Nov 17 16:28 login.sh
-rwxr-xr-x  1 root root  436 Nov 17 16:26 nologin.sh
-rwxr-xr-x  1 root root  494 Nov 17 14:10 per.sh
-rwxr-xr-x. 1 root root 1062 Nov 15 10:15 pspcinfo.sh
-rwxr-xr-x  1 root root 3908 Nov 20 18:47 reset.sh
-rwxr-xr-x. 1 root root  521 Nov 15 10:49 rm.sh
-rwxr--r--  1 root root  405 Nov 26 14:09 test10.sh
-rw-r--r-x  1 root root    0 Nov 18 19:22 test.sh
-rw-r--r--  1 root root    0 Nov 19 13:14 usr.tar.gz
-rwxr-xr-x  1 root root  582 Nov 18 09:37 yesorno.sh
[14:25:35 root@centos8-01 scripts]#ls -a ~
.                bak.sh         .bashrc   .lesshst  .viminfo
..               .bash_history  .config   .local    vimplus-master.zip
abc.txt          .bash_logout   .cshrc    .ssh      .vimrc
anaconda-ks.cfg  .bash_profile  hello.sh  .tcshrc

stat:查看文件状态

[14:25:45 root@centos8-01 scripts]#stat login.sh 
  File: login.sh
  Size: 460       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 51104259    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-17 16:28:39.244581347 +0800
Modify: 2020-11-17 16:28:39.244581347 +0800
Change: 2020-11-18 19:22:04.641666462 +0800
 Birth: -

file:确定文件内容

[14:27:02 root@centos8-01 scripts]#file checkdisk.sh 
checkdisk.sh: Bourne-Again shell script, ASCII text executable
[14:27:17 root@centos8-01 scripts]#file /data/sql.log 
/data/sql.log: ASCII text

touch:创建空文件和刷新时间

[14:29:17 root@centos8-01 test]#touch p1.txt
[14:29:29 root@centos8-01 test]#stat p1.txt
  File: p1.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 34366307    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 14:29:29.462231223 +0800
Modify: 2020-11-30 14:29:29.462231223 +0800
Change: 2020-11-30 14:29:29.462231223 +0800
 Birth: -
[14:29:40 root@centos8-01 test]#ls
p1.txt
[14:29:43 root@centos8-01 test]#ll
total 0
-rw-r--r-- 1 root root 0 Nov 30 14:29 p1.txt
[14:30:12 root@centos8-01 test]#echo "123" > p1.txt
[14:30:25 root@centos8-01 test]#stat p1.txt 
  File: p1.txt
  Size: 4         	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 34366307    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-30 14:30:25.880902800 +0800
Modify: 2020-11-30 14:30:18.551818920 +0800
Change: 2020-11-30 14:30:18.551818920 +0800
 Birth: -

cp:复制文件和目录

[14:31:01 root@centos8-01 test]#cp -a /etc/fstab .
[14:31:48 root@centos8-01 test]#ll
total 8
-rw-r--r--. 1 root root 579 Oct 30 10:56 fstab
-rw-r--r--  1 root root   4 Nov 30 14:30 p1.txt
[14:31:59 root@centos8-01 test]#ll /etc/fstab 
-rw-r--r--. 1 root root 579 Oct 30 10:56 /etc/fstab
[14:32:16 root@centos8-01 test]#cp -r /etc/ .
[14:35:11 root@centos8-01 test]#ls
etc  fstab  p1.txt
[14:35:14 root@centos8-01 test]#ls etc/
adjtime                  gshadow-                  profile.d
aliases                  gss                       protocols
alternatives             gssproxy                  rc0.d
anacrontab               host.conf                 rc1.d
audit                    hostname                  rc2.d
authselect               hosts                     rc3.d
autofs.conf              httpd                     rc4.d

mv:移动或者重命名文件

[14:35:18 root@centos8-01 test]#ll
total 20
drwxr-xr-x  84 root root 8192 Nov 30 14:35 etc
-rw-r--r--.  1 root root  579 Oct 30 10:56 fstab
-rw-r--r--   1 root root    4 Nov 30 14:30 p1.txt
[14:42:46 root@centos8-01 test]#mv fstab p2.txt
[14:43:02 root@centos8-01 test]#ls
etc  p1.txt  p2.txt
[14:43:03 root@centos8-01 test]#mv etc/passwd .
[14:43:27 root@centos8-01 test]#ls
etc  p1.txt  p2.txt  passwd

rm:删除文件

[15:17:32 root@centos7-7 data]#ll
total 564
-rw-r--r--. 1 root root    145 Nov 10 17:17 diff.patch
-rw-r--r--. 1 root root     14 Nov 10 17:18 f1.txt
-rw-r--r--. 1 root root     15 Nov 10 17:14 f1.txt.orig
-rw-r--r--. 1 root root    465 Nov 10 16:09 fstab.log
-rw-r--r--. 1 root root     13 Nov 10 16:32 hello.c
-rw-r--r--. 1 root root    142 Nov 10 16:32 hello.i
-rw-r--r--. 1 root root     49 Nov 10 16:10 issue.log
-rw-------. 1 root root 542560 Nov 10 16:12 mes.log
-rw-r--r--. 1 root root   1322 Nov 11 10:18 passwd.log
[15:17:34 root@centos7-7 data]#
[15:17:34 root@centos7-7 data]#rm f1.txt
rm: remove regular file ‘f1.txt’? y
[15:17:39 root@centos7-7 data]#rm -rf f1.txt.orig 
[15:17:46 root@centos7-7 data]#
[15:17:46 root@centos7-7 data]#ls
diff.patch  fstab.log  hello.c  hello.i  issue.log  mes.log  passwd.log
[15:17:47 root@centos7-7 data]#ll
total 556
-rw-r--r--. 1 root root    145 Nov 10 17:17 diff.patch
-rw-r--r--. 1 root root    465 Nov 10 16:09 fstab.log
-rw-r--r--. 1 root root     13 Nov 10 16:32 hello.c
-rw-r--r--. 1 root root    142 Nov 10 16:32 hello.i
-rw-r--r--. 1 root root     49 Nov 10 16:10 issue.log
-rw-------. 1 root root 542560 Nov 10 16:12 mes.log
-rw-r--r--. 1 root root   1322 Nov 11 10:18 passwd.log

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

[15:20:18 root@centos7-7 ~]#cp /etc/profile /tmp
[15:20:34 root@centos7-7 ~]#ll /tmp/
total 4
-rw-r--r--. 1 root root 1819 Nov 30 15:20 profile
[15:26:09 root@centos7-7 ~]#vim /tmp/profile 
:%s/^[[:space:]]\+//

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

vim ~/.vimrc 
set expandtab
set tabstop=4
source  ~/.vimrc 
posted @ 2020-11-30 15:28  gody2019  阅读(78)  评论(0)    收藏  举报