随笔 - 10  文章 - 0  评论 - 0  阅读 - 973

三、linux核心目录结构体系与第二波命令

1.linux目录结构体系

1.1 linux目录结构概述

  • /根目录 存放系统信息,软件,命令。
  • /usr/ 存放用户信息,软件,命令。
  • 后期详细规定了/下面要有什么目录,目录作用是什么
  • 规定:FHS目录结构层次标准

1.2linux根下的核心目录

  1. 复制代码
    [root@lichengbo-xuexi ~]# ll /  
    total 20  
    lrwxrwxrwx.   1 root root    7 Apr  3 17:27 bin -> usr/bin  
    dr-xr-xr-x.   5 root root 4096 Apr  3 17:30 boot  
    drwxr-xr-x.  20 root root 3260 Apr 10 22:33 dev  
    drwxr-xr-x.  81 root root 8192 Apr 10 22:33 etc  
    drwxr-xr-x.   2 root root    6 Apr 11  2018 home  
    lrwxrwxrwx.   1 root root    7 Apr  3 17:27 lib -> usr/lib  
    lrwxrwxrwx.   1 root root    9 Apr  3 17:27 lib64 -> usr/lib64  
    drwxr-xr-x.   2 root root    6 Apr 11  2018 media  
    drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt  
    drwxr-xr-x.   3 root root   20 Apr  6 21:16 opt  
    dr-xr-xr-x. 124 root root    0 Apr 10 22:33 proc  
    dr-xr-x---.   2 root root  135 Apr  3 18:16 root  
    drwxr-xr-x.  26 root root  740 Apr 10 22:42 run  
    lrwxrwxrwx.   1 root root    8 Apr  3 17:27 sbin -> usr/sbin  
    drwxr-xr-x.   2 root root    6 Apr 11  2018 srv  
    dr-xr-xr-x.  13 root root    0 Apr 10 22:33 sys  
    drwxrwxrwt.  13 root root 4096 Apr 10 22:42 tmp  
    drwxr-xr-x.  13 root root  155 Apr  3 17:27 usr  
    drwxr-xr-x.  19 root root  267 Apr  3 17:32 var  
    复制代码

     

目录

目录含义

/bin => /usr/bin

binary 二进制文件命令

/sbin =>/usr/sbin

Super binary 超级命令,只有root可以使用

/boot

与linux系统启动与引导相关的文件存放处:存放引导系统启动程序,系统内核镜像

/dev

debice 设备文件 光盘 硬盘分区 U盘 /dev/cdrom

/etc

系统配置文件存放目录

/home

/home/oldboy 普通用户的家目录 贫民窟

/root

/root root用户的家目录 皇宫

/lib

/lib64

Library 库文件(服务软件的依赖)

/lost+found

系统宕机 临时保存数据的位置

/mnt

mount temporary 默认的一个挂载点 临时的挂载点(磁盘)临时的入口

/opt

option第三方软件安装位置

/proc

Procrss(进程)虚拟目录 存放的是内存中信息 进程 服务信息 内核信息

/sys

虚拟目录 存放的是内存中的信息 进程 服务信息

/tmp

tepm temporary临时存放文件的位置 垃圾堆

/usr

user/unix software resource 存放用户安装软件

/var

variable 经常变换数据 存放的位置 日志(服务日志)

1.3 linux核心目录的核心文件概述

/etc下面

  1. /etc/hosts 主机ip地址与域名(主机名)对应关系
  • /etc/hosts作用:ip地址与主机名、域名对应(解析)关系
  • 企业级应用场景
  • 应用场景01:搭建测试环境,访问测试环境的时候使用。(修改hosts)
  • 应用场景02:网站集群架构的服务,他们互相访问与联机。(通过主机名互相联机与访问)

Windows+x

Windows+r

Windows hosts文件 :C:\Windows\System32\drivers\etc\hosts

  1. /etc/hostname 主机名

#修改主机名流程

#红帽7 8 9 及其他linux比较通用(比较新的)

复制代码
[root@lichengbo-xuexi ~]# hostnamectl  
   Static hostname: lichengbo-xuexi  
         Icon name: computer-vm  
           Chassis: vm  
        Machine ID: f7f99da0d04641ee962e580fa4498131  
           Boot ID: d95f5a3cffb743d5b1f47d3667e3ce0e  
    Virtualization: vmware  
  Operating System: CentOS Linux 7 (Core)  
       CPE OS Name: cpe:/o:centos:centos:7  
            Kernel: Linux 3.10.0-1160.el7.x86_64  
      Architecture: x86-64  
[root@lichengbo-xuexi ~]# hostnamectl set-hostname lichengbo-nb  
[root@lichengbo-xuexi ~]# hostnamectl  
   Static hostname: lichengbo-nb  
         Icon name: computer-vm  
           Chassis: vm  
        Machine ID: f7f99da0d04641ee962e580fa4498131  
           Boot ID: d95f5a3cffb743d5b1f47d3667e3ce0e  
    Virtualization: vmware  
  Operating System: CentOS Linux 7 (Core)  
       CPE OS Name: cpe:/o:centos:centos:7  
            Kernel: Linux 3.10.0-1160.el7.x86_64  
      Architecture: x86-64  
[root@lichengbo-xuexi ~]# cat /etc/hostname  
lichengbo-nb  
复制代码

 

#通用

##1. 修改文件/etc/hostname 需要重启后生效

##2. 命令行修改 hostsname 重启后失效

  1. [root@lichengbo-nb ~]# hostname  查看主机名 
  2. lichengbo-nb  
  3. [root@lichengbo-nb ~]# hostname new   修改临时主机名
  4. [root@lichengbo-nb ~]# hostname  
  5. new  

ctl ctrl control 控制

C、/ect/sysconfig/network-scripts/ifcfg-ens33或ifcfg-eth0 linux网卡配置文件

重点:/ect/sysconfig/network-scripts/ifcfg-ens33 牢记需要背下来

/ect /sysconfig/network-scripts / ifcfg -ens33

/系统配置文件/系统配置/网络-脚本(配置)/(接口、网卡配置) 网卡名字

