侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

linux下 bash: netstat: command not found的解决方法

可能原因

netstat是一个用于显示网络连接,路由表,接口统计,伪装连接,多播成员等信息的命令,它在Linux中非常有用。但是,有时候当你尝试使用netstat命令时,你可能会遇到bash: netstat: command not found的错误。这个错误的可能原因有以下几种:

  • netstat命令没有安装在你的系统上。
  • netstat命令没有在你的PATH环境变量中。
  • netstat命令没有可执行权限。
  • netstat命令与你的系统版本或内核不兼容。

解决方法

根据不同的原因,你可以尝试以下几种方法来解决bash: netstat: command not found的问题:

方法1 安装软件

如果你的系统没有安装netstat命令,你可以使用你的包管理器来安装它。不同的Linux发行版可能有不同的包管理器,例如:

  • CentOS7 bash: netstat: command not found
sudo yum install epel-release
sudo yum install net-tools
  • Debian/Ubuntu bash: netstat: command not found
sudo apt update
sudo apt install net-tools
  • Alpine bash: netstat: command not found
sudo apk update
sudo apk add net-tools
  • Arch Linux bash: netstat: command not found
sudo pacman -Syu
sudo pacman -S net-tools
  • Kali Linux bash: netstat: command not found
sudo apt update
sudo apt install net-tools
  • Fedora bash: netstat: command not found
sudo dnf update
sudo dnf install net-tools
  • Raspbian bash: netstat: command not found
sudo apt update
sudo apt install net-tools
  • Dockerfile bash: netstat: command not found

如果你想在Dockerfile中使用netstat命令,你需要在构建镜像时安装它。例如,如果你使用的是基于Debian的镜像,你可以在Dockerfile中添加以下语句:

RUN apt update && apt install -y net-tools
  • Docker bash: netstat: command not found

如果你想在运行中的Docker容器中使用netstat命令,你需要先进入容器,然后使用包管理器安装它。例如,如果你使用的是基于Debian的容器,你可以执行以下命令:

docker exec -it container_name /bin/bash # 进入容器
apt update && apt install -y net-tools # 安装netstat命令

方法2 添加环境变量

如果你已经安装了netstat命令,但是它没有在你的PATH环境变量中,你可以使用绝对路径来调用它,或者将它所在的目录添加到PATH中。通常,netstat命令位于/usr/bin或/usr/sbin目录下,你可以使用which或whereis命令来查找它的位置。例如:

which netstat # 查找netstat命令的位置
/usr/bin/netstat # 输出结果

whereis netstat # 查找netstat命令的位置和相关文件
netstat: /usr/bin/netstat /usr/share/man/man8/netstat.8.gz # 输出结果

/usr/bin/netstat # 使用绝对路径调用netstat命令

export PATH=$PATH:/usr/bin # 将/usr/bin目录添加到PATH环境变量中

echo $PATH # 查看PATH环境变量是否已经更新

netstat # 使用相对路径调用netstat命令

方法3 修改执行权限

如果你已经安装了netstat命令,并且它在你的PATH环境变量中,但是它没有可执行权限,你可以使用chmod命令来修改它的权限。例如:

ls -l /usr/bin/netstat # 查看netstat命令的权限
-rw-r--r-- 1 root root 163840 Jan  1  2020 /usr/bin/netstat # 输出结果,没有x表示没有可执行权限

sudo chmod +x /usr/bin/netstat # 添加可执行权限

ls -l /usr/bin/netstat # 查看netstat命令的权限
-rwxr-xr-x 1 root root 163840 Jan  1  2020 /usr/bin/netstat # 输出结果,有x表示有可执行权限

netstat # 调用netstat命令

方法4 更换版本或系统

如果你已经安装了netstat命令,并且它有可执行权限,但是它与你的系统版本或内核不兼容,你可能会遇到一些错误或警告,例如:

netstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.

这种情况下,你可以尝试更新你的系统或内核,或者更换一个适合你的netstat命令的版本或系统。你可以使用uname -a命令来查看你的系统和内核信息,例如:

uname -a # 查看系统和内核信息
Linux ubuntu 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux # 输出结果

你也可以使用netstat -v命令来查看netstat命令的版本和支持的内核版本,例如:

netstat -v # 查看netstat命令的版本和支持的内核版本
net-tools 2.10-alpha
Compiled without support for:
 + IPX
 + AX25
 + X25
 + NETROM
 + NLS
 + RTNETLINK
 + SLIP
 + PPP
 + Z8530 SCC driver

Kernel ID check is disabled.

netstat命令常规用法

netstat命令有很多选项和用法,可以用于管理和分析网络活动。以下是一些常见的netstat命令用法:

  • netstat:不带任何选项,显示活动的网络连接。
  • netstat -t:显示TCP连接。
  • netstat -u:显示UDP连接。
  • netstat -l:显示监听状态的套接字。
  • netstat -s:显示按协议分类的统计信息。
  • netstat -i:显示网络接口的传输情况。
  • netstat -e:显示扩展信息,类似于ifconfig命令。
  • netstat -M:显示伪装连接。
  • netstat -p:显示每个套接字对应的进程ID和名称。
  • netstat -n:显示数字格式的地址和端口,而不是主机名和服务名。
  • netstat -r:显示路由表。
  • netstat -c:连续输出信息,每隔一秒刷新一次。
  • netstat -a | grep program_name:查找某个程序使用的端口。
  • netstat -an | grep ':port_number':查找某个端口对应的程序。
0

评论区