⭐表示重要。
/
,从 /
出发可以找到 Linux 系统中的所有目录和文件。/
根目录开始逐层查找文件和目录。/etc/sysconfig/network-scripts
/tmp/vmware-root/vmware-db.pl.2267
./ # 当前目录
../ # 当前目录的上一级目录
./
如果省略不写,也表示当前目录。
/
表示的是最顶层、最上面的那个根目录,不是当前目录
。/
和 ./
完全是两码事。/home
目录下创建一个和用户同名的目录作为这个用户的家目录,比如:创建一个名为 tom
的用户,它的家目录就是 /home/tom
。~
代表用户的家目录。root
,root
用户的家目录是 /root
目录。 目录名 |
是否重要 |
作用 |
/bin |
bin是binary的缩写,这个目录存放着最经常使用的命令。 |
|
/boot |
这里存放的是启动Linux时用到的引导程序文件。 |
|
/dev |
device(设备)的缩写,该目录下存放的是Linux的外部设备。 |
|
/etc |
⭐ |
存放系统和第三方应用程序的配置文件。 |
/home |
⭐ |
存放普通用户家目录。 |
/lib 和 /lib64 |
系统开机所需要最基本的动态连接共享库。 |
|
/media |
挂载Linux系统会自动识别的设备,例如U盘、光驱等。 |
|
/mnt |
专门用于挂载操作的目录。 |
|
/opt |
⭐ |
存放安装第三方应用程序时使用的压缩包文件。 |
/proc |
这个目录是一个虚拟的目录,它是系统内存的映射。 |
|
/root |
⭐ |
超级管理员root用户的家目录。 |
/run |
存放进程产生的临时文件,关机重启后会消失。 |
|
/sbin |
s是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 |
|
/srv |
service缩写,该目录存放一些服务启动之后需要提取的数据。 |
|
/sys |
该目录下安装了2.6内核中新出现的一个文件系统sysfs。 |
|
/tmp |
存放临时文件。 |
|
/usr |
⭐ |
应用程序的默认安装目录,类似于Windows下的program files目录。 |
/var |
⭐ |
存放经常变化的内容,例如日志文件。 |
按键 |
作用 |
Ctrl + l |
清屏 |
Ctrl + c |
强制终止程序 |
Ctrl + Insert |
复制 |
Shift + Insert |
粘贴 |
Ctrl + s |
锁屏 |
Ctrl + q |
解除锁屏 |
tab |
自动补全 |
Ctrl + l
Ctrl + c
Ctrl + Insert
Shift + Insert
Ctrl + s
Ctrl + q
tab
mkdir [-pv] 新目录的路径
-pv
表示创建多层目录。mkdir aaa
mkdir -pv bbb/ccc
cd 目标目录路径
cd /etc/sysconfig
cd aaa
cd ~
cd
ls [-l][-A][-R] 文件或目录的路径
-l
以详细信息形式显示资源。-A
显示目录内容时把隐藏资源也显示出来。-R
递归查看目录内容。ls -l
可以简写为 ll
。ll
ls -A
ll -A
ll -R aaa
pwd
pwd
touch 新建文件的路径
touch hello.java
cp 被复制的文件的路径 目标目录的路径
cp -r 被复制的目录的路径 目标目录的路径
-r
等同于 -R
。cp hello.java aaa
cp -R aaa bbb
mv 被移动的文件或目录的路径 目标目录
mv aaa bbb
rm 被删除文件的路径
rm -f 被删除文件的路径
rm -r 被删除的目录的路径
rm -rf 被删除的目录的路径
rm hello.java
rm -f hello.java
rm -f aaa
rm -rf aaa
vim
注意:在命令行模式下没有鼠标,所以刚开始会觉得非常不习惯,但是慢慢熟练之后会发现,不用鼠标全部用键盘的操作效率也很高。
vim content.txt
i
注意:按键的时候,屏幕上是不显示 i 的,但是左下角会显示插入(中文环境)或 Insert(英文环境)。
PHP 是世界上最好的语言
Esc
:set nu
:w
:q
:wq
:q!
gg
1 + shift + g
shift + g
n + shift + g
按键 |
效果 |
dd |
删除光标所在的行 |
d5d |
从光标所在行开始,向下连续删除5行(包括光标所在行) |
u |
撤销刚才的操作 |
Ctrl + r |
重做刚才撤销的操作 |
yy |
复制光标所在的行 |
p |
将当前复制的行粘贴到光标所在位置的下一行 |
y5y |
从光标所在行开始,向下连续复制5行(包括光标所在行) |
r |
替换光标所在位置的一个字符。第一步:按一下 r 键 第二步:输入新的字符 |
按键 |
大小写说明 |
光标动作 |
i |
小写 |
不动,就在 ,开始输入 |
I |
大写 |
移动到 ,开始输入 |
a |
小写 |
光标 ,然后开始输入 |
A |
大写 |
光标移动到 ,然后开始输入 |
o |
小写 |
先在光标所在行的 ,然后把光标移动到空行的开头,再开始输入 |
/
java
# 向下找
n
# 向上找
shift + n
:noh
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
:%s/hello/hi
注意:这时我们看到每一行只有第一个匹配的内容被替换了,后面的没有被替换。这是因为对正则表达式来说,它是以行为单位查找匹配的内容。每一行只要找到第一个匹配那么就可以判断这一行就是匹配的,没有必要继续向后查找了。如果我们需要将一行中的每一个匹配都替换,可以在指令后加 /g
。
:%s/hello/hi/g
cat 文件的路径
less 文件路径
按键 |
效果 |
空格 |
向下滚动一屏 |
b |
向上滚动一屏 |
回车 |
向下滚动一行 |
q |
退出 |
/关键词 |
搜索 n向下找 N向上找 |
= |
显示详细的文件信息 |
less content.txt
tail -n 5 文件的路径
tail -F 文件的路径
tail -n 5 content.txt
tail -F content.txt
find 查找范围 参数 表达式
find /root -name "*.txt"
locate boot.log
touch hello.java
locate hello.java
updatedb
locate hello.java
grep 参数 查找内容 文件路径
-v
表示返回不匹配的行。-n
表示显示行号。grep Java content.txt
grep 命令的关键词匹配和 vim 中的关键词搜索的区别:
grep -n Java content.txt
grep -nv Java content.txt
|
。命令 A | 命令 B
ll
-
开头,目录以 d
开头,那么可以安装特征编写正则表达式# 匹配以 - 开头的行
^-
ll | grep ^-
ll | grep ^- | wc -l
tar -zxvf tar包的路径 -C 需要解压的目录路径
参数名称 |
作用 |
-z |
用 gzip 对存档压缩或解压 |
-x |
解压 |
-v |
详细显示处理的文件 |
-f |
指定存档或设备 (缺省为 /dev/rmt0) |
注意:默认解压到当前目录下,如果当前目录中有同名目录或文件会直接覆盖,没有任何提示。
tar -zxvf apache-tomcat-8.5.73.tar.gz
ps [-ef]
-e
(entire,表示全部)指显示系统中全部的进程信息。ps -ef
列名 |
含义 |
UID |
进程的用户信息 |
|
进程id。由系统分配,不会重复。 |
|
父进程的id。父进程和子进程的关系是:父进程启动了子进程。 |
|
当前进程所对应的程序。 |
C |
用整数表示的CPU使用率 |
STIME |
进程启动时间 |
TTY |
进程所在终端。所谓终端就是用户输入命令的操作界面。 |
TIME |
进程所占用的CPU时间 |
pstree
ps -ef | less
ps -ef | grep -i sshd | grep -v grep
kill -9 进程id
ps -ef | grep -i firefox | grep -v grep
kill -9 5059
top:是一个基于终端的实时进程查看器命令,可以用来查看系统进程的信息,包括进程的PID、CPU使用率、内存使用情况等,还可以进行一些操作,如发送信号、调整优先级等。
05:49:19:表示当前系统时间,格式为hh:mm:ss。
up 1:35:表示系统已经运行了1小时35分钟,即系统的运行时间。
3 users:表示当前登录系统的用户数量。
load average: 0.10, 0.06, 0.06:分别表示系统的平均负载,过去1分钟、5分钟、15分钟内的平均负载。
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped, 0 zombie:表示当前系统中所有进程的情况,其中:
total:所有进程的数量。running:正在运行的进程数量。sleeping:休眠状态的进程数量。stopped:已停止的进程数量。zombie:僵尸进程的数量。
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st:表示CPU的使用情况,其中:
us:用户态CPU时间占用百分比。sy:内核态CPU时间占用百分比。ni:优先级较高的进程CPU时间占用百分比。id:CPU空闲时间占用百分比。wa:等待I/O数据的CPU时间占用百分比。hi:硬件中断时间占用百分比。si:软件中断CPU时间占用百分比。st:使用虚拟化技术的情况下,用于处理其他虚拟机需要的CPU时间占用百分比。
KiB Mem : 1863252 total, 98244 free, 1133500 used, 631508 buff/cache:表示内存使用情况,其中:
total:内存总量。free:空闲内存量。used:已使用内存量。buff/cache:Buffer和Cache占用的内存量
KiB Swap: 2097148 total, 2094836 free, 2312 used. 438260 avail Mem:表示交换空间使用情况,其中:
total:交换空间总量。free:空闲交换空间大小。used:已使用交换空间大小。avail Mem:可用内存大小
让我们逐个解释每个字段:
PID(进程ID): 每个正在运行的进程都有一个唯一的进程ID,用来标识进程。可以通过该ID来查找和操作进程。
USER(用户): 运行该进程的用户。
PR(优先级): 进程的优先级。可以是一个静态值(3-20)或一个动态值(即一个负数)。
NI(Nice值): 进程的Nice值,用于调整进程调度的优先级。较高的Nice值表示较低的优先级。
VIRT(虚拟内存): 进程使用的虚拟内存大小,包括所有分配给进程的虚拟内存区域的大小。
RES(常驻内存): 进程使用的物理内存大小,即常驻内存区域的大小。
SHR(共享内存): 进程使用的共享内存大小,即多个进程共享的内存区域的大小。
S(状态): 进程的状态。常见的状态包括:R(运行)、S(睡眠)、Z(僵尸)、D(不可中断的睡眠)等。
%CPU%MEM: 进程的CPU和内存使用率。
TIME+(运行时间): 进程已经运行的时间。
COMMAND(命令): 运行的命令或脚本的名称。
top
命令名 |
更新时间间隔(秒) |
不显示任何闲置或者僵死进程 |
通过进程id监控单一进程 |
top |
-d 间隔秒数 |
-i |
-p 进程id |
按键 |
功能 |
P |
默认值,根据CPU使用率排序 |
M |
以内存的使用率排序 |
N |
以PID排序 |
d |
设置数据刷新的时间间隔,单位是秒 |
q |
退出 |
top -d 2
top -i
top -p 1189
内容举例 |
说明 |
14:12:01 |
系统当前时间 |
up 6:04 |
系统的运行时间,前面例子表示本机已经运行6小时4分钟 |
2 users |
当前登录了2个用户 |
load average:0.00, 0.02, 0.05 |
系统在之前1分钟,5分钟,15分钟的平均负载。 一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
内容举例 |
说明 |
Tasks: 210 total |
系统中的进程总数 |
1 running |
正在运行的进程数 |
209 sleeping |
睡眠的进程 |
0 stopped |
正在停止的进程 |
0 zombie |
僵尸进程。如果不是0,需要手工检查僵尸进程 |
内容举例 |
说明 |
Cpu(s):3.0%us |
用户空间占用的CPU百分比,us对应user |
3.0%sy |
内核空间占用的CPU百分比,sy对应system |
0.0%ni |
改变过优先级的进程占用的CPU百分比,ni对应niced |
93.9%id |
空闲CPU的CPU百分比 |
0.1%wa |
等待输入/输出的进程的占用CPU百分比,wa对应IO wait |
0.0%hi |
硬中断请求服务占用的CPU百分比,hi对应hardware IRQ |
0.0%si |
软中断请求服务占用的CPU百分比,si对应software IRQ |
0.0%st |
st(Steal time)虚拟时间百分比,也叫被hypervisor偷走的时间。 就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
内容举例 |
说明 |
3861295 total |
物理内存的总量,单位KB |
1037800 free |
空闲的物理内存数量 |
943564 used |
已经使用的物理内存数量 |
1879928 buff/cache |
作为缓冲的内存数量 |
内容举例 |
说明 |
3145724 total |
交换分区(虚拟内存)的总大小 |
3145724 free |
空闲交换分区的大小 |
0 used |
已经使用的交互分区的大小 |
2649008 avail Mem |
在不交换的情况下,对启动新应用程序可用内存的估计 |
交换分区是一个非常值得关注的地方,如果 swap 区的 used 数值持续发生变化那么说明在内核和交换分区之间正在持续发生数据交换,这表示内存不够用了——必须不断把内存中的数据保存到硬盘上。
netstat -anp
参数名 |
作用 |
-a |
显示所有正在或不在侦听的套接字。 |
-n |
显示数字形式地址而不是去解析主机、端口或用户名。 |
-p |
显示套接字所属进程的 PID 和名称。 |
netstat -anp | less
netstat -anp | grep sshd
netstat -anp | grep :22
history
history
技巧:将命令运行的结果写入文件
注意:/dev/null,被称为 Linux 的黑洞,因为不管写入多少数据到这个文件,数据都会被销毁。
echo xxx
System.out.println("Hello World!");
$PATH
echo $PATH
官方命令手册
就是非常权威的参考文档。man 要查询的命令
按键 |
说明 |
空格 |
向下滚动一屏 |
回车 |
向下滚动一行 |
b |
向上滚动一屏 |
q |
退出 |
/关键词 |
搜索关键词 n向下找 N向上找 |
man date
info 要查询的命令
按键 |
说明 |
Up |
Move up one line |
Down |
Move down one line |
DEL |
Scroll backward one screenful |
SPC |
Scroll forward one screenful |
PgUp |
Scroll backward in this window |
PgDn |
Scroll forward in this window |
info ls
ls --help
不要轻易关机!
执行关机或重启操作前一定要问自己下面的问题:法律责任
的。 命令 |
作用 |
sync |
将内存数据保存到硬盘上 |
poweroff |
关机 |
reboot |
重启 |
\
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
curl [-X] [GET|POST...] 资源的URL地址
HTTP
, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). The command is designed to work without user interaction.curl www.baidu.com
curl -X GET www.baidu.com
#!/bin/bash
echo "hello before sleep"
sleep 20
echo "hello after sleep"
sh demo.sh
sh demo.sh &
no hang up
的缩写,中文翻译为 不挂断
,指客户端断开连接后,命令启动的进程仍然运行。nohup java -jar spring-boot-demo.jar > springboot.log 2 > &1 &
wget [-P 指定目标目录] 目标文件的在 web 上的地址
wget -P /opt https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz --no-check-certificate
符号 |
含义 |
^ |
匹配字符串开始位置的字符 |
$ |
匹配字符串结束位置的字符 |
. |
匹配任何一个字符 |
* |
匹配前面的字符出现 0 ~ n 次 |
[a,m,u] |
匹配字符 a 或 m 或 u |
[a-z] |
匹配所有小写字母 |
[A-Z] |
匹配所有大写字母 |
[a-zA-Z] |
匹配所有字母 |
[0-9] |
匹配所有数字 |
\ |
特殊符号转义 |
basename /aa/bb/cc/dd
basename /aa/bb/cc/dd
basename /aa/bb/cc/dd.txt .txt
basename /aa/bb/cc/dd.txt .txt
dirname /aa/bb/cc/dd
dirname /aa/bb/cc/dd
dirname /aa/bb/cc/dd.txt
cut -d xxx -f n 字符串
-d
指定拆分依据的字符。-f
指定要提取的列。\t
拆分。touch cut.txt
vim cut.txt
dong shen
guan zhen
wo wo
lai lai
le le
cut -d " " -f 1 cut.txt
cut -d " " -f 2 cut.txt
cut -d " " -f 2,3 cut.txt
cut -d " " -f 1 cut.txt | grep -i guan
cat cut.txt | grep -i guan | cut -d " " -f 1
:
开始后的所有路径:echo $PATH | cut -d : -f 2-
ifconfig | grep netmask | cut -d i -f 2 | cut -d " " -f 2
awk [选项参数] 'pattern{action1} patter2{action2} ...' filename
-F
参数:执行分隔符。 变量名 |
说明 |
FILENAME |
文件名 |
NR |
已读取的记录(行号) |
NF |
浏览记录的域的个数(切割后,列的个数) |
cp /etc/passwd ./
awk -F : '/^root/{print $7}' passwd
awk -F : '/^root/{print $1 "," $7}' passwd
user,shell
在最后一行添加 heheda,/bin/nidaye
。awk -F : 'BEGIN{print "user,shell"}{print $1 "," $7}END{print "heheda,/bin/nidaye"}' passwd
awk -F : '{print $3+1}' passwd
awk -F : '{print "文件名:" FILENAME ", 行号:" NR ", 列数:" NF }' passwd
ifconfig | awk -F ' ' '/netmask/{print $2}'
ifconfig | awk '/^$/{print NR}'
sort [参数] [文件路径]
参数名 |
作用 |
-n |
依照数值大小排序 |
-r |
相反顺序排序 |
-t |
设置排序时使用的分隔字符 |
-k |
指定需要排序的列 |
touch sort.sh
vim sort.sh
bb:40:5.4
bd:20:4.2
xz:50:2.3
cls:10:3.5
ss:30:1.6
sort -t : -nrk 3 sort.sh
mkdir test
cd test
touch happy happy01 happy02 happy03 sad01 sad02 sad03
sad
的资源删除,但是保留 sad02
。ls
sad
的资源:ls | grep sad
sad02
:ls | grep sad | grep -v sad02
不接受标准输入作为参数,只接受命令行参数
。ls | grep sad | grep -v sad02 | rm
ls | grep sad | grep -v sad02 | xargs rm
ifconfig | awk '/^$/{print NR}'
命令 ifconfig | awk '/^$/{print NR}' 的作用是在Unix/Linux系统中查找ifconfig命令输出的空行,并打印其行号(NR是awk内置变量,表示当前处理的记录数,即行号)。
具体解释:
因此,这个命令组合的作用是找出ifconfig命令输出中的所有空行,并打印这些空行在输出中的位置(行号)。但在实际使用中,由于ifconfig命令的输出通常不会有空行,这条命令可能并不会得到任何输出。
张三 40
李四 50
王五 60
awk -F " " '{sum+=$2} END{print sum}' chengji.txt
所以整个命令的作用就是读取chengji.txt文件中的内容,计算其中每行第二个字段(以空格分隔)的数据之和,并最后输出这个总和。
9
8
7
6
5
4
3
2
10
1
sort -n content.txt
man cmd1 # 查看命令的联机手册
man cmd1 cmd2 ...# 逐个查看各命令的联机手册联机手册多屏时会自动分页显示
man Is | less # 指定分屏工具
它也是systemd-journald服务的一部分,该服务负责收集、存储和检索系统日志。
dump $备份后文件名 $原文件名或者路径
1,dump命令
[root@localhost~]#dump[选项】备份之后的文件名原文件或目录
选项:
-level: 就是我们说的0-9十个备份级别
-f 文件名: 指定备份之后的文件名
-u: 备份成功之后,把备份时间记录在/etc/dumpdates文件
-v: 显示备份过程中更多的输出信息
j: 调用bzlib库压缩备份文件,其实就是把备份文件压缩
为。bz2格式
w: 显示允许被dump的分区的备份等级及备份时间
备份分区
dump-ouj-f /root/boot.bak.bz2 /boot/
#备份命令。先执行一次完全备份,并压缩和更新备份时间
cat/etc/dumpdates
#查看备份时间文件
cp install.log /boot/
#复制日志文件到/boot分区
dump-luj-f/root/boot.bak1.bz2 /boot/
#增量备份/boot分区,并压缩
dump-w
#查询分区的备份时间及备份级别的
查找dump
rpm -qa |grep dump
这个工具在网络调试、性能分析、安全监测等方面有着广泛的用途。
基本用法:
抓取所有接口上的数据包:
sudo tcpdump -i any
抓取指定接口上的数据包:
sudo tcpdump -i eth0
抓取指定主机与其他主机通信的数据包:
sudo tcpdump host
抓取指定端口的数据包:
sudo tcpdump port 80
使用逻辑操作符组合多个条件:
sudo tcpdump 'port 80 or port 443'
保存抓包结果到文件:
sudo tcpdump -w output.pcap
从文件读取数据包:
sudo tcpdump -r output.pcap
输出解释:
假设输出了这样一行数据:
IP 192.168.1.2.22 > 192.168.1.3.49152: Flags [P.], seq 2956702369:2956702417, ack 4208475575, win 501, options [nop,nop,TS val 431523 ecr 17638], length 48
IP:表示这是一个 IP 数据包。
192.168.1.2.22:源 IP 地址和源端口。
192.168.1.3.49152:目标 IP 地址和目标端口。
Flags [P.]:TCP 标志位。P 表示 PUSH,. 表示没有更多的标志。
seq 和 ack:分别表示 TCP 序列号和确认号。
win 501:表示 TCP 窗口大小。
options:TCP 选项。
length 48:数据包长度。
这只是一个非常简单的入门级解释和用法,tcpdump 的功能非常丰富,具体可以通过 man tcpdump 来查看更多详细的信息。
在 Linux 系统上,ss -s 会输出一个简要的 socket 统计报告。
一个典型的 ss -s 输出可能类似下面这样:
Total: 500 (kernel 600)
TCP: 30 (estab 20, closed 7, orphaned 0, synrecv 0, timewait 7/0), ports 0
Transport Total IP IPv6
RAW 0 0 0
UDP 10 8 2
TCP 20 16 4
INET 30 24 6
FRAG 0 0 0
请注意,这里的数值只是一个示例,并不能代表实际系统中的数值。而且不同的系统版本可能会有不同的输出格式。
以上方法都可以用于删除 Vim 编辑器中的全部内容。根据自己的喜好选择其中一个方法即可。
当你在命令行界面中执行 uptime 命令时,你将会看到一个类似如下的输出:
02:43 up 10 days, 4:23, 4 users, load averages: 1.06 0.90 0.87
输出中的各个部分含义如下:
通过查看 uptime 输出,你可以了解系统的运行时间以及当前的负载情况。这对于监控系统性能和判断系统是否正常运行非常有用。
jstat -gcutil是Java HotSpot虚拟机提供的一个命令行工具,用于监控Java应用程序的垃圾回收情况。下面是jstat -gcutil输出的解释:
以上指标可用于分析Java应用程序的内存使用和垃圾回收性能。常见的策略是通过监控这些指标来调整垃圾回收器的参数,以优化应用程序的性能和内存利用率。
在jstat -gcutil输出中,重点关注的值通常是以下几个:
这些值的关注点是为了确定应用程序的内存使用情况、垃圾回收频率和效率,以便进行性能调优和内存管理的决策。但具体关注哪个值还需要根据具体的应用场景和需求来决定。如果希望减少停顿时间,可能更关注YGCT;如果想优化内存利用率,可以关注Eden和Old区的使用比例等等。
启动;systemctl start firewalld
查看状态;systemctl status fiewalld
停止;systemctl disable firewalld
禁止;systemctl stop firewalld
命令 “hostname -i” 用于获取主机的IP地址。通过运行这个命令,系统会返回主机的IP地址,它可以是IPv4地址或IPv6地址。这个命令对于网络配置和故障排除非常有用,因为它可以帮助你确定主机当前使用的IP地址。
“traceroute” 命令用于 Unix/Linux 系统,而 “tracert” 命令用于 Windows 系统。它们的功能相似,都可以帮助用户确定数据包在网络中经过的路由路径和传输延迟。
当你在命令行中运行 “trace” 命令,它会向目标地址发送一系列的数据包,每个数据包在网络中传输时都会经过一系列的路由器。每个路由器都会将数据包传递给下一个跳点,直到它到达目标地址。
“trace” 命令会显示每个跳点的IP地址和传输时间,以及中间经过的网络节点。通过这些信息,你可以确定数据包的路径,并检查是否存在网络延迟或数据包丢失的问题。
使用 “trace” 命令可以帮助网络管理员诊断网络连接问题、优化网络路由或查找网络故障的原因。
find . -name "*.c"
将系统中所有名为mysql的文件列出来
将当前目录及其子目录下所有后缀名是c的文件列出来
#系统管理
ps -ef 进程号
ps -ef 命令用于列出系统上运行的所有进程的详细信息。它会显示每个进程的进程号(PID)、用户、CPU 使用情况、内存使用情况等等。但是,ps -ef 命令通常不需要指定特定的进程号作为参数。
如果您想查看特定进程的详细信息,可以使用以下方式:
perlCopy code
ps -ef | grep 进程名
将 "进程名" 替换为您想要查找的进程的名称或关键词。这将筛选出包含指定关键词的进程,并显示它们的详细信息。
如果您已经知道要查找的进程的确切进程号,可以直接使用以下命令:
cssCopy code
ps -p 进程号
将 "进程号" 替换为您要查看的进程的实际进程号。这将显示特定进程的详细信息。
ps -ef | grep java 命令用于查找系统上所有包含 "java" 字符串的进程,并显示它们的详细信息。以下是命令输出的解释:
每行输出表示一个包含 "java" 字符串的进程,列出的信息包括:
在输出中,您将看到所有包含 "java" 字符串的进程,包括 Java 应用程序和可能与 Java 相关的其他进程。这对于查找正在运行的 Java 进程以及它们的详细信息非常有用。
arms_pop_xms="6G":这表示设置Java虚拟机(JVM)的初始堆大小为6GB。初始堆大小是JVM启动时为应用程序分配的内存大小。
arms_pop_xmx="6G":这表示设置JVM的最大堆大小为6GB。最大堆大小确定了JVM可以动态分配的最大内存量。
arms_pop_perm_size="512m":这表示设置JVM的永久代(permgen)大小为512MB。永久代主要用于存储类的元数据。
arms_pop_max_perm_size="512m":这表示设置JVM的最大永久代大小为512MB。指定最大永久代大小可以避免永久代过大导致的内存溢出问题。
arms_pop_xmn="2G":这表示设置JVM的年轻代(Young Generation)的初始大小为2GB。年轻代是JVM中用于存放新创建对象的区域
[kongjian@tsar]$ tsar -l -i 1
Time ---cpu-- ---mem-- ---tcp-- -----traffic---- --xvda-- -xvda1-- -xvda2-- -xvda3-- -xvda4-- -xvda5-- ---load-
Time util util retran pktin pktout util util util util util util load1
11/04/13-14:09:10 0.20 11.57 0.00 9.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11/04/13-14:09:11 0.20 11.57 0.00 4.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
这是一个 tsar 命令的输出结果,用于监控系统性能指标。
Time---cpu-----mem-----tcp-------traffic---- --sda--- --sdb--- --sdc--- --sdd--- --sde--- --sdf--- --sdg--- -- sdh-----sdi----sdj--- --sdk--- --sdl--_---loa ad
Time:时间戳
cpu:CPU 使用率
mem:内存使用率
tcp:TCP 连接的各种统计信息,如重传次数等
traffic:网络流量统计信息,如数据包的接收和发送量等
sda:磁盘 sda 的使用率
sdb:磁盘 sdb 的使用率
sdc:磁盘 sdc 的使用率
sdd:磁盘 sdd 的使用率
sde:磁盘 sde 的使用率
sdf:磁盘 sdf 的使用率
sdg:磁盘 sdg 的使用率
sdh:磁盘 sdh 的使用率
sdi:磁盘 sdi 的使用率
sdj:磁盘 sdj 的使用率
sdk:磁盘 sdk 的使用率
sdl:磁盘 sdl 的使用率
load:系统平均负载
以第二行数据为例,解释如下:
这是一个 tsar 命令的输出结果,用于监控系统性能指标。
时间:Time
CPU 使用率:cpu
内存使用率:mem
TCP 连接信息:tcp
网络流量信息:traffic
磁盘 sda 的使用率:sda
磁盘 sdb 的使用率:sdb
磁盘 sdc 的使用率:sdc
磁盘 sdd 的使用率:sdd
磁盘 sde 的使用率:sde
磁盘 sdf 的使用率:sdf
磁盘 sdg 的使用率:sdg
磁盘 sdh 的使用率:sdh
磁盘 sdi 的使用率:sdi
磁盘 sdj 的使用率:sdj
磁盘 sdk 的使用率:sdk
磁盘 sdl 的使用率:sdl
系统平均负载:load
Time:时间戳
cpu util:CPU 使用率
mem util:内存使用率
tcp retran:TCP 重传次数
traffic pktin:网络接收数据包量
traffic pktout:网络发送数据包量
xvda util:磁盘 xvda 的使用率
xvda1 util:磁盘 xvda1 的使用率
xvda2 util:磁盘 xvda2 的使用率
xvda3 util:磁盘 xvda3 的使用率
xvda4 util:磁盘 xvda4 的使用率
xvda5 util:磁盘 xvda5 的使用率
load1:系统平均负载
以第二行数据为例,解释如下:
时间:11/04/13-14:09:11
CPU 使用率:0.20(即 20%)
内存使用率:11.57(即 11.57%)
TCP 重传次数:0.00
网络接收数据包量:4.00
网络发送数据包量:2.00
磁盘 xvda 的使用率:0.00
磁盘 xvda1 的使用率:0.00
磁盘 xvda2 的使用率:0.00
磁盘 xvda3 的使用率:0.00
磁盘 xvda4 的使用率:0.00
磁盘 xvda5 的使用率:0.00
系统平均负载:0.00
shutdown -r now 立刻
shutdown -r 10 过10分钟自动重启
shutdown -r 20:35在时间为20:35时候重自
shutdown -c取消重启
shutdown -h now 立刻关机
shutdown-h 10 分钟后自动关机
Linux 系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题、解决问题,降低损失,常用的巡检命令如下:
它接受一个或多个进程 ID 作为参数,并输出这些进程的当前工作目录路径。
#用户管理
useradd新增用户
格式:useradd [参数]用户名称
常用参数:
-c comment指定一段注释性描述。
-d目录 指定用户主目录,如果此目录不存在,则同时使用一m选项,可以创建主自录。
-g用户组 指定用户所属的用户组。
-G用户组,用户组指定用户所属的附加组。
-s she11文件指定用户的登录shell。
-u 用户号指定用户的用户号,如果同时有-0选项,则可以重复使用其他用户的标识号。
命令
useradd stu 新增用户stu
useradd -g root zhangsan 添加用户zhangsan到root组
useradd-d/home/wangwu 1isi 添加用户lisi指定的目录为wangwu(不指定则款认的名录各和用户名相同)
用户管理的一项重要内容是用户口令的管理。用户账号刚创反建时没有口令,但是被系统锁定,无法使用。必须为其指定。
口令后才可以使用,即使是指定空口令。指定和修改用户口令的shell命令是passwd,超级用户可以为自己和其他用
户指定口令,普通用户只能用它修改自己的口令
格式:passwd [参数]用户名
常用参数:
-1 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令,比如centos 默认的root账号没有密码,就可以直接使用passwd修改密码即可。
命令:
passwd stu 按下enter键输入2次密码即可
head -n 10 命令用于显示文本文件的前10行内容。如果您想要在终端中查看一个文本文件的前10行,并且希望以中文输出,可以按照以下方式执行:
head -n 10 文件名
将 "文件名" 替换为您想要查看前10行内容的文本文件的名称,该命令将以中文输出这些行。如果文件包含中文字符,它们也将被正确显示。
#tail -n +10 从10行开始显示,显示10行之后的
#head -n 10 /etc/yum.conf 显示前面10行
#tail -f $文件名 实时监控日志信息,可以不断刷新的信息,可以用ctrl+c 退出命令行
在命令行中,使用cd ..可以退到上一级目录。这个命令会让你从当前目录切换到父目录(上一级目录)。
例如,如果你当前位于目录/home/user/documents,运行cd ..后,你将进入目录/home/user,也就是上一级目录。
请注意,命令行中的..表示父目录,.表示当前目录。
ls -a 是一个在 Unix-like 操作系统中用于列出文件和目录的命令,包括隐藏文件和隐藏目录。隐藏文件和目录以点(.)开头,通常用于存储配置文件和其他系统文件。您可以在终端中执行以下命令来列出所有文件和目录,包括隐藏的:
ls -a
这将显示当前目录中的所有文件和目录,包括以点开头的隐藏文件和目录。
grep 是一个在 Unix-like 操作系统中用于搜索文本的命令,它可以查找并显示符合指定模式的字符串。以下是一些常用的 grep 参数:
示例用法:
这些参数可以根据您的具体需求来组合使用,以便高效地查找和处理文本数据。
快捷键
yum安装 使用联网
优点:安装方便,稳定性高,与系统兼容性好
缺点:需要联网,有的软件没有老旧版本
rpm安装,是指已经编译好的文件,并打包。
优点:安装方便
缺点:兼容性没有yum方式好
您提到了通过 tar -zxvf 命令来解压 tar.gz 文件,这是正确的。以下是这个命令的详细说明:
要解压一个名为 package.tar.gz 的 tar.gz 文件,您可以使用以下命令:
tar -zxvf package.tar.gz
这将解压文件并将其内容提取到当前目录。如果您希望将文件提取到特定目录,可以在命令中指定目标目录,例如:
tar -zxvf package.tar.gz -C /path/to/target/directory
这将把文件提取到 /path/to/target/directory 目录中。
rpm -ql 命令用于查看已安装的 RPM 包中的文件列表和安装路径。您可以使用以下方式来查看特定包的安装路径:
rpm -ql 包名
将 "包名" 替换为您要查询的 RPM 包的名称,然后执行命令。这将列出该包中安装的文件及其对应的路径。这对于查找特定软件包的安装位置非常有用。
#rpm -qa |grep 软件名 #查找安装包,包名
ethtool 是一个用于配置和显示以太网接口的工具,它通常在 Linux 系统上使用。它允许您查看和修改以太网接口的参数和状态,包括速度、双工模式、MAC 地址等。
以下是一些常见的 ethtool 命令和用法示例:
Copy code
ethtool eth0
这将显示名为 eth0 的以太网接口的详细信息,包括速度、双工模式、MAC 地址等。
cssCopy code
ethtool -a eth0
这将列出 eth0 接口支持的各种速度和双工模式。
sqlCopy code
ethtool -s eth0 speed 100 duplex full
这将将 eth0 接口的速度设置为 100 Mbps,并设置为全双工模式。
Copy code
ethtool -S eth0
这将显示 eth0 接口的详细统计信息。
Copy code
ethtool -s eth0 wol g
这将启用 eth0 接口的 Wake-on-LAN 功能。
请注意,使用 ethtool 命令需要管理员权限,通常需要在 sudo 命令前缀下执行。这些命令可以根据您的具体网络配置和需求进行调整。
curl 是一个命令行工具和库,用于在各种操作系统上进行网络数据传输。它支持多种协议,包括 HTTP、HTTPS、FTP、SCP、SFTP 等,使您能够从命令行或脚本中执行各种网络请求和操作。以下是一些常见的 curl 命令和用法示例:
curl http://example.com
这将向 http://example.com 发送一个简单的 GET 请求并将响应显示在终端上。
curl -X POST -d "param1=value1¶m2=value2" http://example.com/api
这将向 http://example.com/api 发送一个 POST 请求,包含指定的参数。
curl -O https://example.com/file.txt
这将下载 https://example.com/file.txt 并将其保存到当前工作目录中。
curl -F "[email protected]" http://example.com/upload
这将上传本地文件 localfile.txt 到 http://example.com/upload。
curl -u username:password http://example.com/api
这将使用用户名和密码进行基本身份验证,并发送请求到 http://example.com/api。
curl -v http://example.com
这将显示请求和响应的详细头部信息。
curl -L http://example.com/redirect
这将跟随重定向并获取最终的目标 URL 的内容。
curl 是一个非常强大的网络工具,可以用于许多网络任务,包括获取和发送数据、测试 API、下载文件等等。您可以根据具体的需求和场景来使用 curl 命令。
curl 是一个用于在命令行下执行 HTTP 请求的工具,它支持多种协议,包括 HTTP、HTTPS、FTP、SCP、SFTP 等。以下是 curl 命令的常见参数和介绍:
cssCopy code
curl [OPTIONS] [URL]
以下是常见的 curl 命令参数及其介绍:
这只是 curl 命令的一部分选项,curl 支持的选项非常丰富,可以根据需要进行组合和使用,以执行各种类型的 HTTP 请求。可以运行 curl --help 命令查看完整的选项列表和说明。
host 命令用于查询域名系统 (DNS) 中的主机名或 IP 地址信息。它可以通过域名查找相应的 IP 地址,或者通过 IP 地址查找相应的域名。以下是一些常见的 host 命令用法示例:
Copy code
host example.com
这将查询域名 example.com 对应的 IP 地址,并显示结果。
Copy code
host 8.8.8.8
这将查询 IP 地址 8.8.8.8 对应的域名,并显示结果。
Copy code
host google.com yahoo.com
这将查询多个域名对应的 IP 地址,并显示结果。
Copy code
host example.com dns.server.ip.address
这将使用指定的 DNS 服务器 IP 地址来查询域名 example.com 对应的 IP 地址。
host 命令是一个用于进行基本 DNS 查询的实用工具,可以用于检查域名解析是否正常工作,以及查找特定主机名或 IP 地址的信息。请注意,host 命令在不同的操作系统中可能具有不同的选项和用法。
[root@iZuf64qftl2ndlio79y2v2Z /]# ifconfig
eth0: flags=4163
inet 172.22.3.73 netmask 255.255.255.0 broadcast 172.22.3.255
inet6 fe80::216:3eff:fe00:523e prefixlen 64 scopeid 0x20
ether 00:16:3e:00:52:3e txqueuelen 1000 (Ethernet)
RX packets 96659 bytes 134803914 (128.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23217 bytes 3592545 (3.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
这是一个网络接口的配置和状态信息,通常在Linux系统中通过ifconfig或ip addr命令查看。下面是这段信息的详细解释:
uname -a 命令用于显示系统的内核版本、操作系统类型以及 CPU 信息。执行该命令将输出包括这些信息的一行文本。以下是 uname -a 命令的示例输出:
graphqlCopy code
Linux myhostname 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
解释这个输出:
uname -a 命令可以用于查看系统的基本信息,包括操作系统和硬件相关的信息。这对于确定正在运行的系统的配置非常有用。
head -n 1 /etc/issue 命令用于查看操作系统版本信息。执行该命令将显示操作系统版本的第一行文本。以下是示例输出:
Ubuntu 20.04.1 LTS \n \l
这个输出告诉您正在运行的操作系统版本是 Ubuntu 20.04.1 LTS。操作系统版本信息通常包括发行版名称和版本号。
请注意,/etc/issue 文件通常包含了登录时显示的操作系统版本信息。然而,这个文件的内容可能因不同的 Linux 发行版而异。在某些情况下,您可能需要使用其他命令或文件来查看操作系统版本。
cat /proc/cpuinfo 命令用于查看关于 CPU(中央处理器)的详细信息。执行该命令将显示有关系统中每个 CPU 核心的信息。以下是示例输出的一部分:
yamlCopy code
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
stepping : 10
microcode : 0xde
cpu MHz : 1800.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
...
这个输出提供了关于 CPU 的各种信息,包括制造商、型号、核心数、线程数、时钟频率等等。
cat /proc/cpuinfo 是一个用于查看 CPU 信息的常用命令,它可以用于了解系统上的 CPU 配置和性能特征。如果您想获取更详细的 CPU 信息,可以使用工具如 lscpu 或 lshw(可能需要安装)来获取更友好和易读的输出。
cat /proc/cpuinfo 命令用于查看有关 CPU(中央处理器)的详细信息。以下是输出的解释,其中包括了一些常见的字段和信息:
这些字段提供了有关系统中每个 CPU 核心的详细信息,包括制造商、型号、频率、缓存大小等等。这些信息对于了解系统的 CPU 配置和性能非常有用。
[root@localhost ~]# lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/7p, 12M
|__ Port 1: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 1: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
[root@localhost ~]# lspci -tv
-[0000:00]-+-00.0 Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge
+-01.0-[01]--
+-07.0 Intel Corporation 82371AB/EB/MB PIIX4 ISA
+-07.1 Intel Corporation 82371AB/EB/MB PIIX4 IDE
+-07.3 Intel Corporation 82371AB/EB/MB PIIX4 ACPI
+-07.7 VMware Virtual Machine Communication Interface
+-0f.0 VMware SVGA II Adapter
+-10.0 Broadcom / LSI 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
+-11.0-[02]--+-00.0 VMware USB1.1 UHCI Controller
| +-01.0 Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
| +-02.0 Ensoniq ES1371/ES1373 / Creative Labs CT2518
| \-03.0 VMware USB2 EHCI Controller
+-15.0-[03]--
+-15.1-[04]--
+-15.2-[05]--
+-15.3-[06]--
+-15.4-[07]--
+-15.5-[08]--
+-15.6-[09]--
+-15.7-[0a]--
+-16.0-[0b]--
+-16.1-[0c]--
+-16.2-[0d]--
+-16.3-[0e]--
+-16.4-[0f]--
+-16.5-[10]--
+-16.6-[11]--
+-16.7-[12]--
+-17.0-[13]--
+-17.1-[14]--
+-17.2-[15]--
+-17.3-[16]--
+-17.4-[17]--
+-17.5-[18]--
+-17.6-[19]--
+-17.7-[1a]--
+-18.0-[1b]--
+-18.1-[1c]--
+-18.2-[1d]--
+-18.3-[1e]--
+-18.4-[1f]--
+-18.5-[20]--
+-18.6-[21]--
\-18.7-[22]--
解释每行的含义如下:
接下来的每行表示一个设备及其子设备,以及它们之间的层次关系。
以下还有更多设备,具体根据设备的类别编号和描述进行解释。
# lsusb -tv # 列出所有 USB 设备
[root@localhost ~]# lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/7p, 12M
|__ Port 1: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 1: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
解释每行的含义如下:
# lsmod # 列出加载的内核模块
[root@localhost ~]# lsmod
Module Size Used by
nf_conntrack_netlink 40492 0
xt_addrtype 12676 2
br_netfilter 22256 0
xt_CHECKSUM 12549 1
ipt_MASQUERADE 12678 4
nf_nat_masquerade_ipv4 13463 1 ipt_MASQUERADE
tun 40260 1
devlink 60067 0
overlay 91659 0
ip6t_rpfilter 12595 1
ip6t_REJECT 12625 2
nf_reject_ipv6 13717 1 ip6t_REJECT
ipt_REJECT 12541 4
nf_reject_ipv4 13373 1 ipt_REJECT
xt_conntrack 12760 13
ebtable_nat 12807 1
ebtable_broute 12731 1
bridge 155432 2 br_netfilter,ebtable_broute
stp 12976 1 bridge
llc 14552 2 stp,bridge
ip6table_nat 12864 1
nf_conntrack_ipv6 18935 7
nf_defrag_ipv6 35104 1 nf_conntrack_ipv6
nf_nat_ipv6 14131 1 ip6table_nat
ip6table_mangle 12700 1
ip6table_security 12710 1
ip6table_raw 12683 1
iptable_nat 12875 1
nf_conntrack_ipv4 19149 8
nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26583 3 nf_nat_ipv4,nf_nat_ipv6,nf_nat_masquerade_ipv4
iptable_mangle 12695 1
iptable_security 12705 1
iptable_raw 12678 1
nf_conntrack 143360 8 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4,nf_conntrack_ipv6
ip_set 45799 0
ebtable_filter 12827 1
ebtables 35009 3 ebtable_broute,ebtable_nat,ebtable_filter
ip6table_filter 12815 1
ip6_tables 26912 5 ip6table_filter,ip6table_mangle,ip6table_security,ip6table_nat,ip6table_raw
iptable_filter 12810 1
vmw_vsock_vmci_transport 30620 1
vsock 40463 2 vmw_vsock_vmci_transport
bnep 23721 2
sunrpc 366617 1
dm_mirror 22326 0
dm_region_hash 20813 1 dm_mirror
dm_log 18411 2 dm_region_hash,dm_mirror
dm_mod 128595 2 dm_log,dm_mirror
snd_seq_midi 13565 0
snd_seq_midi_event 14597 1 snd_seq_midi
crc32_pclmul 13133 0
ppdev 17671 0
ghash_clmulni_intel 13273 0
snd_ens1371 25076 3
aesni_intel 189456 0
vmw_balloon 18094 0
snd_rawmidi 31553 2 snd_ens1371,snd_seq_midi
lrw 13286 1 aesni_intel
gf128mul 15139 1 lrw
glue_helper 13990 1 aesni_intel
ablk_helper 13597 1 aesni_intel
cryptd 21190 3 ghash_clmulni_intel,aesni_intel,ablk_helper
snd_ac97_codec 134575 1 snd_ens1371
ac97_bus 12730 1 snd_ac97_codec
snd_seq 62774 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 14356 3 snd_seq,snd_rawmidi,snd_seq_midi
btusb 45616 0
btrtl 12945 1 btusb
btbcm 14040 1 btusb
btintel 15709 1 btusb
pcspkr 12718 0
joydev 17389 0
snd_pcm 109531 2 snd_ac97_codec,snd_ens1371
bluetooth 556979 26 bnep,btbcm,btrtl,btusb,btintel
snd_timer 34110 2 snd_pcm,snd_seq
rfkill 26487 2 bluetooth
sg 40719 0
snd 83987 13 snd_ac97_codec,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_ens1371,snd_seq_device
soundcore 15047 1 snd
i2c_piix4 22401 0
vmw_vmci 67168 1 vmw_vsock_vmci_transport
parport_pc 28205 0
parport 46395 2 ppdev,parport_pc
ip_tables 27126 5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
xfs 1014152 2
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack
sr_mod 22416 0
cdrom 46696 1 sr_mod
sd_mod 46281 4
crc_t10dif 12912 1 sd_mod
crct10dif_generic 12647 0
ata_generic 12923 0
pata_acpi 13053 0
vmwgfx 296089 3
nfit 59735 0
drm_kms_helper 186531 1 vmwgfx
ata_piix 35052 0
libnvdimm 163620 1 nfit
syscopyarea 12529 1 drm_kms_helper
sysfillrect 12701 1 drm_kms_helper
sysimgblt 12640 1 drm_kms_helper
fb_sys_fops 12703 1 drm_kms_helper
mptspi 22673 3
ttm 100769 1 vmwgfx
crct10dif_pclmul 14307 1
crct10dif_common 12595 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
libata 247190 3 pata_acpi,ata_generic,ata_piix
scsi_transport_spi 30732 1 mptspi
crc32c_intel 22094 1
mptscsih 40150 1 mptspi
drm 468454 6 ttm,drm_kms_helper,vmwgfx
mptbase 106036 2 mptspi,mptscsih
e1000 137624 0
serio_raw 13434 0
drm_panel_orientation_quirks 17180 1 drm
fuse 100393 1
lsmod命令列出内核中当前加载的所有模块。下面是对输出中列出的一些模块的解释:
nf_conntrack_netlink:用于跟踪网络连接的Netfilter模块。
xt_addrtype: Netfilter模块,根据数据包的源地址或目标地址类型匹配数据包。
br_netfilter:网桥netfilter模块。
ipt_MASQUERADE:一个Netfilter模块,用于伪装IP地址,用于NAT。
nf_nat_masquerade_ipv4:用于在IPv4中伪装NAT的Netfilter模块。
tun: tun /TAP网络设备的模块,为用户空间程序提供数据包接收和传输。
devlink:提供统一一致的内核API,用于配置和管理网络设备。
overlay:实现一个覆盖文件系统,用于在其他目录之上挂载目录。
e1000: Intel e1000以太网卡的网络驱动程序。
snd_ens1371: Ensoniq AudioPCI ES1371声卡的声音模块。
snd_ac97_codec:用于AC’97编解码器芯片的声音模块,用于各种声卡。
snd_seq:高级Linux声音架构(ALSA)音序器模块。
蓝牙:核心蓝牙模块。
btusb:蓝牙USB驱动。
bnep:蓝牙网络封装协议(bnep)模块,用于蓝牙组网。
vmwgfx: VMware虚拟GPU的图形驱动程序。
drm:直接渲染管理器,Linux内核的一个子系统,负责与现代视频卡的gpu接口。
xfs: xfs文件系统模块。
libcrc32c: CRC32c (Castagnoli)内核的不同部分使用的CRC模块。
sd_mod: SCSI磁盘驱动程序。
libata: ATA设备的库模块。
fuse:用户空间(fuse)模块中的文件系统。
请注意,模块的特定用途可能取决于其配置和系统状态。有关特定模块的更详细说明,读者可以参考内核文档或源代码。
free -m
total used free shared buff/cache available
Mem: 7597 190 6611 0 794 7158
Swap: 0 0 0
这是一个使用 free 命令在 Linux 中查看内存使用情况的输出。-m 选项使输出的数据以兆字节为单位。
让我们逐行解释这些数据:
总体上,从这些数据中可以看出你的系统有7597MB的物理内存,其中大部分(6611MB)是未使用的。但是请注意,由于缓冲和缓存的大小是794MB,这意味着这些内存是可以被回收并供其他进程使用的。另外,你的系统没有配置交换空间,所以没有相关的交换空间数据。
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 4.1G 14G 24% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.5M 478M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 297M 147M 151M 50% /boot
tmpfs 98M 24K 98M 1% /run/user/0
Linux系统中使用df -h命令来查看磁盘空间使用情况的结果。以下是详细解释:
针对您给出的具体输出:
是一个在 Unix 和 Linux 系统中常用的命令,用于显示文件系统的磁盘空间使用情况。这个命令的输出会以人类可读的格式(例如,以 M、G 为单位)显示每个挂载点的总空间、已使用的空间、可用的空间以及文件系统的类型。
其中:
输出的文件系统类型 (Type) 通常包括以下几种:
这些文件系统类型决定了如何组织和存储数据在磁盘上。不同的文件系统有不同的性能特点、功能和限制,因此选择合适的文件系统对于系统的性能和数据管理至关重要。
lsblk 命令用于列出所有可用块设备的信息。它不仅会显示硬盘、闪存盘、CD-ROM等块设备的信息,还会显示它们之间的依赖关系。这个命令在Linux系统中非常有用,可以帮助用户快速了解磁盘的布局、分区的大小和挂载情况等。
Disk /dev/vda: 80 GiB, 85899345920 bytes, 167772160 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xfc78a3ee Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 167772126 167770079 80G 83 Linux
这是一个Linux系统中的磁盘设备(/dev/vda)的分区信息。下面是对这个信息的解释:
简而言之,这个信息描述了一个名为 /dev/vda 的磁盘设备,它有一个名为 /dev/vda1 的Linux分区,这个分区的容量是80GiB。
这是一个网络接口信息的输出,通常使用命令如ifconfig或ip addr来获取。以下是对这些信息的解释:
这些信息提供了关于不同网络接口的配置和状态的详细信息,有助于了解主机的网络配置。
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
FORWARD_direct all -- anywhere anywhere
FORWARD_IN_ZONES_SOURCE all -- anywhere anywhere
FORWARD_IN_ZONES all -- anywhere anywhere
FORWARD_OUT_ZONES_SOURCE all -- anywhere anywhere
FORWARD_OUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT all -- anywhere anywhere
OUTPUT_direct all -- anywhere anywhere
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain FORWARD_IN_ZONES (1 references)
target prot opt source destination
FWDI_docker all -- anywhere anywhere [goto]
FWDI_public all -- anywhere anywhere [goto]
FWDI_public all -- anywhere anywhere [goto]
Chain FORWARD_IN_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_OUT_ZONES (1 references)
target prot opt source destination
FWDO_docker all -- anywhere anywhere [goto]
FWDO_public all -- anywhere anywhere [goto]
FWDO_public all -- anywhere anywhere [goto]
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_direct (1 references)
target prot opt source destination
Chain FWDI_docker (1 references)
target prot opt source destination
FWDI_docker_log all -- anywhere anywhere
FWDI_docker_deny all -- anywhere anywhere
FWDI_docker_allow all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain FWDI_docker_allow (1 references)
target prot opt source destination
Chain FWDI_docker_deny (1 references)
target prot opt source destination
Chain FWDI_docker_log (1 references)
target prot opt source destination
Chain FWDI_public (2 references)
target prot opt source destination
FWDI_public_log all -- anywhere anywhere
FWDI_public_deny all -- anywhere anywhere
FWDI_public_allow all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
Chain FWDI_public_allow (1 references)
target prot opt source destination
Chain FWDI_public_deny (1 references)
target prot opt source destination
Chain FWDI_public_log (1 references)
target prot opt source destination
Chain FWDO_docker (1 references)
target prot opt source destination
FWDO_docker_log all -- anywhere anywhere
FWDO_docker_deny all -- anywhere anywhere
FWDO_docker_allow all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain FWDO_docker_allow (1 references)
target prot opt source destination
Chain FWDO_docker_deny (1 references)
target prot opt source destination
Chain FWDO_docker_log (1 references)
target prot opt source destination
Chain FWDO_public (2 references)
target prot opt source destination
FWDO_public_log all -- anywhere anywhere
FWDO_public_deny all -- anywhere anywhere
FWDO_public_allow all -- anywhere anywhere
Chain FWDO_public_allow (1 references)
target prot opt source destination
Chain FWDO_public_deny (1 references)
target prot opt source destination
Chain FWDO_public_log (1 references)
target prot opt source destination
Chain INPUT_ZONES (1 references)
target prot opt source destination
IN_docker all -- anywhere anywhere [goto]
IN_public all -- anywhere anywhere [goto]
IN_public all -- anywhere anywhere [goto]
Chain INPUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain INPUT_direct (1 references)
target prot opt source destination
Chain IN_docker (1 references)
target prot opt source destination
IN_docker_log all -- anywhere anywhere
IN_docker_deny all -- anywhere anywhere
IN_docker_allow all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain IN_docker_allow (1 references)
target prot opt source destination
Chain IN_docker_deny (1 references)
target prot opt source destination
Chain IN_docker_log (1 references)
target prot opt source destination
Chain IN_public (2 references)
target prot opt source destination
IN_public_log all -- anywhere anywhere
IN_public_deny all -- anywhere anywhere
IN_public_allow all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
Chain IN_public_allow (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,UNTRACKED
Chain IN_public_deny (1 references)
target prot opt source destination
Chain IN_public_log (1 references)
target prot opt source destination
Chain OUTPUT_direct (1 references)
target prot opt source destination
解释每个匹配规则的意思如下:
Chain INPUT:输入链,指定对进入本机的数据包进行处理。
ACCEPT:接受所有来源于任意地址的目标端口为 domain(53)和 bootps(67)的 UDP 和 TCP 数据包。
INPUT_direct:直接处理的数据包。
INPUT_ZONES_SOURCE:输入链的来源。
INPUT_ZONES:输入链处理结果。
DROP:丢弃无效(INVALID)状态的数据包。
REJECT:拒绝发送 ICMP 拒绝消息的数据包。
Chain FORWARD:转发链,指定对通过本机进行转发的数据包进行处理。
FORWARD_direct:直接处理的数据包。
FORWARD_IN_ZONES_SOURCE:转发链的输入来源。
FORWARD_IN_ZONES:转发链的输入。
FORWARD_OUT_ZONES_SOURCE:转发链的输出来源。
FORWARD_OUT_ZONES:转发链的输出。
DROP:丢弃无效(INVALID)状态的数据包。
REJECT:拒绝发送 ICMP 端口不可达消息的数据包。
Chain OUTPUT:输出链,指定对从本机发出的数据包进行处理。
ACCEPT:接受所有源端口为 bootpc(68)的 UDP 数据包,以及所有数据包。
OUTPUT_direct:直接处理的数据包。
Chain DOCKER:Docker 链,用于处理 Docker 相关的数据包。
Chain DOCKER-ISOLATION-STAGE-1:Docker 隔离阶段1链,用于处理 Docker 的隔离。
Chain DOCKER-ISOLATION-STAGE-2:Docker 隔离阶段2链,用于处理 Docker 的隔离。
Chain DOCKER-USER:Docker 用户链,用于处理 Docker 用户相关的数据包。
Chain INPUT_ZONES:输入区域链,用于处理输入区域相关的数据包。
IN_docker:Docker 内部输入链。
IN_public:公共输入链。
Chain INPUT_ZONES_SOURCE:输入区域源链。
Chain INPUT_direct:输入链的直接处理。
Chain IN_docker:Docker 内部输入链。
IN_docker_log:Docker 内部输入链的日志记录。
IN_docker_deny:拒绝 Docker 内部输入链的数据包。
IN_docker_allow:允许 Docker 内部输入链的数据包。
ACCEPT:接受所有数据包。
Chain IN_public:公共输入链。
IN_public_log:公共输入链的日志记录。
IN_public_deny:拒绝公共输入链的数据包。
IN_public_allow:允许公共输入链的数据包。
ACCEPT:接受 ICMP 数据包和源端口为 SSH(22)的 TCP 数据包。
Chain OUTPUT_direct:输出链的直接处理。
以上是 iptables -L 命令输出的主要内容,它显示了当前防火墙链的规则和策略
这是Linux系统中的一个路由表,通过route -n命令可以查看。这个路由表描述了数据包在网络中的转发路径。下面我会逐行解释这个路由表:
根据你提供的路由表:
这个路由表告诉系统如何根据目标IP地址选择最佳路径来发送数据包。
这个命令 netstat -lntp 用于显示在 Linux 系统上当前的网络连接、监听的端口以及与这些端口相关的进程。
下面是每一行的解释:
总的来说,这些数据告诉你哪些服务正在监听哪些端口,以及与这些端口相关的进程。
netstat -s 命令用于查看网络统计信息,它会显示有关网络活动和连接的详细统计数据。这些统计数据包括接收和发送的数据包数量、错误数、丢弃数等等。以下是一些常见的统计信息示例:
yamlCopy code
Ip:
2175 total packets received
0 forwarded
0 incoming packets discarded
2154 incoming packets delivered
2156 requests sent out
Icmp:
30 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
destination unreachable: 29
echo requests: 1
41 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 41
IcmpMsg:
InType0: 1
InType3: 29
OutType3: 41
上面的示例显示了一些 IP 和 ICMP(Internet 控制消息协议)统计信息,包括接收和发送的数据包数量、错误消息等等。
请注意,netstat -s 命令的输出可能会很长,具体的统计信息会根据系统的网络活动而变化。这个命令通常用于分析网络问题和监视网络性能。如果需要特定类型的网络统计信息,可以根据需要使用不同的参数来过滤和查询。
上面的输出是通过 netstat -s 命令查看的网络统计信息,其中包含了关于 IP 和 ICMP 的统计数据。以下是对输出的解释:
IP 统计信息:
ICMP 统计信息:
IcmpMsg 统计信息:
这些统计数据用于了解网络活动的情况,包括接收的数据包数量、传递的数据包数量、 ICMP 消息数量等。根据这些统计信息,可以分析网络的性能和问题。在上面的示例中,可以看到有一些 ICMP 目标不可达消息以及少量的 ICMP 回显请求(Ping 请求)消息。
top 是一个 Linux 和 Unix 系统上的命令行实用程序,用于实时显示进程状态。它可以显示系统中当前运行的进程的列表,以及这些进程的详细信息,例如 CPU 使用率、内存使用率、运行时间等。
下面是一些 top 命令输出中常见的字段和它们的含义:
在 top 的输出中,你可以看到这些信息,并且 top 会根据 CPU 使用率和内存使用率对进程进行排序,这样你可以很容易地找到最占用资源的进程。你可以使用 top 命令的各种选项来定制显示的信息和排序方式。
在 Linux 上查看 CPU 温度通常需要使用特定的命令行工具或监控程序,具体的工具和方法可能因您的硬件和操作系统发行版而异。以下是一些常见的方法和工具:
sudo apt install lm-sensors # Ubuntu/Debian
sudo yum install lm_sensors # CentOS/RHEL
cat /sys/class/thermal/thermal_zone*/temp
这将显示每个核心的温度(以毫摄氏度为单位)。
请注意,确保使用合适的权限来运行上述命令,通常需要以管理员或超级用户权限运行某些命令。此外,硬件和操作系统的差异可能导致上述方法的可用性和工作方式有所不同,因此最好根据您的具体情况查找相关的文档和资源。
ethtool bond0 命令用于查看和配置 Linux 中的网络绑定(bonding)接口的参数和状态。网络绑定允许多个物理网络接口(网卡)合并成一个虚拟接口,以提供冗余性和带宽聚合。
当您运行 ethtool bond0 命令时,它将显示与名为 bond0 的网络绑定接口相关的详细信息,包括接口状态、速度、双工模式等等。以下是可能在输出中看到的一些信息:
这些信息有助于您了解网络绑定接口的配置和状态。请注意,要使用 ethtool 命令查看或配置网络绑定接口的参数,通常需要以管理员或超级用户权限运行命令。此外,确保已正确配置和激活了网络绑定接口,以便 ethtool 命令能够正常工作。