11 推荐阅读以更好地了解Unix / Linux内部[关闭] 在过去的四年中,我作为应用程序开发人员(主要是C语言)在* nix环境中工作。 请建议一些书籍/博客等,以提高我的* nix内部知识。 54 linux books
7 为什么安装需要root特权? 为什么Linux要求用户必须是root用户/使用sudo /每次安装都经过特定授权才能安装某些东西?似乎是否允许用户安装某些东西的决定应该基于他们对源卷/网络共享和安装点的访问权限。非root用户挂载的两个用途是将文件系统映像挂载到用户拥有的方向,并将网络共享挂载到用户拥有的目录。似乎如果用户可以控制安装方程式的两侧,那么一切都应该很酷。 澄清访问限制: 我认为我应该能够装载用户可以访问的任何装载点,否则该装载点将是用户的所有者。 例如,在我的计算机上,/ dev / sda1由拥有权限的root用户和组磁盘拥有brw-rw----。因此,非root用户不能弄乱/ dev / sda1,并且显然mount不应允许他们挂载它。但是,如果用户拥有/home/my_user/my_imagefile.img和挂载点/ home / my_user / my_image /,为什么他们不能使用以下命令在该挂载点上挂载该映像文件: mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop 正如kormac指出的那样,存在一个suid问题。因此,必须添加一些限制来防止suid成为问题以及潜在的其他问题。也许这样做的一种方法是使操作系统将所有文件视为属于执行挂载的用户。但是对于简单的读/写/执行,我不明白为什么这会是一个问题。 用例: 我在实验室中有一个帐户,我的家庭空间限制为8GB。这很小,很烦人。我想从我的个人服务器上挂载nfs卷,以实质上增加我所拥有的空间。但是,由于Linux不允许这种事情,所以我只能将来回传输文件的速度限制在8GB以下。 54 linux mount linux-kernel
4 Linux:根据参数终止进程 如何根据命令行参数终止进程? killall,,pgrep并且pkill似乎仅基于进程名称起作用。 我需要它能够区分在Java虚拟机中运行的许多应用程序java,所有虚拟机的进程名在哪里,并且可以通过查看命令行参数来找到实际的应用程序名。 可以使用手动完成此操作,ps aux | grep myapp.jar然后从输出中手动终止pid,但是我想使用一条命令来自动执行等效操作。 54 linux kill
3 wkhtmltopdf-QXcbConnection:无法连接到显示器 如何wkhtmltopdf无头运行? 在Debian Whezzy上安装 apt-get install wkhtmltopdf 命令 wkhtmltopdf --title "$SUBJECT" -q $SOURCEFILE $OUTPUTFILE 错误 QXcbConnection: Could not connect to display 53 linux debian
3 如何确定我的无线网卡是否支持5GHz? 我有 03:00.0 Network controller: Intel Corporation Centrino Wireless-N 2200 (rev c4) 我如何确定该卡/驱动程序是否支持5 GHz? 53 linux wifi 802.1x
2 在Linux上使用`#!/ usr / bin / env命令--argument`的Shebang行失败 我有一个简单的脚本: #!/usr/bin/env ruby --verbose # script.rb puts "hi" 在我的OSX机器上,它运行良好: osx% ./script.rb hi 但是,在我的Linux机器上,它引发了一个错误 linux% ./script.rb /usr/bin/env: ruby --verbose: No such file or directory 如果我手动运行shebang线,效果很好 linux% /usr/bin/env ruby --verbose ./script.rb hi 但是,如果我打包ruby --verbose到一个参数中,我可以复制错误env linux% /usr/bin/env "ruby --verbose" ./script.rb /usr/bin/env: ruby --verbose: No such file or directory 因此,我认为这与env解释shebang线的重置有关。我正在使用GNU coreutils 8.4 env: linux% … 53 linux scripting executable env
11 插入外接显示器时自动应用RandR配置的工具 是否有一种工具可以使您: 记住每个显示器当前的RandR配置(位置,方向,分辨率等), 插入显示器后,是否会自动应用最后一个已知的良好配置,而无需使用applet或xrandr(1)乱搞? 这些配置必须基于每个用户,每个显示器来应用。 如果没有这种工具,我想自己动手,但据我所知,无法告诉您已插入监视器。我是否必须使用xrandr -q进行轮询偶尔找出输出连接或断开,或者有更有效的方法吗?可以将udev调整为做到这一点吗? 53 linux xorg udev xrandr
9 轻松增量备份到外部硬盘驱动器 一段时间以来,我使用Dirvish来对计算机进行增量备份,但是配置有些麻烦,而且如果不携带配置副本,可能很难在其他地方重现。 我正在寻找适用于Unix,Linux的备份程序,该程序可以: 逐步更新我的备份 像苦苦挣扎一样使用硬链接创建“镜像”树(以节省空间) 理想的用户界面不错 53 linux backup bsd
9 为什么将/ home以外的内容放在单独的分区中? 所以,最近一个Debian 5.0.5安装程序为我提供有独立的/usr,/home,/var和/tmp分区(在一个物理磁盘)。 实际原因是什么?我知道/home放置在单独的分区上会很有利,因为用户文件可以单独加密,但是为什么还要其他呢? 53 linux partition
3 在Linux上,“正常运行时间”何时开始计算? 我的电脑说: $ uptime 10:20:35 up 1:46, 3 users, load average: 0,03, 0,10, 0,13 如果我检查,last我会看到: reboot system boot 3.19.0-51-generi Tue Apr 12 08:34 - 10:20 (01:45) 然后我检查: $ ls -l /var/log/boot.log -rw-r--r-- 1 root root 4734 Apr 12 08:34 boot.log 然后在/var/log/syslog今天的第一行中看到: Apr 12 08:34:39 PC... rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="820" x-info="http://www.rsyslog.com"] … 52 linux linux-kernel uptime
7 Linux内核:优秀的初学者教程[关闭] 我有兴趣修改内核内部结构,应用补丁,处理设备驱动程序和模块,这是我个人的乐趣。 是否有针对经验丰富的程序员的全面的内核黑客资源? 52 linux kernel linux-kernel
1 了解Linux二进制文件在做什么 我最近有一个工作在理解二进制Linux程序。但是,该程序为二进制形式。 我使用了命令file,,strings并objdump对其执行的功能以及调用的功能有一个小小的了解。 看来二进制文件是用调试信息编译的。我还能学到什么? 52 linux reverse-engineering
5 通过rsync恢复单个文件的传输 在Ubuntu中,我想通过将大文件从硬盘复制到可移动驱动器rsync。由于某些其他原因,该操作无法一次完成。因此,我试图找出如何rsync从上次中断的地方继续复制文件的方法。 我曾尝试使用的选项--partial或--inplace,但与一起--progress,我发现rsync用--partial或--inplace实际从启动开始,而不是从什么左最后一次。rsync尽早手动停止并检查接收到的文件的大小也证实了我的发现。 但有了--append,rsync将从上次剩下的开始。 我很困惑,我该上看到手册页 --partial,--inplace和--append似乎涉及到从所剩下最后一次恢复复制。有人能够解释差异吗?为什么不恢复工作--partial或--inplace继续工作呢?是真的,要继续复制,rsync必须使用该--append选件吗? 另外,如果部分文件是由mv或保留的cp,而不是由rsync 保留的,是否可以rsync --append正确地继续复制文件? 52 linux rsync
5 如何将输出重定向到多个日志文件 如何将标准输出重定向到多个日志文件?以下内容不起作用: some_command 1> output_log_1 output_log_2 2>&1 52 linux io-redirection tee
1 从linux命令行从串口读取 我有一个要使用linux命令行测试的串行端口设备。 我能够使用stty和echo将命令发送到串行端口,但是当设备响应时,我无法读取来自串行端口的内容。我在用 stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0 向设备发送命令。设备运行并在300毫秒内发送回响应。如何使用命令行将响应打印到控制台? 51 linux serial-port