复制代码
[root@lichengbo-xuexi ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33  
TYPE=Ethernet  
PROXY_METHOD=none  
BROWSER_ONLY=no  
BOOTPROTO=none  
DEFROUTE=yes  
IPV4_FAILURE_FATAL=no  
IPV6INIT=yes  
IPV6_AUTOCONF=yes  
IPV6_DEFROUTE=yes  
IPV6_FAILURE_FATAL=no  
IPV6_ADDR_GEN_MODE=stable-privacy  
NAME=ens33  
UUID=9965f5fa-a9e4-458f-a30c-221e07a448f2  
DEVICE=ens33  
ONBOOT=yes  
IPADDR=10.0.0.200   ip地址
PREFIX=24  
GATEWAY=10.0.0.2  
DNS1=223.5.5.5  
IPV6_PRIVACY=no  
复制代码

 

#修改网卡配置文件,需要重启网卡

Systemctl restart network

  1. 了解/etc/issue /etc/issue.net 用户登录系统之前显示的信息
  • 未来未来安全会清空文件内容
  1. 了解/etc/motd用户登录系统后显示的内容
  • 文件内容原封不动的显示出来
  1. 了解/etc/fstab 开机的时候自动挂载目录。
  2. 了解/etc/rc.locl开机自动运行的内容放在这个文件。

#红帽7 及之后 第一次用之前 需要配置下 授予权限

chmod +x /etc/rc.d/rc/local

H、了解/etc/profile /etc/bashrc 存放用户环境变量信息

/etc/profile 存放各种系统环境变量。别名

/etc/bashrc 配置别名

小结

文件

含义

/etc/hosts

ip地址与主机名解析关系

/etc/hostname

主机名,honstnamectl 、 hostname

/etc/sysconfig/network-scripts/ifcfg-ens33

ens33改为eth0.网卡配置文件。

/etc/issue /etc/issue.net

 

/etc/motd

 

/etc/fstab

 

/etc/rc.locall

开机自启动配置文件

/etc/profile

 

/etc/bashrc

 

/var目录经常变化的内容,日志

  1. /var/log/messages
    系统通用日志,各种信息默认都会写入到这个文件中。
  2. /var/log/secure
    用户安全日志,用户登录信息(记录)
    tail -f 显示文件实时更新

/proc/ 下面核心文件

  • 系统服务信息,进程信息,内核信息,系统信息
  • A. /proc/cpuinfo cpu信息
复制代码
[root@lichengbo-nb ~]# cat /proc/cpuinfo  
processor   : 0  
vendor_id   : GenuineIntel  
cpu family  : 6  
model       : 154  
model name  : 12th Gen Intel(R) Core(TM) i7-12700H  
stepping    : 3  
microcode   : 0xffffffff  
cpu MHz     : 2688.011  
cache size  : 24576 KB  
physical id : 0  
siblings    : 1  
core id     : 0  
cpu cores   : 1  
apicid      : 0  
initial apicid  : 0  
fpu     : yes  
fpu_exception   : yes  
cpuid level : 31  
wp      : yes  
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat umip gfni vaes vpclmulqdq spec_ctrl intel_stibp flush_l1d arch_capabilities  
bogomips    : 5376.02  
clflush size    : 64  
cache_alignment : 64  
address sizes   : 45 bits physical, 48 bits virtual  
power management:  
processor   : 0  #CPU核心的 id 从0开始
physical id : 0    #物理cup的 id号 从0开始
复制代码

 

看CUP的命令: lscup

复制代码
[root@lichengbo-nb ~]# lscpu  
Architecture:          x86_64  
CPU op-mode(s):        32-bit, 64-bit  
Byte Order:            Little Endian  
CPU(s):                1  
On-line CPU(s) list:   0  
Thread(s) per core:    1  
Core(s) per socket:    1  
Socket(s):             1  
NUMA node(s):          1  
Vendor ID:             GenuineIntel  
CPU family:            6  
Model:                 154  
Model name:            12th Gen Intel(R) Core(TM) i7-12700H  
Stepping:              3  
CPU MHz:               2688.011  
BogoMIPS:              5376.02  
Hypervisor vendor:     VMware  
Virtualization type:   full  
L1d cache:             48K  
L1i cache:             32K  
L2 cache:              1280K  
L3 cache:              24576K  
NUMA node0 CPU(s):     0  
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat umip gfni vaes vpclmulqdq spec_ctrl intel_stibp flush_l1d arch_capabilities  
复制代码

 

CPU(s):                1  #cpu核心总数 
Socket(s):             1  #cpu个数

B、/proc/meminfo 内存信息

[root@lichengbo-nb ~]# cat /proc/meminfo  
MemTotal:        2027868 kB  占用内存 
MemFree:         1683484 kB 可用内存

 

C、了解:/proc/mounts磁盘挂载信息

D、/proc/diskstats 磁盘使用情况的信息

df

复制代码
[root@lichengbo-nb ~]# df -h   以人类可读的方式查看磁盘信息
Filesystem                                Size  Used Avail Use% Mounted on  
devtmpfs                                  979M     0  979M   0% /dev  
tmpfs                                     991M     0  991M   0% /dev/shm  
tmpfs                                     991M  9.6M  981M   1% /run  
tmpfs                                     991M     0  991M   0% /sys/fs/cgroup  
/dev/mapper/centos_lichengbo--xuexi-root   50G  1.9G   49G   4% /  
/dev/sda1                                1014M  138M  877M  14% /boot  
/dev/mapper/centos_lichengbo--xuexi-home   47G   33M   47G   1% /home  
tmpfs                                     199M     0  199M   0% /run/user/0  
复制代码

 

E、了解:/proc/loadavg 系统负载信息

1.3.4 了解/usr/local 编译安装默认的位置。

2.绝对路径与相对路径

  • 绝对路径:从根开始的路径。推荐使用
  • /erc/hosts
  • 相对路径:不是从根开始的路径。相对于当前路径
  • cd /etc 然后执行ls -l hosts

3.又一波命令来袭

3.1 查看文件内容 cat

选项

作用

基本用法 cat文件

查看文件内容

-n

查看文件时显示行号 number

复制代码
[root@lichengbo-nb ~]# cat -n /etc/passwd  
 1  root:x:0:0:root:/root:/bin/bash  
 2  bin:x:1:1:bin:/bin:/sbin/nologin  
 3  daemon:x:2:2:daemon:/sbin:/sbin/nologin  
4  adm:x:3:4:adm:/var/adm:/sbin/nologin  
 5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  
 6  sync:x:5:0:sync:/sbin:/bin/sync  
 7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown  
 8  halt:x:7:0:halt:/sbin:/sbin/halt  
 9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin  
 10  operator:x:11:0:operator:/root:/sbin/nologin  
 11  games:x:12:100:games:/usr/games:/sbin/nologin  
12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  
 13  nobody:x:99:99:Nobody:/:/sbin/nologin  
 14  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin  
 15  dbus:x:81:81:System message bus:/:/sbin/nologin  
16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin  
 17  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin  
 18  abrt:x:173:173::/etc/abrt:/sbin/nologin  
 19  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin  
 20  postfix:x:89:89::/var/spool/postfix:/sbin/nologin  
复制代码

 

3.2 head 头,显示文件的开头几行,默认显示前10行

选项

作用

-n

指定行数 -n5

#案例01查看文件前10行

复制代码
[root@lichengbo-nb ~]# head /etc/psaat  
head: cannot open ‘/etc/psaat’ for reading: No such file or directory  
[root@lichengbo-nb ~]# head /etc/passwd  
root:x:0:0:root:/root:/bin/bash  
bin:x:1:1:bin:/bin:/sbin/nologin  
daemon:x:2:2:daemon:/sbin:/sbin/nologin  
adm:x:3:4:adm:/var/adm:/sbin/nologin  
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  
sync:x:5:0:sync:/sbin:/bin/sync  
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown  
halt:x:7:0:halt:/sbin:/sbin/halt  
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin  
operator:x:11:0:operator:/root:/sbin/nologin 
复制代码

 

#案例02显示前5行

方法一、

[root@lichengbo-nb ~]# head -n5 /etc/passwd  
root:x:0:0:root:/root:/bin/bash  
bin:x:1:1:bin:/bin:/sbin/nologin  
daemon:x:2:2:daemon:/sbin:/sbin/nologin  
adm:x:3:4:adm:/var/adm:/sbin/nologin  
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 

 

方法二、

[root@lichengbo-nb ~]# head -5 /etc/passwd  
root:x:0:0:root:/root:/bin/bash  
bin:x:1:1:bin:/bin:/sbin/nologin  
daemon:x:2:2:daemon:/sbin:/sbin/nologin  
adm:x:3:4:adm:/var/adm:/sbin/nologin  
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 

 

3.3 tail显示文件最后的几行,默认显示最后10行

选项

作用

-n

指定行数 -n5

-f

显示文件的实时更新

#案例01 显示文件最后10行 显示文件最后5行

复制代码
[root@lichengbo-nb ~]# tail /etc/passwd  
games:x:12:100:games:/usr/games:/sbin/nologin  
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  
nobody:x:99:99:Nobody:/:/sbin/nologin  
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin  
dbus:x:81:81:System message bus:/:/sbin/nologin  
polkitd:x:999:998:User for polkitd:/:/sbin/nologin  
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin  
abrt:x:173:173::/etc/abrt:/sbin/nologin  
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin  
postfix:x:89:89::/var/spool/postfix:/sbin/nologin  
复制代码

 

显示最后五行

[root@lichengbo-nb ~]# tail -5 /etc/passwd  
polkitd:x:999:998:User for polkitd:/:/sbin/nologin  
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin  
abrt:x:173:173::/etc/abrt:/sbin/nologin  
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin  
postfix:x:89:89::/var/spool/postfix:/sbin/nologin 

 

 

#案例02 显示文件的实时更新。(未来查看日志必备)

tail -f /oldboy/oldboy.txt

[root@lichengbo-nb oldboy]# tail -f oldboy.txt  
lidao  
lidao  
1 2 3 4 5 6 7 8 9 10  

 

3.4 less 按页查看文件内容,到最后一行不会退出。

  • G到达最后一行
  • gg到文件第一行
  • 向下翻页 空格
  • 向下翻页b或ctrf+b
  • Q退出

3.5 more 按页查看文件内容,到最后一行会退出

  • 不支持快捷键

小结:

查看日志四剑客,head、tail、less、more

面试题说出查看文件内容命令:vi、cat、head、tail、less、more………

企业故障案例:开发人员在linux中查看日志,vi查看日志,发现系统内存不足?

  • 原因:vi编辑大文件的时候,占用内存,导致内存不足。
  • 解决:结束进程,统一培训开发人员,linux基础操作

3.6 wc 统计行数

选项

作用

-l

line 只显示行数

#案例01 统计 /etc/serviec有多少行

[root@lichengbo-nb oldboy]# wc /etc/services   
 11176  61033 670293 /etc/services  
[root@lichengbo-nb oldboy]# wc -l /etc/services   
11176 /etc/services  

 

#案例02 企业应用案例,通过wc命令,统计次数,出现了多少个。是否出现。

##统计/下第一级目录和文件数量

[root@lichengbo-nb /]# ls -l | wc -l  
21  

 

| 管道 把前一个命令的结果,传递给后一个命令使用。 类似于接力棒。

##未来统计用户数量,统计进程数量,统计XXX数量。

3.7 which 查询命令的绝对路径。

3.8whereis 查询命令的绝对路径,命令相关文件

3.7     3.8 案例01

复制代码
[root@lichengbo-nb ~]# which  tail  tailf  
/usr/bin/tail  
/usr/bin/tailf  
[root@lichengbo-nb ~]# whereis  tail  tailf  
tail: /usr/bin/tail /usr/share/man/man1/tail.1.gz  
tailf: /usr/bin/tailf /usr/share/man/man1/tailf.1.gz  
[root@lichengbo-nb ~]# whereis -b  tail  tailf  
tail: /usr/bin/tail  
tailf: /usr/bin/tailf  
复制代码

 

3.9 diff 查询两个文件的区别。

3.10vimdiff 查询两个文件的区别。

3.9 3.10#案例01 对比ifcfg-ens33修改前后的内容

复制代码
[root@lichengbo-nb ~]# diff /etc/sysconfig/network-scripts/ifcfg-ens33   /oldboy/ifcfg-ens33   
1a2  
> LIDAO=lichengbo  
16c17  
< IPADDR=10.0.0.200  
---  
> IPADDR=10.0.0.202  
20d20  
< IPV6_PRIVACY=no  
复制代码

 

a表示append增加内容了

c表示 change 这样内容被修改

d表示delete 删除了行

yum install -y vim

4.Linux必备优化yum源优化

  • yum源 Linux下载软件地方。软件仓库。
  • curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  • wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstatiotop iftop htop unzip nc nmap telent bc psmisc httpd-tools bind-utils nethogs expect

总结:

  • 目录结构
  • 根下面的核心目录:/etc /proc /usr /var /tmp /root /home
  • Linux系统核心文件:/etc/hosts /etc/hostname 及如修改查看主机名
    网卡配置文件
    /var/ /proc: /var/log/messages /var/log/secure /proc/cpuinfo
    /proc/meminfo /proc/diskstats
  • 绝对路径与相对路径
  • cat、head、tail、less、more、which、shereis、diff、vimdiff、df -h、lscpu、tailf
  • 案例:/etc/hosts案例,wc -l 案例,vi编辑日志故障案例。

二、文件与目录结构第三波进阶命令

排序与去重命令

1.1 sort 用于排序的命令

默认是按照字符顺序对比,从左到右一位一位对比。

选项

作用

Sort 文件

 

-n

对数字排序

-r

逆序排序

-k

指定某列 -k1

指定多列 -k1 -k2

-k1.1 根据第一列的第一个字符进行排序

-t

指定分隔符

案例01 对数字进行排序

复制代码
[root@lichengbo-nb oldboy]# sort -n sort.txt   
1  
2  
5  
12  
12  
30  
54  
56  
890  
3884  
[root@lichengbo-nb oldboy]# cat sort.txt  
12  
56  
890  
1  
12  
3884  
30  
54  
2  
复制代码

 

案例02 对数字逆序(降序)排序

复制代码
[root@lichengbo-nb oldboy]# sort -rn sort.txt  
3884  
890  
56  
54  
30  
12  
12  
5  
2  
1  
复制代码

 

案例 03 对某一列进行排序

复制代码
[root@lichengbo-nb oldboy]#  cat sort-v2.txt  
adsada  9  
asda    19  
dasdasd  89  
dasda    13  
davokf    29  
[root@lichengbo-nb oldboy]# sort -k2 sort-v2.txt  
dasda    13  
asda    19  
davokf    29  
dasdasd  89  
adsada  9  
[root@lichengbo-nb oldboy]# sort -nk2 sort-v2.txt  
adsada  9  
dasda    13  
asda    19  
davokf    29  
dasdasd  89  
[root@lichengbo-nb oldboy]# sort -nrk2 sort-v2.txt  
dasdasd  89  
davokf    29  
asda    19  
dasda    13  
adsada  9  
复制代码

 

企业面试题案例对 /etc目录下面文件、目录、大小排序(取前10)

复制代码
显示大小 ls -l
排序 sort
取前10个 head
257  ls -l /etc 
 排序
258  ls -l /etc | sort -nk5  
259  ls -l /etc | sort -nrk5  
取前10个
260  ls -l /etc | sort -nrk5 | head  
复制代码

 

案例 04 想优先对第二列排序,如果第二列有一样的则对第四列排序

[root@lichengbo-nb ~]# sort -rn -k2 -k4 /oldboy/lichengbo.txt | column -t  
old4    38  linux学校  500  
old2    33  linux学校  30330  
old1    22  linux学校  30000  
oldboy  20  linux学校  20000  
oldli   18  linux学校  21000  
old3    9   linux学校  30029  
old5    9   linux学校  20210 

 

 

案例05 以点为分隔符按照第三列,然后第四列进行从小到大排序。

sort -t‘.’ -nr -k3 -k4,4 sort-ip.txt

uniq (unique)(去重并显示次数)合并文件中相邻的相同的行,同时可以显示次数。

选项

作用

-c

去重并统计次数

案例 01 统计文件中uniq.txt,每个名字出现的次数(去重并显示次数)

复制代码
[root@lichengbo-nb oldboy]# uniq uniq.txt  
oldboy  
lidao  
smile  
blood  
[root@lichengbo-nb oldboy]# uniq -c uniq.txt  
      6 oldboy  
      7 lidao  
      6 smile  
      4 blood  
复制代码

 

案例 02 统计文件中uniq.txt,每个名字出现的次数(去重并显示次数)

[root@lichengbo-nb oldboy]# sort uniq-2.txt | uniq -c  
      5 blood  
      6 lidao  
      9 oldboy  
      9 smile  

 

企业案例:通过分析工具得出攻击破解你系统密码的ip列表,分析每个ip的攻击次数

  • (对ip去重并统计次数)
  • 对ip列表先排序 sort
  • 然后通过uniq -c 显示次数
  • 对重复的次数再次排序
  • 取出次数最多的前10个
  • 复制代码
    [root@lichengbo-nb oldboy]# sort failed-ip.txt | uniq -c | sort -rn | head  
      12049 58.220.223.62  
      10856 112.64.171.98  
       1982 114.83.184.139  
       1662 117.136.66.10  
       1318 115.29.245.13  
        961 223.104.5.197  
        957 116.216.0.60  
        939 180.111.48.14  
        871 223.104.5.202  
        869 223.104.4.139  
    复制代码

     

1、对ip列表先排序 sort

sort failed-ip.txt | head -50

2、然后通过uniq -c 显示次数

sort failed-ip.txt | uniq -c

3、对重复的次数再次排序

sort failed-ip.txt | uniq -c | sort -n

4、取出次数最多的前10个

sort failed-ip.txt | uniq -c | sort -rn | head

2.时间日期类命令

2.1 date 按照指定格式显示

选项

作用

+

显示指定格式的信息

+%F年月日

+%T时分秒

+%w周几

-d

根据描述显示指定的日期和时间

-s

Set 修改日期

案例01 按照指定格式显示日期

[root@lichengbo-nb oldboy]# date  
Sun Apr 16 00:36:41 CST 2023  

 

显示 年-月-日

[root@lichengbo-nb oldboy]# date +%F   full date 完整的日期
2023-04-16  

 

显示 时-分-秒

[root@lichengbo-nb oldboy]# date +%T   time
00:40:42  

 

显示 周几

[root@lichengbo-nb oldboy]# date +%w          week  
0  

 

只显示年或月或日

[root@lichengbo-nb oldboy]# date +%F  
2023-04-16  
[root@lichengbo-nb oldboy]# date +%y-%m-%d  
23-04-16  
[root@lichengbo-nb oldboy]# date +%Y-%m-%d  
2023-04-16  
[root@lichengbo-nb oldboy]#   

+%F 等于 +%Y-%m-%d        %y是年的后两位

[root@lichengbo-nb ~]# date +%F
2023-05-02
[root@lichengbo-nb ~]# date +%y
23

 

+%T 等于 +%H:%M:%S

[root@lichengbo-nb oldboy]# date +%T  
00:51:04  
[root@lichengbo-nb oldboy]# date +%H:%M:%S  
00:51:22  
[root@lichengbo-nb oldboy]# 

 

 

 

案例02 按照指定格式显示日期,年-月-日___小时____周几

[root@lichengbo-nb oldboy]# date +%F_%H_%w  
2023-04-16_00_0

 

  

案例 03 显示2天前的日期,按照年月日

[root@lichengbo-nb oldboy]# date -d '-2day'  
Fri Apr 14 00:57:01 CST 2023  
[root@lichengbo-nb oldboy]# date -d '-2day' +%F  
2023-04-14

 

案例03 修改日期为20230415

[root@lichengbo-nb oldboy]# date -s '20240416'  
Tue Apr 16 00:00:00 CST 2024  
[root@lichengbo-nb oldboy]# date -s '20230415'  
Sat Apr 15 00:00:00 CST 2023  
[root@lichengbo-nb oldboy]#   

 

2.2 nepdate 根据互联网的时间服务器自动同步时间

yum install -y ntpdate 进行安装

ntpdate 互联网时间服务地址

互联网开放时间服务器:

ntp1.aliyun.com

time,nist.gov

time.windows.com

chrony时间同步工具,服务

2.3 特殊符号` `反引号

优先执行反引号里面的内容,然后执行其他命令

` `与&()作用与用法一样

案例 01 作用展示

[root@lichengbo-nb oldboy]# which mkdir  
/usr/bin/mkdir  
[root@lichengbo-nb oldboy]# ll /usr/bin/mkdir  
-rwxr-xr-x. 1 root root 79768 Aug 20  2019 /usr/bin/mkdir  
[root@lichengbo-nb oldboy]#   
[root@lichengbo-nb oldboy]# ll `which mkdir`  
-rwxr-xr-x. 1 root root 79768 Aug 20  2019 /usr/bin/mkdir  
[root@lichengbo-nb oldboy]#   

 

案例 02 工作案例 创建文件oldboy_2023-04-15.txt

复制代码
[root@lichengbo-nb oldboy]# touch oldboy_2023-04-15.txt  
[root@lichengbo-nb oldboy]# ll oldboy_2023-04-15.txt  
-rw-r--r--. 1 root root 0 Apr 15 01:23 oldboy_2023-04-15.txt  
[root@lichengbo-nb oldboy]# rm -f oldboy_2023-04-15.txt  
[root@lichengbo-nb oldboy]# ll  
total 2372  
-rw-r--r--. 1 root root 2398089 Mar 31 02:55 failed-ip.txt  
-rw-r--r--. 1 root root     356 Apr 11 23:29 ifcfg-ens33  
-rw-r--r--. 1 root root     181 Apr 15  2023 lichengbo.txt  
-rw-r--r--. 1 root root      33 Apr 11 22:41 oldboy.txt  
-rw-r--r--. 1 root root      31 Apr 15  2023 sort.txt  
-rw-r--r--. 1 root root      58 Apr 15  2023 sort-v2.txt  
-rw-r--r--. 1 root root     183 Apr 16  2023 uniq-2.txt  
-rw-r--r--. 1 root root     144 Apr 16  2023 uniq.txt  
[root@lichengbo-nb oldboy]# touch oldboy_`date +%F`.txt  
[root@lichengbo-nb oldboy]# ll  
total 2372  
-rw-r--r--. 1 root root 2398089 Mar 31 02:55 failed-ip.txt  
-rw-r--r--. 1 root root     356 Apr 11 23:29 ifcfg-ens33  
-rw-r--r--. 1 root root     181 Apr 15  2023 lichengbo.txt  
-rw-r--r--. 1 root root       0 Apr 15 01:26 oldboy_2023-04-15.txt  
-rw-r--r--. 1 root root      33 Apr 11 22:41 oldboy.txt  
-rw-r--r--. 1 root root      31 Apr 15  2023 sort.txt  
-rw-r--r--. 1 root root      58 Apr 15  2023 sort-v2.txt  
-rw-r--r--. 1 root root     183 Apr 16  2023 uniq-2.txt  
-rw-r--r--. 1 root root     144 Apr 16  2023 uniq.txt  
复制代码

 

2.4 vim

  • vi vim 区别
  • vim工作模式
  • vim快捷键
  • 控制光标
  • 复制粘贴删除
  • 搜索查找
  • 替换与其他功能
  • 批量处理功能

vi vim 区别:

 

共同点

区别

vi

编辑文件

基础版本的编辑器

vim

编辑文件

VIM - Vi Improved vi的升级,支持高级功能

vi vim 工作模式:

vim快捷键:

    1. 环境准备
    2. 控制光标:
      上下左右键

移动光标到行结尾:$

移动光标到行开头:0或者^

把光标移动到文件的最后一行:G

把光标移动到文件的第一行:gg

把光标移动到文件的指定行:100gg

 

3)复制粘贴删除:

