运维小技巧
局域网快速传输文件
使用Python命令
使用 python -m http.server 8080
命令可以快速启动一个简单的 HTTP 服务器,能够在本地共享文件。这对于快速共享文件或在本地测试网页非常有用。
以下是使用该命令传输文件的基本步骤:
在终端中运行命令:
打开终端(命令行界面),然后输入以下命令并按 Enter 键运行:
1
python -m http.server 8080
这将启动一个 HTTP 服务器,监听本地的 8080 端口。
将文件放入要共享的目录:
将想共享的文件放入一个目录中,该目录将成为 HTTP 服务器的根目录。默认情况下,该目录是运行命令的当前工作目录。
通过浏览器访问文件:
打开浏览器并输入 http://localhost:8080
或 http://127.0.0.1:8080
,然后浏览服务器根目录中的文件并下载它们。
如果要共享特定文件夹中的文件,可以在命令中指定该文件夹,例如:
1 | python -m http.server 8080 --directory /path/to/your/folder |
替换 /path/to/your/folder
为要共享的文件夹的实际路径。
关闭服务器:
在终端中,按
Ctrl + C
来停止服务器。
使用PHP命令
要在局域网中快速传输文件并使用 PHP 的内置 Web 服务器 (php -S
),按以下步骤进行:
创建文件传输目录:首先,在计算机上创建一个文件目录,用于存放要传输的文件。
进入文件传输目录:打开终端或命令提示符,使用
cd
进入文件目录,例如:1
cd /文件目录的路径
启动 PHP 内置 Web 服务器:使用以下命令启动 PHP 内置 Web 服务器,监听指定端口(如 8000):
1
php -S 0.0.0.0:8000
这会在所有网络接口 (0.0.0.0) 上的端口 8000 启动一个 Web 服务器。可以选择其他端口,确保没有其他服务使用。
查找本机 IP 地址:使用以下命令查找计算机在局域网中的 IP 地址:
- 在 Linux/macOS 终端,使用
ifconfig
命令:1
ifconfig
- 在 Windows 命令提示符,使用
ipconfig
命令:1
ipconfig
查找网络接口(通常是 Wi-Fi 或以太网)的 IP 地址。
- 在 Linux/macOS 终端,使用
局域网中访问:现在,其他设备可以通过浏览器访问计算机的 IP 地址,添加
:8000
(如果使用 8000 端口)。例如,如果计算机的 IP 地址是192.168.1.100
,其他设备可以在浏览器中输入http://192.168.1.100:8000
。文件上传和下载:其他设备访问 Web 服务器后,可以上传或下载文件。你可以提供文件上传/下载页面或直接提供下载链接。
确保计算机和其他设备可以相互访问,小心处理敏感文件,确保开放 Web 服务器不会引发安全风险。在生产环境中,可能需要更多安全措施,如基本身份验证、SSL 加密等。
不落地执行脚本
在内存中执行脚本
要在不将 shell 脚本落地到磁盘上的情况下执行它,可以使用标准输入(stdin)传递脚本内容给 shell 解释器。这样,脚本内容不会写入磁盘,而是直接从 stdin 读取并执行。以下是一种方法:
1 | echo 'Your shell script content here' | bash |
将 'Your shell script content here'
替换为实际脚本内容。
例如,如果有一个简单的 shell 脚本,如 myscript.sh
:
1 |
|
可以通过以下方式执行它而不将其保存到磁盘上:
1 | echo '#!/bin/bash' > myscript.sh |
这将在不创建 myscript.sh
文件的情况下执行脚本。
需要注意的是,这种方法仅适用于较小的脚本。对于更大的脚本或需要多次执行的脚本,最好将其保存到磁盘上以便管理和维护。
从网络上获取脚本
要从网络上获取脚本并在不将其落地到本地磁盘的情况下执行,可以使用 curl
或 wget
命令结合管道(pipe)来直接将脚本下载并传递给解释器。以下是一些示例:
使用 curl
:
1 | curl -sSL https://example.com/script.sh | bash |
这将从指定的 URL 下载 script.sh
并立即执行它。 -s
标志用于静默模式, -S
标志用于在下载期间显示进度, -L
标志用于自动遵循重定向。
使用 wget
:
1 | wget -qO- https://example.com/script.sh | bash |
这将执行与上述 curl
命令相同的操作。 -q
标志用于安静模式, -O-
标志用于将下载的内容发送到标准输出。
需要注意的是,这种方式存在一些安全风险,因为我正在从网络上下载并执行脚本。如果我不信任脚本源,可能会有潜在的安全问题。确保只从受信任的源下载脚本,避免执行不信任的脚本。
另外,如果我要执行的脚本不是 Shell 脚本,而是其他类型的脚本(如 Python、Perl 等),可以将相应的解释器替换为 bash
,例如:
1 | curl -sSL https://example.com/script.py | python |
这将下载 Python 脚本并用 Python 执行它。同样,确保只从受信任的源下载脚本。