Linux学习(二)
Linux发行版的系统目录名称命名规则及用途
linux各种发行版都遵循LSB(Linux Stadards Base)规则,使用一致的相关的基础目录名称,使用根目录系统结构(root filesystem),使用FHS(Files Hierarchy Standard)层次结构实现。
Linux系统基础目录的命名法则:
1、严格区分大小写
2、目录也是文件,在同一路径下,两个文件不能同名
3、支持使用除 / 以外的任意字符
4、最长字符不能超过255个字符
Linux目录结构及用途
文件的元数据信息、含义及查看,修改文件的时间戳信息
文件的元数据信息及含义
File:文件名
Size:文件大小(单位:B)
Blocks:文件所占块个数
IO Block:每个数据块的大小(单位:B)
regular file:普通文件(此处显示文件的类型)
Inode:文件的Inode号,文件的索引节点号
Links:硬链接次数
Access:权限
Uid:(属主id/属主名)
Gid:(属组id/属组名)
Context:文件所在的环境
Access:最近访问时间access time (atime)
Modify:数据改动时间modification time (mtime)
Change:元数据改动时间status time (ctime)
Creat/Birth:文件创建时间
查看命令
-
ls命令能够查看文件的类型、时间、属主、属组、大小以及最近修改时间等信息。
-
stat命令显示文件详细的属性。
-
file辨识该文件的类型。
修改文件的时间戳信息
每一个文件的时间属性有三种:atime,ctime,mtime
atime:access time,记录最后一次的访问时间
ctime:modify time,记录最后一次文件数据部分的修改时间
mtime:记录最后一次文件元数据的修改时间
touch命令 touch [OPTION]... File...
-a 表示只更改访问时间atime
-m 只更改mtime时间
-t SMAMP 使用指定的时间,格式为[[CC]YY]MMDDhhmm[.ss]
-time=WORD 指定特定的时间,WORD为acess或atime,相当-a选项,WORD为modif或time,相当于-m选项
硬连接和软连接
硬连接
硬连接其本质是对同一个文件起多个文件名。所以变现为一个inode号可以对应对个文件名。就是同一个文件使用了多个别名,inode号相同。硬连接可以用ln或link创建。
由于硬连接是有着相同inode号仅文件名不同的文件,因此存在以下特性
- 文件有相同的inode及data block
- 只能对已存在的文件进行创建
- 不能跨分区创建硬连接
- 不能对目录进行创建,只可对文件创建
- 删除一个硬连接文件并不影响其他有相同inode号的文件
软连接
软连接与硬连接不同,若文件用户数据快中存放的内容是另一个文件的路径名的指向,则该文件就是软连接。软连接就是一个普通文件,只是数据块内容有点特殊。软连接有着自己的inode号以及用户数据块,因此软连接的创建和使用没有类似硬连接的诸多限制,主要特点如下:
- 软连接有自己的文件属性及权限等
- 可对不存在的文件或目录创建软连接
- 软连接可跨区创建
- 软连接可对文件或目录创建
- 创建软连接时,连接计数不会增加
- 删除软连接并不影响被指向的文件,若被指向的源文件被删除,相关软连接被称为死链接,若被指向路径文件被重新创建,死链接可恢复为正常的软连接。
Linux上的文件管理命令都有哪些,其常用的使用方法及其相关实例演示。
pwd printing working directory显示当前工作目录
语法:pwd [OPTION]…
选项说明:
-P 显示真实物理路径
-L 显示链接路径(默认)
cd change dir改变目录
语法:cd [dirName]
ls 列出当前目录的内容或指定目录
语法:ls [options] [files_or_dirs]
stat 查看文件状态
语法:stat [options] filename
touch 创建空文件和刷新时间
语法:touch [OPTION]... FILE...
选项:
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
cp 复制文件和目录
语法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
选项:
-i 覆盖前提示
-n 不覆盖,注意两者顺序
-r, -R 递归复制目录及内部的所有内容
-a 归档,相当于-dR --preserv=all
cp -a 要备份的文件名{,.bak}
-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 目标存在,覆盖前先备份加数字后缀
mv 移动和重命名文件
语法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
rm 删除
语法:rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
tree 显示目录树
选项:
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
选项:
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录
选项:
-p: 递归删除父空目录
-v: 显示详细信息
rm -r 递归删除目录树
使用rm删除文件时,如果文件被占用有时可能无法释放磁盘空间,可以使用> 文件名 来实现。
复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
在vim中设置tab 缩进为4个字符
设置vim环境设置文件 vim ~/.vimrc
添加set tabstop=4
效果如下: