Unix & Linux

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

2
Tmux鼠标模式打开不允许使用鼠标选择文本
我正在使用tmux 2.1并尝试在鼠标模式下使用 set -g mouse on 而且效果很好,我可以tmux通过单击相应的窗口来切换各个窗口。但这的缺点是我无法用鼠标选择文本。看起来是这样的: 如您所见,当我不断按下鼠标按钮时,选择变为红色,而当我释放按钮时,选择消失。如果未启用鼠标模式,则“使用鼠标选择”将完全正常。 有一些解决方法可以打开鼠标模式并可以选择文本吗?

1
此Makefile如何使C程序甚至不指定编译器?
我正在使用《高级Linux编程(2001)》[代码]一书中的Makefile 。看到GNU make确实正确编译了代码,甚至没有在Makefile中指定编译器,我感到很奇怪。这就像没有任何食谱的烘烤! 这是代码的最低版本: 测试 int main(){} 生成文件 all: test 并使其真正起作用!这是它执行的命令: cc test.c -o test 我找不到任何有用的文档。这怎么可能? PS另加一点注意:甚至没有指定语言;因为test.c可用,所以GNU make使用cc。如果存在test.cpp或test.cc(不存在test.c),则使用g++(而不是c++)。
41 linux  make  gcc  gnu-make 

2
“ tail -f”和“ tail -F”有什么区别?
我从未使用过tail -F命令,而是总是使用过命令,tail -f但是有人告诉我,-F没有太多解释会更好。 我在手册页中查找了tail命令。 -f output appended data as the file grows; -F Same as --follow=name --retry --retry Keep trying to open a file even when it is or becomes inaccessible 很容易理解小写的含义-f,但是我不遵循大写的含义-F。我希望有人可以向我解释差异。
41 tail 

1
为什么UNIX系统调用kill称为“ kill”?
我对这个名称的历史感到好奇,在我看来,“ kill”系统调用可能已被命名为“ signal”,而“ signal”系统调用可能已被命名为“ handle”。 我想知道最初使用系统调用是否可能只是为了杀死另一个进程,随着系统的发展,它的使用范围可能会扩展到更通用的信号发送机制,但这只是我的推测。 有人知道吗?
41 kill  history 

4
递归查找最大文件
我试图递归地在目录中找到最大的文件。如果该目录内有一个子目录,则该函数需要进入该目录内,并检查是否存在最大的文件。找到最大文件后,将显示输出,并显示相对路径名以及最大文件的名称和大小。 例如: dude@shell2 (~...assignment/solutions) % bash maxfile.sh ~/test class/asn dude.h.gch: 9481628 这就是我所拥有的: #!/bin/sh clear recursiveS() { for d in *; do if [ -d $d ]; then (cd $d; echo $(pwd)/$line; du -a; recursiveS;) fi done } recursiveS 我已经被卡住了一段时间了。我无法通过流水线化许多现有的Unix工具来实现这一点。任何想法都很好!

4
子进程是否与其父进程一起死亡,是否有任何UNIX变体?
我已经研究Linux内核行为已经有一段时间了,对我来说很清楚: 当一个进程死亡时,所有的子进程都将返回该init进程(PID 1),直到最终死亡。 但是,最近,一个比我更了解内核的人告诉我: 当进程退出时,它的所有子进程也会死亡(除非您使用NOHUP这种情况,否则它们会返回init)。 现在,即使我不相信这一点,我仍然编写了一个简单的程序来确保这一点。我知道我不应该依赖时间(sleep)进行测试,因为这完全取决于流程调度,但是对于这种简单情况,我认为这已经足够了。 int main(void){ printf("Father process spawned (%d).\n", getpid()); sleep(5); if(fork() == 0){ printf("Child process spawned (%d => %d).\n", getppid(), getpid()); sleep(15); printf("Child process exiting (%d => %d).\n", getppid(), getpid()); exit(0); } sleep(5); printf(stdout, "Father process exiting (%d).\n", getpid()); return EXIT_SUCCESS; } 这是程序的输出,ps每次printf通话时都有相关的结果: $ ./test & …
41 process  init  exit  fork 

6
在创建VM VirtualBox时设置存储大小
是否可以在创建虚拟机时为其设置存储大小?我将使用Vagrant,但不确定是否需要在VirtualBox或可以在Vagrantfile中包含的设置中完成此操作(我检查了文档,但似乎没有任何指示)

