一篇关于如何在 Linux 和 Windows 上下载并运行 SteamCMD 的指南。
SteamCMD 是一个 CLI 工具,允许用户从 Steam 下载应用程序。它常被用于下载游戏的专用服务器文件,例如 Counter-Strike、Left 4 Dead 2、Garry's Mod、Rust 等等!
下载与运行 SteamCMD
首先,你需要下载 SteamCMD 工具。有几种方法可以实现这一点,包括直接在系统上下载软件包。不过,为了更好地控制,我们将采用手动下载 SteamCMD 的方式。
Windows
关于如何在 Windows 上下载并解压 SteamCMD 的说明可以在这里找到。
- 从这里下载
steamcmd.zip文件。 - 创建一个文件夹,用于存放并解压
steamcmd.zip文件的内容。在本指南中,我们将使用E:\apps\steamcmd。 - 使用 Windows 自带的 ZIP 工具将
steamcmd.zip的内容解压到新建的文件夹中。你也可以使用像 7-Zip 这样的工具。
现在你应该能看到一个可以运行的 steamcmd.exe 可执行文件。


Linux
关于如何在 Linux 上下载并解压 SteamCMD 的说明可以在这里找到。
你需要下载并安装一些系统软件包,这些软件包是下载、运行、解压 SteamCMD 以及运行服务器(如果你要下载服务器文件的话)所必需的。
基于 Debian/Ubuntu 的系统(Apt)
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar
注意 - 如果你没有安装 sudo,你需要通过 su - 命令以 root 身份登录,并在本指南中执行命令时不再在开头加上 sudo。

虽然并非必须,但也建议你创建一个单独的用户来运行 SteamCMD 以及你计划运行的游戏服务器(如果有的话)。
你可以在基于 Debian/Ubuntu 的系统上使用以下命令创建新用户。
# Create apps group.
sudo groupadd apps
# Create apps user with home directory set to /home/apps and using /bin/bash as the shell.
sudo useradd -m -d /home/apps -g apps -s /bin/bash apps
# Login as apps.
sudo su apps -

接下来,你需要创建一个目录,用于存放 steamcmd_linux.tar.gz 文件的内容。
# Create a 'steamcmd/' directory inside the user's home directory.
mkdir ~/steamcmd
# Change directories to the created directory from above.
# Tip - You can also use 'cd $_' if you've just created the new directory.
cd ~/steamcmd

现在,你需要下载 steamcmd_linux.tar.gz 文件并解压它。我建议使用 curl 或 wget 命令下载文件,并使用 tar 命令解压。在本指南中,我们将使用结合 curl 和 tar 的一行命令。
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
如果上面的命令执行成功,当你使用类似 ls -l 的命令列出新目录中的文件时,应该会看到一个新的 steamcmd.sh 文件。

现在你可以使用以下命令运行新的 steamcmd.sh 程序,该命令同时也会更新 SteamCMD 安装。
./steamcmd.sh

下载应用程序文件
启动 SteamCMD 后,你需要做的第一件事是通过 force_install_dir 命令设置应用程序文件的安装目录。
例如,假设我们要下载 Left 4 Dead 2 的服务器文件,并希望将服务器文件安装到 Linux 上的 /home/apps/l4d2 或 Windows 上的 E:\apps\l4d2。
在 Linux 上,命令如下所示。
force_install_dir /home/apps/l4d2
在 Windows 上,命令如下所示。
force_install_dir E:\apps\l4d2
之后,你需要使用 login <username> 命令登录 Steam。在下载应用程序的专用服务器文件时,大多数情况下你可以通过 SteamCMD 匿名登录。这意味着你不需要在下载文件前输入你的 Steam 用户名或密码!你可以使用下面的命令进行匿名登录。
login anonymous
如果你不是在下载服务器文件,你可能需要指定你的 Steam 用户名、密码,以及可能的双重验证(2FA)代码。
接下来,你需要获取想要安装的应用程序的 app ID。如果你要下载服务器文件,我建议查看这份列表。
为方便起见,这里列出了一些常见的下载服务器文件的 ID。
- Counter-Strike 2 -
730 - Counter-Strike: Source -
232330 - Left 4 Dead 2 -
222860 - Garry's Mod -
4020 - Team Fortress 2 -
232250 - Rust -
258550
接下来,你需要使用 app_update <app ID> 命令来下载或更新应用程序文件。此外,如果你想验证应用程序文件是否没有损坏,可以在命令末尾添加 validate。请注意,在命令末尾加上 validate 会使命令执行时间变长!
例如,要下载 Left 4 Dead 2 的服务器文件而不验证安装,可以使用以下命令。
app_update 222860
这是另一个下载 Left 4 Dead 2 服务器文件并验证安装的示例。
app_update 222860 validate
下载服务器文件所需的时间取决于你的网络和硬盘速度。
使用脚本文件实现自动化
为了简化通过 SteamCMD 创建或更新应用文件的过程,你可以使用脚本文件。这样你就可以通过执行单个脚本来自动下载或更新应用文件。
我们将创建一个带有环境变量的脚本,让你可以轻松配置 SteamCMD 和应用文件的位置,以及要下载的 app ID 等内容。
请按照以下步骤操作。
Windows
我们将在存放应用文件的文件夹内创建一个 update-app.bat 批处理文件。
@echo off
set STEAM_CMD_LOC="E:\apps\steamcmd"
set STEAM_USER="anonymous"
set STEAM_PASS=""
set INSTALL_DIR="..\my-app"
set APP_ID="<APP ID>"
cd "%STEAM_CMD_LOC%"
start "" steamcmd.exe +force_install_dir "%INSTALL_DIR%" +login "%STEAM_USERNAME%" "%STEAM_PASSWORD%" +app_update %APP_ID% validate +quit
Linux
我们将在存放应用文件的目录内创建一个 update-app.sh Bash 脚本。
#!/bin/bash
STEAM_CMD_LOC=../steamcmd/
STEAM_USER="anonymous"
STEAM_PASS=""
INSTALL_DIR=../my-app
APP_ID=<APP ID>
$STEAM_CMD_LOC/steamcmd.sh +force_install_dir $INSTALL_DIR +login "$STEAM_USER" "$STEAM_PASS" +app_update $APP_ID validate +quit
结语
就是这样!现在你应该已经能够通过脚本文件或逐条执行命令,自动创建和更新 SteamCMD 上的应用了。
如果你对本指南有任何问题或改进建议,请在这里回复该主题!本指南会随着时间不断完善和更新。
加入我们的Discord server!

