我想在 sh 提示符(不是 bash shell)中显示当前路径,当前只显示“#”,我尝试引入这个
env PS1="$(whoami)@$(hostname):$(pwd)"
Run Code Online (Sandbox Code Playgroud)
和
set PS1="$(whoami)@$(hostname):$(pwd)"
Run Code Online (Sandbox Code Playgroud)
在/etc/profile
。
但很明显,当目录更改或用户更改时,这不会刷新。请提出一种使这种动态的方法。
我有一个在 imx6 平台上运行的嵌入式 Linux。这是一个飞思卡尔嵌入式linux。问题是该 linux 没有可用的 sudo,但我需要由用户激活和停用 wlan0 设备。我试图将用户添加到组 root 没有任何成功。我还尝试将整个命令添加到 /etc/busybox.conf 文件中,但这也没有效果。
如何在没有 sudo 的情况下以用户身份运行此命令?
user@touch:~$ /sbin/ifconfig eth0 down
SIOCSIFFLAGS: Permission denied
Run Code Online (Sandbox Code Playgroud) 我希望我的问题表述正确。我有一个大量使用“sed”的脚本。它在我的带有 GNU 'sed' 的 ubuntu 上运行良好。但是当我尝试在 BusyBox 上运行它时,它失败了。有没有办法在busybox上获得GNU sed?我不是 Linux 专家。
像 eSATA、USB 驱动器这样的可拆卸设备可以突然移除(只需拔掉插头)。
如果分区上有打开的文件句柄,则该分区不会卸载,即 Linuxumount
命令将失败,即使在驱动器被物理分离后也是如此。
如果卸载失败,则在重新连接设备时,mount
也将失败。因此,您必须找出哪些进程正在使用驱动器并杀死它们或关闭所有句柄。如果您不能这样做,则必须重新启动盒子才能安装驱动器。而且我绝对不能终止使用它的进程。
我看不到“强制卸载”选项,有一个-f
选项,但它仅适用于 NFS。
这听起来很奇怪,Linux 不适应用户简单地猛拉驱动器的这种情况吗?有谁知道如何在 Linux 中优雅地处理这种情况?
有什么方法可以找出在特定分区/设备上打开了哪些文件句柄,或者仅针对特定设备有选择地刷新和关闭所有文件句柄?
注意:该lsof
命令在我使用的嵌入式 Linux (busybox) 中不可用。
“fuser”在我的嵌入式 linux 中不可用。
我尝试了懒惰的 umount -l。但是,它似乎并不能始终如一地工作。比如说,我保持一个文件句柄打开(在设备上的某个文件上使用“tail -f”)。然后我分离一个驱动器,然后我执行“umount -l”并卸载它。然后我重新连接驱动器并尝试在相同的安装点上再次安装它,而尾部仍在运行。它不能始终如一地工作。有时它会成功,有时它不会。这让我不舒服使用惰性选项,如果它使文件系统处于不一致状态怎么办。而且也不确定这个懒惰的选项是否打算用于这种情况。
我无法终止打开文件句柄的进程。
似乎我已经将设备安装在 /mnt/abc 上,如果我断开驱动器然后重新连接,Linux 似乎将设备的文件系统重新附加到相同的安装点“/mnt/abc”,而我们没有做任何事情卸载或安装。然后相同的旧打开文件句柄似乎在重新附加后开始工作(至少对于文件读取操作)。这是我的观察。我不确定这是否是预期的行为。但是,这似乎也没有持续有效。
我有一个用于读取的打开文件句柄(“tail -f”),我将其保持打开状态,然后我分离并重新附加,然后修改了被拖尾的文件,我看到“tail -f”输出随着更改而更新。但是,如果我在设备消失后尝试修改文件(它按预期给出错误)然后重新附加,则设备的文件系统无法正确重新附加到相同的安装点。在文件写入的情况下(当设备不存在时)它似乎不起作用。
当突然移除驱动器而不关闭所有句柄并正确卸载所有分区时,Linux 是否遵循任何标准/一致的行为?
我想将所有文件和文件夹从一个目录移动到其子文件夹之一。我怎么做?
我正在使用 BusyBox 和 linux。
前任:
将所有文件和文件夹移动/my/path/
到/my/path/subfolder/.
复制,然后删除的解决方案是负担不起的。
谢谢。
我在使用 BusyBox 1.1.3 附带的 Netcat 发出 HTTP 请求然后接收响应时遇到问题。NC 命令似乎在到达我发送的请求文件末尾时立即退出。-w 选项似乎是为这种情况设计的,但是查看源代码,-w 选项似乎不可能对接收行为产生任何影响。
BusyBox 上此版本 NC 的源代码在这里...
http://git.busybox.net/busybox/tree/networking/nc.c?id=5cbe2519d8776bc15e0bc4dc7aeb6adc53e50b81
我究竟做错了什么?有没有办法通过这个版本的 NC 将文件发送到服务器,然后等待接收响应?关于在脚本中执行此操作的其他可能方法的任何创意?
请注意,这是一个嵌入式系统,我无法升级 BusyBox 版本或上传新的可执行文件 - 我只能使用脚本文件和已经可用的 BusyBox 可执行文件。另请注意,系统上没有可用的 WGET。
谢谢!
-乔希
对于想要很少嵌入式 linux 的供应商来说,Busybox 似乎是一种绊脚石。甚至还有关于 Busybox 的诉讼。
对于封闭系统的开发人员,是否有更自由的(BSD、MIT 或至少 LGPL)Busybox 类似物?
我使用这样的公共线:
udhcpc -O domain
Run Code Online (Sandbox Code Playgroud)
但是终端只显示如下:
Sending discover...
Sending select for 192.168.X.X...
Lease of 192.168.X.X obtained, leasing time ...
Run Code Online (Sandbox Code Playgroud)
那么我的请求结果在哪里?