D1
知识点:Linux目录结构,绝对路径、相对路径;cd、ls、pwd、mkdir、rm、cp、mv 基础命令
实操:新建多级文件夹,创建文件,复制、移动、删除,反复操作20遍
面试题:Linux根目录下各个文件夹大概作用是什么? 标准答案:/bin系统命令、/etc配置文件、/var日志和运行数据、/home用户目录、/usr应用程序、/tmp临时文件。
Linux的目录结构
所有文件都挂载再根目录/下,没有windows的分盘概念,所有都是文件连目录也是
目录:
1./bin :所有可执行二进制命令文件,存放在这,所有用户都可以用,对对对,连命令都是文件
2./sbin:这个呢就是存放专门管理员用的系统命令,普通用户大多数都是没有执行权限的
3./boot:系统启动文件:内核镜像,grub引导程序、initramfs临时根文件系统
4./dev:硬件设备文件:硬盘,硬盘分区,黑洞都在这
5./etc:全局系统配置文件目录(最重要),存放用户信息密码,其他程序配置,全局环境变量
6./home:普通用户家目录,每个用户独立用一个文件夹,相当与一个小区,每户都住这一家人
7./lib / /lib64 :系统运行库文件,lib64存放64位动态链接库.so,程序启动时会自动加载这里的库文件
8./media:临时自动挂载点:U盘,光盘、移动硬盘插入后挂载在这
9./mnt:手动临时挂载目录,手动挂载硬盘、镜像啊啥的
10./opt:大型第三方独立软件安装目录(商业软件),现在接触不多,不知道重不重要
11./proc:虚拟文件系统,内存映射,不占磁盘空间,实时查看内核/进程信息,cpuinfo CPU信息,meminfo 内存,pid就是对应进程详情
12./root:超级管理员root的家目录,高端大气上档次,你们住小区,他住独栋别野
13./run:运行时临时数据,存放进程pid文件、套接字,重启自动清空,相当于缓存啦
14./srv:服务数据目录,服务器对外提供服务的数据
15./sys:虚拟文件系统,内核硬件驱动信息,管理硬件参数
16./tmp:临时文件目录,所有用户可读可写,系统定时清理/重启清空
17./usr:系统软件资源,最大目录,/usr/bin /usr/sbin
18./var:可变数据目录,运行中不断变化的文件,日志文件/var/log
高频目录:
查日志:/var/log
改配置:/etc/
源码安装软件:/usr/local
用户数据:/home/
进程硬件查看:/proc
开机引导:/boot
数据库/服务数据:/var/lib /srv
Linux基础命令
1.目录操作命令
pwd --- 查看当前所在目录
cd --- 切换目录
/etc #进入/etc绝对路径
~ #回到家目录
.. #返回上一级目录
- #返回上一次所在目录
#直接回家目录
ls --- 列出目录内容
#普通列出
-l #详细信息(权限、大小、时间)
-a #显示隐藏文件(以.开头)
-lh 或 ll -h #人性化显示文件大小
-lt #按修改时间排序
-R #递归列出
-d #只看目录本身信息,不显示目录里面的内容
mkdir --- 创建目录
testdir #创建单个目录
-p a/b/c #递归创建多级目录
dir1 dir2 dir3 #一次性创建多个目录
rmdir --- 删除空目录
testdir #!!!只能删除空文件夹
2.文件操作命令
touch --- 创建空文件 / 更新时间
test.txt #创建单个文件
file1 file2 file3 #创建多个文件
cp --- 复制文件/目录
源文件 目标路径
test.txt /tmp/ #复制文件到/tmp
-r dir1 /tmp/ #递归复制整个目录
test.txt test2.txt #同目录复制改名
mv --- 移动/重命名
test.txt /tmp/ #移动文件到/tmp目录中
oldname newname #重命名文件/目录
dir1 /home/ #移动整个目录
rm --- 删除文件/目录
test.txt #删除文件
-r dir1 #删除非空目录
-rf dir1 #强制递归删除,不提示
查看文件内容
cat test.txt #一次性查看全部
more test.txt #分页查看,回车下一行
less test.txt #分页上下滚动,q退出
head test.txt #看前10行
head -n 5 test.txt #看前5行
tail test.txt #看后10行
tail -f test.txt #实时跟踪文件变化(日志常用)
3.文件查找命令
1.find --- 全盘精准查找
语法:find 查找路径 -条件 匹配内容
find . -name "*.txt" #在当前目录找所有txt文件
find /etc -name hosts #查找/etc下名字为hosts的文件
find . -type d #查找当前目录下所有目录
ps:文件类型
- #普通文件 --- 文件、日志、脚本、图片、压缩包 find指令中对应字母f
d #目录文件 --- 文件夹
l #软链接文件 --- 快捷方式
b #块设备文件 --- 硬盘、U盘、磁盘(块设备)
c #字符设备文件 --- 键盘、鼠标、终端
p #管道文件 --- 进程间通信管道
s #套接字文件 --- 进程网络通信(mysql、nginx 常用)
find . -size +10M #查找大于10M的文件
find . -mtime +7 #查找7天前修改过的文件
2.which查找命令所在路径
which ls
which python
3.whereis 查找命令、配置、帮助文件
whereis nginx
whereis mysql
4.grep文本内容过滤查找
grep "root" /etc/passwd #在文件中查包含root的行
grep -i "error" log.txt #忽略大小写
grep -r "192.168" /etc/ #递归查目录下所有文件含关键字
4.压缩和解压命令
1.tar 打包 + 压缩 (Linux常用)
打包压缩.tar.gz
tar -zcvf dir1.tar.gz dir1/ #压缩: 把dir1打包成dir1.tar.gz
tar -zxvf dir.tar.gz -C /tmp/ #解压到指定目录
参数说明:
z: gzip压缩
c: 创建压缩包
v:显示过程
f:指定压缩包文件名
x:解压
C:指定目录
tar.bz2格式
把z换成j
j:bz2压缩
2.zip/uzip通用Windows/Linux
zip -r dir1.zip dir1/ #压缩目录
unzip dir1.zip -d /tmp/ #解压到指定目录
3.gzip/gunzip单文件压缩
gzip test.txt #压缩成test.txt.gz,原文件消失
gunzip test.txt.gz #解压
5.实操联系任务
1.在家目录创建 linux_test/a/b/c 多级目录
[root@AAA ~]# cd
[root@AAA ~]# mkdir -p linux-test/a/b/c
[root@AAA ~]# ll -R linux-test/
2.在 c 目录创建 test1.txt test2.txt
[root@AAA ~]# cd linux-test/a/b/c/
[root@AAA c]# touch test1.txt test2.txt
[root@AAA c]# ll
3.把 test1.txt 复制到 /tmp
[root@AAA c]# cp test1.txt /tmp/
[root@AAA c]# ll /tmp
4.把 test2.txt 重命名为 log.txt
[root@AAA c]# mv test2.txt log.txt
[root@AAA c]# ll
5.查找系统中 hosts 文件位置
[root@AAA c]# whereis hosts
[root@ServerA-one ~]# which hosts
6.查找 /etc 下所有包含 root 的行
[root@AAA c]# grep -r "root" /etc/
7.把 linux_test 整个目录压缩为 linux_test.tar.gz
[root@AAA ~]# tar -zcvf linux_test.tar.gz linux-test
8.解压到 /tmp 目录
[root@AAA ~]# tar -zxvf linux_test.tar.gz -C /tmp