十个对初学者特有用的 Linux 命令(非常详细)零基础入门到精通,收藏这一篇就够了

258 篇文章 0 订阅
257 篇文章 2 订阅

21CTO 导读:

作为一名Linux管理员,或者即使是刚刚开始使用 Linux 的新手,充分了解解决网络问题时有用的命令也是至关重要的。

我们将探讨用于诊断和解决常见网络问题的 10 个基本 Linux 命令。每个命令都将附有实际示例,以说明其用法与有效性。

1. ping

例如:ping www.21cto.com

[root@VM-0-5-centos ~]# ping www.21cto.com``PING www.21cto.com (81.70.105.8) 56(84) bytes of data.``64 bytes from 81.70.105.8 (81.70.105.8): icmp_seq=1 ttl=63 time=0.228 ms``64 bytes from 81.70.105.8 (81.70.105.8): icmp_seq=2 ttl=63 time=0.285 ms``64 bytes from 81.70.105.8 (81.70.105.8): icmp_seq=3 ttl=63 time=0.282 ms``64 bytes from 81.70.105.8 (81.70.105.8): icmp_seq=4 ttl=63 time=0.268 ms``64 bytes from 81.70.105.8 (81.70.105.8): icmp_seq=5 ttl=63 time=0.211 ms``   ``--- www.21cto.com ping statistics ---``13 packets transmitted, 13 received, 0% packet loss, time 12018ms``rtt min/avg/max/mdev = 0.200/0.233/0.285/0.027 ms

 
 
 
 
  • 1

ping 命令使用ICMP协议。

ICMP代表互网际网络控制消息协议(Internet Control Message Protocol),ICMP是网络设备用来通信的网络层协议。

ping有助于测试主机的可达性,帮助我们查找源和目标之间的延迟情况。

2.traceroute

例子:traceroute baidu.com

如果显示:

-bash: traceroute: command not found 

 
 
 
 
  • 1

表示没有安装此工具,可以使用根据自己当前操作系统环境安装。

Ubuntu类:

# For Debian based distributions like Ubuntu``   ``sudo apt-get install traceroute

 
 
 
 
  • 1

CentOS:

# For RPM based distributions like CentOS``   ``sudo yum install traceroute

 
 
 
 
  • 1

接下来,我们再来尝试:

[root@VM-0-5-centos ~]# traceroute baidu.com``traceroute to baidu.com (39.156.66.10), 30 hops max, 60 byte packets` `1  * * *` `2  11.66.248.84 (11.66.248.84)  0.293 ms * *` `3  * * *` `4  10.200.46.253 (10.200.46.253)  0.631 ms 10.200.46.93 (10.200.46.93)  1.152 ms 10.196.89.113 (10.196.89.113)  0.628 ms` `5  * * *` `6  39.156.0.81 (39.156.0.81)  2.165 ms  2.649 ms  2.702 ms` `7  111.13.188.38 (111.13.188.38)  4.329 ms 111.13.0.174 (111.13.0.174)  4.259 ms 111.13.188.38 (111.13.188.38)  4.488 ms` `8  39.156.27.5 (39.156.27.5)  4.441 ms  4.458 ms  3.997 ms` `9  39.156.67.17 (39.156.67.17)  3.914 ms 39.156.67.1 (39.156.67.1)  14.343 ms  13.673 ms

 
 
 
 
  • 1

Traceroute显示数据包到达目标主机所经过的路由。它显示路径上路由器的 IP 地址,并计算每一跳的往返时间 (RTT)。

Traceroute可以帮助我们识别网络拥塞或者路由问题。

3. netstat

例子:netstat -tulpn

[root@VM-0-5-centos ~]# netstat -tulpn``   ``Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name``   ``tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      870/redis-server 12``   ``tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1188/nginx: master``   ``tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd``   ``tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1188/nginx: master``   ``tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      2059145/sshd: /usr/``   ``tcp6       0      0 :::3306                 :::*                    LISTEN      819/mysqld``   ``tcp6       0      0 ::1:6379                :::*                    LISTEN      870/redis-server 12``   ``tcp6       0      0 :::33060                :::*                    LISTEN      819/mysqld``   ``tcp6       0      0 :::443                  :::*                    LISTEN      1188/nginx: master``   ``tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd``   ``tcp6       0      0 :::80                   :::*                    LISTEN      1188/nginx: master``   ``tcp6       0      0 :::7001                 :::*                    LISTEN      2059145/sshd: /usr/``   ``udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd``   ``udp        0      0 127.0.0.1:323           0.0.0.0:*                           666/chronyd``   ``udp6       0      0 :::111                  :::*                                1/systemd``   ``udp6       0      0 ::1:323                 :::*                                666/chronyd``   ``   

 
 
 
 
  • 1

