2

五个你应该知道的 Linux 服务器命令

 1 year ago
source link: https://www.51cto.com/article/753139.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

五个你应该知道的 Linux 服务器命令

作者:Linux迷 2023-04-26 19:33:01
在本文中,我们将介绍一些基本的 Linux 命令,您需要掌握这些命令才能成功。

在 Linux 服务器上管理和导航的能力是一项基本技能,它永远不会完全过时。即使您尝试完全转向“无服务器”世界,也总会有一台实际的服务器在运行代码。那台服务器很可能也在运行 Linux,因为超过 90% 的生产服务器都在使用它。

了解如何操作 Linux 服务器将使您能够更快地排除问题并更全面地了解软件生命周期。这确实是一组基本技能,使构建软件(特别是后端)变得更加容易。

在本文中,我们将介绍一些基本的 Linux 命令,您需要掌握这些命令才能成功。

03769192132897a836594176f2b4cfccdb1173.jpg

ip命令是一种高度灵活的网络工具。仅使用此命令就可以在系统上完成很多工作。您可以添加新路由以将流量发送到不同的接口。您可以禁用或启用整个网络堆栈。或者您可以只获取基本的IP地址信息。

ip命令是超级灵活的。

让我们看几个基本的使用示例。这是您查找系统上每个连接的网络接口的IP地址信息的方法:

linuxmi@linuxmi:~/www.linuxmi.com$ ip ad

这是完整的ip地址命令的简写。这将显示类似于以下内容的内容:

08a794011c5cb58658b55870c0178209e65dd2.png
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:24:32:63 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.174.132/24 brd 192.168.174.255 scope global dynamic noprefixroute ens33
       valid_lft 1665sec preferred_lft 1665sec
    inet6 fe80::36fe:8da1:1b6b:a2c3/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

正如你在上面的输出中所看到的,这台机器只有两个网络接口。一个是回环接口,另一个是主接口,分配了一个IP地址。主接口分配了192.168.174.132的IP地址,并具有一个/24子网。

这个命令对于诊断IP地址问题或仅弄清楚哪个接口是哪个非常有帮助。

现在,让我们看看如何使用ip做出一些路由决策。在这个例子中,我们正在向路由表中添加一个新的静态路由:

ip route add 1.2.3.4/31 dev eth0

在这里,我们使用ip route add命令添加了一个新路由。这个命令接受许多参数,具体形式取决于您想如何路由流量。在这种情况下,我们选择将任何目标地址为1.2.3.4/32的流量路由到整个网络设备。在这种情况下,设备是网络接口eth0。现在,当发送到1.2.3.4的任何数据包时,它们将使用eth0。

如果您只想查看现有的路由表,可以运行:

linuxmi@linuxmi:~/www.linuxmi.com$ ip route
3721bff01f383b035fd644988a5524c4f439be.png

ip route 在处理复杂网络时,这是非常重要的命令。如果您需要从您的主机路由流量到远程网络上的另一个主机或通过VPN,您可能需要开始添加一些静态路由。

ip命令在内部提供了更多功能。查看完整的手册页以了解它所提供的所有功能。

2、tail

tail 命令可能看起来过于简单,但不要忽视它。在处理大文本文件时,tail 命令非常重要。这些文件可以是日志、交易记录或任何产生文本行的东西。

使用 tail,我们不仅可以查看巨大文件的余下部分,还可以实时跟踪它的新添加内容。使用以下命令,您可以打开一个文件并按其发生的顺序进行跟踪:

tail /path/to/log/file
12c6d8086318bbbd13a7563caef57e49b49bed.png

这对于监视访问或错误日志非常有用。对于 Web 服务器尤其如此。如果您在访问某个路径时正在寻找特定的错误,跟踪错误日志的输出可能会更快地解决您的问题。

如果您想减少冗长,还可以从文件末尾返回特定数量的行。使用 -n 标志可以指定要在输出中接收多少行。

tail 还有一些更智能的选项,如 PID 跟踪和定界符调整。查看完整的 man 页面获取更多信息。

