一些命令常用的必须得记住,不常用的忘了后续再翻翻。

查看系统型号环境相关

  • lscpu
    • 用来查看cpu底层架构,比如是否为x86和arm架构这些
    • 还可以获取cpu核数
  • lsblk
    • 用于查看当前服务器中挂载上以及没有挂载上的磁盘
  • free -h
    • 用于查看当前系统的内存状况
  • df -h
    • 用于查看当前系统硬盘情况

统计Linux中文件夹的大小

1
du -sh /path/to/folder

其中:

  • du 是用于显示文件或文件夹的磁盘使用情况的命令。
  • -s 选项表示只显示总和。
  • -h 选项表示以人类可读的格式显示结果,例如以KB、MB、GB等单位。

将上述命令中的/path/to/folder替换为你要统计的文件夹的实际路径。

执行命令后,会显示该文件夹的总大小。例如,输出可能是 2.3G /path/to/folder,表示文件夹的总大小为2.3GB。

awk命令统计文件大小

其实通过awk命令可以实现按列求和的功能,但是如果将awk和du命令结合,不就可以统计的时候实现求和了吗

有如下a.txt文件

1
2
3
123.53  demo.py
125.54 demo1.py
126.36 demo2.py
  • cat命令结合awk命令($1代表第一列)

    • cat a.txt | awk ‘{sum += $1};END {print sum}’

    • 对符合某些条件的行,按列求和

      • 文件格式

        1
        2
        3
        4
        5
        aaa 200
        bbb 300
        aaa 200
        ccc 100
        aaa 200
      • 命令:awk ‘/aaa/ {sum += $2};END {print sum}’

  • du -s 命令结合awk命令(其实我也不知道awk的使用场景居然是这么广泛,三剑客不是吹的)

    • 使用场景:统计某一天的数据量大小,但是这个每一天数据是分散的,如/data/log/query_id/rule_id/日期
    • du -s | awk ‘{sum += $1};END {print sum}’

在Linux文件中查找

这个是真的常用!这应该是属于vim相关的命令的。

直接vim 文件名,比如我要找一个人名,就直接/xiaowei

Linux查看文件的编码格式

vim 打开文件后,使用命令 set fileencoding 来查看文件的编码。

crontab的常用命令

crontab -e 编辑定时任务

crontab -l 查看定时任务

1
2
3
4
5
6
7
8
# 在每小时的第 0 分钟时运行 /path/to/your/command 这个命令
0 * * * * /path/to/your/command

# 在每天0点0分执行 /path/to/your/command 这个命令
0 0 * * * /path/to/your/command

# 每隔5分钟执行一次脚本script.sh
*/5 * * * * /home/user/scripts/script.sh
  • * * * * *:每分钟运行一次任务。
  • 0 * * * *:每小时的整点运行一次任务。
  • 0 0 * * *:每天的午夜(00:00)运行一次任务。
  • 30 8 * * 1-5:每周一至周五的早上 8:30 运行一次任务。

每个字段可以使用以下几种方式来指定取值:

  • 单个值:例如 5 表示具体的某个分钟、小时、日期、月份或星期几。
  • 逗号分隔的值:例如 1,15,30 表示多个具体的分钟、小时、日期、月份或星期几。
  • 连续范围:例如 1-5 表示一个连续的范围,包括起始值和结束值。
  • 通配符:使用 * 表示所有可能的取值。

检索整个文件系统的文件

比如我想在根目录下查找start-all.sh这个文件。

1
2
# 格式为 find 路径 文件名换
find / -name start-all.sh

压缩文件到指定目录下

除了熟知的tar命令,也可以使用zip命令来压缩文件和解压缩文件!

压缩并指定目录
zip -r /home/xl/demo.zip /data/log/42251

解压并指定目录

unzip /home/xl/demo.zip -d /home/xl

scp命令详解

  • 拷贝普通文件到指定服务器的某个目录下:
    • scp file.txt 10.x.x.x:/root/demo/
    • 如果之前没有做免密登录的话,会让你输入密码
    • 免密登录:ssh-keygen ssh-copy
  • 在本地服务器拉取远端服务器的文件
    • 使用Paramiko组件
    • ssh user@192.168.88.161 “scp a.txt 192.168.88.162:/root/“
      • 这种方式可能会不成功(测试过),让输入密码的说,做了 免密登录也不行。

HDFS上传文件

  • hdfs dfs -put /export/software/aaa.tar.gz -d /user/hive/warehouse

批量杀死进程

一般杀死进程就是

ps -ef|grep python3

查找到需要杀死进程的pid,然后kill掉,但是如果有多个进程,则很难这样一个一个找pid

于是就有了批量杀死进程

1
ps -ef|grep 进程名 |awk '{print $2}' |xargs kill -9

Linux中的挂盘

学习Linux只要手里有个笔就能学的不错,就是记录成方便查阅的文档的说。

挂盘的方法基本都是固定的,

  • 如果是虚拟机的话,首先创建一个虚拟磁盘文件,然后跑如下命令。
  • 如果不是虚拟机,就需要将物理磁盘挂载到机器上。

实际操作步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pvcreate /dev/vdb 
pvcreate /dev/vdc
pvcreate /dev/vdd
pvcreate /dev/vde
pvcreate /dev/vdf
pvcreate /dev/vdg

vgcreate vg_data /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf /dev/vdg

lvcreate -l 100%FREE -n lv_data vg_data

mkfs.xfs /dev/vg_data/lv_data

mount /dev/vg_data/lv_data /home

umount /dev/vg_data/lv_data

vim /etc/fstab

/dev/vg_data /lv_data /home xfs defaults 0 0

mount -a

用户权限相关

1
2
3
4
5
6
7
8
# 添加用户组
groupadd 组名

# 删除用户组
groupdel 组名

# 将用户从一个组中删除
deluser USER GROUP