Netstat 显示网络连接、路由表、接口统计信息、伪装连接和多重广播成员资格。它对于排除网络连接故障、识别开放端口和监控网络性能非常有用。

4.ifconfig/ip

例子:ifconfig 或 ifconfig

[root@VM-0-5-centos ~]# ifconfig eth0``   ``eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500``   `        `inet 172.21.0.5  netmask 255.255.240.0  broadcast 172.21.15.255``   `        `inet6 fe80::5054:ff:feca:cdf8  prefixlen 64  scopeid 0x20<link>``   `        `ether 52:54:00:ca:cd:f8  txqueuelen 1000  (Ethernet)``   `        `RX packets 80835008  bytes 32467819740 (30.2 GiB)``   `        `RX errors 0  dropped 0  overruns 0  frame 0``   `        `TX packets 96298531  bytes 91472563700 (85.1 GiB)``   `        `TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0``   ``   

 
 
 
 
  • 1

ifconfig命令ip用于查看和配置网络参数。它们提供有关每个接口的 IP 地址、子网掩码、MAC 地址和网络状态的信息。

5.tcpdump

tcpdump也是一个外部工具,如果显示没有此命令,请使用如下方式安装:

yum install tcpdump

 
 
 
 
  • 1

例子:tcpdump -i eth0 tcp port 80

[root@VM-0-5-centos ~]# tcpdump -i eth0 tcp port 80``   ``dropped privs to tcpdump``   ``tcpdump: verbose output suppressed, use -v[v]... for full protocol decode``   ``listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes``   ``12:03:17.585041 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [S], seq 1262259857, win 32120, options [mss 1460,sackOK,TS val 2931024914 ecr 0,nop,wscale 7], length 0``   ``12:03:17.594474 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [S.], seq 3139790384, ack 1262259858, win 65535, options [mss 1424,nop,nop,sackOK,nop,wscale 9], length 0``   ``12:03:17.594522 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [.], ack 1, win 251, length 0``   ``12:03:17.594599 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [P.], seq 1:182, ack 1, win 251, length 181: HTTP: POST /ca_report.cgi HTTP/1.1``   ``12:03:17.604056 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [.], ack 182, win 131, length 0``   ``12:03:17.604092 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [P.], seq 182:558, ack 1, win 251, length 376: HTTP``   ``12:03:17.613436 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [.], ack 558, win 133, length 0``   ``12:03:17.620508 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [P.], seq 1:217, ack 558, win 133, length 216: HTTP: HTTP/1.1 200 OK``   ``12:03:17.620508 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [F.], seq 217, ack 558, win 133, length 0``   ``12:03:17.620539 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [.], ack 217, win 250, length 0``   ``12:03:17.621059 IP VM-0-5-centos.39012 > 169.254.0.4.http: Flags [F.], seq 558, ack 218, win 250, length 0``   ``12:03:17.630405 IP 169.254.0.4.http > VM-0-5-centos.39012: Flags [.], ack 559, win 133, length 0``   ``12:03:18.291765 IP VM-0-5-centos.39028 > 169.254.0.4.http: Flags [S], seq 2462459289, win 32120, options [mss 1460,sackOK,TS val 2931025621 ecr 0,nop,wscale 7], length 0``   ``12:03:18.301176 IP 169.254.0.4.http > VM-0-5-centos.39028: Flags [S.], seq 333977930, ack 2462459290, win 65535, options [mss 1424,nop,nop,sackOK,nop,wscale 9], length 0``   ``^C``   ``108 packets captured``   ``108 packets received by filter``   ``0 packets dropped by kernel``   ``   

 
 
 
 
  • 1

tcpdump是一个实时捕获和显示网络流量的数据包分析器。

tcpdump对于排除网络问题、分析数据包内容和识别异常网络行为非常有价值。用于tcpdump检查特定接口或端口上的数据包。