复制当前行:yy

粘贴: p

剪切当前行:dd

4)搜索查找:

搜索想要的内容: /内容

继续向下搜索:n

继续向上搜索:N

5)替换与其他功能

:%s#oldboy#lidao#g 把oldboy替换成lidao

6)批量处理功能

批量删除多行内容:2dd

 

Shift+v然后选择你要删除的多行内容 d删除即可

批量伤处开头字符:carl+v选择删除的内容 d删除即可

批量增加内容:ctrl+v选择咬批量增加的地方。按shift+i输入内容 按esc结束

7)其他快捷键

撤销:u

临时取消高亮显示: :noh

显示行号:set nu

取消行号:set nonu

8)编辑功能

在当下插入一个空行并进入编辑模式:o

删除光标所在位置到行尾的内容并进入编辑模式:c(大写字母C)

快速到达行尾并进入编辑模式:A(大写)

总结:

  • Sort,unip 排序去重
  • date,nepdate 时间日期
  • 特殊符号``
  • vim的快捷键,文件编辑。

别名

3.1设置别名

姓名:刘同学 小名:梅有吧

别名:一个人的呢称或爱称。Liunx给命令设置了一个呢称或快捷键。

应用场景:

  • 给危险命令设置防护。
  • 方便,给复杂命令,较长路径设置快捷通道。

