Linux常用命令大全

1.查看端口号占用

bash 复制代码
lsof -i:端口号
lsof -i:8060
sudo netstat -nlp | grep 8060

2.查看CPU、核数、磁盘信息

bash 复制代码
[hadoop@master1 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[hadoop@master2 software]$ uname -a
Linux master2 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[hadoop@master2 software]$ arch
x86_64


# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c


lsblk -d -o name,rota
#如果返回1则表示磁盘可旋转,可以判断是HDD;反之,如果返回0,则表示磁盘不可以旋转,就有可能是SSD。
#腾讯高性能云硬盘为HHD类型

3.用户管理

bash 复制代码
#linux查看所有用户
cat /etc/passwd
cat /etc/passwd |cut -f 1 -d :
useradd 注:添加用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和sudo 功能差不多;

#用户文件和文件夹所有人更改
chmod -R hadoop:hadop /data/module

#管理用户组(group)的工具或命令
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件

4.scp数据传输

bash 复制代码
#将其他机器数据拉取到本机 -P 端口号,默认是22如有修改可添加
scp -P xxx username@192.168.1.1:/data/test.txt /Users/cece/Job/Doc
#发送数据到另一台机器 -r是所有文件包括文件夹
scp -r -P 12898 /Users/cece/Job/Doc/test.txt username@192.168.1.1:/data/

5.文件编辑

bash 复制代码
#vim 显示行号
#显示所有行号
:set number
#显示当前行号
:number
#要筛选出data文件夹中文件大小小于100KB
find /data -type f -size -100k
#取第24行内容
awk 'NR==24' /tmp/test.txt
sed -n '24p' /tmp/test.txt
#awk命令中 NR表示行号,直译 取20-30行的内容
awk 'NR==20,NR==30' ett.txt
sed -n '20,30p' file
#删除第N行:
sed -i '24d' test.txt
#显示整个文件(只需将范围设置为1到最后于一行) $代表最后一行
sed -n '1,$p' file
sed -n '1d' file
#将换行符替换成逗号
sed ':a;N;$!ba;s/\n/,/g' filename.txt > newfilename.txt
#mac将换行符替换成逗号
sed 's/\t/,/g' test.txt >test.csv

#将tab符替换成逗号
head 
#批量删除命令
kill -9 `ps -ef |grep run_command |awk '{print $2}' `
#文件后带格式插入数据
echo -e  "lishitama" >> xinlishi8_after.txt
#复制多个文件到多个目录
#xargs -n 1 每次只取一个参数
# cp -v  复制的详情
echo /data1 /data2 | xargs -n 1 cp -v /data3/software/hadoop-cos-8.3.1.jar  /data/software/cos_api-bundle-5.6.137.2.jar
#结果
#'/data/software/hadoop-cos-8.3.1.jar' -> '/data1/hadoop-cos-8.3.1.jar'
#'/data/software/cos_api-bundle-5.6.137.2.jar' -> '/data1/cos_api-bundle-5.6.137.2.jar'
#'/data/software/hadoop-cos-8.3.1.jar' -> '/data2/hadoop-cos-8.3.1.jar'
#'/data/software/cos_api-bundle-5.6.137.2.jar' -> '/data2/cos_api-bundle-5.6.137.2.jar'


#使用ln命令建立软链接
ln -s 被链接的文件或目录名称 链接名称
ln -s /usr/local/tomcat/ tomcat_latest
ln -s /usr/bin/python3 python
#如果使用cp -L命令,cp会复制软链接指向的文件,而不是软链接本身。这个选项强制cp遵循软链接指向的路径,而不是复制软链接。
#如果使用cp -P命令,cp会复制软链接本身,而不是软链接指向的文件。这个选项使cp复制软链接,而不是软链接指向的文件。

6.文件管理

bash 复制代码
#查看本文件夹所占存储
du -sh
# 查看本机所有的文件书数量
lsof | wc -l
lsof -p 29884
sudo vim /etc/profile.d/my_env.sh
cat /proc/sys/fs/file-max

7.查看网络状态

bash 复制代码
#ip概略情况
ifconfig
#ip详细情况
ip addr
ip addr show eth0
#关闭网卡:
ifconfig docker0 down

8.crontab 任务不小心删除

bash 复制代码
#查看临时文件中中任务
sudo cat /var/log/cron  | grep -i "hadoop" | grep "CMD" | awk -F '(' '{print $3}' | awk -F ')' '{print $1}' | sort -u
cat /var/log/cron  | grep -i "root" | grep "CMD" | awk -F '(' '{print $3}' | awk -F ')' '{print $1}' | sort -u
#找到任务,复制
*/5 * * * * . /etc/profile.d/my_env.sh; bash /data/test.sh >> /data/test.log 2>&1
0 0 1 * * . /etc/profile.d/my_env.sh; rm /data/test.log
#查看临时文件中中任务
cat /var/log/cron |grep "test.sh"

9.jstat命令

8.1 jstat命令简介

jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一个可以监控Java虚拟机各种运行状态信息的命令行工具。它可以显示Java虚拟机中的类加载、内存、垃圾收集、即时编译等运行状态的信息。

8.2 jstat命令参数 generalOptions

bash 复制代码
jstat generalOptions
jstat outputOptions [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  • generalOptions:通用选项,如果指定一个通用选项,就不能指定任何其他选项或参数。它包括如下两个选项:
    • -help:显示帮助信息。
    • -options:显示outputOptions参数的列表。
  • outputOptions:输出选项,指定显示某一种Java虚拟机信息。
  • -t:把时间戳列显示为输出的第一列。这个时间戳是从Java虚拟机的开始运行到现在的秒数。
  • -h n:每显示n行显示一次表头,其中n为正整数。默认值为 0,即仅在第一行数据显示一次表头。
  • vmid:虚拟机唯一ID(LVMID,Local Virtual Machine Identifier),如果查看本机就是Java进程的进程ID。
  • interval:显示信息的时间间隔,单位默认毫秒。也可以指定秒为单位,比如:1s。如果指定了该参数,jstat命令将每个这段时间显示一次统计信息。
  • count:显示数据的次数,默认值是无穷大,这将导致jstat命令一直显示统计信息,直到目标JVM终止或jstat命令终止。

8.2 jstat命令参数 outputOptions

如果不指定通用选项(generalOptions),则可以指定输出选项(outputOptions)。输出选项决定jstat命令显示的内容和格式,具体如下:

  • -class:显示类加载、卸载数量、总空间和装载耗时的统计信息。 注:小段落代表执行该参数产生的结果表头

    • Loaded:加载的类的数量。
    • Bytes:加载的类所占用的字节数。
    • Unloaded:卸载的类的数量。
    • Bytes:卸载的类所占用的字节数。
    • Time:执行类加载和卸载操作所花费的时间。
    bash 复制代码
    #jps结果:
    1846180 RunJar
    2723168 JobHistoryServer
    3608572 ResourceManager
    2709074 AlertServer
    #执行:jstat -compiler 1846180
    Compiled Failed Invalid   Time   FailedType FailedMethod
    13272      1       0    28.62          1 sun/misc/URLClassPath$JarLoader getResource
  • -compiler:显示即时编译的方法、耗时等信息。

    • Compiled:执行的编译任务的数量。
    • Failed:执行编译任务失败的数量。
    • Invalid:执行编译任务失效的数量。
    • Time:执行编译任务所花费的时间。
    • FailedType:上次编译失败的编译类型。
    • FailedMethod:上次编译失败的类名和方法。
  • -gc:显示堆各个区域内存使用和垃圾回收的统计信息。

    • S0C:年轻代中第一个Survivor区的容量,单位为KB。
    • S1C:年轻代中第二个Survivor区的容量,单位为KB。
    • S0U:年轻代中第一个Survivor区已使用大小,单位为KB。
    • S1U:年轻代中第二个Survivor区已使用大小,单位为KB。
    • EC:年轻代中Eden区的容量,单位为KB。
    • EU:年轻代中Eden区已使用大小,单位为KB。
    • OC:老年代的容量,单位为KB。
    • OU:老年代已使用大小,单位为KB。
    • MC:元空间的容量,单位为KB。
    • MU:元空间已使用大小,单位为KB。
    • CCSC:压缩类的容量,单位为KB。
    • CCSU:压缩类已使用大小,单位为KB。
    • YGC:Young GC的次数。
    • YGCT:Young GC所用的时间。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
  • -gccapacity:显示堆各个区域的容量及其对应的空间的统计信息。

    • NGCMN:年轻代最小的容量,单位为KB。
    • NGCMX:年轻代最大的容量,单位为KB。
    • NGC:当前年轻代的容量,单位为KB。
    • S0C:年轻代中第一个Survivor区的容量,单位为KB。
    • S1C:年轻代中第二个Survivor区的容量,单位为KB。
    • EC:年轻代中Eden区的容量,单位为KB。
    • OGCMN:老年代最小的容量,单位为KB。
    • OGCMX:老年代最大的容量,单位为KB。
    • OGC:当前老年代的容量,单位为KB。
    • OC:当前老年代的容量,单位为KB。
    • MCMN:元空间最小的容量,单位为KB。
    • MCMX:元空间最大的容量,单位为KB。
    • MC:当前元空间的容量,单位为KB。
    • CCSMN:压缩类最小的容量,单位为KB。
    • CCSMX:压缩类最大的容量,单位为KB。
    • CCSC:当前压缩类的容量,单位为KB。
    • YGC:Young GC的次数。
    • FGC:Full GC的次数。
  • -gcutil:显示有关垃圾收集统计信息的摘要。

    • S0:年轻代中第一个Survivor区使用大小占当前容量的百分比。
    • S1:年轻代中第二个Survivor区使用大小占当前容量的百分比。
    • E:Eden区使用大小占当前容量的百分比。
    • O:老年代使用大小占当前容量的百分比。
    • M:元空间使用大小占当前容量的百分比。
    • CCS:压缩类使用大小占当前容量的百分比。
    • YGC:Young GC的次数。
    • YGCT:Young GC所用的时间。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
  • -gccause:显示关于垃圾收集统计信息的摘要(与-gcutil相同),以及最近和当前垃圾回收的原因。

    • S0:年轻代中第一个Survivor区使用大小占当前容量的百分比。
    • S1:年轻代中第二个Survivor区使用大小占当前容量的百分比。
    • E:Eden区使用大小占当前容量的百分比。
    • O:老年代使用大小占当前容量的百分比。
    • M:元空间使用大小占当前容量的百分比。
    • CCS:压缩类使用大小占当前容量的百分比。
    • YGC:Young GC的次数。
    • YGCT:Young GC所用的时间。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
    • LGCC:上次垃圾回收的原因。
    • GCC:当前垃圾回收的原因。
  • -gcnew:显示新生代的垃圾回收统计信息。

    • S0C:年轻代中第一个Survivor区的容量,单位为KB。
    • S1C:年轻代中第二个Survivor区的容量,单位为KB。
    • S0U:年轻代中第一个Survivor区已使用大小,单位为KB。
    • S1U:年轻代中第二个Survivor区已使用大小,单位为KB。
    • TT:对象在年轻代存活的次数。
    • MTT:对象在年轻代存活的最大次数
    • DSS:期望的Survivor区大小,单位为KB。
    • EC:年轻代中Eden区的容量,单位为KB。
    • EU:年轻代中Eden区已使用大小,单位为KB。
    • YGC:Young GC的次数。
    • YGCT:Young GC所用的时间。
  • -gcnewcapacity:显示新生代的大小及其对应的空间的统计信息。

    • NGCMN:年轻代最小的容量,单位为KB。
    • NGCMX:年轻代最大的容量,单位为KB。
    • NGC:当前年轻代的容量,单位为KB。
    • S0CMX:年轻代中第一个Survivor区最大的容量,单位为KB。
    • S0C:年轻代中第一个Survivor区的容量,单位为KB。
    • S1CMX:年轻代中第二个Survivor区最大的容量,单位为KB。
    • S1C:年轻代中第二个Survivor区的容量,单位为KB。
    • ECMX:年轻代中Eden区最大的容量,单位为KB。
    • EC:年轻代中Eden区的容量,单位为KB。
    • YGC:Young GC的次数。
    • FGC:Full GC的次数。
  • -gcold: 显示老年代和元空间的垃圾回收统计信息。

    • MC:元空间的容量,单位为KB。
    • MU:元空间已使用大小,单位为KB。
    • CCSC:压缩类的容量,单位为KB。
    • CCSU:压缩类已使用大小,单位为KB。
    • OC:老年代的容量,单位为KB。
    • OU:老年代已使用大小,单位为KB。
    • YGC:Young GC的次数。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
  • -gcoldcapacity:显示老年代的大小统计信息。

    • OGCMN:老年代最小的容量,单位为KB。
    • OGCMX:老年代最大的容量,单位为KB。
    • OGC:当前老年代的容量,单位为KB。
    • OC:当前老年代的容量,单位为KB。
    • YGC:Young GC的次数。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
  • -gcmetacapacity:显示元空间的大小的统计信息。

    • MCMN:元空间最小的容量,单位为KB。
    • MCMX:元空间最大的容量,单位为KB。
    • MC:当前元空间的容量,单位为KB。
    • CCSMN:压缩类最小的容量,单位为KB。
    • CCSMX:压缩类最大的容量,单位为KB。
    • YGC:Young GC的次数。
    • FGC:Full GC的次数。
    • FGCT:Full GC的所用的时间。
    • GCT:GC的所用的总时间。
  • -printcompilation:显示即时编译方法的统计信息。

    • Compiled:最近编译方法执行的编译任务的数量。
    • Size:最近编译方法的字节码的字节数。
    • Type:最近编译方法的编译类型。
    • Method:最近编译方法的类名和方法名。
相关推荐
Yana.nice18 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月23 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁24 分钟前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey1 小时前
【Linux】线程同步与互斥
linux·笔记
杨江1 小时前
seafile docker安装说明
运维
舰长1151 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀1 小时前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng1 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.1 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居