linux的常用命令
1 压缩解压缩
(1)解压到指定目录
tar -zxvf nginx-1.23.1 -C /home/aries/nginx(2)unzip解压zip文件
-o:表示解压后覆盖目录中的相同文件 不进行询问
unzip - o **.zip -d 目录2 列表 文件内容大小
ll -t //以时间顺序显示目录文件 ll -rt ll -a -rt // 按照时间升序显示目录内容 ll:目录大小一般不包括里面的具体文件大小 ll -sh:可以显示总用量 du -sh: 每个目录下每个文件的大小,以列表形式展现 最外层文件夹和文件的大小 du -s:当前路径下,每个目录和文件占用的总大小,计算每层的子目录 du -h:人性化展示当前路径的目录的内容大小 du:查看当前路径所在目录以及使用文件的大小[root@zb-tst-xwlp-0176-tyzj-ecs-0001 logs]# du -sh * | sort -hr 降序显示当前目录内容 du -sh * | sort -h 升序 [root@zb-tst-xwlp-0176-tyzj-ecs-0001 reportmodel_newplatform]# du -h 只统计目录大小 不包括当前目录的文件大小 20K ./redbook 4.0K ./filedata 2.1G ./logs 2.2G . [root@zb-tst-xwlp-0176-tyzj-ecs-0001 reportmodel_newplatform]# du -h * 目录包括里面文件总大小、文件都统计大小 12K audit.log 4.0K bakup.sh 4.0K D:\test\zsb\bfzsb\claim\claim_20250605.csv.gz 4.0K filedata 2.1G logs 20K redbook 157M ReportModel.jar 4.0K start.sh 4.0K stop.sh [root@zb-tst-xwlp-0176-tyzj-ecs-0001 home]# du -sh * | sort -h 统计总的 sh 多级目录也会只展示一层 4.0K log_tgz.sh 16K lost+found 28K appuser 28K Security 36K app 36K front 816K data 5.5M 3f00c28b77e94250873cb8a352788256.pdf 147M xwlpapp 204M piccism 16G backfile.15G 65G pdfc4 -- 展示多层 [root@zb-tst-xwlp-0176-tyzj-ecs-0001 home]# du -h * |sort -h 4.0K app/.mozilla/extensions 4.0K app/.mozilla/plugins 4.0K app[root@zb-tst-xwlp-0176-tyzj-ecs-0001 home]# du -sh * | sort -hr
降序显示当前目录内容 第一层不展示里面的
3 查看磁盘空间
df df -h:人性化查看硬盘空间的使用情况4 vim命令
(1)搜索指定字符串,查找上一个 下一个
按/ 输入内容 N 查找前一个 n 查找后一个(2)向上向下翻页
向下翻(越往下走时间点越大):pageup ctrl f floor 前下走
向上翻(越往上走时间点越小):pagedown ctrl b back 往后退
(3)根据光标来删除指定行
# 删除光标所在行 dd # 删除光标当前行开始连续n行 ndd 4dd # 删除n1-n2行 1-3行 n1,n2d # 从n行开始删到末尾(4):x
文件有变动 = :wq
文件无变动 = :q
(5)查看的日志文件只是当前时间的文件内容,后续有新增的内容,此刻是看不到的。 需要退出,重新view命令
5 目录
(1)创建多级目录 创建多个目录
mkdir -p m1/m2/m3 //创建多级目录 mkdir m1 m2 m3(2)过滤目录 查找目录或文件
ll hosts // 刷选hosts的目录和文件 精确查找 ll | grep host // 会筛选出包含host的文件夹和文件连接mysql
# 连接远程的mysql -h 可省略 ,/mysql -u epmdb -p *** -h 102.199.29.10 use nacos;查询端口号 进程id
netstat 命令是一个非常有用的网络工具,用于显示网络连接、路由表、接口统计数据等。在 Linux 和类 Unix 系统中,netstat 命令可以用来查看当前的 TCP/IP 网络连接情况,以及端口监听情况等。在 Windows 系统中,netstat 命令的使用方式略有不同,但基本功能相似。
常用选项
-a:显示所有连接和侦听端口。
-n:以数字形式显示地址和端口号,而不是尝试解析为域名。
运行 netstat -an 命令后,你会得到一个包含多个字段的列表,下面是一些常见字段的解释:
Proto:协议类型,如 TCP 或 UDP。
Local Address:本地地址和端口号。格式为 地址:端口。如果地址为 0.0.0.0 或 ::,表示监听在所有可用的网络接口上。
Foreign Address:远程地址和端口号。对于监听状态的条目,这一列通常显示为 * 或 0.0.0.0:0。
State:连接状态(仅对 TCP 连接有效)。例如,LISTEN 表示服务器正在监听该端口上的连接请求,ESTABLISHED 表示一个成功的连接已经建立。
PID/Name:进程ID(PID)或进程名(在 Linux 上可能需要使用其他工具如 lsof 来获取进程名)。这有助于确定哪个进程正在使用特定的端口。
示例输出解析
假设你在 Linux 上运行了 netstat -an 命令,输出可能看起来像这样
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp 0 0 192.168.1.100:54322 192.168.1.1:80 ESTABLISHED 5678/firefox udp 0 0 0.0.0.0:68 0.0.0.0:*详解:
第一行显示 SSH 服务(sshd)正在监听 TCP 端口 22。
第二行显示 Firefox 浏览器通过 TCP 端口 54322 建立了与 IP 地址为 192.168.1.1 的服务器的连接,该服务器在端口 80 上监听(通常为 HTTP 服务)。
第三行显示一个 UDP 服务在端口 68 上监听(通常用于 DHCP 服务)。
2 获取进程名:
如果你想看进程名而不是 PID,你可以使用 -p 选项与 -e
netstat -anpe推荐ss命令,功能更强大
ss -anpps -ef | grep nacos端口号和进程id互转(可互相查看)
netstat -tnlp | grep 端口号/进程id实际场景使用
[root@zb-tst-xwlp-0176-tyzj-ecs-0005 ~]# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:17000 0.0.0.0:* LISTEN 1001214/redis-serve tcp 0 0 0.0.0.0:17001 0.0.0.0:* LISTEN 1001562/redis-serve tcp 0 0 10.26.4.15:60020 0.0.0.0:* LISTEN 1506/./gse_agent tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd: /usr/sbi tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 1001214/redis-serve tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 1001562/redis-serve tcp6 0 0 :::9100 :::* LISTEN 1585405/node_export tcp6 0 0 :::22 :::* LISTEN 1333/sshd: /usr/sbi udp 0 0 10.26.4.15:60020 0.0.0.0:* 1506/./gse_agent udp 0 0 0.0.0.0:68 0.0.0.0:* 1062/dhclient udp 0 0 127.0.0.1:323 0.0.0.0:* 3537173/chronyd udp6 0 0 ::1:323 :::* 3537173/chronyd一、先明确基础概念(新手必看)
Proto:协议(tcp = 可靠传输,udp = 快速传输)
Local Address:本机监听的 IP + 端口(0.0.0.0= 监听所有网卡,::=ipv6 所有网卡)
PID/Program name:占用端口的进程 ID + 程序名
LISTEN:端口处于 “监听状态”(等待外部连接)
端口 / 协议 进程 / 程序名 应用类型 核心作用 tcp 17000 redis-serve Redis 数据库 第一个 Redis 实例的业务端口(Redis 是高性能缓存 / 数据库,常用于存储临时数据) tcp 17001 redis-serve Redis 数据库 第二个 Redis 实例的业务端口(这台机器跑了 2 个独立的 Redis 服务) tcp 60020 ./gse_agent 云服务器 Agent 腾讯云(或内部)的管控代理,用于云平台监控、运维、下发指令(udp 也占用同端口) tcp/udp 22 sshd: /usr/sbi SSH 远程登录 你能远程连接这台服务器的核心进程,22 是 SSH 默认端口(tcp6 也监听 22 是 ipv6 版本) tcp 7000 redis-serve Redis 集群端口 第一个 Redis 实例的集群通信端口(Redis 集群会用 7000/7001 这类端口做节点互联) tcp 7001 redis-serve Redis 集群端口 第二个 Redis 实例的集群通信端口 tcp6 9100 node_export 监控采集器 Prometheus(主流监控系统)的节点监控插件,采集服务器 CPU / 内存 / 磁盘等指标 udp 68 dhclient DHCP 客户端 自动获取内网 IP 的系统进程(服务器通过它从路由器 / 网关拿到 IP 地址) udp 323 chronyd 时间同步服务 系统级时间校准进程,保证服务器时间和标准时间一致(ipv4/ipv6 都启用)telnet
当前主机是否能够连接另外一台主机的相关端口,这时候我们就可以使用telnet命令来进行测试连接是否畅通,
telnet [远程主机IP] [端口号]top命令
各个进程的资源占用情况
最后那一列展示的字段会缩写 top 最后那一列展示的字段会展示完整命令 top -c
排序:
在top界面:
按M:按内存大小排序
按P:按cpu大小排序
按T:按时间排序
shift < > 向左向右改变排序列
显示设置:
find命令
有用和方便的搜索文件的命令
(1) 查当前目录所有文件
# find . ./abc.txt ./cool.php ./subdir ./subdir/how.php (2) `# find ./test -name "abc.txt" ./test/abc.txt # find ./test -name "*.php" ./test/cool.php ./test/subdir/how.phpsudo命令
临时获取root权限来执行需要root权限的命令,此时不会产出一个新的shell
sudo
mysqldump命令
备份指定数据库 并将数据导入到bck.sql文件中
mysqldump -h ip地址 -uroot -p密码 数据库名字 > bck.sql目录文件权限前面的标识符
-: 表示普通文件类型
d:目录文件
b:设备块文件
-rw-r--r--建立符号链接
ln命令
为某一个文件在另外一个位置建立一个同步的链接
grep
grep -n 文本 文件 : 显示行号
查询文件目录的相关大小排序
du -sh * | sort -rhtail命令
ctrl s 暂停输出日志
ctrl q 继续输出日志