Unix & Linux

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

2
是否有理由将Zsh数组的第一个元素索引为1而不是0?
根据我对现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将0数组的第一个元素称为索引。 使用1有什么实质性的优势? 我敢肯定,除了Zsh之外,我还听说过更多其他与数组类似的语言;我也很好,因为它同样方便。 但是,由于以前发行和广泛使用的shell脚本语言(例如ksh和bash都使用0), 为什么有人会选择更改此通用“标准”? 我对我的问题的立即回答是“当然不是”。 那么,我能想到的关于外壳的这种“专有功能”的唯一解释是“ 他们只是这样做是为了炫耀更多酷的外壳 ”。 我对Zsh或它的历史一无所知,而我对此琐碎的理论很有可能没有任何意义。 对此有解释吗?还是只是出于个人品味?
27 zsh  history  array 


2
僵尸可以有孤儿吗?收割僵尸会不会打扰孤儿?
据我了解,僵尸进程已经死亡,但仍作为进程表中的占位符存在,直到其父级(或者init如果僵尸本身是孤儿)检查其退出状态。 我对孤立进程的理解是,它们仍然是活动的并且正在运行,但是其父进程已经死亡。 由于僵尸已经死了,所以它的孩子将被视为孤儿,不是吗?他们会因为收割僵尸而受到影响吗?具体来说,是init仅在收割僵尸后才将其收为孩子,还是在父母成为僵尸后立即收养?


2
为什么ln -s接受一个参数
> cd /tmp > ln -s foo > ls -alhF /tmp lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo 这是bug ln还是存在将文件符号链接到自身的用例? 这是与coreutils 8.21-1ubuntu5.1。
27 symlink  coreutils  ln 

3
如何修复curl sslv3警报握手失败?
我正在尝试通过以下方式卷曲HTTPS网站: $ curl -v https://thepiratebay.se/ 但是,它失败并显示以下错误: * About to connect() to thepiratebay.se port 443 (#0) * Trying 173.245.61.146... * connected * Connected to thepiratebay.se (173.245.61.146) port 443 (#0) * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS alert, Server hello (2): * error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure * Closing …
27 command-line  osx  curl  ssl 

6
find和有什么区别。并找到。-打印
之间有什么区别? find . 和 find . -print 什么是-print真正做到? $ find . . ./hello.txt ./hello ./hello/txt ./hello/hello2 ./hello/hello2/hello3 ./hello/hello2/hello3/txt ./hello/hello2/txt $ find . -print . ./hello.txt ./hello ./hello/txt ./hello/hello2 ./hello/hello2/hello3 ./hello/hello2/hello3/txt ./hello/hello2/txt


2
使用`set -eu`时正确的EXIT和ERR陷阱行为
与ERR和EXIT陷阱一起使用set -e(errexit),set -u(nounset)时,我观察到一些奇怪的行为。它们似乎相关,因此将它们放在一个问题中似乎是合理的。 1)set -u不触发ERR陷阱 码: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} 预期:ERR陷阱被调用,RC!= 0 实际:未调用ERR陷阱,RC == 1 注意:set -e不改变结果 2)set -eu在EXIT陷阱中使用退出代码是0而不是1 码: #!/bin/bash trap 'echo "EXIT (rc: $?)"' EXIT set -eu echo ${UNSET_VAR} 预期:调用EXIT陷阱,RC == 1 实际:调用EXIT陷阱,RC == 0 注意:使用时set +e,RC ==1。当任何其他命令引发错误时,EXIT陷阱将返回正确的RC。 编辑:关于该主题的一篇SO帖子带有一个有趣的注释,表明这可能与所使用的Bash版本有关。使用Bash 4.3.11测试此代码段会导致RC = …

2
验证变量的长度
我必须验证读取的变量的长度(我的脚本限制为插入的五个字符),我在想这样的事情: #!/bin/bash read string check=${#string} echo $check if [ $check -ge 5 ]; then echo "error" ; exit else echo "done" fi 还有更“优雅”的解决方案吗?
27 bash  shell  string 

