第二周作业
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