▲就业班和全程班的小伙伴看这里:(学习老王视频的作业第3-4节)
1、描述Linux发行版的系统目录名称命名规则以及用途。
1)目录名称命名规则
1.1、文件名最长255个字节,包括路径在内文件名称最长4095个字节
1.2、蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
1.3、除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
1.4、标准Linux文件系统(如ext4),文件名称大小写敏感 例如:MAIL, Mail, mail, mAiL
2)目录用途
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
1)描写文件的元数据:是指文件的属性、大小、创建时间、访问时间、属主属组等信息.
2)在Linux中,用stat命令查看文件的元数据,例如:
其中各项的含义描述:
File:文件名
Size:文件大小(单位:byte)
Blocks:文件占用的数据块个数
IO Block:文件所占用数据块的块容量(单位:byte)
regular file:普通文件(文件类型)
Device:设备号(十六进制/十进制)
Inode:索引节点
Links:硬连接数(1代表没有其它的硬连接)
Access:第一个Access,权限(八进制/rwx格式)
Uid:所属主(ID号/名称)
Gid:所属组(ID号/名称)
Access:第二个Access,最近访问时间,也可以理解为读时间
Modify:最近数据修改时间
Change:最近元数据修改时间
Birth:创建时间
3)用touch命令修改文件的时间戳信息:
格式:touch [OPTION]...FILE...
-a 仅改变 atime 和 ctime
-m 仅改变 mtime 和 ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
其中,atime是第二个Access的时间戳,mtime是指Modify时间戳,ctime是指Change时间戳。
3、总结软连接和硬连接区别,并用实例操作说明。
1、本质不同:硬链接是指向同一个文件(inode号相同),软链接指向的不是同一个文件(inode号不同)
2、创建链接时:创建硬链接链接数加1,创建软链接连接数不变
3、删除时:硬链文件接不受影响但链接数减少;软链接失效
4、是否可以跨分区:硬链接不可以跨分区,软链接可以跨分区
5、目录是否可以创建链接:硬链接不可以对目录创建,软链接可以对目录创建
6、文件类型不同
7、创建命令不同:硬链接为 ln;软链接为 ln -s
8、相对路径不同:硬链接为文件所在文件夹的相对路径;软链接为原始文件与软链接文件所在路径的相对
【举例】
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1)cd
【描述】:命令用来切换工作目录
【语法】:cd [-L|[-P [-e]]] [dir]
【选项】:
-P: 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L: 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
- : 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
【常用格式】:
cd :进入用户主目录;
cd ~ : 进入用户主目录;
cd - :返回进入此目录之前所在的目录;
cd .. :返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. :返回上两级目录; cd !$ 把上个命令的参数作为cd参数使用
2)ls
【功能】:查看目录下文件的详细信息
【语法】:ls 选项[-ald] [文件或目录]
-a:显示所有文件,包括隐藏文件
-l :详细信息显示
-d :查看目录属性
【举例】:
# ls -d /etc/*/ -------- 显示/etc目录下的所有非隐藏的目录
# ls -d /etc/.* --------显示/etc目录下的隐藏文件
3)mkdir
【用途】:创建目录
【格式】:mkdir [OPTION]... DIRECTORY...
-p:自动按需创建父目录
-m:创建目录时给定权限
【示例】:
(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b
# mkdir -p /data/testdir/dir1/{x,y}/{a,b}
(2) 如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,/testdir/dir2/x/b
# mkdir -p /data/testdir/dir2/{x/{a,b},y}
(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7
# mkdir -p /data/testdir/dir{3,4,5/dir{6,7}}
4)rmdir
【用途】:删除目录
【格式】:rmdir [OPTION]... DIRECTORY...
-p:删除目录后如果其父目录为空,则一并删除
【示例】:
rmdir -p /data/test/A --删除A目录后,test目录为空,一并删除
5)cp
【用途】:复制文件
【格式】:
单源复制:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:cp [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
【选项】
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-n :不覆盖,注意两者顺序
-r, -R :递归复制目录及内部的所有内容。常用于文件夹的复制
-a :归档,相当于-dR --preserv=all
-d --no-dereference --preserv=links :不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:links / xattr / context / all
-p 等同--preserv=mode,ownership,timestamp
-v --verbose。复制过程可见
-f --force
-u --update 只复制源比目标更新文件或目标不存在的文件
-b 目标存在,覆盖前先备份,形式为 filename~
--backup=numbered 目标存在,覆盖前先备份加数字后缀
【举例】
1、[endif]每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见,并且要求只复制源比目标更新文件或目标不存在的文件
# cp -r -av -u /etc/ /data/bakup`date +%F`
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
# mkdir -p /data/rootdir
# cp -r --preserv=mode /root /data/rootdir
3、 目标存在,覆盖前先备份加数字后缀
6)mv
【用途】:移动文件
【格式】:
单源移动:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源移动:mv [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-b:目标存在,覆盖前先备份
7)rm
【用途】:删除
【格式】:rm [OPTION]... FILE...
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归处理,将制定目录下的所有文件包括目录一并删除
【举例】删除大文件并立即释放所占空间的正确方法(例:/data/bigfile 文件太大想立即删除并释放磁盘空间)
# > /data/bigfile -----采用重定向的方式将bigfile文件内容清空
# ll /data/bigfile -----查看bigfile文件占用空间为0
# df -h -----查看磁盘占用率是否得到缓解
# rm -f /data/bigfile -----彻底删除bigfile文件
8)cat
【用途】:正向查看文本内容
【格式】:cat [OPTION]... [FILE]...
-n:给显示的文本行编号
-E:显示行结束符号$
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
[root@centos7 ~]#cp /etc/profile /tmp
[root@centos7 /tmp]#vim profile
:%s@^[[:space:]]\+@@g
:wq
6、在vim中设置tab缩进为4个字符
1)临时生效:编辑一个文件,进入之后一次输入 [esc] --> [ : ] --> [ set ts=4 ]
2)永久生效:在~目录中创建一个.vimrc文件,增加内容 set tabstop=4 保存退出。