2
如何使Windows在Xfce中更容易调整大小?
我使用Xfce 4.10 xfwm4作为窗口管理器。我发现很难抓住边框来调整窗口的大小。鼠标光标变为“调整大小窗口”光标的区域似乎只有1或2像素宽,我一直在其中移动。 如何使该区域更宽一些?我不想更改窗口边框的外观,只需使其命中目标更宽即可。(我知道窗口菜单中的“调整大小”选项,但这不允许您仅按1维调整窗口大小。)我已经在窗口管理器中进行了设置和调整,但没有看到任何设置似乎适用。

1
xdg-open如何工作
根据手册页,xdg-open将使用用户已配置的应用程序打开文件。但是,该应用程序实际上是如何确定的?我看不到与相关的配置文件xdg-utils,因此我的设置存储在哪里,如何修改它们?看到一个简单的PNG文件如何使用Wine打开Internet Explorer时,我需要更改这些设置。

2
sudo:无法执行./script.sh:没有这样的文件或目录
我很沮丧 我的/home目录中有一个可执行的脚本: [user@server ~]$ ll total 4 -rwx------ 1 user user 2608 Jul 15 18:23 qa.sh 但是,当我尝试使用sudo它运行时说找不到它: [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No such file or directory 这是一个全新的版本。没有进行会导致问题的更改。实际上,脚本的目的是确保它实际上是根据我们的政策构建的。也许不是,sudo实际上在构建过程中被破坏了吗? 我还应该注意,我可以sudo在其他目录中使用其他命令来运行。 编辑:脚本(我没有写过,所以请不要/bin/bash在上面写;)) #! /bin/bash . /root/.bash_profile customer=$1 if [ -z "$customer" ]; then echo …

1
SATA从什么意义上说“ SCSI”?SCSI和ATA之间共享多少?
至少对我而言,这并不是什么新鲜事,SATA实际上“在说” SCSI,因此为什么这些SATA设备在Linux中显示为SCSI设备。 之前已经问过一个相关的问题,例如,为什么我的SATA设备显示在/ proc / scsi / scsi下? 但是,在我之前看到的讨论中没有提及的正是SATA与SCSI的关系以及它们之间的区别。 我认为它们在物理层上有所不同是理所当然的,因为它们不共享兼容的电缆。 但是,如何在堆栈上更高呢?我知道Linux如何将现代内核上的SATA甚至IDE磁盘表示为SCSI到SCSI子系统。但是总线上使用的实际协议呢? 我也知道ATAPI是SCSI的封装,但是常规ATA呢?我注意到SCSI已采用SCSI的功能,例如NCQ,FUA,DPO等(如果我记错的话)。但是尚不清楚SCSI命令集实际上有多少被共享或相似。 具有ATA规范的现代SATA设备是否实现了SCSI命令集的子集,但被封装了(如ATAPI中一样)?一套一样吗?超集?还是仅将所选功能实现为不完全相同的变体? 在哪里可以找到明确的信息,尤其是它与Linux内核的关系?某种用于驱动程序开发的教程会很不错,但是即使是不完全跳过所有细节的概述也足够了。我知道我只能阅读实际的规范,但这又太详细了,很难找到您真正想要的东西,并且对我本人以及可能在时间意义上的大多数其他用户来说都不现实。

3
如何禁用笔记本电脑上的触摸屏?
我的笔记本电脑有触摸屏,但我不使用它。如何禁用此功能?我使用Arch Linux。我想我可以尝试删除相关的驱动程序。在此页面上,所有可能的驱动程序都被命名为xf86-input*。但是,看起来我没有安装任何东西: # pacman -Qs xf86-input local/xf86-input-evdev 2.8.3-1 (xorg-drivers xorg) X.org evdev input driver local/xf86-input-joystick 1.6.2-3 (xorg-drivers xorg) X.Org Joystick input driver local/xf86-input-keyboard 1.8.0-2 (xorg-drivers xorg) X.Org keyboard input driver local/xf86-input-mouse 1.9.0-2 (xorg-drivers xorg) X.org mouse input driver local/xf86-input-synaptics 1.7.5-1 (xorg-drivers xorg) Synaptics driver for notebook touchpads local/xf86-input-vmmouse 13.0.0-3 (xorg-drivers …

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.