Questions tagged «linux»

LINUX问题必须与编程有关。仅当您的问题与使用Linux API或Linux特定行为进行编程有关时才使用此标记,而不仅仅是因为您碰巧在Linux上运行代码。如果需要Linux支持,可以尝试https://unix.stackexchange.com或特定Linux发行版的Stack Exchange网站,例如https://askubuntu.com或https://elementaryos.stackexchange.com/


10
如何确定Windows中是否打开了特定文件?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我最喜欢的Linux工具之一是lsof-真正的瑞士军刀! 今天,我发现自己想知道WinXP系统上的哪些程序打开了特定文件。有与lsof等效的工具吗?此外,有问题的文件是通过网络共享进行的,因此我不确定是否会使问题复杂化。

9
如何只为特定类型的文件区分目录?
如果要递归目录diff但仅针对特定文件类型,我对diff命令有疑问,该怎么办? 我尝试使用exclude选项,但只能使用一种模式: $ diff /destination/dir/1 /destination/dir/2 -r -x *.xml 用命令我只能排除XML文件类型,即使是在文件夹中的图像类型(文件png,gif,jpg)txt,php等 如何仅区分某些文件类型。
87 linux  bash 

10
使用Bash按列划分命令输出?
我想做这个: 运行命令 捕获输出 选择一条线 选择该行的一列 举例来说,假设我想从中获取命令名称$PID(请注意,这只是一个例子,我并不是在建议这是从进程ID中获取命令名称的最简单方法-我的真正问题是另一个我无法控制其输出格式的命令)。 如果我跑步,ps我会得到: PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps 现在我做的ps | egrep 11383,并得到 11383 pts/1 00:00:00 bash 下一步:ps | egrep 11383 | cut -d" " -f 4。输出为: <absolutely nothing/> 问题是cut将输出剪切单个空格,并ps在第二和第三列之间添加一些空格以保持表的相似性,因此cut选择一个空字符串。当然,我可以cut选择第7个字段而不是第4个字段,但是我怎么知道,特别是当输出是可变的且事先未知时。
87 linux  bash  pipe 


5
如何在Makefile中将dir添加到$ PATH?
我想编写一个可以运行测试的Makefile。测试位于目录“ ./tests”中,而要测试的可执行文件位于目录“ ./bin”中。 当我运行测试时,他们看不到exec文件,因为目录./bin不在$ PATH中。 当我做这样的事情: EXPORT PATH=bin:$PATH make test 一切正常。但是我需要更改Makefile中的$ PATH。 简单的Makefile内容: test all: PATH=bin:${PATH} @echo $(PATH) x 它可以正确打印路径,但是找不到文件x。 当我手动执行此操作时: $ export PATH=bin:$PATH $ x 一切都很好。 如何更改Makefile中的$ PATH?
87 linux  makefile 

