CentOS7 文件目录
- bin :存放普通用户可执行的指令,即使在单用户模式下也能够执行处理
- boot :开机引导目录,包括Linux内核文件与开机所需要的文件
- dev :设备目录,所有的硬件设备及周边均放置在这个设备目录中
- etc:各种配置文件目录,大部分配置属性均存放在这里
- home:这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
- lib:开机时常用的动态链接库,bin及sbin指令也会调用对应的lib库
- lib64:开机时常用的动态链接库64位,bin及sbin指令也会调用对应的lib库
- media:可移除设备挂载目录,类似软盘 U盘 光盘等临时挂放目录
- mnt:用户临时挂载其他的文件系统,额外的设备可挂载在这里,相对临时而言
- opt:第三方软件安装目录,现在习惯性的放置在/usr/local中
- proc:虚拟文件系统,通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系 统不重启,还是有很大几率能将数据找回来
- root:系统管理员主目录,除root之外,其他用户均放置在/home目录下
- run:系统运行是所需文件,以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
- sbin:只有root才能运行的管理指令,跟bin类似,但只属于root管理员
- srv:服务启动后需要访问的数据目录,
- sys:跟proc一样虚拟文件系统,记录核心系统硬件信息
- tmp:存放临时文件目录,所有用户对该目录均可读写
- usr:应用程序放置目录,
- var :存放系统执行过程经常改变的文件
文件元数据
- 文件名称
- 文件大小
- 对应的设备
- 文件对应的权限
- 所处环境
- 最近访问时间
- 最近更改时间
- 最近改动时间,这个时间没法手动调整
#查看原数据信息
[root@localhost ~]# stat test.txt
#访问时间改为当前系统时间
[root@localhost ~]# touch -a test.txt
#更改时间改为当前系统时间
[root@localhost ~]# touch -m test.txt
#将访问时间和更改时间改为2020年1月12日
[root@localhost ~]# touch -t 2001120000.00 test.txt
软连接和硬连接
硬链接
- 创建硬链接会在对应的目录中增加额外的记录项以引用文件
- 对应于同一文件系统上一个物理文件
- 每个目录引用相同的inode号
- 创建时链接数递增
- 删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除
- 不能跨越驱动器或分区
- 不支持对目录创建硬链接
软连接
- 一个符号链接的内容是它引用文件的名称
- 可以对目录创建软链接
- 可以跨分区的文件实现
- 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
- 软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录
硬链接和软连接的区别
- 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件 - 跨设备
硬链接:不支持
软链接:支持 - inode
硬链接:相同
软链接:不同 - 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化 - 文件夹
硬链接:不支持
软链接:支持 - 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径 - 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问 - 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
实例:
#创建对应的
[root@localhost ~]# mkdir -p /data/dir
#绝对路径
[root@localhost ~]# ln -s /data/dir /data/dirlink
#相对路径
[root@localhost ~]# ln -s ../data/dir /root/dirlink
#删除软链接本身,不会删除源目录内容
[root@localhost ~]# rm -rf /data/dirlink
#删除源目录的文件,不会删除链接文件
[root@localhost ~]# rm -rf /data/dirlink/
文件操作命令
pwd
显示当前路径
- -P 显示真实物理路径
- -L 显示链接路径(默认
cd
改变目录
- 切换至父目录: cd ..
- 切换至当前用户主目录: cd
- 切换至以前的工作目录: cd –
ls
列出当前目录的内容或指定目录
- -a 包含隐藏文件
- -l 显示额外的信息
- -R 目录递归
- -ld 目录和符号链接信息
- -1 文件分行显示
- -S 按从大到小排序
- -t 按mtime排序
- -u 配合-t选项,显示并按atime从新到旧排序
- -U 按目录存放顺序显示
- -X 按文件后缀排序
file
检查文件的类型
- -b 列出文件辨识结果时,不显示文件名称
- -f filelist 列出文件filelist中文件名的文件类型
- -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
- -L 查看对应软链接对应文件的文件类型
- --help 显示命令在线帮助
touch
命令可以用来创建空文件或刷新文件的时间
- -a 仅改变 atime和ctime
- -m 仅改变 mtime和ctime
- -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
- -c 如果文件不存在,则不予创建
stat
查看文件状态
cp
可以实现文件或目录的复制
- -i 如果目标已存在,覆盖前提示是否覆盖
- -n 不覆盖,注意两者顺序
- -r, -R 递归复制目录及内部的所有内容
- -a 归档,相当于-dR --preserv=all,常用于备份功能
- -d --no-dereference --preserv=links 不复制原文件,只复制链接名
- -p 等同--preserv=mode,ownership,timestamp
- -v --verbose
- -f --force
- -u --update 只复制源比目标更新文件或目标不存在的文件
- -b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份
- --backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.# ,可以保留多 个版本
mv
移动文件或目录的移动和改名
- -i 交互式
- -f 强制
- -b 目标存在,覆盖前先备份
rm
可以删除文件
- -i 交互式
- -f 强制删除
- -r 递归
- --no-preserve-root 删除/
tree
显示目录树
- -d: 只显示目录
- -L level:指定显示的层级数目
- -P pattern: 只显示由指定wild-card pattern匹配到的路径
mkdir
创建目录
- -p: 存在于不报错,且可自动创建所需的各目录
- -v: 显示详细信息
- -m MODE: 创建目录时直接指定权限
rmdir
删除空目录
- -p 递归删除父空目录
- -v 显示详细信息
删除首行空白字符
[root@localhost ~]#cp -a /etc/profile /tmp/
[root@localhost ~]#vim /tmp/profile
......
if [ -n "${BASH_VERSION-}" ] ; then
if [ -f /etc/bashrc ] ; then
# Bash login shells run only /etc/profile
# Bash non-login shells run only /etc/bashrc
# Check for double sourcing is done in /etc/bashrc.
. /etc/bashrc
fi
fi
......
:%s/ *//g
[root@localhost ~]#vim /tmp/profile
......
if[-n"${BASH_VERSION-}"];then
if[-f/etc/bashrc];then
#Bashloginshellsrunonly/etc/profile
#Bashnon-loginshellsrunonly/etc/bashrc
#Checkfordoublesourcingisdonein/etc/bashrc.
./etc/bashrc
fi
fi
......
#可以看到所有首行的空白都删除了
vim 环境变量设置
tab 键设置为4个空格
[root@localhost ~]# vim ~/.vimrc
set ts=4
set expandtab
set autoindent
网友评论