Unix & Linux

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

1
使用/ usr / bin / time Shell命令提高%e精度
当我在shell中运行time命令时,time ./myapp我得到如下输出: real 0m0.668s user 0m0.112s sys 0m0.028s 但是,当我运行命令时,\time -f %e ./myapp我失去了精度,并且得到: 2.01s 如果我使用该%E命令,我也会以相同的方式失去精度。我如何更改它以再次获得更高的精度,但仍然只输出秒数? 我的研究基于以下Linux / Unix命令:时间和这个问题
19 shell  scripting  time 


6
使用双启动计算机时,如何防止Windows覆盖GRUB
我已经阅读了很多有关双重引导的内容,这似乎很容易,例如加载Windows,然后用GRUB加载Linux,但是每个人都说Windows愿意在有机会时放弃GRUB。我可以采取什么措施来防止这种情况发生(除了使用Windows的引导加载程序之外,我想让这一过程尽可能简单)?


3
将具有自定义PID的USB串行设备连接到嵌入式ttyUSB0
我试图获得带有自定义PID的FTDI USB串行设备,以自动(甚至手动)连接到ttyUSB%n,但没有成功。设备的常规VID / PID为0403/6001。以这种方式进行编程后,它可以完美工作并在插入后自动将其自身附加到ttyUSB0。即使重新编译驱动程序以遵守我们的新PID,使用自定义编程时也不会出现一个ttyUSB0,但它确实将其识别为ftdi_sio设备,并且加载驱动程序。 我已经将我们的PID添加到标题和源中: // in ftdi_sio_ids.h #define FTDI_CUSTOM_PID 0xABCD // not the actual pid // then in ftdi_sio.c static struct usb_device_id id_table_combined [] = { // devices.... { USB_DEVICE(FTDI_VID, FTDI_CUSTOM_PID) }, // .... 重新编译整个内核并刷新设备。当我插入设备时,我得到: usb 1-1: new full-speed USB device number 2 using at91_ohci usbcore: registered new interface …

2
以人类可读的形式获取显示器的品牌和型号以及其他信息
我已经提取了连接到计算机的当前监视器的简化版本。 这是一个例子: vendor "VSC", prod id "18500" 在Ubuntu的Monitor Preferences中,它标识为Viewsonic Corporation 16"。 如何提取这种可读的表格?...以及如何确定监视器是a CRT还是a LCD?(这实际上是促使我开始执行此任务的原因) EDID格式可在Wikipedia上找到:扩展的显示标识数据 这是用于获取EDID Vendor和Product id edid=$(xrandr -q --verbose | sed -n '/^[[:space:]]\+00ffffffffffff00/,/[^a-fA-F0-9[:space:]]/{ /[^a-fA-F0-9[:space:]]/d s/[[:space:]]\+//g; p}') nibble=({0..1}{0..1}{0..1}{0..1}) vend=$(for i in {16..19} ;do printf "%s" ${nibble[$((16#${edid:$i:1}))]} done) vend="$(for i in 1 6 11 ;do printf \\x$(printf %x $((2#${vend:$i:5} +64))) …



3
如何将端口从一台机器转发到另一台机器?
请考虑以下情况: 在家里,我有一个路由器(已连接到Internet),服务器(S)和主机(M)。S可以从互联网访问(它具有静态IP),并且24/7可达,而M则不能。 有时,我想使某些应用程序(可以监听M的某个端口,例如8888)可以从外部互联网访问。 为此,我想在S(2222)上设置一些端口以转发到M的端口8888,以便访问S:2222的任何人都感觉自己正在访问M:8888。 我尝试使用ssh端口转发,我的最佳尝试如下: ssh -L 2222:M:8888 -N M 但这仅允许我从服务器本身而不是其他计算机访问2222端口。 有什么办法可以正确地做到这一点吗?最好是,我希望它是一个简单的命令,当我不再需要转发时,可以使用^ C启动和关闭它。

5
如何阻止update-grub扫描所有驱动器?
每次update-grub运行时,都会扫描所有硬盘。每个处于待机状态的驱动器将旋转以进入空闲状态。这是浪费能量。我们使用update-grub版本1.98: # update-grub -v grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1 回归 文件中有一个GRUB_DISABLE_OS_PROBER=true选项/etc/default/grub。但这似乎仅适用于版本2及更高版本。至少它不会停止扫描我们的1.98版中的所有驱动器。 有一个/etc/grub.d/20_linux_xen脚本可以作为update-grub的一部分运行。删除所有具有chmod a-x /etc/grub.d/20_linux_xen所有驱动器的用户的执行权限后,仍然可以启动。 如何停止update-grub扫描每个硬盘?
19 debian  grub 

5
如何检测到getopts没有传递任何选项?
我有此代码- #getoptDemo.sh usage() { echo "usage: <command> options:<w|l|h>" } while getopts wlh: option do case $option in (w) name='1';; (l) name='2';; (h) name='3';; (*) usage exit;; esac done print 'hi'$name 当我运行时bash getoptDemos.sh(不带选项),它将打印hi而不是调用函数usage。当给出w,h和l以外的选项时,它将调用用法。然后,如果未指定任何选项,它将无法正常工作。 我已经尝试使用?,\?,:到位的*,但我无法实现我想要的。我的意思是所有的docs上getopt说它使用?。 我究竟做错了什么?
19 bash  shell  options  getopts 

3
echo vs <<<,还是Bash Award中无用的echo?
到目前为止,cat奖的无用使用是众所周知的,并且还提到了无用的使用echo(与该问题无关)。我想知道是否应该有“无用的echoBash奖”:根据一些非常不科学的测量,管道似乎比heredocs和herestring慢得多: Heredocs: for reps in 1 2 3 do time for i in {1..1000} do cat &lt;&lt;'END' test string END done &gt; /dev/null done real 0m1.786s user 0m0.212s sys 0m0.332s real 0m1.817s user 0m0.232s sys 0m0.332s real 0m1.846s user 0m0.256s sys 0m0.320s 串 for reps in 1 2 3 do …

3
加密离线IMAP密码
我正在尝试将OfflineIMAP设置为通过gpg加密文件进行身份验证(这样,我可以将所有加密整合到我的gpg-agent进程中)。 从文档中看来,加密一个人的服务器密码的唯一方法是使用gnome-keyring(我宁愿不要在无头服务器上运行)。有没有办法像使用mutt一样从gpg文件输入密码? 我知道您可以使用扩展python文件向offlineimap添加额外的功能,但是恐怕我不知道从哪里开始。

1
默认情况下分配的文件描述符3是什么?
$ ls -og /proc/self /proc/self/fd lrwxrwxrwx 1 64 Jun 18 11:12 /proc/self -&gt; 32157 /proc/self/fd: total 0 lrwx------ 1 64 Jun 22 2012 0 -&gt; /dev/tty1 lrwx------ 1 64 Jun 22 2012 1 -&gt; /dev/tty1 lrwx------ 1 64 Jun 22 2012 2 -&gt; /dev/tty1 lr-x------ 1 64 Jun 22 2012 …

2
禁止输出,除非退出代码为非零
除非程序以非零代码退出,否则抑制输出(stdout和stderr)的最佳方法是什么?我在想: quiet_success() { file=$(mktemp) if ! "$@" &gt; "$file" 2&gt;&amp;1; then cat "$file" fi rm -f "$file" } 并运行,quiet_success my_long_noisy_script.sh但我不确定是否有更好的方法。我觉得这必须是其他人需要做的事情。 就上下文而言,我希望将其添加到我的cron脚本中,以便如果它们失败了,我会收到一封包含所有内容的电子邮件,如果没有,则不会。

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.