Linux这几个冷门的命令,简直不要太好用!
01 sudo !! 命令
在日常使用Linux的过程中,我们经常会遇到需要以root权限执行刚刚运行过的命令的情况。这时,sudo !! 命令就显得非常实用了。
!! 是bash shell的一个特性,它表示最近一次执行过的命令。当加上 sudo 前缀后,sudo !! 就变成了一个非常便捷的方式,允许用户在不重新输入整个命令的情况下,以root权限执行这条命令。
01 使用场景:
假设你在终端中尝试执行一个需要root权限的操作,比如安装一个新的软件包:
apt install newsoftware
如果没有使用sudo,系统会提示你需要更高的权限。此时,你可以直接使用 sudo !! 来重复执行上一条命令,并且自动加上sudo获取root权限:
sudo !!
这将等效于执行:
sudo apt install newsoftware
02 示例演示:
尝试不带sudo执行命令:
systemctl restart nginx
输出可能是:
[user@host ~]$ systemctl restart nginx
systemctl: Failed to read unit file nginx.service: No such file or directory
使用 sudo !! 重新执行命令:
sudo !!
这次命令将以root权限执行,并且能够正确重启nginx服务。
03 注意事项:
使用sudo !!时要小心,因为它会立即执行上一条命令,确保这是你真正想要的操作。
如果上一条命令本身就带有sudo,再次使用sudo !!将会重复带有sudo的命令,可能会导致不必要的权限升级。
02 python3 -m http.server 命令
在Linux环境下,有时我们需要一个简便的方法来共享文件,特别是在局域网内。python3 -m http.server 命令就能派上用场,它可以迅速启动一个简易的HTTP服务器,让你能够轻松地浏览和下载目录中的文件。
http.server 是Python的标准库模块,它提供了一个简单的HTTP请求处理器类,可以用来创建一个基本的HTTP服务器。通过指定端口运行此命令,可以在本地机器上启动一个临时的Web服务器。
01 使用方法:
- 首先确保你的系统已安装Python 3。
- 打开终端并导航到你想共享的目录。
- 输入以下命令启动服务器:
python3 -m http.server [port]
其中 [port] 是你想要监听的端口号,默认为8000。如果不指定端口号,则默认使用8000。
02 示例演示:
假设你想在端口8080上启动服务器:
python3 -m http.server 8080
命令执行后,你会看到类似如下的输出:
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...
这表示服务器已经在指定端口上运行,并且可以从任何设备通过网络访问。
03 实际应用:
文件共享:在一个小型团队或家庭网络中,你可以快速设置一个文件共享站点。
开发测试:前端开发者可以使用这个命令来快速预览他们的HTML/CSS/JavaScript代码。
临时演示:如果你需要在短时间内向其他人展示一些文件或项目成果,这也是一个不错的选择。
04 注意事项:
请确保防火墙规则允许外部访问指定端口。
考虑到安全性,不要在生产环境中使用这种方式公开敏感数据。
03 mtr 命令
在网络故障排查时,mtr(My Traceroute)是一个非常有用的工具,它结合了traceroute和ping的功能,可以同时显示数据包经过的每一跳以及每跳的平均响应时间和丢包率。
mtr 是一个用于追踪路由路径并测量网络性能的命令行工具。它不仅能够显示到达目标主机的路由路径,还能报告每跳的响应时间和丢包情况,这对于诊断网络连接问题特别有用。
01 使用方法:
启动 mtr 命令的基本语法如下:
mtr [options] hostname_or_ip
其中 hostname_or_ip 是你要追踪的目标主机名或IP地址。可以通过添加 -c 参数来限制测试次数,例如:
mtr -c 10 www.example.com
这将只发送10个数据包到指定的目标地址。
02 示例演示:
假设我们要检查到达 http://www.example.com 的网络路径及其性能,可以简单地输入:
mtr www.example.com
命令执行后,mtr 会持续显示每跳的响应时间、丢包率等信息,直到用户中断(通常通过按下 Ctrl+C)。
03 实际应用:
网络诊断:当遇到连接缓慢或中断时,使用 mtr 可以帮助定位问题所在的位置。
性能监控:定期运行 mtr 可以监测网络路径的变化,及时发现潜在的问题节点。
路由追踪:在部署新服务或调整网络配置后,使用 mtr 核实路由是否符合预期。
04 注意事项:
mtr 默认持续运行,直到用户手动停止。
在生产环境中使用 mtr 时,注意不要长时间运行以免影响正常业务。
可以结合其他工具(如 netcat 或 curl)来进一步测试特定端口或服务的连通性。
04 Ctrl+x+e 组合键
在Linux命令行中,效率往往取决于如何快速而准确地执行命令。除了使用上下箭头键来浏览历史命令外,还有一个非常实用的组合键——Ctrl+x+e,它可以让你快速编辑当前命令行的内容。
Ctrl+x+e 是Bash shell中的一个快捷键,当你按下这个组合键时,它会将当前命令行的内容发送到默认的文本编辑器中进行编辑。这意味着你可以直接修改长命令或复杂的参数设置,而无需在命令行中逐字符地调整。
01 使用方法:
- 在终端中输入你想要执行的命令。
- 当命令较长或需要精细编辑时,按下 Ctrl+x+e。
- 此时,命令行的内容会在默认的文本编辑器中打开(通常是 nano 或 vim)。
- 编辑完后保存并退出编辑器(在 nano 中按 Ctrl+X,然后按 Y 和 Enter;在 vim 中按 Esc,然后输入 :wq 并按 Enter)。
02 示例演示:
假设你在命令行中输入了一个复杂的查询命令:
find /usr/local/bin -name "*.py" -type f -exec grep -il "import os" {} \;
但突然意识到可能需要添加额外的过滤条件。这时,你可以按下 Ctrl+x+e,命令将出现在文本编辑器中,你可以直接对其进行修改:
find /usr/local/bin -name "*.py" -type f -exec grep -il "import os" {} \; | less
修改完后保存退出,命令会回到终端并准备好执行。
03 实际应用:
命令编辑:对于那些长而复杂的命令,直接在编辑器中修改更加直观和方便。
多步命令:当你需要构建一系列命令时,可以先在编辑器中编写好,然后再执行。
避免重复劳动:对于需要反复调整的命令,使用 Ctrl+x+e 可以节省大量时间。
04 注意事项:
确保你知道如何在你所使用的编辑器中保存和退出。当编辑器中修改命令时,请小心不要引入语法错误。
05 nl 命令
在处理文本文件时,有时候需要给文件的每一行加上行号以便于引用或定位。
nl 命令正是为此而设计,它可以为文本文件的每一行自动添加行号,这对于查看或编辑长文档尤其有用。
nl 是“numbered list”的缩写,它是一个简单的命令行工具,用于在文件内容的每一行前面加上行号。此外,nl 还可以设置行号的格式,如指定起始行号、增量值以及页码等。
01 使用方法:
基本的 nl 命令语法如下:
nl [选项] 文件名
常见的选项包括:
-b l:指定在非空白行之前打印行号。
-n ln:指定行号的格式为左对齐。
-p:在最后一行后面打印一个空行。
02 示例演示:
假设有一个名为 example.txt 的文件,内容如下:
Hello world!
This is a test.
你可以使用 nl 来给这个文件加上行号:
nl example.txt
输出结果将是:
1 Hello world!
2 This is a test.
更多选项:
- 如果你想自定义行号格式,可以使用 -s 选项来指定分隔符:
nl -s ": " example.txt
- 这将输出:
1: Hello world!
2: This is a test.
03 实际应用:
文档编辑:在编辑长文档时,行号可以帮助定位错误或引用特定行。
日志分析:对于日志文件,行号可以方便地追踪事件发生的顺序。
脚本编写:在编写Shell脚本时,为脚本添加行号可以帮助调试。
04 注意事项:
nl 命令默认不会覆盖原文件,而是将结果输出到标准输出。
如果需要将带行号的内容保存到新文件中,可以使用重定向操作符 > 或 >>。
版权声明:
作者:SE_YJ
链接:https://www.cnesa.cn/2245.html
来源:CNESA
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论