nc 或者称为 Netcat 工具是一款简单而实用的故障排除工具。使用此程序,您可以打开套接字,建立网络连接并通过网络发送数据。它非常易于使用。

假设您想在特定端口上侦听一些传入的流量。您只需要使用以下命令运行 nc 来处理 TCP 或 UDP 协议:

# TCP
nc -l 50000

# UDP
nc -u -l 50000

这将在您指定的端口上打开一个监听服务器。在这种情况下,我们选择了端口 50000。一旦服务器启动,您就不会看到任何内容,但可以使用…没错,更多的 nc 命令来测试它。

保持监听运行,并在另一个窗口使用以下命令向其发送一些数据:

# TCP
echo "hello,www.linuxmi.com" | nc localhost 50000

# UDP
echo "hello,www.linuxmi.com" | nc -u localhost 50000

你应该会在监听窗口看到一个漂亮的“hello,www.linuxmi.com”。如下图:

0954e9c52006f0d01382597e69f5f51632417d.png

说明它工作了!

但这有什么用处呢?非常多。你可以解决套接字连接问题,调查原始传入流量中的负载,或者只是在网络上发送基本数据和对象。

Netcat 甚至支持使用 TLS 建立安全连接。你可以指定各种额外的证书参数。如果你正在处理任何类型的网络协议,熟悉 nc 肯定会节省你一些麻烦。

官方 Netcat 页面在这里。

相关:在 Linux 中使用 netcat 命令扫描端口 https://www.linuxmi.com/linux-netcat.html

4、which

服务器通常表现良好,但有时会安装不应该安装的东西。它可能是其他用户、配置管理软件或者你在键盘上出错,但错误的东西确实被安装了。这意味着需要查找确切位置,但有时候这并不容易。

谢天谢地,在 Linux 中我们有 which 工具。这有助于我们确定正在运行的程序的“which”版本。是不是一个聪明的名字?

假设您安装了多个不同版本的相同程序或语言。您不确定它是从哪个位置运行的。它可能在 /usr/bin 中,也可能在 /usr/local/bin 中。不要浪费时间手动查找,只需使用 which 找出它:

linuxmi@linuxmi:~/www.linuxmi.com$ which echo
/usr/bin/echo
729b59750e35f5a66db222bcefba2622571284.png

正如你所看到的,我们询问了正在使用的 echo 版本,并得到了该可执行文件的当前路径。当然,我们不太可能“安装”不同版本的 echo,但是对于诸如编程语言和解释器之类的东西来说,这样做可能非常有用。在某些服务器上,通常会使用多个版本。

使用 which 快速弄清楚,然后回到使用正确的版本。

5、dig

DNS 有时可能是一个大救星,有时也可能是个麻烦的小鬼。由于 DNS 问题造成了很多广泛的停机,很难相信这样一个看似简单的服务会造成如此多的破坏,但这种情况时常发生。

了解 DNS 记录背后的内容非常重要。更重要的是,要知道如何跟踪错误的记录。幸运的是,在 Linux 上有一个非常好的工具。它就是 dig 程序。

使用dig,你可以以多种方式查询DNS服务器获取各种类型的记录。你还可以看到DNS请求通过DNS记录和服务器的层次结构到达你的全路径。

让我们尝试使用microsoft.com这个简单的例子。这将说明单个记录并不总是看起来那么简单:

linuxmi@linuxmi:~/www.linuxmi.com$ dig microsoft.com

让我们看看我们得到了什么:

95a694e87be4475455d624acb9fc9e4553ae8e.png

在这里,我们可以看到 dig 提供给我们的丰富信息。我们可以快速地看到不止一个 A 记录,而是有 4 个!这意味着每次我们访问 microsoft.com时,实际上要从不同的IP地址列表中选择。公司通常这样做来平衡多个主机之间的请求,或者有 CDN 参与时。

我们还可以检查基本的响应时间和返回的任何其他选项的统计信息。如果你想深入了解 DNS 的情况,你就得挖下去。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK