1. Linux目录结构体系
Linux 核心目录的核心文件概述
1) /etc下面
a) /etc/hosts 主机ip地址与域名(主机名)对应关系
b) /etc/hostname 主机名
c) /etc/sysconfig/network-scripts/ifcfg-ens33或ifcfg-eth0
Linux网卡配置文件
d)了解 /etc/issue /etc/issue.net 用户登录系统之前显示的信息e)了解 /etc/motd 用户登录系统后显示的内容
f)了解 /etc/fstab 开机的时候自动挂载目录。
g)了解 /etc/rc.local 开机自动运行的内容存放这个文件。
h)了解 /etc/profile /etc/bashrc 存放用户环境变量信息。
i)小结
文件 | 含义 |
---|---|
/etc/hosts | ip地址与主机名解析关系(对应关系) |
/etc/hostname 主机名,hostnamectl , hostname | |
/etc/sysconfig/network-scripts/ifcfg-ens33 | ens33 改为 eth0 .网卡配置文件。 |
/etc/issue /etc/issue.net | |
/etc/motd | |
/etc/fstab | 开机自动运行的内容存放这个文件。 |
/etc/rc.local | 开机自启动配置文件 |
/etc/profile | |
/etc/bashrc |
2) /var目录经常变化的内容,日志
a) /var/log/messages
b) /var/log/secure
3) /proc/ 下面核心文件
a) /proc/cpuinfo cpu信息
b) /proc/meminfo 内存信息
c)了解:/proc/mounts 磁盘挂载信息d) /proc/diskstats 磁盘使用情况的信息e)了解 /proc/loadavg 系统负载信息
which 查询命令的绝对路径。
whereis 查询命令的绝对路径,命令相关文件。
diff
a表示 append 增加内容了
c表示 change 这样内容被修改
d表示 delete 删除了行
vimdiff
yum源优化
yum源 Linux下载软件地方。 软件仓库。
curl -o /etc/yum.repos.d/CentOS-7.9.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-7.9.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop
htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect
yum install -y sl cowsay
排序与去重命令
1) sort 用于排序的命令
默认是按照字符顺序对比,从左到右一位一位对比。
选项 | |
---|---|
sort文件 | |
-n | 对数字排序 |
-r | 逆序排序 |
-k | 指定某列 -k1 指定多列 -k1 -k2 -k1.1 根据第1列的第1个字符进行排序 |
-t | 指定分隔符 |
2) uniq (unique)(去重并显示次数)合并文件中相邻的相同的行,同时可以显示次数
uniq -c 文件 \\去重并统计次数
案例
(对ip去重并统计次数)
- 对ip列表先排序 sort
- 然后通过uniq -c显示次数
- 对重复次数再次 排序 sort
- 取出次数最多的前10个
sort failed-ip.txt |uniq -c |sort -rn |head
反引号``
``内容 优先执行里面的命令,然后执行其他命令。
`` 与 $() 作用域用法一样。
企业生产备份案例 :
准备/backup目录,把etc打包压缩存放在/backup/ ,给压缩包上面加上时间
/backup/etc_2022-11-11.tar.gz
tar zcf /backup/etc.tar.gz /etc/
tar zcf /backup/etc_`date +%F`.tar.gz /etc/
#每天执行备份命令:定时任务。
#反引号场景:
先取出时间,ip地址。。。。。
然后创建文件,目录,打包压缩。。。。
find查找
选项 | |
---|---|
-type | 查找指定类型的文件f(file)d(directory) |
-name | 指定文件名 |
-size | 根据大小进行查找+20k大于20kb 小于-20k k(kb) M(Mb)注意大小写 |
-mtime | 根据文件修改时间进行查找-mtime+7 7天前 |
-maxdepth 1 | 指定find命令查找的深度,这个选项要放在选项的第1个 |
-iname | 查找文件的时候不区分大小写(文件名) |
-user或-group | 指定用户和用户组 |
-perm | 指定权限 |
案例: | |
在/hb目录下寻找,以.txt结尾的文件 |
find /hb -type f -name '*.txt'
案例:
在/etc中查找文件,文件名字包含ifcfg
find /etc -type -f -name '*ifcfg*'
案例:
在/etc下查找文件,找出.conf结尾的文件,大小大于20kb
find /etc -type f -name '*.conf' -size +20k
案例:
在/etc/目录下查找,修改时间(时间)是7天之前(文件最近1次修改内容距今超过7天)
find /etc -mtime +7
PS:
创建30个文件,每次修改之间修改系统时间,然后给文件名赋值当前日期
mkdir -p /oldboy/logs
cd /oldboy/logs
for n in {01..30}
do
date -s "202203$n"
touch access_`date +%F`.log
done
date -s "20220330"
find的命令与其他命令的配合
- find与rm,ls,cat,head,替换进行配合
- find与cp/mv配合
- find与tar配合
环境准备
mkdir -p /hb/find
cd /hb/find
touch hb{01..10}.txt
案例1:
找出/hb/find目录中以.txt结尾的文件显示详细的信息(ls -lh)
ls -h `find -type f -name '*.txt'`
find -type f -name '*.txt'|xargs ls -h
find -type f -name '*.txt' -exec ls -lh {} \;## 语法 {}代表前面的参数,\;结束 这里exec每find一次传一次参数,就执行一次
结论:
|管道 与 |xargs如何处理数据
共同点 | 区别 | |
---|---|---|
管道 | 把前面命令的结果通过管道传递给后面的命令 | 传递仅仅是普通的字符 |
xargs | 把前面命令的结果通过管道传递给后面的命令 | 传递的是参数(前面传递过来的才是命令可以识别的文件名或目录名) |
find与cp/mv配合
案例01:
找出/oldboy/find目录中以.txt结尾的文件 复制到/tmp目录
cp $( find /oldboy/find/ -type f -name '*.txt' ) /tmp
find /hb/find/ -type f -name '*.txt'|xargs cp -t /tmp/
find /hb/find/ -type f -name '*.txt'|xargs -i cp {} /tmp/
find /hb/find/ -type f -name '*.txt'|exec cp {} /tmp/ \;
find与tar配合
案例01:
找出/oldboy/find目录中以.txt结尾的文件 打包压缩存放在/tmp/find.tar.gz
tar zcf /tmp/find-fan.tar.gz `find /hb/find/ -type f -name '*.txt'`
find /hb/find/ -type f -name '*.txt' |xargs tar zcf /tmp/find-xargs.tar.gz
find /hb/find/ -type f -name '*.txt'|exec tar zcf /tmp/find-exec.tar.gz {} +
这里,+表示对于 find 命令的每个结果,[command] 只执行一次。所有结果都作为参数一起传递给 [command]。+ 不需要用\+
文件属性
inode与block
一个非空的文件
inode: 文件的属性信息
block:文件的内容(文件是实体)
概念 | 说明 |
---|---|
inode 索引节点 | 存放文件的属性信息(大小,权限,时间,连接数),存放文件block的位置(指向文件实体的指针)。没有存放文件名。 |
block 块(数据块) | 存放数据空间。(文件内容) |
cat oldboy.txt 与 Inode block
概念 | 说明 | 特点 |
---|---|---|
inode 索引节点 | 存放文件的属性信息(大小,权限,时间,连接数)。 存放文件block的位置(指向文件实体的指针)。 没有存放文件名。 | 1. 每创建一个文件就要有1个inode空间。 2. 同一个磁盘分区中如果两个文件的inode相同,互为硬链接。 3. inode大小和数量是在磁盘分区格式化的时候创建。 4. 数量查看 df -i |
block 块(数据块) | 存放数据空间。(文件内容) | 1. 每个非空文件,至少占用1个block空间。 2. block默认是4k大小,文件较大会占用多个block空间。 3. 如果文件非常小,至少占用1个block. 4. block大小与数量也是在格式化创建文件系统的时候生成。 5. 数量查看 df -h |