Unix & Linux

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


5
有效地合并/排序/唯一的大量文本文件
我正在尝试天真: $ cat * | sort -u > /tmp/bla.txt 失败与: -bash: /bin/cat: Argument list too long 因此,为了避免一个愚蠢的解决方案(创建一个巨大的临时文件): $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > /tmp/bla.txt 我虽然可以使用文件一个一个地处理文件(这样可以减少内存消耗,并且更接近流传输机制): $ cat proc.sh #!/bin/sh old=/tmp/old.txt tmp=/tmp/tmp.txt cat $old "$1" | sort -u > …
8 shell  sort  uniq 

1
如何防止USB设备(动作凸轮)进入睡眠状态?
我有一个动作摄像头(iON Air Pro Lite WiFi)。它使用SD卡,可以通过USB电缆连接到PC。它仅支持Windows和Mac。但是,通过USB连接并打开后,凸轮在Nautilus中的确显示为32 GB的卷(SD的大小),这让我通过一个简单的文件来编辑凸轮的配置,最重要的是,查看,复制和删除实际的视频文件。这就是我所需要的。基本上,它在Windows上的工作原理相同。 连接并打开电源后,lsusb将凸轮显示为: Bus 003 Device 013: ID 4255:1000 GoPro 9FF2 [Digital Photo Display] 问题是:连接到我的Linux(Debian 9)计算机后,凸轮仅在1到10秒后再次自行关闭。如果我设法导航到视频文件文件夹并开始复制文件,则只要复制过程完成工作,凸轮将一直保持打开状态。复制文件后,凸轮会在几分钟后自动关闭电源。连接到Windows计算机时,不会发生这种情况。 我的问题是,我该怎么做才能防止设备自行关闭? 看到连接到Windows以及如何保持设备繁忙时,这种情况不会发生,我认为应该有一种方法。但是,我真的不知道从哪里开始。我目前的思路是: 可能是驱动程序问题。由于我对驾驶员一无所知,因此除非有人会牵着我的手或将我引向令人惊讶的消息来源,否则我将不知道如何去这里。 也许有一种以某种通用方式轮询/轮询USB设备的方法,也许足以保持它的生命。如果是这样,这听起来可以用一些代码解决。我目前的研究使我提出了“ GET_STATUS标准设备请求”,但似乎并不能解决问题(请参见下文)。 最坏的情况是,一个脚本会不断地从设备和/或向设备复制虚拟文件(甚至只是在设备上重命名/移动文件),这也许可以解决问题。我需要找到一种方法,使其在连接此特定设备时自动运行。此选项似乎可行,但不是很干净(毕竟,持续的读/写操作确实会缩短SD卡的寿命,并且由于不活动的片刻可能会导致电源关闭,因此这些操作将需要不断运行)。 编辑1:我找到了PyUSB,并编写了一个简单的脚本,该脚本GET_STATUS每2毫秒(通过ctrl_transfer函数)向相机发送一次。这完全没有阻止凸轮关闭电源。 编辑2:我仍然没有找到解决方案。同样,在五分之一的情况下,即使从中复制文件,凸轮也会关闭。请分享有关可能原因和/或解决方案的任何想法。

3
SetUID位在Ubuntu中不起作用?
我以为设置了SetUID位的可执行文件应以其所有者身份运行,但我无法真正复制它。我尝试了以下方法。 $ cat prepare.sh cp / bin / bash。 chown root.root bash chmod 4770 bash#已验证 $ sudo sh prepare.sh $ ./bash $ id -u 1000 $出口 $ $ cat test.c #include <stdio.h> #include <unistd.h> int main(){ printf(“%d,%d \ n”,getuid(),geteuid()); 返回0; } $ gcc -o test test.c $ chmod 4770测试#验证 $ …
8 setuid 

2
检测可选函数参数(标量)
考虑以下脚本: function alfa(bravo, charlie) { if (charlie) return "charlie good" else { return "charlie bad" } } BEGIN { print alfa(1, 1) print alfa(1, 0) print alfa(1, "") print alfa(1) } 结果: charlie good charlie bad charlie bad charlie bad Awk是否可以告诉何时未提供参数?

2
“ w”与urandom有什么关系?
> strace w 2>&1 | grep urandom read(4, "/usr/bin/grep\0urandom\0", 2047) = 22 > 为什么“ w”需要urandom?如何避免这种情况? 更新: > strace w 2>&1 | awk '/urandom/' read(4, "awk\0/urandom/\0", 2047) = 14 > 因此,过滤与urandom有关吗? > strace who 2>&1 | grep urandom > 那为什么“谁”没有受到影响?
8 random  w 