5
linux动态链接程序的“无可用版本信息”错误是什么意思?
在我们的产品中,我们提供了一些Linux二进制文件,这些二进制文件可以动态链接到系统库,例如“ libpam”。在某些客户系统上,程序运行时在stderr上会出现以下错误: ./authpam: /lib/libpam.so.0: no version information available (required by authpam) 该应用程序运行良好,并从动态库执行代码。因此,这不是致命错误,实际上只是警告。 当系统安装的库缺少我们的可执行文件期望的东西时,我认为这是来自动态链接器的错误。我对动态链接过程的内部知识了解不多...搜索该主题并没有太大帮助。:( 有人知道导致此错误的原因吗?...我如何诊断原因?...以及如何更改可执行文件来避免此问题? 更新:客户已升级到最新版本的debian“测试”,并且发生了相同的错误。因此,它不是一个过时的libpam库。我想我想了解链接器在抱怨什么?如何调查根本原因等?
87 linux  linker 

5
在LINUX中,确定.a库/归档是32位还是64位?
我们在Linux中分发了64位和32位版本的静态库。在对客户进行故障排除时,我希望我的诊断Shell脚本通过检查.a存档文件以确定它是32位还是64位来快速消除此问题。我想到的方法并不优雅: 提取一个.o成员并询问“文件”命令(例如,ELF 32位等) 开始包括一个编码为表示例如32bit.o / 64bit.o的虚拟成员,并使用“ ar -t”进行检查 我已经尝试过“ strings xyz.a | grep 32”,但这在所有版本中都无法正常工作。这不是令人心碎的问题,但是如果您知道一个优雅的解决方案,我想知道。

3
了解Linux oom-killer的日志
我的应用被oom-killer杀死了。它是在没有交换的实时USB上运行的Ubuntu 11.10,并且PC具有1 Gig的RAM。唯一运行的应用程序(不是所有内置的Ubuntu东西)是我的程序flasherav。请注意,/ tmp是内存映射的文件,崩溃时大约有200MB的文件(因此占用了约200MB的RAM)。 我正在尝试了解如何分析om-killer日志,以便我可以了解确切地在哪里使用了所有内存,即,哪些不同的块加起来会导致〜1 gig,从而导致oom-killer踢了在?了解这一点后,我便可以减少违规者的使用,以便该应用程序可以在内存为1 GB的计算机上运行。我的具体问题是。 为了尝试分析这种情况,我总结了“ total_vm”列,我只得到609342KB(在/ tmp中添加到200MB时仍然只有809MB)。也许我对“ total_vm”列的理解是错误的-它是否包括已分配但未使用的内存以及共享内存。如果是,那么它应该不会高估实际使用的内存(因此我不应该没有内存不足),对吗?是否还有其他正在使用的内存块未在下面的列表中说明? [11686.040460] flasherav invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 [11686.040467] flasherav cpuset=/ mems_allowed=0 [11686.040472] Pid: 2859, comm: flasherav Not tainted 3.0.0-12-generic #20-Ubuntu [11686.040476] Call Trace: [11686.040488] [<c10e1c15>] dump_header.isra.7+0x85/0xc0 [11686.040493] [<c10e1e6c>] oom_kill_process+0x5c/0x80 [11686.040498] [<c10e225f>] out_of_memory+0xbf/0x1d0 [11686.040503] [<c10e6123>] __alloc_pages_nodemask+0x6c3/0x6e0 [11686.040509] [<c10e78d3>] ? …


7
bash-如何将结果从哪个命令传递到cd
如何将which命令的结果传递给cd? 这就是我想要做的: which oracle | cd cd < which oracle 但是它们都不起作用。 有没有办法做到这一点(当然不是复制/粘贴)? 编辑:再三考虑,此命令将失败,因为目标文件不是文件夹/目录。 因此,我正在考虑并找到一种更好的方法来摆脱尾随的“ / oracle”部分(sed或awk,甚至是Perl):) 编辑:好的,这就是我最后得到的: cd `which oracle | sed 's/\/oracle//g'`
87 linux  bash  shell  cd 


4
为什么rand()在Linux上重复的次数比Mac重复得多?
当我发现rand()Linux上的重复次数似乎比Mac上重复的次数要多时,我正在C中实现一个哈希图,这是我正在研究的项目的一部分,并使用随机插入进行测试。RAND_MAX在两个平台上均为2147483647 / 0x7FFFFFFF。我将其简化为该测试程序,该程序使字节数组RAND_MAX+1-long,生成RAND_MAX随机数,记录每个数字是否重复,并从列表中将其检查出。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main() { size_t size = ((size_t)RAND_MAX) + 1; char *randoms = calloc(size, sizeof(char)); int dups = 0; srand(time(0)); for (int i = 0; i < RAND_MAX; i++) { int r = rand(); if (randoms[r]) { // printf("duplicate at …
86 c  linux  macos  random 

4
我的环境变量是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我想在bash中找出我的环境变量。他们存放在某个地方吗?
86 linux  bash  shell  ubuntu 

9
adb devices命令不起作用
我正在运行Ubuntu 10.10 64位。我安装了ia32-libs以及Android Debug Bridge版本1.0.26。 我的问题: adb devices>>> ???????????? 没有权限 sudo adb devices >>>> sudo:adb:找不到命令 adb shell >>>错误:设备权限不足 我想这些都有关。这是相关信息。 $ echo $PATH /home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools $ which adb /opt/android-sdk-linux_x86/platform-tools/adb $ adb devices * daemon not running. starting it now on port 5037 * * daemon started successfully * List of devices attached …
86 android  linux  ubuntu  adb 

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.