极速上手指南:

给rm设置别名,只要运行rm屏幕提示:请不要使用rm命令

确定需要使用的别名。

分析:

给那个命令设置别名 rm

设置什么内容的别名。显示一句话:请不要使用rm命令

别名设置格式:

alias ll='ls -l --color=auto'

alias 别名=’命令’

例子:alias rm=’ehco 请不要是用rm命令

临时取消别名:

命令据对路径 /bin/rm -f oldboy.txt

命令前加个撬棍 \rm -f oldboy.txt

3.2 别名永久生效

方法1: 仅root用户生效

复制代码
[root@lichengbo-nb ~]# cat ~/.bashrc  
# .bashrc  
  
# User specific aliases and functions  
  
#alias rm='rm -i'  
#alias rm=’ehco 请不要使用rm命令  
alias cp='cp -i'  
alias mv='mv -i'  
  
# Source global definitions  
if [ -f /etc/bashrc ]; then  
    . /etc/bashrc  
fi  
复制代码

 

方法二:所有用户生效,选择这个(熟练掌握)

如果你设置的是rm,cp,mv的别名 需要修改~/.bashrc

复制代码
[root@lichengbo-nb ~]# cat ~/.bashrc  
# .bashrc  
  
# User specific aliases and functions  
  
#alias rm='rm -i'   #注释rm的行
alias cp='cp -i'  
alias mv='mv -i'  
  
