一.Linux系统目录结构
Windows:以多跟的方式组织文件 C:\ D:
Linux: 以单根的方式组织文件 /
/bin是/usr/bin的软链接、/sbin是/usr/sbin的软链接
1.存放命令相关的目录
/bin 普通用户使用的命令 /bin/ls /bin/date
/sbin 管理员使用的命令 /sbin/service
2.存放用户相关数据的家目录,
/home 普通用户的家目录,如/home/username
/root 超级管理员root的家目录,普通用户无权操作
3.系统文件目录
/usr 系统存放程序的目录
/usr/local 软件安装的目录
/usr/bin 普通用户使用的应用程序(重要)
/usr/sbin 管理员使用的应用程序(重要)
/usr/lib 库文件Glibc 32bit
/usr/lib64 库文件Glibc 64bit
4启动目录
/boot 存放系统启动相关的文件,如kernel、grub(引导装载程序)
5.配置文件目录
/etc 极其重要,后续所有的配置都在这个目录中
/etc/sysconfig/network-script/ifcfg- 网卡配置文件
/etc/resolv.conf DNS客户端配置文件(网卡配置文件优先级大于该文件)
/etc/hosts 本地域名解析配置文件。 C:\Windows\System32\drivers\etc\hosts
6.可变的目录与临时目录
/var 存放一些变化的文件,如/var/log/下的日志文件
/var/tmp 进程产生的临时文件
/tmp 系统临时文件
7.设备目录文件
/dev 存放设备文件,如硬盘、硬盘分区、光驱等
/dev/sd 磁盘分区信息,sda 磁盘a sdb3 磁盘b第3个分区
/dev/null 黑洞设备,只进不出
/dev/random 生成随机数设备
/dev/zero 能不断生成数据
8.虚拟文件系统
/proc 反应当前系统正在运行进程的实时状态(.pid 进程号)
9.在Linux7系统中, /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下
/bin --> /usr/bin
/sbin --> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64
/media 提供设备的挂载点 (空文件)
/mnt 提供设备的挂载点 (空文件)
opt 第三方工具安装的目录
run 进程运行的pid(放在一个文件中)
二.文件定义
绝对路径:以/开始的路径都是绝对路径(pwd显示出来的路径) /etc/aaa.txt
相对路径:相对于当前目录来说 aaa.txt ./aaa.txt ../aaa.txt
.xxx 隐藏文件
. 当前目录
.. 当前目录的上一级
~ 当前登陆的用户的家目录
[root@oldboy ~]# cd /tmp/ #切换目录到 /etc
[root@oldboy tmp]# pwd #打印处当前所在目录
/tmp
[root@oldboy tmp]# cd #切换到当前登陆用户的家目录
[root@oldboy ~]#
绝对路径的方式
[root@oldboy ~]# cd /tmp/test
[root@oldboy test]#
相对路径的方式
[root@oldboy tmp]# cd ./test
[root@oldboy test]# pwd
/tmp/test
绝对路径(root用户的家目录==/root 、 普通用户的家目录==/home/username)
[root@oldboy ~]# cd /tmp/test #切换到/tmp/test
[root@oldboy ~]# cd ~/file2 #切换到root/file2
[root@oldboy ~]# cd ~/aaa/file2 #切换到root/aaa/file2
相对路径
[root@oldboy ~]# mkdir sss #创建一个sss的目录
[root@oldboy test]# ls ../test2 #查看上一级目录的test2
[root@oldboy tmp]# ls test #查看当前目录的test
[root@oldboy tmp]# ls test/test0 #查看当前目录test下的test0
PS:相对路径和绝对路径视情况使用
cd命令
cd #切换目录,如cd/tmp
cd - #切换到上一次所在的目录
cd ~ #切换到当前用户的家目录(root用户和普通用户有所不同)
cd . #代表当前目录,一般在拷贝、移动等情况下使用 cp /etc/hostname ./ 将/etc/hostname拷贝到当前目录
cd .. #切换到当前目录的上一级
三.文件管理
创建、复制、移动、删除
mkdir 创建目录
[root@oldboy tmp]# mkdir ppp #在当前目录创建ppp的目录
[root@oldboy tmp]# mkdir aa/bb/cc -pv #在当前目录创建多个目录(选项-p递归创建,v显示过程)
mkdir: created directory ‘aa’
mkdir: created directory ‘aa/bb’
mkdir: created directory ‘aa/bb/cc’
创建1到100的目录
[root@oldboy tmp]# mkdir {1..100}
创建zz1到zz100的目录
[root@oldboy tmp]# mkdir zz{1..100}
复杂创建
[root@oldboy zz99]# mkdir opt/{bin,logs,conf}/test -pv
mkdir: created directory ‘opt’
mkdir: created directory ‘opt/bin’
mkdir: created directory ‘opt/bin/test’
mkdir: created directory ‘opt/logs’
mkdir: created directory ‘opt/logs/test’
mkdir: created directory ‘opt/conf’
mkdir: created directory ‘opt/conf/test’
[root@oldboy zz99]# tree
.
└── opt
├── bin
│ └── test
├── conf
│ └── test
└── logs
└── test
7 directories, 0 files
touch 创建一个空文件
[root@oldboy zz99]# touch 1.txt
mv 文件移动
语法:mv 移动文件 源文件 目标文件
[root@oldboy zz99]# mv 1.txt ../zz98 #将1.txt移动的zz98目录中
[root@oldboy zz99]# cd ../zz98
[root@oldboy zz98]# ls
1.txt
[root@oldboy zz98]# mv 1.txt ../zz97/2.txt #将当前目录的1.txt移动到zz97中并重命名为2.txt
[root@oldboy zz98]# cd ../zz97
[root@oldboy zz97]# ls
2.txt
[root@oldboy tmp]# mv zz99 z #将文件zz99 重命名为z
[root@oldboy tmp]# ls zz99
ls: cannot access zz99: No such file or directory
[root@oldboy tmp]# ls z
opt
[root@oldboy tmp]# mv zz9 zz8 zz7 zz1 #将多个文件或目录移动到制定位置中(mv后不论有多少目录或者位置,最后一个才是目标位置)
[root@oldboy tmp]# ls zz1
zz7 zz8 zz9
**rm 删除文件或者目录 **
-r 递归删除
-f 强制删除
[root@oldboy zz97]# rm -f 2.txt #删除一个文件
[root@oldboy tmp]# rm -rf zz* #删除多个文件,*代表全部
[root@oldboy tmp]# rm -rf {1..100}
PS: 在使用rm删除时, 文件用-f 目录才加-r 尽可能不要-rf一起使用
今日命令
cd 切换目录
pwd 打印当前目录
mkdir 创建目录
-p 递归创建
touch 创建一个空文件
mv 移动文件/重命名文件
rm 删除文件
-f 强制删除不提示
-r 递归删除目录
tree 将当前目录下的所有目录和文件以树状显示