Linux常用命令

本文列举了一系列Linux系统管理的基础命令,包括文件操作(如`cp`、`touch`)、控制台快捷键(`Ctrl+A`、`Ctrl+E`)、日期时间处理、文件压缩与解压、软件包管理(`rpm`)、进程与内存管理、磁盘分区与挂载、网络配置(`ifconfig`、`iptables`)以及抓包工具`tcpdump`的使用。此外,还涉及到了`vim`编辑器的基本操作和JAVA应用的内存查看方法。
摘要由CSDN通过智能技术生成

基础命令

cp -a file1 file2          # 连同文件的所有特性一起复制
ctrl + z                   # 终止yum安装命令
touch xxx.txt					     # 创建新文件,或修改已存在文件时间戳
touch *                    # 将当下所有文件时间戳修改成系统当前时间
touch –d 20400210 test.txt # 将test.txt文件的日期改为20400210
touch abc.log              # 若abc.log文件存在,则修改为系统的当前时间;若不存在,则生成一个为当前时间的空文件
ctrl+a                     # 终端输入命令时,跳到命令头部
ctrl+e                     # 终端输入命令时,跳到命令尾部
date +"%Y/%m/%d %H:%M:%M"  # date格式化输出日期时间
tar -cvf out.tar /opt/test # 压缩归档目录或文件成一个.tar文件
tar -xvf out.tar           # 解压文件
rpm -ql package_name       # 查询已安装软件包。不过很多软件包我们并不知道名字
rpm -e package_name        # 卸载软件包
rpm -ivh package_name      # 安装软件包
sort -k3nr                 # 对输出解决进行排序。-k 指定排序的列;-n 以数值进行排序;-r 反序排序;-u 去重后排序;-t 指定栏位分隔符
uniq                       # 对输出结果按行去重。-c 统计出现次数;-u 只显示唯一行;-f 忽略前N个字段(字段间用空白字符分隔)
find /opt/ -size +1G       # 查找大小大于1G的文件
sed '/^$/d' example.txt    # 删除空行

cat test.txt | while read line;do echo $i;done    # 读取文件把每行作为变量,而不是默认的空格
echo -n "test123" | base64      # -n转码时去掉换行符,解码后就不会换行了
echo "kkk" | base64 -d          # 解码

CPU相关

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

lscpu                       # 显示CPU架构相关信息。从sysfs和/proc/cpuinfo收集cpu体系结构信息
cat /proc/cpuinfo| grep "processor"| wc -l               # 查看逻辑cpu个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看物理cpu个数
cat /proc/cpuinfo | grep "cpu cores"                     # 查看cpu核数

查看cpu前10:
ps aux | head -n 1;ps aux | sort -k3nr | head

内存相关

free -h                # 查看总内存、已使用内存、空闲内存、共享内存、buff/cache、可用内存
cat /proc/meminfo      # 几个常用值 => MemTotal 总内存、MemFree 空闲内存、Swap* Swap相关

查看cpu前10:
ps aux | head -1;ps aux | sort -rn -k +4 | head
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'   # 查看某进程所有连接占用的平均内存

磁盘相关

# 1、查看磁盘和目录大小
df:
  -a  # 显示所有文件系统
  -T  # 显示每个分区的文件系统类型
  -k、-m # 分别以kb、MB显示
  -h  # 使用人们习惯的 KB、MB 或 GB 为单位显示文件系统空间
  -H  # 以1K=1000B,1M=1000K换算单位显示空间
du:
  -a  # 显示所有目录和子目录的大小
  -h  # 使用人们习惯的 KB、MB 或 GB 为单位显示目录大小
  -s  # 显示总目录大小,不显示子目录
  --max-depth=1   # 显示深度为1的目录大小

# 2、磁盘分区、挂载与删除
fdisk -l   # 查看分区大小、详细信息
lsblk      # 查看分区结构和挂载情况。查看是否已经识别到到新磁盘,以及原/opt所挂载的vg名
vgs        # 查看vg
lvs        # 查看lv
# ============新建分区、格式化并挂载============== #
fdisk /dev/sda  # 对sda磁盘进行分区
    a   toggle a bootable flag    # 设置启动分区
    d   delete a partition        # 删除一个分区
    l   list known partition types  # 列出分区类型
    m   print this menu           # 输出帮助信息
    n   add a new partition       # 建立一个新的分区
    p   print the partition table    # 打印分区表
    q   quit without saving changes  # 退出不保存设置
    u   change display/entry units    # 改变显示的单位
    v   verify the partition table    # 检查验证分区表
    w   write table to disk and exit  # 保存分区表
    Partition number (1-4): 1       # 定义分区数量   --主分区最多只能有四个
一般使用顺序:n p(主分区) 4(分区数量) +100G(分区大小) w
mkfs.xfs /dev/sdb1                  # 格式化分区成xfs文件系统
mkfs.ext4 -n /dev/mapper/LV-Name    # 格式化分区成ext4文件系统
resize2fs /dev/mapper/LV-Name       # 刷新文件系统
mkdir -p /opt/data                  # 创建挂载目录
mount /dev/sdb1 /opt/data           # 挂载
/dev/sdb1   /opt/data    xfs   defaults   0 0    # vim  /etc/fstab 永久挂载