# Source global definitions  
if [ -f /etc/bashrc ]; then  
    . /etc/bashrc  
fi  
复制代码

 

修改系统别名的配置文件/etc/profile

修改这个文件内容,把别名设置命令写入结尾。

查看结果:

[root@lichengbo-nb ~]# tail -3 /etc/profile  
unset i  
unset -f pathmunge  
alias rm=’ehco 请不要使用rm命令’  

生效: source /etc/profile

3.3小结:

配置别名:

  • 命令行配置:alias 别名=’命令或脚本’
  • 永久生效放文件:vim /etc/profile 与生效

三剑客grep

4.1 grep概述

过滤,筛选

帮助我们过滤筛选出我们想要的内容或排除不想要的内容。

4.2 选项

选项

作用

基本格式grep’你想要找的内容’ 文件

 

-n

显示行号

-v

取反、排除

-i

过滤时不区分大小写(了解就行)

#案例01 在/etc/passwd中过滤出包含root的行

[root@lichengbo-nb ~]# grep 'root'  /etc/passwd  
root:x:0:0:root:/root:/bin/bash  
operator:x:11:0:operator:/root:/sbin/nologin  

 

#案例02 过滤的时候加上行号

[root@lichengbo-nb ~]# grep -n 'root'  /etc/passwd  
1:root:x:0:0:root:/root:/bin/bash  
10:operator:x:11:0:operator:/root:/sbin/nologin  

 