4
我可以在没有文件管理器的情况下将文件“拖动”到窗口中吗?
(我在Arch Linux上,使用i3作为我的wm,使用xterm作为我的终端仿真器,尽管我不知道其中任何一个是否相关。) 有时,一个网站要求我用鼠标将文件从桌面拖到Internet浏览器的窗口中。几乎总是有另一种选择,但是最近我发现我想要做的事情需要拖放。不幸的是,我没有文件管理器。我仅通过bash浏览计算机的文件系统。 有什么方法可以伪造拖放动作?我可以告诉浏览器“我只是将此文件放到了您身上”而没有实际做吗? 在最坏的情况下,我可以专门下载图形文件管理器以将文件拖放到Web浏览器中,但是我想避免使用该解决方案。

5
谁为存储库的存储空间和带宽付费?
当我执行yum update或时apt-get update,我的机器正在运行多个服务器并下载了多个软件包。我可以想象那些服务器每天要处理数百万个类似的请求。 谁为这些服务器的维护,存在和带宽付费?如果答案取决于发行版,那么CentOS,Arch和Ubuntu将是很好的例子。我对此感到疑惑,因为我正在使用这些免费的操作系统,并且正在消耗带宽,但是我并没有向任何人支付此特权。


3
如何安装Debian测试中的单个软件包或稳定版中不稳定的软件包?
我想将Debian Jessie的一个软件包(及其依赖关系,但仅限于那些无法满足Wheezy的程度)安装到我的Wheezy系统上,而无需将“所有东西和厨房水槽”升级到Jessie版本。具体来说,我想安装kpcli,该文件在Jessie中提供,但在Wheezy中不提供。 我发现的所有内容都表明我应该将Jessie存储库添加到我的源列表中,设置固定以使所有内容保持混乱,并且仅从jessie中获取单个软件包,并且几乎就位。但是,它对我来说并不适合。如果我使用以下内容创建/etc/apt.d/sources.list.d/jessie.list: deb ftp://ftp.debian.org/debian/ jessie main deb-src ftp://ftp.debian.org/debian/ jessie main 然后使用以下命令创建/etc/apt/preferences.d/jessie: Package: * Pin: release a=wheezy Pin-Priority: 1001 Package: kpcli Pin: release a=jessie Pin-Priority: 450 并运行apt-get -u update之后apt-get -u install kpcli/jessie,那么我期待apt-get的在kpcli拉动和也许从杰西其他包一小撮,并留下了我的不变安装的系统的其余部分。(我的系统是Wheezy的最新安装。)或者,如果我将引脚优先级设置得太低,我希望它什么也不做。相反,在我的系统上,apt-get想要升级数百个软件包。 到底只安装一个Jessie版本的软件包,同时又不影响我的Wheezy系统的其余部分,到底需要什么呢? 请注意,在这种特殊情况下,该软件实际上是用Perl编写的,因此无需编译为二进制文件或类似程序。但是,有一些Perl模块依赖项。因此,一种可能的替代方法是使用仅(1)允许指定要安装的单个本地.deb存档的东西来安装.deb(手动下载),例如dpkg -i和(2)以一种智能方式处理依赖项,而平原则dpkg -i没有。但是,对于我已经多次进行的所有搜索,都没有找到一个简单易懂的操作指南,一个通用的解决方案(也适用于二进制,编译包) 。
41 debian  apt 

1
lib,lib32,lib64,libx32和libexec之间的区别
我的64位Ubuntu 13.04系统在以下位置具有以下目录/: lib lib32 lib64 libx32 libexec 在/usr目录中有: lib lib32 libx32 libexec 似乎可以通过搜索轻松地找到答案,但是我没有在网上发现任何东西,除了这些目录存储共享库(libexec除外)。但是哪些共享库位于哪个文件夹中(lib32中的32位和lib64中的64位除外)?有人可以解释所有这些目录之间的区别吗?


8
如何将eclipse添加到我的gnome shell收藏夹中?
我运行gnome shell 3.6和Eclipse 4.2。我在/ opt目录中手动安装了Eclipse,因为适用于Eclipse的Ubuntu软件包已过时。 我已经为其创建了一个.desktop文件,并将其放置在〜/ .local / share / applications中。看起来像这样: [Desktop Entry] Type=Application Name=Eclipse Comment=Eclipse Integrated Development Environment Icon=/opt/eclipse-4.2.1/icon.xpm Exec=/opt/eclipse-4.2.1/eclipse Terminal=false Categories=Development;IDE;Java; 我可以从“活动”菜单运行Eclipse;如果我点击超级菜单并输入“ Eclipse”并运行它,它就可以正常运行,并显示在我的启动器/边栏/扩展坞/无论其叫什么中。 但是,如果我右键单击其图标,则没有“添加到收藏夹”选项。 (我注意到,如果我运行一些非常老的程序(例如xeyes和xcalc),情况也是如此。令人惊讶的是,这些程序仍在分发中!) 那么,确定“添加到收藏夹”选项是否可用的程序又有什么用呢?如果我知道并理解这一点,也许它将使我走上解决此Eclipse问题的正确道路。


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.