1、描述linux发行版的系统目录名称命名规则以及用途
** 命令规则:**
(1)除了斜杠和NUL,所有字符都有效.
(2)有些字符最好不适用,比如空格符、制表符、退格符和字符、特殊符号等.
(3)避免使用+ 、 - 或 .来作为普通文件名的第一个字符
(4)标准Linux文件系统(如ext4 ),对于大小写需要严格区分.
(5)最长不能超过255个字节;
(6)包括路径在内文件名称最长4095个字节
目录用途:
[root@test test]# ls /
bin date etc lib media mysql proc run srv tmp var
boot dev home lib64 mnt opt root sbin sys usr
/bin:存放经常使用的命令
/usr/bin:系统用户使用的应用程序
/sbin:该目录为系统管理员,超级权限这的用户主目录
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序
/selinux:防火墙,存放selinux相关的文件
/boot:存放启动Linux时使用的一些核心文件,包括一些连接文件及镜像文件
/dev:存放Linux的外部设备,在Linux访问设备的方式和访问文件的方式是相同的
/etc:存放系统管理所需要的配置文件和子目录
/src:存放一些服务启动之后需要提取的数据
/usr:应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/src:内核源代码默认存放目录
/var:一般用来存各种日志文件或者,将那些经常被修改的目录放在这个目录下
/home:用户的主目录,每个用户都有自己的目录,一般目录名以用户的账号命名
/lib:存放系统最基本的动态链接共享库,类似于Windows里应用程序都需要用到这些共享库
/media:存放一些硬件设备,比如u盘,光驱,磁盘,识别后会将其挂载在该目录下
/mnt:临时挂载别的文件系统,可以将光驱过去挂载在该目录下就可以看到光驱的内容了
/tmp:存放临时文件
/opt:给主机额外安装软件所摆放的目录。例如安装Oracle数据库就可以放在该目录下。默认为空
/proc:虚拟的目录,它是系统的映射,我们可以通过直接访问这个目录来获取这个系统信息。该目录在内存里。可以通过修改屏蔽主机的ping命令,使别人无法ping你的机器
例如:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/sys:伪终端的devpts文件系统。
目录:路径映射
文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:层级结构,有索引;
/:原初起点:
倒置树状结构;
/dev/pts/2:
最左侧:便是根目录
其它的:表示路径分隔符
Linux的路径分隔符是/
Windows的是
文件的路径表是:
绝对路径:根开始表示出的路径
相对路径:当前位置开始表示出的路径
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件的数据分为两类:一类是数据,为文件的实际内容。一类是元数据,用于描述文件特征: 元数据信息: 文件名 文件大小 文件所在数据块 数据块的大小 文件类型 文件所在的Inode 硬链接次数 权限 属主id 属组id 最近一次访问时间戳 最近一次更改文件内容的时间戳 最近一次更改文件元数据的时间戳 查看元数据: 使用stat命令查看 由于安装的是utf8中文版,显示的信息都是中文的。 stat [OPTION]… FILE… OPTION: -f 输出文件系统的状态,而非文件的状态 -t 显示简要格式的文件元数据信息 FILE:可同时查看多个文件的元数据信息,多个文件以空格分开 测试修改文件时间戳(更改时间戳需要用到touch命令)
touch命令: touch - change file timestamps touch [OPTION]… FILE… 需要注意的是Changetime无法指定进行修改,在atime以及mtime修改后,ctime自动进行更新。 -c: 指定的文件路径不存在时不予创建; -a: 仅修改access time; -m:仅修改modify time; -t STAMP [[CC]YY]MMDDhhmm[.ss]
文件的三个时间戳详细介绍如下: atime:访问时间:读一次文件的内容,这个时间就会更新。比如more、cat等命令。ls、stat命令不会修改atime mtime:修改时间:修改时间是文件内容最后一次被修改的时间。比如:vim操作后保存文件。ls -l列出的就是这个时间 ctime:状态改动时间。是该文件的inode节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。
实例: (1)使用touch命令更改 touch -a 仅修改atime touch -m仅修改mtime touch -c 仅修改ctime
(2)使用cat查看文件文件内容,atime也会随之改变 对文件的内容修改修改后文件的mtime、ctime也会进行更新 修改文件的权限,ctime也会进行更新
3、总结软连接和硬连接的区别,并用实例操作说明
软连接和硬连接区别
硬链接:
1.具有相同inode节点号的多个文件互为硬链接文件;
2.删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;
3.只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
4.硬链接文件是文件的另一个入口;
5.可以通过给文件设置硬链接文件来防止重要文件被误删;
6.可以通过ls -i看到Index;
7.对于静态文件(没有进程正在调用),当硬链接数为0时文件就被删除。注意:如果有进程正在调用,则无法删除或者即使文件名被删除但空间不会释放。
软链接:
1.软链接类似windows系统的快捷方式;
2.软链接里面存放的是源文件的路径,指向源文件;
3.删除源文件,软链接依然存在,但无法访问源文件内容;
4.软链接失效时一般是白字红底闪烁;
5.创建软链接命令 ln -s 源文件 软链接文件;
6.软链接和源文件是不同的文件,文件类型也不同,inode号也不同;
实例:
硬链接:
ln /tmp/test/2.txt /2.txt
软链接
ln -s /tmp/test/1.txt /1.txt
4、linux上文件管理类命令都有哪些,其常用的使用方法及其相关实例演示
(1)stat:查看文件元数据信息
(2)查看文件格式file
-b 列出文件辨识结果,不显示名称
-f 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号低缓输出文件名后默认的”:” 分隔符
-L 查看对应软连接对应的文件类型
(3)查看文件二进制内容hexdump
(4)rename命令
用字符串替换的方式批量改变文件名
语法
rename(参数)
参数
原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。
用法:
rename 批量修改文件名
rename 需要更改的文件名 +向修改文件的名称 +被批量修改的文件路径
例子:将1.txt文件名改为1.bak
cp 复制命令
-i 覆盖提示
-n 不覆盖,共同存在
-r ,-R 递归复制目录已内部所有内容
-a 归档,-dR --preserv=all
-b 目标存在,覆盖前先备份
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_ LIST] 保留属性
mode:权限
ownership:属主属组
timestamp: 时间戳 例:cp -preserv-timestarp fstab /data/fstab
links 链接
xattr
context
all 所有
-p:保留源文件或目录的属性;等同--preserv=mode,ownership,timestamp
-v --verbose 可以看到复制的内容
-f --force 强制(例如权限不够可以使用该项)
cp -av 1.bak 2.txt ../ 复制两个文件到上级目录下(所有)
移动和重命名mv
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
实例
mv /etc/fstab /date/
删除rm
-i 交互式
-f 强制删除
-r 递归
-- no- preserve-root删除/
示例:
rm-rf /* 删除所有
注意:>/boot/bigfile 清空该文件
目录操作
tree 显示目录树
-d:只显示目录
-L level :指定显示的层级数目
-P pattern:只显示由指定pattern匹配到的路径
mkdir创建目录
-p:存在于不报错,且可自动创建所需的各目录
-v:显示详细信息
-m MODE:创建目录时直接指定权限
rmdir删除空目录
-p:递归删除父空目录
-V:显示详细信息
rm -r递归删除目录树
5、复制/etc/profile到/tmp目录,用查找替换命令删除/tmp/profile文件中的行首空白字符
cp -av /etc/profile /tmp cat /tmp/profile | tr -d " "
6、在vim中设置tab缩进为4个字符
编辑文件
vim /tmp/profile
选择在对应想缩进的地方,
输入:set ai ,进入命令模式,回车即可自动缩进
取消 :set noai