#案例03 排除/etc/passwd文件中包含bash的行

复制代码
[root@lichengbo-nb ~]# grep -v 'bash'  /etc/passwd  
bin:x:1:1:bin:/bin:/sbin/nologin  
daemon:x:2:2:daemon:/sbin:/sbin/nologin  
adm:x:3:4:adm:/var/adm:/sbin/nologin  
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  
sync:x:5:0:sync:/sbin:/bin/sync  
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown  
halt:x:7:0:halt:/sbin:/sbin/halt  
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin  
operator:x:11:0:operator:/root:/sbin/nologin  
games:x:12:100:games:/usr/games:/sbin/nologin  
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  
nobody:x:99:99:Nobody:/:/sbin/nologin  
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin  
dbus:x:81:81:System message bus:/:/sbin/nologin  
polkitd:x:999:998:User for polkitd:/:/sbin/nologin  
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin  
abrt:x:173:173::/etc/abrt:/sbin/nologin  
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin  
postfix:x:89:89::/var/spool/postfix:/sbin/nologin  
ntp:x:38:38::/etc/ntp:/sbin/nologin  
复制代码

 

#企业应用案例04 ps -ef是用来显示系统进程的命令,类似与任务管理器,过滤出叫sshd的进程。

[root@lichengbo-nb ~]# ps -ef | grep 'sshd'  
root       1497      1  0 21:40 ?        00:00:00 /usr/sbin/sshd -D  
root       1899   1497  0 22:54 ?        00:00:00 sshd: root@pts/0  
root       2002   1903  0 23:32 pts/0    00:00:00 grep --color=auto sshd  

 

指令补充

5.1seq 生成数字序列

选项

 

-w

等宽数字位数相等。不足加0

#案例 01 显示指定范围的数字

复制代码
[root@lichengbo-nb ~]# seq 10  
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
[root@lichengbo-nb ~]# seq 2 10  
2  
3  
4  
5  
6  
7  
8  
9  
10  
[root@lichengbo-nb ~]# seq 2 3 10  
2  
5  
8  
复制代码

 

#案例02 生成的数字位数保持一致

复制代码
[root@lichengbo-nb ~]# seq -w 10  
01  
02  
03  
04  
05  
06  
07  
08  
09  
10  
复制代码

 

5.2dos2unix windows和linux文件的格式转换 (了解)

  • dos(windows文件格式)转换为linux格式,本质转换的是文件的回车换行符号。
  • 应用场景:
  • 在windows下面书写脚本(代码),上传到linux使用与执行,执行失败。
  • dos2unix转换下这个文件,然后重新执行即可

管道重定向

  • | 管道 传递数据,把管道前面的命令的结果传递给管道之后。 传递的只是普通的字符,不是参数。(find处可以了解)
  • 重定向符号:改变数据流向
  • 把命令的输出写入到文件中
  • > 标准输出重定向:先清空在写内容
  • >>标准输出追加重定向:把数据追加文件的末尾。

打包压缩三剑客

7.1概述

压缩命令

应用场景

特点

tar

Linux最长用的压缩命令,用于备份。备份或压缩的首选

 

gzip

配合其他命令的压缩,未来数据库备份中使用。

 

zip/unzip

一般用于解压来自于windows的zip格式的压缩包。

 

7.2 tar

  • 打包压缩
  • Windows:压缩
  • Linux:打包(文件集中在一起)压缩(解压空间)

tar

   

创建压缩包

tar zcvf /tmp/etc.tar.gz /etc

tar zcf /tmp/etc.tar.gz /etc/

c创建

查看压缩包

tar ztvf /tmp/etc.tar.gz

tar tf /tmp/etc.tar.gz

list 查看

解压

tar zxvf /tmp/etc.tar.gz /etc

tar xf /tmp/etc.tar.gz /etc

 

解压到指定目录

tar xf /tmp/etc.tar.gz /etc -C /opt/

解压到指定目录

排除(了解)

--exclude

 
  1. 创建压缩包

tar

选项

压缩包的名字和位置

被压缩的文件或目录

tar

zcvf

/tmp/etc.tar.gz

/etc

案例01 打包压缩/etc/目录,放在/tmp/etc.tar.gz

[root@lichengbo-nb ~]# ll -h /tmp  
total 11M  
-rw-r--r--. 1 root root 11M Apr 18 22:09 etc.tar.gz  

 

c create 打包 通过tar命令进行打包

z gzip 压缩 通过gzip工具进行压缩 tar.gz

v verbose x显示过程

f file 指定压缩包 选项在最后

2)查看压缩包

 

命令

选项

压缩包的名字和位置

tar

ztvf

/tmp/etc.tar.gz

tar

tf

/tmp/etc.tar.gz

案例02 查看/tmp/etc.tar.gz压缩包的内容

tar ztvf /tmp/etc.tar.gz

tar tf /tmp/etc.tar.gz

3)解压

命令

选项

压缩包的名字和位置

tar

zxvf

/tmp/etc.tar.gz

tar

Xf

/tmp/etc.tar.gz

案例03 解压/tmp/etc.tar.gz压缩包的内容

tar zxvf /tmp/etc.tar.gz

tar xf /tmp/etc.tar.gz

4)补充

案例04 解压到指定目录

复制代码
[root@lichengbo-nb tmp]# ll /opt  
total 0  
drwxr-xr-x. 10 root root 150 Apr  6 21:16 oldboy  
[root@lichengbo-nb tmp]# tar xf /tmp/etc.tar.gz -C /opt  
[root@lichengbo-nb tmp]# ll /opt  
total 12  
drwxr-xr-x. 82 root root 8192 Apr 18 21:24 etc  
drwxr-xr-x. 10 root root  150 Apr  6 21:16 oldboy  
[root@lichengbo-nb tmp]#   
复制代码

 

