Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

3
进程分叉时会复制其虚拟内存或常驻内存吗?
在Linux中制作新进程的标准方法是复制父进程的内存占用空间,并成为子进程的环境,直到execv被调用为止。 我们在谈论什么内存占用量,虚拟的(所需的过程)还是常驻的(实际使用的)? 动机:我的设备的交换空间有限,而应用程序在虚拟内存和驻留内存之间的差异却很大。由于内存不足,该应用程序无法派生,并希望查看尝试减小虚拟足迹大小是否有帮助。

2
为什么gcc在Arch Linux中在目标:x86_64-unknown-linux-gnu中显示“未知”?
我想知道为什么gcc -v在Arch Linux下运行时,unknown在以下输出中显示该词: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper Target: x86_64-unknown-linux-gnu 在其他发行版中,例如ubuntu,它显示发行版名称,例如ubuntu: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-ubuntu-linux-gnu/5.1.0/lto-wrapper Target: x86_64-ubuntu-linux-gnu
12 linux  arch-linux  gcc 



5
运行`grep`排除特定路径中的文件
我想./test/main.cpp从搜索中排除文件。 这是我所看到的: $ grep -r pattern --exclude=./test/main.cpp ./test/main.cpp:pattern ./lib/main.cpp:pattern ./src/main.cpp:pattern 我知道可以通过在管道和过滤器布置中使用多个命令来获得所需的输出,但是是否有一些引号/转义符可以使grep我理解本机?

4
为什么不通过管道传输apt-cache策略输出?
无法理解为什么 $ apt-cache policy foo N: Unable to locate package foo 但 $ apt-cache policy foo 2>&1 | grep . 是空的。 在后一个电话中,我做错了什么假设? 原始任务:我apt-cache policy大概需要处理输出:-) UPD: foo在我的例子中使用可以与任何包名称替代不存在在你的apt-get指数。 UPD 2: 有一个解决方法的答案。+50任何解释该2>&1解决方案不起作用的人将获得额外的奖励。
12 shell  apt  pipe 

3
为什么不建议将引导分区放在lvm上?
我在某处读到,不建议将引导分区放在基于lvm的分区上。但是,无论如何我都在做。那么,我遇到的唯一问题有时是当我安装一个新的Linux发行版并将其引导分区放在lvm上时,grub无法检测到它。该grub-mkconfig命令通常在生成grub.cfg文件时出错。但是,如果这是基于lvm的启动分区上的唯一问题,我认为还可以。因为我知道如何修复它,所以只需为要启动的启动分区提供适当的地址即可启动,然后一切正常。 那么,LVM可能会导致问题吗?因为在我看来,lvm非常灵活,并且不会降低系统速度。
12 boot  partition  lvm 

7
如何安全获取ksh的版本?
如何从ksh脚本中安全地获取ksh的版本? 我已经看到以下解决方案: ksh --version echo ${.sh.version} echo $KSH_VERSION 在适当的情况下,所有这些方法都可以正常工作。但是,我关心的是不完美的情况。 具体来说,我使用的几台机器具有较旧的ksh版本,出于我的目的,这些版本严重缺乏功能。无论如何,我要(以编程方式)检查版本的原因是要查看ksh版本是否为功能较弱的版本之一。如果是这样,我想用不太出色的代码执行分支。 但是,在有问题的机器上,shell的能力不足导致无法检查版本... 如果我尝试ksh --version,它什么也不打印,并打开一个新实例ksh! 如果尝试echo ${.sh.version},ksh将其视为语法错误,不能使用丢弃2> /dev/null。 $ echo ${.sh.version} 2> /dev/null ksh: ${.sh.version}: bad substitution 当然echo $KSH_VERSION看起来可以正常工作-我的意思是它不会崩溃-尽管在这些机器上它是空白的。另外,我看到的地方是KSH_VERSION只被设定pdksh。 问题: 如何安全地以ksh编程方式检查版本?就我的目的而言,我并不在乎实际的版本号是多少,而只是它是否是的过时版本ksh。 是否$KSH_VERSION足够好?我的意思是,如果空白,那么ksh一定是过时的版本吗?该其他论坛是否正确,即使对于较新版本的,也可能未设置ksh? 根本没有办法检查吗?