# ==============磁盘扩容================= #
## 小于2T的磁盘可以用fdisk来做分区,大于2T的磁盘通过划分VG、LV来分区。
lvdisplay  #查看opt逻辑卷的绝对路径,即对应的 LV Path的值,/dev/VG_NAME/xxx
pvcreate /dev/xxx           # 新增磁盘创建为物理卷
pvcreate /dev/sdb1          # 创建Pv
vgcreate vgdata /dev/sdb1   # 创建vg
vgextend VG_NAME /dev/xxx   # VG扩容:物理卷扩容至VG中
vgs                         # 查看确认,vg是否大小是否新增到目标值
lvextend -L +300G /dev/VG_NAME/xxx    # lv扩容:opt逻辑卷扩容。+号表示增加,没有+号表示扩容到。
lvcreate -L 1000G -n LV_Name VG_Name  # 新增一个LV
xfs_growfs /dev/VG_NAME/xxx           # opt文件系统空间自动扩展
df -Th                                 # 查看文件大小

# ==============解挂、删除分区================= #
umount /dev/sda1   # 解挂了。其实还可以挂载,而且数据还会在的
fdisk /dev/sda     # m  d  3  w  ==> 删除物理磁盘/dev/sda的3个分区

网络相关

ifconfig      # Linux查看网卡名、ipv4地址、ipv6地址等
ip addr       # 与上一个差不多,表现结构不同。这个命令输出似乎有点乱
ip addr show  # 显示更加详细
route         # 查看路由信息
traceroute Ip # 跟踪到某主机的路由信息
   -n    #直接使用IP地址而非主机名称。避免DNS解析耗时
   -p    #设置UDP传输协议的通信端口
   -s    #设置本地主机送出数据包的IP地址
   -v    # 详细显示指令的执行过程
   -w    # 设置响应等等时间
   -m    # 跳数设置

iptables -L   # 查看filter表的iptables规则,包括所有的链
iptables -F   # 清空filter表的iptables规则,包括所有的链
firewall-cmd --zone=public --list-ports    # 查看防火墙开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (permanent永久生效,没有此参数重启后失效) # 添加开放端口
systemctl restart firewalld                # 重启服务

# 抓包工具
tcpdump 是Linux系统下的一个强大的命令,可以将网络中传送的数据包完全截获下来提供分析。
它支持针对网络层、协议、主机、网络或端口的过滤,
并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump # 抓取所有网络包
tcpdump -w result.txt    # 抓取网络包,并写入文件
tcpdump -i eth0   # 指定经过网卡的网络包
tcpdump host 192.168.1.100  # 抓取包含地址的包
tcpdump src host 172.31.192.14  # 抓取来自指定源地址的包
tcpdump dst host 192.168.1.100  # 抓取包含 指定目的地址 的包
tcpdump -i eth0 -vnn net 192.168.1.0/24  # 抓取指定网卡上包含192.168.1.0/24网段的数据包
tcpdump -i eth0 -vnn port 22    # 抓取指定网卡上包含指定端口的数据包
tcpdump udp -i eth0 -vnn    # 抓取指定网卡指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种
tcpdump -i eth0 -vnn src host 192.168.1.100 # 经过指定网卡的指定源ip的数据包
tcpdump -i eth0 -vnn dst host 192.168.1.100 # 经过指定网卡的指定目的ip的数据包
tcpdump -i eth0 -vnn src port 22  # 经过指定网卡的指定源端口的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22 # # 经过指定网卡的指定源ip和目的端口的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22 # # 经过指定网卡的指定源ip或者包含指定端口的数据
tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )
tcpdump -i eth0  tcp  -vnn -r /tmp/result # 从文件/tmp/result记录中读取tcp协议的数据包
tcpdump ip host 192.168.1.100 and ! 192.168.1.101 # 非逻辑使用
tcpdump -i ens3 port 22 and host 192.168.1.100  # 获取包含指定ip和指定端口的接收或发出的 telnet 包
tcpdump -c 3  # 指定抓取的数据包数量

vim相关

命令模式:esc按键进入。不能直接编辑,用于各种参数快捷操作
编辑模式:i或o按键进入。在该模式下可以对文件的内容进行编辑;
末行模式:冒号:进入。可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);

命令行模式下:
$            # 光标跳到行尾
^            # 光标跳到行头
dd           # 删除一行
D            # 删除到行尾
gg           # 跳到文件头
G            # 跳到文件尾
40%          # 跳到文件40%处
yy           # 复制一行
P/p/3p       # 粘贴至光标前/粘贴至光标后/粘贴3次

JAVA相关

# 查看应用占用的堆内存大小
jmap -head PID | grep -A 3 "Eden Space" | grep used
# 查看某个应用各个方法函数占用的内存大小
jmap -histo PID | head -n 30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值