除了简单的cd
、cat
、ls
等简单的指令,其他的稍微复杂一点的指令几乎我一般是问chatGPT,有一些可能在做实验和项目的时候会经常用到,当时记得挺清楚,但是时间一久还是容易忘记。
所以创建这篇博客,记录一下我所用到的一些比较常用的指令。
(持续更新)
1 | netstat -tuln |
-t
:显示 TCP 连接。
-u
:显示 UDP 连接。
-l
:仅显示在监听状态的连接(即正在等待传入连接的端口)。
-n
:以数字形式显示地址和端口号,而不是尝试解析为主机名或服务名。
一个可能的输出如下:
1 | Proto Recv-Q Send-Q Local Address Foreign Address State |
输出字段解释:
Proto: 协议类型(tcp
、udp
、tcp6
、udp6
等)。
Recv-Q: 接收队列的字节数。表示当前接收队列中有多少字节数据尚未处理。
Send-Q: 发送队列的字节数。表示当前发送队列中有多少字节数据尚未发送。
Local Address: 本地地址和端口。格式为 [IP地址]:[端口号]
。如果是 IPv6 地址,则显示为 [IPv6地址]:[端口号]
。
Foreign Address: 外部地址和端口。对于监听状态的连接,这一列显示为 *
。
State: 连接状态(如 LISTEN
、ESTABLISHED
、CLOSE_WAIT
等)。对于监听端口,状态通常为 LISTEN
。
一个可能的输出:
1 | top - 07:55:07 up 4:32, 1 user, load average: 0.07, 0.04, 0.03 |
1 | top - 07:55:07 up 4:32, 1 user, load average: 0.07, 0.04, 0.03 |
1 | Tasks: 111 total, 2 running, 108 sleeping, 1 stopped, 0 zombie |
Tasks:
**%Cpu(s)**:
1 | MiB Mem : 883.6 total, 76.0 free, 444.9 used, 362.8 buff/cache |
Mem(内存):
Swap(交换区):
1 | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
PID:进程 ID。
USER:启动进程的用户。
PR:进程优先级。
NI:进程的 nice 值。
VIRT:进程使用的虚拟内存量。 (KB)
RES:进程使用的实际物理内存量。 (KB)
SHR:进程共享的内存量。 (KB)
S:进程状态(S=睡眠,R=运行,Z=僵尸,T=停止等)。
%CPU:进程使用的 CPU 百分比。
%MEM:进程使用的内存百分比。
**TIME+**:进程的总 CPU 时间。
COMMAND:进程的命令名。
top
命令的交互操作:
q
退出 top
。P
根据 CPU 使用率排序进程。M
根据内存使用量排序进程。N
根据进程 ID 排序进程。R
反转排序顺序。定时刷新:
top
每 3 秒刷新一次。可以通过 -d
参数指定自定义刷新间隔。例如,top -d 5
每 5 秒刷新一次。free
命令用于显示系统的内存使用情况,包括物理内存(RAM)和交换内存(swap)。它可以帮助你快速了解系统的内存资源使用情况。
可以有以下选项:
-h
:以人类可读的格式显示(例如,GB 和 MB)。
-m
:以 MB 为单位显示。
-g
:以 GB 为单位显示。
-t
:显示总内存和交换内存的统计信息。
一个可能的输出如下:
1 | total used free shared buff/cache available |
内存使用情况:系统总共有 883 MiB 的物理内存,其中 438 MiB 已被使用,116 MiB 是空闲的,还有 328 MiB 用于缓存和缓冲。可用内存为 295 MiB。
交换空间使用情况:系统总共有 15 GiB 的交换内存,其中 426 MiB 已被使用,剩余的 15 GiB 是空闲的。
可以看出系统的内存使用情况相对较低,缓存的内存也在合理范围内,交换空间使用量不大。这通常意味着系统性能较好,没有特别严重的内存压力。
systemctl
是一个用于管理和控制系统和服务的工具,主要用于与 systemd
系统和服务管理器交互。允许启动、停止、重启、查看状态等操作服务和系统单元。
systemctl status [service]
例如,查看apache2
服务状态
1 | $ sudo systemctl status apache2 |
systemctl start [service]
systemctl start nginx
。systemctl stop [service]
systemctl stop nginx
。systemctl restart [service]
systemctl restart nginx
。在服务的配置改变之后,应用新配置需要用到该命令。
systemctl reload [service]
systemctl reload nginx
。systemctl enable [service]
systemctl enable nginx
。systemctl disable [service]
systemctl disable nginx
。是 vi 的升级版
vim
有三种基本模式:
vim
的默认模式,在这个模式下,你可以进行文本导航、删除、复制等操作。按 Esc
键可以进入普通模式。i
(在光标前插入)、I
(在行首插入)、a
(在光标后插入)、A
(在行尾插入)进入插入模式。按 Esc
返回普通模式。:
进入命令模式,输入命令后按 Enter
执行。h
:左移j
:下移k
:上移l
:右移0
:跳到行首$
:跳到行尾gg
:跳到文件开头G
:跳到文件末尾x
:删除光标处的字符dd
:删除当前行d$
:删除光标到行尾的内容d0
:删除光标到行首的内容yy
:复制当前行p
(小写p):将复制的内容粘贴到当前行的下一行P
(大写P):粘贴到当前行的上一行u
:撤销上一个操作/pattern
:查找 pattern
,按 n
跳到下一个匹配,按 N
跳到上一个匹配:s/old/new/
:在当前行替换 old
为 new
:%s/old/new/g
:在整个文件中替换 old
为 new
:w
:保存文件:q
:退出 vim
:wq
或 :x
:保存文件并退出 vim
:q!
:强制退出而不保存更改:e filename
:编辑指定的文件:r filename
:将指定文件的内容插入到当前文件中:!command
:在 vim
中执行外部命令清空文件就是ggdG
:gg
将光标移动到文件的第一行,d
是 vim
中的删除命令的前缀,G
表示文件的最后一行。因此,dG
意味着从当前光标位置(文件的第一行)删除到文件的最后一行的所有内容。所以合起来就是清空文件。
docker ps
列出所有正在运行的容器。
-a
选项列出所有容器。
相关指令:
docker start <container_id>
docker stop <container_id>
docker rm <container_id>
docker rm -f <container_id>
强制删除一个运行中的容器
docker images
列出所有镜像
相关指令:
docker pull <image_name>
从 Docker 仓库拉取一个镜像。
docker rmi <image_id>
docker inspect <image_id>
docker network ls
列出所有Docker网络。
docker logs <container_id> --tail 5
查看某个Docker容器日志的最后50行。
docker-compose up -d
以分离模式(在后台运行)启动docker-compose.yml
文件中定义的Docker服务。
docker-compose down
停止并移除docker-compose.yml
文件中定义的Docker服务。
docker-compose restart
docker-compose restart
命令用于重新启动已经运行的容器。它不会重新创建容器,也不会重新加载任何配置文件的变化。
docker-compose down
和docker-compose up
docker-compose down
命令会停止并移除容器、网络、卷和镜像(停止和删除所有相关资源)。docker-compose up
命令会创建并启动所有服务。会重新加载配置文件的变化,容器会被重新创建,之前的容器中的数据和状态会丢失(除非使用卷来持久化数据)
docker volume ls
列出所有Docker卷。
docker volume inspect my_volume
显示名为 my_volume
的卷的详细信息。
docker stats
docker stats
命令用于显示正在运行的容器的实时资源使用统计信息,包括 CPU 使用率、内存使用情况、网络 I/O 和磁盘 I/O 等。
--no-stream
只显示一次统计信息
1 | CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS |
MEM USAGE / LIMIT: 内存使用量与内存限制。
MEM %: 内存使用百分比。
NET I/O: 网络输入/输出数据量。
BLOCK I/O: 磁盘输入/输出数据量。