马哥教育N48-第二周作业
1、描述Linux发行版的系统目录名称命名规则以及用途。
以centos7为例,用tree命令列出/下一级目录 tree -d -L 1 /:
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
/dev:存储特殊文件或设备文件;
设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态;
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
libc.so.:动态链接的C库;
ld:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom, floppy等;
/mnt:其它文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
bin, sbin
lib, lib64
include:C程序头文件;
share:命令手册页和自带文档等架构特有的文件的存储位置
local:另一个层级目录;
X11R6:X-Window程序的安装位置
src:程序源码文件的存储位置
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy,存储常发生变化的数据的目录;
cache Application cache data
lib Variable state information
local Variable data for /usr/local
lock Lock files
log Log files and directories
opt Variable data for /opt
run Data relevant to running processes
spool Application spool data
tmp Temporary files preserved between system reboots
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳
信息?
元数据:metadata
数据:data
可以用stat命令查看文件的一些元数据
简单的介绍一下stat命令显示出来的文件其他信息:
- File:显示文件名
- Size:显示文件大小
- Blocks:文件使用的数据块总数
- IO Block:IO块大小
- regular file:文件类型(常规文件)
- Device:设备编号
- Inode:Inode号
- Links:链接数
- Access:文件的权限
- Gid、Uid:文件所有权的Gid和Uid。
Linux下的三个时间:
- Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
- Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
- Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
以文件类型分可以分为:
-:普通文件;
d:目录文件;
l:链接文件;
b:块设备文件:
c:字符设备文件
s:套接字文件;
还有管道文件**
3、总结软连接和硬连接区别,并用实例操作说明。
软链接
ln -s 原文件 目标文件
特征:1、相当于windows的快捷方式
2、符号链接,所以链接文件大小都很小
3、当运行软连接的时候,会根据链接指向找到真正的文件,然后执行
4、所有链接文件的权限都是777,而真正的权限是由指向的那个文件决定的
5、原文件丢失后,软链接无法访问,会报找不到的错误
6、ls -al ,软连接后面箭头执行的时源文件
硬链接
ln 源文件 目标文件
特征:1、原文件和链接文件的属性完全一样
2、链接文件和源文件的关系类似于:复制+同步更新
3、当原文件丢失,硬链接文件还可以访问
4、不能跨分区,不能针对目录使用
5、原理:原文件和硬链接文件的节点相同的,1个文件名只能对应1个节点号。但是1个节点号能对应多个文件名。所以,他们的属性完全相同,并且修改了其中一个的内容另外一个也会跟着修改。
区别如下:
1、软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的。软连接的inode跟原文件的inode是不一致的
2、硬链接是不会建立inode。他只是在文件原里的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。
3、硬链接是一个文件别名。
4、软链接可以跨文件系统,硬链接不可以
5、软链接可以对一个不存在的文件名进行链接,硬链接不行。
6、软链接可以对目录进行连接,硬连接不可以
7、两种链接都可以通过ln来创建,ln默认创建的是硬链接
8、使用-s开关可以创建软链接。
4、Linux.上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
目录管理命令
ls:列出指定目录下的内容格式:
ls [OPTION]… [FILE]…
-a:显示所有文件包括隐藏文件
-A:显示除.和…之外的所有文件
-l,–long:显示文件的详细属性信息
-h:对文件大小进行单位换算,可能影响精度
-d:查看目录本身而非其内部的文件
-r:逆序显示文件
-R:递归显示文件
示例:ls -lah / --详细显示/目录下的所有文件(包括隐藏文件)
ls -ldh /etc --详细显示/etc目录本身
ls -lhv / --倒序显示/目录下所有文件(包括隐藏文件)
ls -R /etc --递归显示/etc下所有文件
mkdir:创建目录格式:
mkdir [OPTION]… DIRECTORY…
-p:自动按需创建父目录
-m:创建目录时给定权限
示例:mkdir -p /data/test/A/B --在/data目录下递归创建/test/A/B三个目录
mkdir -m 711 -p /data/MODE/A --在/data目录下递归创建MODE/A两个目录同时指定目录A的权限为711
rmdir:删除目录格式:
rmdir [OPTION]… DIRECTORY…
-p:删除目录后如果其父目录为空,则一并删除
示例:rmdir -p /data/test/A --删除A目录后,test目录为空,一并删除
cd:切换目录
示例:cd …:切换到上级目录
cd ~:切换回自己的家目录
cd -:在上一次目录与当前目录直接来回切换
pwd:显示当前目录
(2)文件管理命令——
cp:复制
格式:单源复制:cp [OPTION]… [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:cp [OPTION]… SOURCE… DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归复制目录
示例:cp -if /data/[1-3].txt /data/test --test必须为目录,把三个文件一起复制到test中
cp -r /data /practice --把data目录及目录下的内容一起复制到practice中
mv:剪切
格式:单源复制:mv [OPTION]… [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:mv [OPTION]… SOURCE… DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
示例:mv -i /data/[1-3].txt /practice --把/data目录下三个txt文件剪切到/practice下
rm:删除
格式:rm [OPTION]… FILE…
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归处理,将制定目录下的所有文件包括目录一并删除
示例:rm -rf /practice --递归删除/practice目录
(3)文本内容管理命令
cat:正向查看文本内容
格式:cat [OPTION]… [FILE]…
-n:给显示的文本行编号
-E:显示行结束符号$
示例:cat -n /etc/fstab --查看/etc/fatab内容并显示行号
tac:倒叙查看文本内容
格式:tac [OPTION]… [FILE]…
示例:tac /etc/passwd --倒叙查看文本内容
head:显示文本内容,默认显示头10行
格式:head [OPTION]… [FILE]…
-n #:显示文本头#行内容
示例:head -5 /etc/passwd --显示/etc/passwd文件头5行内容
tail:显示文本内容,默认显示后10行
格式:tail [OPTION]… [FILE]…
-n #:显示文本后#行内容
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
示例:tail -8 /etc/passwd --显示/etc/passwd文件后8行内容
more:分屏显示文本内容,每次显示一屏显示完停止
格式:more [options] file […]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出
less:分屏显示文本内容,不主动退出
格式:less [options] file […]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/ tmp/profile文件中的行首的空
白字符
在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:[[:space:]]*([[:space:]]),输出命令 %s#[[:space:]]*([[:space:]])#\1#g1
6、在vim中设置tab缩进为4个字符
vim .vimrc 输入 set tabstop=4