有没有办法在 android shell 中编辑文件?
为了编辑像
.rc
这样的文件和类似的脚本,我目前正在使用adb pull
来拉动它们,然后编辑它们,然后将它们推回adb push
。这肯定是低效的。
有没有办法可以在 android shell 中编辑这些文件(就像 Linux shell 中的 vim 编辑器)
我的设备拥有 root 权限。因此,如果有必要,我可以安装 root 应用程序。
您可以使用以下方法创建文本文件:
adb shell
$ cat > filename.txt
您可以使用以下方法向文本文件添加行:
$ cat >> filename.txt
这两个命令都可以使用
ctrl-D
终止。
您可以从 F-Droid 商店安装 BusyBox,如果您已 root 设备,则可以使用
vi
编辑文件。
adb shell
busybox vi /sdcard/Download/test.txt
Deepak 的答案(使用
cat >
或 >>
)非常适合从头开始创建文件或附加到文件。
要更改现有文件的一部分,
sed
是另一种选择,在没有vi
的手机上:
$ sed -i 's/old_regex/replacement/' filename.ext
Android 版 vi 的简化版本包含在 Busybox 中。 假设您运行的是 Windows,一旦安装了 Busybox(并且您确实需要 root 权限才能执行此操作),我建议您按照 https://stackoverflow.com/a/29033010/5025060 中的说明进行操作从 Windows PC 屏幕在 Android 设备上完成全屏文本编辑。
我还注意到默认 shell 是
sh
,输入 bash
后我可以使用 nano
。
实际上您可以,如果您的设备使用 toybox 作为其实用程序并且安装了 sed 并且您知道如何使用 sed。 实际上你不需要toybox,但你确实需要一个编辑器,我发现我的系统使用提供sed的toybox。
我的三星甚至不支持 ADB,但我的 LG 有我需要的。
运行 adb shell,使用 run-as 获取正确的权限并进行编辑。
$ which toybox
/system/bin/toybox
$ which sed
/system/bin/sed
虽然不回答具体问题,但我会说 Play 商店中有一个名为 Termux 的应用程序适用于未 root 的设备。只有200KB并且支持
vi
。
如果您无法安装 busybox 并且您的手机有预安装的 toybox,请输入
adb shell $toybox vi filename
文件名是占位符