一,Linux发行版的系统目录名称命名规则以及用途
FHS: Filesystem Hierarchy Standard
/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设备提供一种统一模型的的接口;
二, 使用stat命令查看文件元数据, 用touch命令修改atime和mtime时间
[root@centos ~]# stat 1.txt
File: ‘1.txt’
Size: 43 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33968245 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-04-20 17:06:19.123647088 +0800
Modify: 2020-04-20 17:06:05.990492464 +0800
Change: 2020-04-20 17:06:05.990492464 +0800
Birth: -
File :文件名
Size : 文件大小
Blocks : 块大小
IO Block : IO 块大小
regular file : 文件类型
Device : 设备
Inode : Inode号
Links : 硬连接次数
Access : 文件权限
Uid : 文件属主的UID和属主名
Gid : 文件属组的UID和属组名
Access: 最近访问时间,读取文件试,只修改Access.
Modify: 最近修改时间, 修改文件内容时,Access,Modify,Change都会改动.
Change:最近更改时间,修改文件权限时,只会修改Change.
使用touch命令修改文件时间戳,修改时间戳时,Change时间会自动修改
touch [OPTION]... FILE...
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
[root@centos ~]# touch -a -t 202002022020 file
[root@centos ~]# stat file
File: ‘file’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33968265 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-02 20:20:00.000000000 +0800
Modify: 2020-04-22 15:20:45.575866410 +0800
Change: 2020-04-22 15:28:27.703886080 +0800
Birth: -
[root@centos ~]# touch -m -t 202002022020 file
[root@centos ~]# stat file
File: ‘file’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33968265 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-02 20:20:00.000000000 +0800
Modify: 2020-02-02 20:20:00.000000000 +0800
Change: 2020-04-22 15:29:22.542462927 +0800
Birth: -
[root@centos ~]#
**三, 软链接和硬链接区别**
软链接: 软链接是创建一个文件然后指向源文件的, 源文件的Links也不会增加1, 删除源文件会影响软链接文件的使用,
可以跨越文件系统使用,可以对目录使用
硬链接: 硬连接是创建一个新的文件链接,指向该文件真正的inode号, 文件Links增加1,硬链接文件和源文件inode号相同,
不可以跨越文件系统使用
使用ln -s创建软链接
[root@centos ~]# ln -s file file.1
[root@centos ~]# ln file file.2
[root@centos ~]# ll file.1
lrwxrwxrwx. 1 root root 4 Apr 22 15:37 file.1 -> file
[root@centos ~]# stat file.1
File: ‘file.1’ -> ‘file’
Size: 4 Blocks: 0 IO Block: 4096 symbolic link
Device: fd00h/64768d Inode: 33968262 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-04-22 15:37:39.978446233 +0800
Modify: 2020-04-22 15:37:38.404427825 +0800
Change: 2020-04-22 15:37:38.404427825 +0800
Birth: -
[root@centos ~]# stat file
File: ‘file’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33968265 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-02 20:20:00.000000000 +0800
Modify: 2020-02-02 20:20:00.000000000 +0800
Change: 2020-04-22 15:29:22.542462927 +0800
Birth: -
[root@centos ~]# ll file.2
-rwxr-xr-x. 2 root root 4 Feb 2 20:20 file.2
[root@centos ~]# stat file.2
File: ‘file.2’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33968265 Links: 2
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-02 20:20:00.000000000 +0800
Modify: 2020-02-02 20:20:00.000000000 +0800
Change: 2020-04-22 15:48:22.510469128 +0800
Birth: -
Linux上的文件管理类命令
cp命令 :
常用选项:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
复制文件到scripts目录下去,文件名存在时提示是否覆盖
~]# cp file /scripts/
复制文件到scripts目录下并修改文件名,文件名存在时提示是否覆盖
~]# cp file /scripts/file.3
复制scripts目录到scripts2下,目标目录不存在时会创建目标目录
~]# cp -r /scripts /scripts2
mv命令:move
常用选项:
-i:交互式;
-f:强制
移动文件到/etc目录下,文件名存在时提示是否覆盖
~]# mv file /etc/
修改文件名,文件名存在时提示是否覆盖
~]# mv file.2 file.3
rm命令:remove
rm [OPTION]... FILE...
常用选项:
-i:交互式
-f:强制
-r: 递归删除
删除目录及目录下的所有目录和文件
~]# rm -rf /scripts
删除目录下的文件
~]# rm -rf /scripts/file
五,复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
]# cp /etc/profile /tmp/
]# sed 's/^[[:space:]]\+//g' /tmp/profile
六, 在vim中设置tab缩进为4个字符
~]# echo "set tabstop=4" /etc/vimrc