在区块链的世界里,以太坊以其智能合约平台的特性占据了举足轻重的地位,与许多依赖图形用户界面(GUI)的交互方式不同,对于追求高效、自动化和深度控制的开发者和技术爱好者而言,命令行工具(CLI)是不可或缺的利器,本文将聚焦于如何通过以太坊命令行工具来创建、发送和管理交易,揭示这一底层操作的奥秘。

为何选择命令行?—— 以太坊交易的 CLI 优势
虽然 MetaMask 等钱包提供了友好的图形界面,但在某些场景下,命令行工具展现出其独特魅力:
常见的以太坊命令行工具
要进行以太坊交易的命令行操作,通常会用到以下几类工具:
以太坊客户端 CLI:
geth 命令行功能强大,可以通过 geth account 管理账户,geth send 发送交易等。以太坊 JSON-RPC API 与 curl/wget:

curl 或 wget 等命令行工具发送 HTTP POST 请求到节点的 RPC 端点(如 http://localhost:8545)来调用各种方法,包括发送交易(eth_sendTransaction)。第三方脚本工具:
使用 Geth CLI 发送交易示例
Geth 是 CLI 操作的典型代表,以下是使用 Geth 发送以太币交易的基本步骤:
启动节点并解锁账户: 确保你的以太坊节点正在运行,你需要解锁一个包含足够 ETH 的账户:
geth attach http://localhost:8545 # 连接到本地节点 > personal.unlockAccount(eth.accounts[0], "your-password") # 解锁第一个账户,输入密码
或者,在启动 Geth 时直接解锁:
geth --unlock 0 --password /path/to/password.txt
构造并发送交易: 使用 eth.sendTransaction 方法:

> eth.sendTransaction({
from: "0xYourSenderAddress",
to: "0xRecipientAddress",
value: web3.toWei(0.1, "ether"),
gas: 21000, // 转账 ETH 的最低 gas
gasPrice: web3.toWei(20, "gwei") // 设置 gas 价格
})
from:发送方地址,必须是已解锁的账户。to:接收方地址。value:转账金额,需用 web3.toWei 转换为 wei(以太坊最小单位)。gas:交易预计消耗的 gas 量,简单转账通常为 21000。gasPrice:每单位 gas 的价格,影响交易速度和成本。查看交易状态: 交易发送后,会返回一个交易哈希(transaction hash),你可以使用 eth.getTransaction 查询交易详情:
> eth.getTransaction("0xYourTransactionHash") 交易被打包后,可以通过 eth.getTransactionReceipt 查收据:
> eth.getTransactionReceipt("0xYourTransactionHash") 使用 curl 通过 JSON-RPC 发送交易
如果你使用的是其他支持 JSON-RPC 的节点客户端,或者更喜欢 curl,流程如下:
准备交易数据: 构造一个 JSON 对象,包含 method(如 eth_sendTransaction)、params(交易参数数组)和 id、jsonrpc。
发送请求:
curl -X POST -H "Content-Type: application/json" --data '{
"jsonrpc": "2.0",
"method": "eth_sendTransaction",
"params": [{
"from": "0xYourSenderAddress",
"to": "0xRecipientAddress",
"value": "0x16345785d8a0000", // 0.1 ETH in hex (wei)
"gas": "0x5208", // 21000 in hex
"gasPrice": "0x4a817c800" // 20 Gwei in hex
}],
"id": 1
}' http://localhost:8545 注意:这里的地址、金额等都需要是十六进制格式,发送方账户同样需要在节点中解锁,或者通过 personal_sendTransaction 并提供密码。
注意事项与最佳实践
gas 和 gasPrice 是关键,gas price 过低可能导致交易长时间被打包;gas 设置不足会导致交易失败。eth.getTransactionCount(address) 查询当前 nonce。