二、linux目录
-
文件和目录被组织成一颗倒置的树状结构
-
文件系统从根开始,“/”
-
文件名称严格区分大小写 (window不区分)
-
隐藏文件以"."开头
-
路径的分隔符为"/" (window \ 反斜杠)
文件命名规范
-
文件字符最长为255个字符
-
包括路径在内文件名称最长为4095个
-
颜色表示
-
蓝色 ---> 文件夹
-
绿色 --> 可执行文件
-
红色 --> 压缩文件
-
蓝绿色 --> 链接文件
-
灰色-->其他文件
-
白色 --> 文件
-
-
除了斜杠和NULL,其他所有字符都可以使用
-
对大小写敏感
文件系统结构
-
-
-
/bin 所有的用户都可以使用的命令 (binary二进制执行文件目录)
-
/sbin 管理类的命令
-
/lib 启动时程序使用的基本库文件 .so结尾
-
/lib64 专门存放X86_64系统上得辅助库文件
-
/etc 存放配置文件 (etcetera)
-
/home/USERNAME 普通用户的家目录
-
/root 管理员的家目录
-
/media 便携式移动设备的挂载点
-
/mnt 临时文件的挂载点 (mount “挂载” 挂接光驱、USB设备的目录)
-
/dev 设备文件和特殊文件的存放位置 (device 外部设备 )
-
/opt 第三方的应用的安装位置 (option)
-
/tmp 临时文件的存放位置 (temporary)
-
/usr 存放安装程序 (user)
-
/var 存放经常变化的文件,比如日志 (variable)
-
/proc 存放内核启动和进程相关的虚拟文件 (process)
-
/sys 输出当前系统上的硬件相关的文件
-
-
linux应用程序的组成
-
二进制文件
-
/bin
-
/sbin
-
/usr/bin
-
/usr/sbin
-
/usr/local/bin
-
/usr/local/sbin
-
-
库文件
-
/lib
-
/lib64
-
/usr/lib
-
/usr/lib64
-
/usr/local/lib
-
/usr/local/lib64
-
-
配置文件
-
-
/etc/name
-
/usr/local/etc
-
-
帮助文件
-
/usr/share/man
-
/usr/share/doc
-
/usr/local/share/man
-
/usr/local/share/doc
-
绝对路径和相对路径
-
绝对路径
-
以根开始
-
完整的文件的存放位置
-
可以读取到任何一个文件或者文件夹
-
-
相对路径
-
不以根开始
-
相对当前的位置来决定
-
可以简短的表示一个文件或者文件夹
-
. 当前目录
-
.. 父级目录
-
目录名和基名
[root@localhost log]#basename /etc/sysconfig/network-scripts/ifcfg-ens33
ifcfg-ens33
[root@localhost log]#basename /etc/sysconfig/network-scripts
network-scripts
[root@localhost log]#dirname /etc/sysconfig/network-scripts
/etc/sysconfig
[root@localhost log]#dirname /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts
切换目录
cd 切换目录 change directory
-
可以使用相对路径
-
可以使用绝对路径
切换到家目录
[root@localhost log]#cd
[root@localhost ~]#
切换到上一次的目录
[root@localhost ~]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cd -
/root
[root@localhost ~]#cd -
/etc/sysconfig/network-scripts
显示当前的工作目录
pwd print working directory
[root@localhost network-scripts]#pwd
/etc/sysconfig/network-scripts
# 查看链接的真正目录
[root@localhost /]#cd lib
[root@localhost lib]#pwd -P
/usr/lib
列出目录或者文件
ls list
命令格式:Usage: ls [OPTION]... [FILE]...
ls -a 显示所有文件
ls -l 以长格式显示文件列表
total 21104
-rw-r--r--. 1 root root 0 Aug 22 17:21 10
权限 硬盘的引用次数 属主 属组 大小 访问时间 文件名称
ls -R 递归显示目录
ls -d 显示目录本身
ls -1(数字1) 文件分行显示
ls -S 安装文件大小排序
ls -r 倒序显示
ls -t 按照时间来排序
ls -lh 显示人类易读的方式
ls -d */ 显示当前目录下的文件夹
l. 只显示隐藏文件
linux下的目录类型
-
- 用来表示文件
-
d 用来表示目录
-
b 块设备
-
c 字符设备
-
l 表示符号链接文件
-
s socket套接字
查看文件状态
File: ‘anaconda-ks.cfg’
Size: 1747 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33574992 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2019-08-22 12:09:03.288000381 +0900 # 访问时间
Modify: 2019-08-22 11:47:12.262947345 +0900 # 修改时间
Change: 2019-08-22 11:47:12.262947345 +0900 # 改动时间
atime 访问时间 查看文件内容就会改变
mtime 修改时间 改变内容发生变化
ctime 改动时间 元数据发生变化
touch
创建空文件和刷新时间,如果文件存在,则刷新时间,如果文件不存在,则创建文件
touch a 创建a文件
touch a 刷新时间
touch -a a
-a 只修改atime和ctime
touch -m a
-m 只修改mtime和ctime
touch a{1..9}
touch a{a..z}
rm -rf * 删除当前文件夹文件
touch -mt 201909052248 test.log -m modify的意思,修改,----更改修改时间 -t 时间格式【【CC】YYMMddhhmm【.ss】】 CC 代表年前两位,YY代表年后两位,MM月,dd日,hh小时,mm分钟 给文件夹修改时间 touch -r 文件 文件夹 意思是把文件的日期设置给文件夹。
文件通配符
-
* 所有
-
? 匹配的是任意单个字符
-
~ 表示用户的家目录
-
[123] 其中一个
-
[^123] 取反
-
[0-9] 表示数字
-
file[a-z] 字母(有坑)缺少Z
-
file[A-Z] 字母(有坑)缺少a
-
[:lower:] 小写字母
-
[[:lower:]] 所有小写字母 ls file[[:lower:]]
-
[:upper:] 大写字母
-
[[:upper:]] 所有大写字母
-
[:alpha:] 所有字母 a-zA-Z
-
[:alnum:] 表示字母和数字
-
[:digit:] 表示数字
创建目录
mkdir 创建目录
-
-p 递归创建 (一次性创建,mkdir - p a/b/c/d 前面的文件夹不存在的情况也可以创建)
-
-v 显示详细过程 (mkdir - pv a/b/c/d)
显示目录树
安装:yum install -y tree
tree 显示目录树 tree .
-d 只显示文件夹 tree -d .
-L # 只显示#层 tree -L # .
删除目录
rmdir 只能删除非空目录
rmdir a/b/c
-p 递归删除空父目录
rmdir -p a/c/d
-v 显示删除过程
rmdir -pv a/c/d