6. nslookup/dig

示例:nslookup google.com

如果你的系统显示没有找到该命令,请使用如下命令安装:

yum install bind-utils

 
 
 
 
  • 1

接下来我们来运行:

[root@VM-0-5-centos ~]# nslookup google.com``   ``Server:         183.60.83.19``   ``Address:        183.60.83.19#53``   ``   ``   ``Non-authoritative answer:``   ``Name:   google.com``   ``Address: 142.251.43.14

 
 
 
 
  • 1

下一步,我们使用dig:

[root@VM-0-5-centos ~]# dig google.com``   ``   ``   ``; <<>> DiG 9.16.23-RH <<>> google.com``   ``;; global options: +cmd``   ``;; Got answer:``   ``;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49289``   ``;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0``   ``   ``   ``;; QUESTION SECTION:``   ``;google.com.                    IN      A``   ``   ``   ``;; ANSWER SECTION:``   ``google.com.             7       IN      A       93.46.8.90``   ``   ``   ``;; Query time: 5 msec``   ``;; SERVER: 183.60.83.19#53(183.60.83.19)``   ``;; WHEN: Sat May 04 12:10:21 CST 2024``   ``;; MSG SIZE  rcvd: 44``   ``   

 
 
 
 
  • 1

nslookup和dig都是 DNS 查找工具,用于查询 DNS 服务器进行域名解析。它们提供有关与域名关联的 IP 地址的信息,并帮助诊断与 DNS 相关的问题,例如 DNS 配置不正确或服务器不可用时。

7. iptables/firewalld

示例:iptables -L或firewall-cmd --list-all

[root@VM-0-5-centos ~]# iptables -L``   ``Chain INPUT (policy ACCEPT)``   ``target     prot opt source               destination``   ``   ``   ``Chain FORWARD (policy ACCEPT)``   ``target     prot opt source               destination``   ``   ``   ``Chain OUTPUT (policy ACCEPT)``   ``target     prot opt source               destination``   ``   

 
 
 
 
  • 1

iptables和firewalld是用于配置数据包过滤和网络地址转换 ( NAT ) 规则的防火墙管理工具。它们控制传入和传出流量并保护系统免受未经授权的访问。使用它们来诊断与防火墙相关的问题并确保正常的流量。

8.ss

例子:ss -tulpn

[root@VM-0-5-centos ~]# ss -tuplpn``   ``Netid    State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port    Process``   ``udp      UNCONN     0          0                    0.0.0.0:111                0.0.0.0:*        users:(("rpcbind",pid=653,fd=5),("systemd",pid=1,fd=118))``   ``udp      UNCONN     0          0                  127.0.0.1:323                0.0.0.0:*        users:(("chronyd",pid=666,fd=5))``   ``udp      UNCONN     0          0                       [::]:111                   [::]:*        users:(("rpcbind",pid=653,fd=7),("systemd",pid=1,fd=120))``   ``udp      UNCONN     0          0                      [::1]:323                   [::]:*        users:(("chronyd",pid=666,fd=6))``   ``tcp      LISTEN     0          511                127.0.0.1:6379               0.0.0.0:*        users:(("redis-server",pid=870,fd=6))``   ``tcp      LISTEN     0          511                  0.0.0.0:443                0.0.0.0:*        users:(("nginx",pid=1192,fd=9),("nginx",pid=1190,fd=9),("nginx",pid=1188,fd=9))``   ``tcp      LISTEN     0          4096                 0.0.0.0:111                0.0.0.0:*        users:(("rpcbind",pid=653,fd=4),("systemd",pid=1,fd=117))``   ``tcp      LISTEN     0          511                  0.0.0.0:80                 0.0.0.0:*        users:(("nginx",pid=1192,fd=7),("nginx",pid=1190,fd=7),("nginx",pid=1188,fd=7))``   ``tcp      LISTEN     0          128                  0.0.0.0:7001               0.0.0.0:*        users:(("sshd",pid=2059145,fd=3))``   ``tcp      LISTEN     0          151                        *:3306                     *:*        users:(("mysqld",pid=819,fd=24))``   ``tcp      LISTEN     0          511                    [::1]:6379                  [::]:*        users:(("redis-server",pid=870,fd=7))``   ``tcp      LISTEN     0          70                         *:33060                    *:*        users:(("mysqld",pid=819,fd=21))``   ``tcp      LISTEN     0          511                     [::]:443                   [::]:*        users:(("nginx",pid=1192,fd=8),("nginx",pid=1190,fd=8),("nginx",pid=1188,fd=8))``   ``tcp      LISTEN     0          4096                    [::]:111                   [::]:*        users:(("rpcbind",pid=653,fd=6),("systemd",pid=1,fd=119))``   ``tcp      LISTEN     0          511                     [::]:80                    [::]:*        users:(("nginx",pid=1192,fd=10),("nginx",pid=1190,fd=10),("nginx",pid=1188,fd=10))``   ``tcp      LISTEN     0          128                     [::]:7001                  [::]:*        users:(("sshd",pid=2059145,fd=4))``   ``   

 
 
 
 
  • 1