5)不同类型的压缩包

tar.gz tar打包 gzip进行压缩

tar.bz2 tar打包 bzip2进行压缩

6)tar创建压缩包的灵异提示

tar命令的保护机制

tar:Removing leading ‘/’ from member names

删除 开头 根目录 压缩包中的文件名

tar命令打包压缩的时候会去掉绝对路径的开头的根,变化为相对路径。

如果用户强制关闭这个功能,压缩包里面会带绝对路径,解压的时候会有可能覆盖源文件。

注:避免这个提示,可以使用相对路径来打包

7.3 gzip

案例01 压缩

[root@lichengbo-nb oldboy]# gzip oldboy.txt  
[root@lichengbo-nb oldboy]# ll -h oldboy.txt  
ls: cannot access oldboy.txt: No such file or directory  
[root@lichengbo-nb oldboy]# ll -h oldboy.txt.gz  
-rw-r--r--. 1 root root 1.9K Apr 18 22:54 oldboy.txt.gz  
[root@lichengbo-nb oldboy]#   

 

案例02 解压

[root@lichengbo-nb oldboy]# gzip -d oldboy.txt.gz  
[root@lichengbo-nb oldboy]# ll -h oldboy.txt  
-rw-r--r--. 1 root root 3.9K Apr 18 22:54 oldboy.txt  
[root@lichengbo-nb oldboy]#

 

   

7.4 zip/unzip

选项

作用

zip -r

压缩目录

unzip -d

解压到指定目录

案例01 压缩文件

[root@lichengbo-nb oldboy]# zip oldboy.zip oldboy.txt  
  adding: oldboy.txt (deflated 53%)  
[root@lichengbo-nb oldboy]# ll -h oldboy.zip oldboy.txt  
-rw-r--r--. 1 root root 3.9K Apr 18 22:54 oldboy.txt  
-rw-r--r--. 1 root root 2.0K Apr 18 23:00 oldboy.zip  

 

案例02 压缩目录

zip -r etc.zip /etc/

案例03 解压

unzip etc.zip

案例04 解压到指定目录

unzip etc.zip -d /opt/

7.4总结

压缩命令

应用场景

特点

tar

Linux最长用的压缩命令,用于备份。备份或压缩的首选

灵活与精确控制打包压缩的选项,最常用。

gzip

配合其他命令的压缩,未来数据库备份中使用。注释掉配置文件。

一般用于压缩文件或通过管道于命令配合进行压缩。

zip/unzip

一般用于解压来自于windows的zip格式的压缩包。

主要用于解压zip包即可。

环境变量(了解)

  • 内置变量
  • PS1

export PS1='[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$ '

写入到/etc/profile文件        生效surce /etc/profile 即可

总结

  • 配置别名
  • 三剑客gerp命令
  • seq
  • 打包压缩三剑客:tar gzip zip/unzip
  • 环境变量

企业生产备份案例:准备/backup目录,把etc打包压缩存放在/backup/