1
我可以创建指向无法访问文件的符号链接吗?
[ 免责声明:这个问题没有恶意,我试图了解学校项目的ln -s命令] 假设我的主文件夹中有一个文件系统/home/anna。/home/bob是我无法访问的文件夹,带有我无法访问的文件,foo.txt 我可以ln -s /home/bob/foo.txt在我的主文件夹中成功运行吗?假设我可以,它将产生一个我无法访问的链接(具有与相同的权限foo.txt)是否正确? 如果我DID拥有读取权限foo.txt,只是无法访问该/home/bob怎么办? 如果我可以访问/home/bob但看不到相反的情况foo.txt呢?


5
更改逗号分隔列表中的最后一个条目
我有一个巨大的文本文件,如下所示: 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,3 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,8 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,12 所需的输出是这样的: 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-03 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-08 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,MI-12 我曾在这里和其他社区尝试过其他相关职位,但无法完全得到我想要的东西。 更新 这是交叉询问(我想要Unix / perl答案和批处理/ powershell解决方案。),它有有趣的答案。

1
/ tmp中的符号链接的权限
我的机器上有2个用户:linuxlite和otheruser。 otheruser 有一个文件: otheruser@linuxlite:~$ ls -l a -rw-rw-r-- 1 otheruser otheruser 6 Mar 31 12:47 a otheruser@linuxlite:~$ cat a hello linuxlite在中创建了文件和符号链接/tmp: otheruser@linuxlite:~$ ls -l /tmp/file /tmp/link -rw-rw-r-- 1 linuxlite linuxlite 3 Mar 31 12:49 /tmp/file lrwxrwxrwx 1 linuxlite linuxlite 17 Mar 31 12:49 /tmp/link -> /home/otheruser/a 现在,尽管otheruser可以阅读/tmp/file和/home/otheruser/a,但他无法阅读/tmp/link: otheruser@linuxlite:~$ cat /tmp/file …

5
为什么UNIX / Linux提供多个终端?
在1970年代,我们的硬件终端带有用于输入/输出的CUI(字符用户界面)接口。 现在,我们在Unix / Linux世界中有了终端仿真器(Ctrl+ Alt+ Fn)。 在Ubuntu OS中,我看到了七个终端仿真器,其中GUI占据了第七个终端仿真器(Ctrl+ Alt+ F7)。 例如,这是我的第一个终端(Ctrl+ Alt+ F1)仿真器 $ tty /dev/tty0 为什么Unix / Linux提供多个终端仿真器?

1
没有安装gpu的互联网无法正常工作?
今天,我从Linux(Ubuntu)机器上卸下了我的GPU,然后以太网停止工作。运行“服务网络重新启动”会引发错误消息,而当我运行“ ifconfig”时,只有本地环回可见。之后,我重新安装了GPU,然后互联网又重新开始工作了? 我真的很想让我的机器能够访问互联网而不必在其中安装GPU。 安装的GPU是NVIDIA GeForce GTX 750 Ti,我正在使用板载以太网连接器。如果您需要更多规格,请告诉我,我会做进一步说明。 ip linkWITH GPU 的输出: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether d0:50:99:2f:ad:4d brd ff:ff:ff:ff:ff:ff …

2
从发现到grep
我想做什么? 编写一个命令,查找我项目中任何其他文件都不需要的文件。 我尝试了什么? 我find用来获取文件名列表。现在,我想使用文件名作为搜索字符串(而不是要搜索的文件)。 我find server/lib -type f -exec basename {} \; | cut -f 1 -d '.'用来获取文件名列表并剥离文件扩展名。 现在,我知道这grep -R --exclude-dir=node_modules <search-string> . -l是我想将每个文件名传递到的内容,但是我不知道如何将它们作为<search-string>参数传递。 其他资讯 我也隐约地意识到,对此的管道grep传递可能会通过find(整个文件列表)如果我要这么做的话,我显然不想这样做,然后告诉我。 另外,(尽管这可能不在此问题的范围之内),因为我将其用作查找任何grep无法为其找到任何文件名的文件名的方法,对于获得这种输出的任何建议将不胜感激 > <the-command> filename1 server/lib/foo.js # where these are the list of files in which it appears test/lib/foo.js filename2 Not Found! #where `filename2` wasn't …

2
Linux安装进入黑屏
我下载了最新的Centos和Fedora ISO并使用Imgburn刻录到CD。然后,我首先在旧的HP DC5000计算机上使用Centos CD启动。它似乎可以正常启动到CD,并提供以下选项: 安装Centos 验证文件并安装Centos 等等... 我选择“安装Centos”,然后进入空白屏幕。我等了一个多小时,仍然只是一个空白屏幕。 我用Fedora CD尝试了同样的操作,并发生了同样的问题,它从CD上启动,询问哪个选项,即使我选择了第二个选项,同样的事情也会发生,进入黑屏并停留在那儿。 有什么想法/建议吗? 谢谢
8 linux  centos  fedora 


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.