常用命令第二篇
1.0 常用Linux命令
1.1 ps
ps命令用于显示当前系统进程信息的命令。它提供了关于系统中运行的进程的详细信息,包括进程 ID、用户、进程状态、CPU 和内存使用情况等。
1.1.1 ps
默认情况下,ps 会显示当前终端会话中与当前用户相关的进程信息。
ps
样例输出:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
1235 pts/0 00:00:00 ps
- PID:进程 ID。
- TTY:进程所属的终端设备。
- TIME:进程占用 CPU 的累计时间。
- CMD:进程的命令名称。
1.1.2 ps -aux
ps -aux,-a 表示显示所有终端上的进程;-u 表示显示详细信息;-x 表示显示没有控制终端的进程。ps -aux 是一种常用的组合,用于显示系统中所有进程的详细信息。
ps -aux
样例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 123456 1234 ? Ss Mar01 0:01 /sbin/init
user1 123 0.1 0.2 234567 2345 pts/0 S+ Mar01 0:02 /bin/bash
user2 456 0.0 0.1 345678 3456 pts/1 S+ Mar01 0:01 /bin/ps
- USER:进程所属的用户。
- %CPU:进程占用的 CPU 使用率。
- %MEM:进程占用的物理内存使用率。
- VSZ:进程占用的虚拟内存大小。
- RSS:进程占用的物理内存大小。
- TTY:进程所属的终端设备。
- STAT:进程状态(例如,S 表示睡眠,R 表示运行)。
- START:进程启动时间。
- TIME:进程占用 CPU 的累计时间。
- COMMAND:进程的完整命令行。
1.1.3 ps -u username
ps -u username,其中username为指定的用户名,用于指定显示某个用户的进程信息。
ps -u username
样例输出:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
1235 pts/0 00:00:00 vim
1.1.4 其他常用方式
ps -p PID
:显示指定 PID 的进程信息。
1.2 netstat
netstat是一个功能强大的网络诊断工具,通过不同的选项可以查看网络连接、接口统计信息、路由表等。
1.2.1 netstat -a
netstat -a,用于显示所有网络连接,包括监听的和已建立的连接。
netstat -a
样例输出:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:22 192.168.1.2:56789 ESTABLISHED
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
- Proto:协议类型(如 TCP 或 UDP)。
- Recv-Q 和 Send-Q:接收和发送队列的大小。
- Local Address 和 Foreign Address:本地和远程地址及端口。
- State:连接状态(如 LISTEN、ESTABLISHED 等)。
1.2.2 netstat -t
netstat -t,用于显示所有 TCP 连接。
netstat -t
样例输出:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.100:22 192.168.1.2:56789 ESTABLISHED
1.2.3 netstat -u
netstat -u,用于显示所有 UDP 连接。
netstat -u
样例输出:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
1.2.4 其他常用方式
netstat -i
:用于显示网络接口的统计信息,包括接收和发送的数据包数量、错误等。netstat -r
:用于显示系统的路由表。netstat -p
:用于显示每个连接对应的进程 ID 和程序名称。需要管理员权限。
注意:在较新的系统中,netstat 的功能逐渐被 ss 命令替代。例如:- netstat -tuln 的功能可以用 ss -tuln 替代。
- netstat -an 的功能可以用 ss -an 替代。
ss 命令通常比 netstat 更高效,且输出格式更简洁。
1.3 ip
ip命令是一个功能强大的网络管理工具,广泛用于显示和配置网络接口、路由表等。
1.3.1 ip addr show
ip addr show,显示系统中所有网络接口的 IP 地址、子网掩码、MAC 地址等详细信息。
ip addr show
样例输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.130/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 86399sec preferred_lft 86399sec
inet6 fe80::1234:5678:9abc:def0/64 scope link
valid_lft forever preferred_lft forever
- lo:本地回环接口。
- eth0:以太网接口。
- inet:IPv4 地址。
- inet6:IPv6 地址。
- link/ether:MAC 地址。
1.4 sync
sync命令是 Linux 系统中用于将内存中的数据同步到磁盘的工具,确保文件系统中的数据与内存中的数据保持一致,从而防止数据丢失。
使用场景:
- 系统维护:在执行文件系统操作(如分区调整或格式化)前,运行 sync 确保数据完整性。
- 设备卸载:在拔出 USB 设备前,使用 sync 确保所有数据已写入。
- 数据备份:在备份数据时,使用 sync 确保所有修改的数据被写入磁盘。
1.4.1 sync
sync,将内存中的所有缓存数据强制写入磁盘,确保数据的持久化。
sync
1.4.2 sync file/dirName
仅同步指定的文件或目录。
sync file1 file2
sync /path/to/directory
1.4.3 sync -f
sync -f,强制刷新文件系统缓存,将所有缓冲区的数据写入磁盘。
sync -f
1.5 scp
scp(Secure Copy Protocol)是 Linux 和类 Unix 系统中用于在服务器之间安全地复制文件和目录的命令。它基于 SSH(Secure Shell)协议进行数据传输,因此提供了加密传输和身份验证功能,确保数据在传输过程中的安全性。
1.5.1 本地到远程服务器的文件传输
命令格式:
scp [源文件路径] [用户名]@[远程服务器地址]:[目标路径]
功能:将本地文件或目录复制到远程服务器的指定路径。
示例:
scp /path/to/local/file.txt user@remote.example.com:/path/to/remote/directory/
这条命令会将本地路径 /path/to/local/file.txt 中的文件 file.txt 上传到远程服务器 remote.example.com 上的 /path/to/remote/directory/ 目录中。
1.5.2 从远程服务器到本地的文件传输
命令格式:
scp [用户名]@[远程服务器地址]:[源文件路径] [本地目标路径]
功能:从远程服务器下载文件或目录到本地。
示例:
scp user@remote.example.com:/path/to/remote/file.txt /path/to/local/directory/
这条命令会从远程服务器 remote.example.com 上的 /path/to/remote/file.txt 下载文件到本地的 /path/to/local/directory/ 目录中。
1.5.3 远程服务器之间的文件传输
命令格式:
scp [用户名1]@[远程服务器1地址]:[源文件路径] [用户名2]@[远程服务器2地址]:[目标路径]
功能:直接在两台远程服务器之间复制文件或目录。
示例:
scp user1@server1.example.com:/path/to/file.txt user2@server2.example.com:/path/to/destination/
这条命令会将 server1.example.com 上的 /path/to/file.txt 文件复制到 server2.example.com 的 /path/to/destination/ 目录中。
1.5.4 -r、-C、-P选项
- -r 选项用于递归复制整个目录。
- -C 选项启用压缩功能,可以加速传输速度,尤其是在传输大文件或低带宽网络中。
- -P 选项用于指定远程服务器的 SSH 端口(默认端口为 22)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架