[root@lichengbo-nb ~]# tar zcf /backup/etc_`date +%F`.tar.gz /etc/  
tar: Removing leading `/' from member names  
[root@lichengbo-nb ~]# ll -h /backup  
total 21M  
-rw-r--r--. 1 root root 11M Apr 22 22:26 etc_2023-04-22.tar.gz  

 

每天执行备份命令:定时任务。

反引号场景:

先取出时间,ip地址。。。。。。

然后创建文件,目录,打包压缩。。。。。

四剑客find命令

find基础与使用

find查找文件

选项

 

find 目录 选项

 

-type

查找指定类型的文件 f(file)d(directory)

-name

指定文件名

-size

根据文件大小进行查找 +20k 大于20k 小于-20k

K(kb)

M(MB注意大写)

-maxdepth 1 

指定find命令查找的深度,这个选项要放在选项的第一个

-iname

查找文件的时候不区分大小写

-user或-group

指定用户或用户组

-perm

指定权限

案例01 在/etc/查找文件,文件叫hostname

[root@lichengbo-nb ~]# find /etc/ -type f -name 'hostname'  
/etc/hostname  

 

案例02 在/oldboy目录查找,以.txt结尾的文件

[root@lichengbo-nb ~]# find /oldboy/ -type f -name '*.txt'  
/oldboy/0309/oldboy.txt  

 

案例03 在/etc中查找文件,文件名包含ifcfg(开头、中间、结尾)

[root@lichengbo-nb ~]# find /etc/ -type f -name '*ifcfg*'  
/etc/dbus-1/system.d/nm-ifcfg-rh.conf  
/etc/sysconfig/network-scripts/ifcfg-lo  
/etc/sysconfig/network-scripts/ifcfg-ens33  

 

案例04 在/etc下查找文件,找出.conf结尾的文件,大小大于20kb

[root@lichengbo-nb ~]# find /etc -type f -name '*.conf' -size +20k  
/etc/lvm/lvm.conf  

 

案例05 在/etc/目录下查找,修改时间是7天之前(文件最近1次修改时间距今超过7天)

[root@lichengbo-nb ~]# find /etc/ -mtime -7   
/etc/  
/etc/resolv.conf  
/etc/profile  
/etc/tuned/active_profile  
/etc/tuned/profile_mode  

 

find命令扩展进阶选项

扩展案例01 :找出/etc/目录下,第一层中以.conf开头的文件

复制代码
[root@lichengbo-nb /tmp]#  find /etc/ -maxdepth 1 -type f -name "*.conf"   
/etc/resolv.conf  
/etc/asound.conf  
/etc/libuser.conf  
/etc/yum.conf  
/etc/dracut.conf  
/etc/host.conf  
/etc/ld.so.conf  
/etc/nsswitch.conf  
/etc/logrotate.conf  
/etc/libaudit.conf  
/etc/sestatus.conf  
/etc/fuse.conf  
/etc/sysctl.conf  
/etc/krb5.conf  
/etc/sos.conf  
/etc/kdump.conf  
/etc/rsyncd.conf  
/etc/tcsd.conf  
/etc/rsyslog.conf  
复制代码

 

扩展案例02 查找文件的时候不区分大小写。

复制代码
[root@lichengbo-nb ~]# find /etc/ -type f -iname "*.conf"
/etc/resolv.conf
/etc/pki/ca-trust/ca-legacy.conf
/etc/yum/pluginconf.d/fastestmirror.conf
/etc/yum/pluginconf.d/langpacks.conf
/etc/yum/protected.d/systemd.conf
/etc/yum/version-groups.conf
/etc/asound.conf
/etc/abrt/abrt-action-save-package-data.conf
/etc/abrt/abrt.conf
/etc/abrt/gpg_keys.conf
/etc/abrt/plugins/xorg.conf
/etc/abrt/plugins/oops.conf
/etc/abrt/plugins/vmcore.conf
/etc/abrt/plugins/CCpp.conf
/etc/abrt/plugins/python.conf
/etc/openldap/ldap.conf
/etc/libuser.conf
/etc/selinux/semanage.conf
/etc/selinux/targeted/setrans.conf
/etc/yum.conf
/etc/dracut.conf
/etc/depmod.d/dist.conf
/etc/host.conf
/etc/modprobe.d/firewalld-sysctls.conf
/etc/modprobe.d/tuned.conf
/etc/modprobe.d/dccp-blacklist.conf
/etc/rsyslog.d/listen.conf
/etc/systemd/bootchart.conf
/etc/systemd/coredump.conf
/etc/systemd/journald.conf
/etc/systemd/logind.conf
/etc/systemd/system.conf
/etc/systemd/user.conf
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/dbus-1/system.d/org.freedesktop.import1.conf
/etc/dbus-1/system.d/org.freedesktop.locale1.conf
/etc/dbus-1/system.d/org.freedesktop.login1.conf
/etc/dbus-1/system.d/org.freedesktop.machine1.conf
/etc/dbus-1/system.d/org.freedesktop.systemd1.conf
/etc/dbus-1/system.d/org.freedesktop.timedate1.conf
/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/etc/dbus-1/system.d/wpa_supplicant.conf
/etc/dbus-1/system.d/nm-dispatcher.conf
/etc/dbus-1/system.d/nm-ifcfg-rh.conf
/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
复制代码

 

find与其他命令的配合

  • find与rm、ls、cat、head、替换进行配合(大部分命令都是这一种)
  • find与cp/mv配合
  • find与tar配合

1. find与ls

案例01找出/oldboy/find目录中以.txt结尾的文件显示详细的信息

方法一: find与ls -ln 反引号

复制代码
[root@lichengbo-nb /oldboy/find]# ls -lh `find -type f -name '*.txt'`  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy01.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy02.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy03.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy04.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy05.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy06.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy07.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy08.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy09.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 ./oldboy10.txt  
复制代码

 

方法二:

复制代码
[root@lichengbo-nb /tmp]# find /oldboy/find/ -type f -name '*.txt' |xargs ls -lh  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy01.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy02.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy03.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy04.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy05.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy06.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy07.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy08.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy09.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy10.txt  
复制代码

 

方法三:

复制代码
[root@lichengbo-nb /tmp]#  find /oldboy/find/ -type f -name '*.txt' -exec ls -lh {} \;  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy01.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy02.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy03.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy04.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy05.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy06.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy07.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy08.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy09.txt  
-rw-r--r--. 1 root root 0 Apr 23 00:00 /oldboy/find/oldboy10.txt
复制代码

 

2. find与cp

案例01找出/oldboy/find目录中以.txt结尾的文件 复制到/tmp目录

方法一:

复制代码
[root@lichengbo-nb ~]# cp $(find /oldboy/find/ -type f -name '*.txt') /tmp  
[root@lichengbo-nb ~]# ll /tmp  
total 10264  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy01.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy02.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy03.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy04.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy05.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy06.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy07.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy08.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy09.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:22 oldboy10.txt  
复制代码

 

方法二:

复制代码
[root@lichengbo-nb ~]# find /oldboy/find/ -type f -name '*.txt' |xargs cp -t /tmp  
[root@lichengbo-nb ~]# ll /tmp  
total 10264  
drwxr-xr-x. 82 root root     8192 Apr 18 21:24 etc  
-rw-r--r--.  1 root root 10497779 Apr 18 22:09 etc.tar.gz  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy01.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy02.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy03.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy04.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy05.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy06.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy07.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy08.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy09.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:33 oldboy10.txt  
复制代码

 

方法三:  

复制代码
[root@lichengbo-nb ~]# find /oldboy/find/ -type f -name '*.txt' -exec cp {} /tmp \;  
[root@lichengbo-nb ~]# ll /tmp  
total 10264  
drwxr-xr-x. 82 root root     8192 Apr 18 21:24 etc  
-rw-r--r--.  1 root root 10497779 Apr 18 22:09 etc.tar.gz  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy01.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy02.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy03.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy04.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy05.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy06.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy07.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy08.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy09.txt  
-rw-r--r--.  1 root root        0 Apr 23 00:32 oldboy10.txt
复制代码

 

3. find与tar

案例01找出/oldboy/find目录中以.txt结尾的文件 并打包压缩存放在/tmp

方法一:find 反引号

[root@lichengbo-nb ~]# tar zcf /tmp/find-fan.tar.gz `find /oldboy/find/ -type f -name '*.txt'`  
tar: Removing leading `/' from member names  
[root@lichengbo-nb ~]# ll /tmp  
total 10268  
drwxr-xr-x. 82 root root     8192 Apr 18 21:24 etc  
-rw-r--r--.  1 root root 10497779 Apr 18 22:09 etc.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:39 find-fan.tar.gz  

 

方法二:find |xargs

[root@lichengbo-nb ~]# find /oldboy/find/ -type f -name '*.txt' |xargs tar zcf /tmp/find-1.tar.gz  
tar: Removing leading `/' from member names  
[root@lichengbo-nb ~]# ll /tmp  
total 10272  
drwxr-xr-x. 82 root root     8192 Apr 18 21:24 etc  
-rw-r--r--.  1 root root 10497779 Apr 18 22:09 etc.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:41 find-1.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:39 find-fan.tar.gz  

 

方法三:

复制代码
[root@lichengbo-nb ~]# find /oldboy/find/ -type f -name '*.txt' -exec tar zcf /tmp/find-exec.tar.gz {} +  
tar: Removing leading `/' from member names  
[root@lichengbo-nb ~]# ll /tmp  
total 10276  
drwxr-xr-x. 82 root root     8192 Apr 18 21:24 etc  
-rw-r--r--.  1 root root 10497779 Apr 18 22:09 etc.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:41 find-1.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:47 find-exec.tar.gz  
-rw-r--r--.  1 root root      202 Apr 23 00:39 find-fan.tar.gz  
复制代码

 

|管道与 |xargs如何处理数据

 

共同点

区别

| 管道

把前面命令的结果通过管道传递给后面的命令

传递仅仅是普通的字符

|xargs

把前面命令的结果通过管道传递给后面的命令

传递的是参数(前面传递过来的才是命令可以识别的文件名或目录名)

     

9.5 find总结

  • 选项 -type -name -size -mtime
  • find查找案例
  • find与ls、rm、sed、head的配合
  • find与cp/mv 的配合
  • find与tar的配合
posted on   lichengbo  阅读(146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示