ss是一个调查Socket的实用程序。它显示有关 TCP、UDP 和 UNIX 域Socket的信息,包括侦听和已建立的连接、连接状态和进程 ID。ss对于解决与套接字相关的问题和监视网络活动非常有用。

9.arp

例子:arp -a

[root@VM-0-5-centos ~]# arp -a``   ``_gateway (172.21.0.1) at fe:ee:0b:ca:e5:69 [ether] on eth0

 
 
 
 
  • 1

arp(地址解析协议)显示和修改内核使用的 IP 到 MAC 地址转换表。它将 IP 地址解析为 MAC 地址,反之亦然。arp有助于解决与网络设备发现和地址解析相关的问题。

10. mtr

例子:mtr

如果没有安装此外部命令,请先安装。如CentOS:

yum install mtr

 
 
 
 
  • 1

接下来运行:

My traceroute  [v0.94]``   ``VM-0-5-centos (::1) -> localhost                                                                                                                             2024-05-04T12:20:37+0800``   ``Keys:  Help   Display mode   Restart statistics   Order of fields   quit``   `                                                                                                                                             `Packets               Pings``   ` `Host                                                                                                                                      Loss%   Snt   Last   Avg  Best  Wrst StDev``   ` `1. VM-0-5-centos                                                                                                                           0.0%    14    0.1   0.1   0.1   0.1   0.0

 
 
 
 
  • 1

mtrping(我的跟踪路由)是将ping和traceroute结合到一个诊断工具中。它持续探测主机和目的地之间的网络路径,显示有关数据包丢失、延迟和路由更改的详细统计信息。Mtr非常适合诊断间歇性网络问题和监控一段时间内的网络性能。

掌握这些命令对于解决 Linux 主机上的网络问题非常有用。

## 题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

  • 39
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令Shell从入门精通需要经过一定的学习和实践过程。以下是一些基本的步骤和建议,帮助您从零开始学习并逐步精通Linux命令Shell。 首先,了解Linux操作系统的基本原理和架构是十分重要的。了解Linux文件结构、用户权限、进程管理等基本概念可以帮助您更好地理解和运用Linux命令。 其次,学习和熟悉常用的Linux命令。了解ls、cd、mkdir、rm等基本的文件和目录操作命令,可以帮助您快速浏览和管理文件系统。学习使用grep、sed、awk等文本处理命令,可以帮助您在大量文本数据中查找和处理信息。同时,学习和掌握文件权限管理、软链接、管道、重定向等高级命令和技巧,可以提高您的Shell脚本编写能力。 第三,练习使用Linux命令。通过在终端中亲自动手输入和执行命令,可以加深对命令的理解和记忆,并逐步掌握命令的参数和选项。可以使用虚拟机或云服务搭建一个Linux环境,进行实际的操作和实践。 第四,阅读和学习Shell编程。了解Shell脚本的语法和特性,学习如何编写脚本实现批量操作、自动化任务等,可以提高工作效率和自动化管理能力。掌握条件判断、循环语句和函数的使用,可以编写更复杂和强大的Shell脚本程序。 最后,参考书籍、教程和在线资源。市面上有很多针对初学者Linux命令和Shell编程教材,可以帮助您系统地学习和掌握Linux命令。另外,通过百度等搜索引擎,可以找到大量的在线资源、论坛和社区,有助于解决问题和扩展知识。 总的来说,学习Linux命令Shell从入门精通需要耐心和实践,通过不断学习和实践,不断积累经验,逐渐提高自己的技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值