使用 Korn Shell 的 QNX4 操作系统。这是在 .profile 文件中。
export VARDIR=//1/usr/pvcs
Run Code Online (Sandbox Code Playgroud)
//1/ 代表什么?
问题Linux 相当于 DOS 的“dir /s /b 文件名”是什么?接近,但它最终会为所有此类命名文件名播放文件查找操作。
然而,我希望对 Windows 机器上的目录进行目录内容差异比较,并将其与QNX 机器上类似构造的目录进行比较。我想在两台机器上运行目录枚举命令,做一些文本文件操作来转换路径分隔字符和根驱动器,以及不将它们转换为兼容格式以获得有见地的差异。
我可以使用 生成其中所有子目录和文件的文件夹清单dir /b /s
,并将输出格式化为一堆路径...
c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...
Run Code Online (Sandbox Code Playgroud)
我可以看到dir /s
become ls -R
,但是如何获得/B
等效的路径输出格式?
使用 QNX 6.4.1,有一个名为的命令pidin times
可以显示有关进程的信息。我认为这意味着PID信息。除其他外,您可以查看进程自启动以来使用了多少 CPU。
我有一个系统,/usr/sbin/random
在系统运行了大约 10 个小时后,它显示了近 2 分钟的处理器利用率。这似乎很多,因为我的代码中没有任何内容调用/usr/sbin/random
.
虽然现在有很多网络活动(UDP 和 TCP),所以我想知道网络驱动程序是否random
因为数据包冲突而调用以获得动态冲突退避时间。
这个理论可能正确吗?(好吧,它的可信度有多大?)如果不是,还有什么我应该检查的吗?该系统目前存在昨天不存在的延迟问题,我想知道发生了什么。这个特殊的线索可能有助于隔离问题。
更新
使用的进一步调查nicinfo
显示根本没有数据包冲突。所以有我的动态碰撞退避时间理论。还有其他想法吗?
另一个更新
虽然这有助于找到我的问题的答案(SSHD 使用的是随机的,当然!!),但要小心。如果您使用 SSH,它需要一个工作random
来允许您登录。出于某种原因,我的脚本中的调用random.old
不起作用,我几乎把我的嵌入式系统变砖了。所以要小心。
我有 5 个不同的串行设备,它们连接到 debian 拉伸计算机上的物理串行端口,并且应该在内部转发到 QEMU 机器。qemu 内部是 QNX 6.5.0 系统,所以我不确定是否可以使用 virtio-seral 驱动程序或类似的解决方案。
Linux 标准对 4 个串口的限制是通过以下方式解决的:
/etc/default/grub: 8250.nr_uarts=8
Run Code Online (Sandbox Code Playgroud)
所以现在我唯一的问题是 QEMU 最大串行端口 = 4。
可以通过重新编译qemu来解决这个问题,还有其他的解决方案吗?
问题的根源实际上是:“您可以在 BlackBerry PlayBook 上运行 Android 操作系统吗?”
由于一个是 Linux 的衍生产品,另一个是 Unix 的衍生产品,因此在这里似乎很合适。
我试图找到某些操作系统不稳定的原因,并且担心环境变量。
我得到的软件将大量的环境变量放入用户的.profile
.
当我输入时set | wc
,结果是9571 字节长!有 184 个条目。对我来说,这似乎非常大,但我没有明确指出并说“这是错误的,因为 xyz”。
我在ulimit 文档中没有看到任何关于环境变量总大小的内容,但我很担心。我不担心整体内存利用率(有足够的东西来做我需要的),但我担心超出一些内部限制并导致操作系统中的奇怪行为(可能与我问的问题没有密切关系,但是“奇怪的行为”是共享内存队列没有把我放在另一端的所有数据都归还给我。我得到了大约 5% 的数据)。
启动的每个脚本、运行的每个 shell 以及运行的每个二进制文件都会获得环境变量的完整、单独的副本,我认为 9k 太大了。这应该是一个担心,还是我什么都不担心?
我在带有半个 RAM 的嵌入式 x86 QNX 6.4.1 Neutrino 系统上运行。
为什么某些命令依赖manpages
而其他命令依赖于诸如--help
标志之类的东西来提供命令用法参考的问题并不新鲜。命令文档和命令用法概要之间的范围通常存在差异。后者通常是前者的一个子集。但是,即使大多数命令和实用程序都有联机帮助页,它们的概要部分的格式也存在差异,这在尝试提取此类信息时具有非常实际的意义。在其他情况下,strings
当命令似乎没有文档时,人们可能会通过该实用程序找到线索。
我对这个QNX平台上的命令很感兴趣,并发现了use
命令1来显示使用信息。如 中所述usemsg
,该框架涉及在实用程序源中设置标准使用记录,一旦编译,就可以使用use
命令访问它,您还可以包装本机功能等。这非常方便,因为我可以简单地做
use -d dir >>file
Run Code Online (Sandbox Code Playgroud)
上/base
并/proc/boot
提取所有使用该系统基本上所有的命令。
所以我然后简要地查看了GNU coreutils ls和FreeBSD ls的源代码,看看它们是否做了类似的事情,前者将使用信息放在一些名为函数的用法中(我猜),而后者似乎没有把它放在任何地方根本(?)。--help
use
) 是您在商业 Unix 中发现的以交互方式呈现命令使用参考的典型解决方案吗?1.use
命令:
use
Print a usage message (QNX Neutrino)
Syntax:
use [-aeis] [-d directory] [-f filelist] …
Run Code Online (Sandbox Code Playgroud) z 来自旧 QNX 系统的文件,需要在首选 Centos 中解压。
这些文件使用 QNX 打包方法打包,并且没有可用于加载 QNX 和解包这些文件的虚拟机 (VMWARE)。
我已经尝试了所有可用的提取程序,但没有人能够解压这些程序。文件文件名给出了数据,因此我尝试了以下操作:
Centos 输出:
-rwxr--r-- 1 root root 896 Mar 11 05:15 PMITN01.z
[root@green update]# zcat PMITN01.z
zcat: PMITN01.z: not in gzip format
[root@green update]# gunzip PMITN01.z
gunzip: PMITN01.z: not in gzip format
[root@green update]# uncompress -v PMITN01.z
PMITN01.z - no .Z suffix
[root@green update]# tar -zxvf PMITN01.z
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed …
Run Code Online (Sandbox Code Playgroud) 我正在使用 QNX。
我有以下输出ls -l
:
drwxr-xr-x 2 root root 4096 Jul 26 2021 bin
Run Code Online (Sandbox Code Playgroud)
由此,我想使用sed
提取用户和组,并将这些字符串放入 shell 变量中。
我无权访问stat
命令。