1、描述Linux发行版的系统目录名称命名规则以及用途。
Linux系统基础目录的命名法则:
- 严格区分大小写
- 目录也是文件,在同一路径下,两个文件不能同名
- 支持使用除 / 以外的任意字符
- 最长字符不能超过255个字符
Linux 根下目录及用途
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里
/etc 配置文件
/home 用户家目录
/root 超级用户(系统管理员)的主目录
/sbin 存放二进制可执行文件,超级权限用户才能访问
/dev 设备文件
/mnt 临时文件系统的安装点
/boot 存放用于系统引导时使用的各种文件
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
/var 用于存放运行时需要改变数据的文件
2. 描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
元数据信息包含:
File:文件名
Blocks:文件所占块个数
IO Block:每个数据块的大小(单位:B)
regular file:普通文件(此处显示文件的类型)
Inode:文件的Inode号,文件的索引节点号
Links:硬链接次数
Access:权限
Uid:(属主id/属主名)
Gid:(属组id/属组名)
Context:文件所在的环境
Access:最近访问时间
Modify:数据改动时间
Change:元数据改动时间
Creat/Birth:文件创建时间
查看文件的元数据的方法:
stat命令: 查看文件的元数据
语法:stat FILE…
Stat /etc/passwd
[root@dcy-test ~]# stat rm.sh
File: ‘rm.sh’
Size: 108 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 8460798 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-12-31 11:56:37.908776011 +0800
Modify: 2019-12-31 11:56:29.836669331 +0800
Change: 2019-12-31 11:56:29.857669609 +0800
Birth: -
文件的三个时间戳详细介绍如下:
atime:访问时间:读一次文件的内容,这个时间就会更新。比如more、cat等命令。ls、stat命令不会修改atime
mtime:修改时间:修改时间是文件内容最后一次被修改的时间。比如:vim操作后保存文件。ls -l列出的就是这个时间
ctime:状态改动时间。是该文件的inode节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。文件的时间戳修改需要用touch命令进行修改,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]
[root@dcy-test ~]# touch -a 20200303 rm.sh
[root@dcy-test ~]# stat rm.sh
File: ‘rm.sh’
Size: 108 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 8460798 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-03-05 10:24:54.669800961 +0800
Modify: 2019-12-31 11:56:29.836669331 +0800
Change: 2020-03-05 10:24:54.669800961 +0800
Birth: -
3. 总结软硬连接的区别,并用实例操作说明
软连接:其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(和windows 下的快捷方式的接近的意思)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录”)
硬连接:硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件是不会建立inode的,ls -i 文件查看indoe,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。
| 软连接与硬连接的区别 :
软连接: 可跨设备;会创建新的inod;软链接的访问属性是l,且访问权限不能设置,只能是777,真正的权限取决于源文件;不能对目录进行创建 ;移动或删除目标文件或目录,连接失败 。
硬连接: 不可跨设备; 不会创建inode,和原文件inode一样 ;硬链接的访问属性和源文件一模一样;能对目录进行创建;移动或删除目标文件或目录,不影响连接文件
[root@dcy-test ~]# touch 1.txt
[root@dcy-test ~]# ll 1.txt
-rw-r--r--. 1 root root 0 Mar 5 11:33 1.txt
[root@dcy-test ~]# ln 1.txt /tmp/2.txt
[root@dcy-test ~]# ll 1.txt
-rw-r--r--. 2 root root 0 Mar 5 11:33 1.txt
[root@dcy-test ~]# ll /tmp/2.txt
-rw-r--r--. 2 root root 0 Mar 5 11:33 /tmp/2.txt
[root@dcy-test ~]# ls -i 1.txt #查看文件inode存储块
8758773 1.txt
[root@dcy-test ~]# ls -i /tmp/2.txt
8758773 /tmp/2.txt
[root@dcy-test ~]#
[root@dcy-test ~]# ln -s a.txt b.txt
lrwxrwxrwx. 1 root root 5 Mar 5 11:40 b.txt -> a.txt
[root@dcy-test ~]# echo "1" > a.txt
[root@dcy-test ~]# cat a.txt
1
[root@dcy-test ~]# cat b.txt
1
[root@dcy-test ~]# ll b.txt
```
4.linux 上文件管理类命令有哪些,其常用 的使用方面及其相关示例演示
1. ls 列出指定目录下的内容格式
ls [option] [file]
option: -a 所有文件包括隐藏文件
-A:显示除.和..之外的所有文件
-i 查看文件inode号
-l,--long:显示文件的详细属性信息 等于 ll 命令
-h:对文件大小进行单位换算,可能影响精度
-d:查看目录本身而非其内部的文件
-r:逆序显示文件
-R:递归显示文件
file
file 文件1 查看文件的属性
[root@dcy-test ~]# file a.txt
a.txt: ASCII text
[root@dcy-test ~]# file /etc/passwd
/etc/passwd: ASCII text
cat 文件 #查看文件内容,从开显示至尾部 -n:给显示的文本行编号
tac 文件 #查看文件内容,从尾部显示至头部,倒序查看;
head 文件 #查看文件头部开始默认显示10行
-n #:显示文本头n行内容
例:head -5 /etc/passwd == head -n5 /etc/passwd --显示文件头5行内容
tail 显示文本内容,默认显示后10行
格式:tail [OPTION]... [FILE]...
-n #:显示文本后#行内容
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
例:tail -8 /etc/passwd --显示文件后8行内容
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 /tmp/1.txt /tmp/a.txt /data/
cp -r /data /practice #把data目录及目录下的内容一起复制到practice中
mv 单个文件或多个文件 单个文件或目标目录
源文件是多个文件时,目标文件应为目录
mv /tmp/1.txt /tmp/a.txt /data/
rm [选项] [文件或目录]
-r 表示删除目录 ; -f 强制删除不提醒;- i 提示,默认已加了-i选项;
rm -rf /tmp/cp
mkdir [选项] 目录名 创建目录命令 -p: 递归创建
[root@dcy-test ~]# mkdir /tmp/cp ; mkdir -p /tmp/a/{a,b}
[root@dcy-test ~]# mkdir -p /tmp/test/{a,b}/{c,d}
[root@dcy-test ~]# tree /tmp/test/
/tmp/test/
├── a
│ ├── c
│ └── d
└── b
├── c
└── d
cd 切换目录命令
示例:cd ..:切换到上级目录
cd ~:切换回自己的家目录
cd -:在上一次目录与当前目录直接来回切换
pwd:显示当前目录
5.复制/etc/profile 至/tmp目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
[root@dcy-test ~]# cp /etc/profile /tmp/
[root@dcy-test ~]# sed -i 's/^[[:space:]]\+//g' /tmp/profile # +表示前面[]里的重复1次或多次
[root@dcy-test ~]# cat /tmp/profile
6. ###### 在vim中设置tab缩进为4个字符
```
vim /etc/vimrc
set tabstop=4
```