1
不区分大小写的文件系统如何同时显示大小写文件名?
前几天,当我在开发项目时就想到了这个问题,该项目依赖于文件名方面的自以为是的框架。框架(此处不相关)想要查看大写优先的文件名。这让我开始思考。 上不区分大小写的文件系统,说extFAT或HFS +(具体不区分大小写)如何在文件系统提供访问相同的文件两者的文件名的上部和下部壳体的版本。 例如: $ cd ~/Documents $ pwd /home/derp/Documents $ cd ../documents $ pwd /home/derp/documents $ cd ../docuMents $ pwd /home/derp/docuMents $ cd ../DOCUMENTS $ pwd /home/derp/DOCUMENTS $ cd ../documentS $ pwd /home/derp/documentS 所有这些命令将解析到同一目录。这种行为(特别pwd是bash在这种情况下只是一个函数的输出)只是向我展示了它想看到的内容吗? 另一个例子: $ ls ~/Documents Derp.txt another.txt whatThe.WORLD 此处的文件系统报告由用户或程序创建的原始文件名的情况。 在文件系统堆栈中的什么时候保留了可读的文件名(例如,大写和小写),以便可以通过正确的大写和小写ASCII字符的任意组合来访问它?这只是某个地方的正则表达式把戏,还是还有其他事情发生? 编辑:经过更多研究后,似乎在保留大小写不区分大小写的文件系统中发现了我好奇的行为...


2
CUPS客户端是否需要在本地安装PPD?
CUPS客户是否需要在本地添加PPD,即我应该将它们传递给lpadmin -P?这些客户端通过本地打印服务器打印到远程打印服务器(ipp://),我认为这是根据最佳实践设置的(我不对其进行管理)。它们是Linux PC。我不认为我正在处理远程打印服务器上的原始队列。 我的问题听起来与此相同,但是我的理解是驱动程序和PPD并非同一个人,并且PPD是打印机的“功能列表”,其中包含一些有关如何使用它们的PostScript命令。在我看来,这似乎是服务器的工作,但是我找不到任何能够清楚说明这一点的东西。
12 cups 


2
在Fedora 21上默认使用VirtualBox提供程序
现在,我使用的无业游民任何时候,它会尝试使用libvirt作为供应商。我想默认使用VirtualBox。 vagrant-libvirt 未安装。 这很麻烦,因为某些命令不起作用,例如vagrant status: [florian@localhost local]$ vagrant status The provider 'libvirt' could not be found, but was requested to back the machine 'foobar'. Please use a provider that exists. [florian@localhost local]$ vagrant status --provider=virtualbox An invalid option was specified. The help for this command is available below. Usage: vagrant …


2
我可以仅使用键盘保存上一个终端命令的输出吗?
我只用了最后两个小时,就从没有GUI的实时CD上运行dd命令(或描绘任何类似的“难以重做”的情况)。我所拥有的只是我可信赖的“多窗口”(CTRL+ALT+F#)Bash终端。 ,在执行此命令期间,dd抛出了一些令人讨厌的错误消息以及我想保留的更多信息。我插入了可以写入数据的USB驱动器,但是在命令运行后如何将以前的输出保存为文本文件? 如果这是一个不错的GUI中的终端仿真器,那么我只需要用鼠标选择文本,复制文本并将其粘贴到文档中即可。而且,如果我知道该命令会产生错误,我会先将其通过管道传输到文件中,但是可惜,额外的输出令人惊讶。 如何在不重新运行命令的情况下将先前命令的文本输出保存到文件中?这有可能吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.