小编Mis*_*iev的帖子

netstat — 为什么 IPv4 守护进程只监听 -A inet6 中列出的端口?

我有一台电脑:

Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

它在所有接口上的端口 80 上运行 Apache,并且它没有出现在 中netstat -planA inet,但意外地可以在 中找到netstat -planA inet6

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::5672                 :::*                    LISTEN      2402/beam.smp   
tcp6       0      0 :::111                  :::*                    LISTEN      1825/rpcbind    
tcp6       0      0 :::9200                 :::*                    LISTEN      2235/java       
tcp6       0      0 :::80                   :::*                    LISTEN      2533/apache2    
tcp6       0      0 :::34611                :::*                    LISTEN      1856/rpc.statd  
tcp6       0      0 :::9300                 :::* …
Run Code Online (Sandbox Code Playgroud)

linux debian ipv6 netstat ipv4

27
推荐指数
2
解决办法
5万
查看次数

不要设置$?Control+C 上的非零

$PS1在 Zsh 中包含这个表达式:%(?. %?.) 它的意思是“如果前一个命令 ( $?) 的退出代码为真,则显示$?,否则不显示”。这通常很有用,但有一件事让我烦恼:当我在没有运行命令的情况下按 Control+C 时,shell 将最后一个命令的返回码设置为非零!Zsh 将其设置为 1,Bash 将其设置为 130。Dash 是我系统上唯一一个不会在 Control+C 上重置它的 shell。

如何重现:

  1. 启动 zsh 或 bash。
  2. 按 Control+C。
  3. echo $?.

有没有办法在 Zsh 上关闭这种行为?

command-line zsh signals

6
推荐指数
1
解决办法
524
查看次数

Zsh——更智能的自动更正

是否有可能让 Zsh 停止尝试更正不应该是包含当前目录中的文件的文件的参数,而无需完全关闭更正或将其限制为setopt CORRECT(仅更正命令)?

例如,当CORRECT_ALL设置为 时setopt,会发生这种情况:

 gris@arefiev: ~% cd srcc 
change srcc to src-nyae? n
Run Code Online (Sandbox Code Playgroud)

到目前为止,很好(参数cd应该是一个文件)。然而,

 gris@arefiev: ~% man zile
change zile to .zile-nyae? 
Run Code Online (Sandbox Code Playgroud)

什么?我希望它纠正zile.zile时候man被调用-C选项。它还尝试更正ssh, 第一个参数的主机参数sudo等,这真的很烦人。

alias man='nocorrect man'对于每个受影响的命令,我必须求助于拐杖:设置等,但显然这不是最好的解决方案。我也不喜欢CORRECT并且更喜欢拐杖加号CORRECT_ALL而不是CORRECT.

zsh 是zsh 4.3.17 (x86_64-unknown-linux-gnu),Debian sid。

更新:这是我的.zshrc http://pastebin.com/67mykgRv

shell zsh

4
推荐指数
1
解决办法
1426
查看次数

跨平台(Linux、BSD、Solaris)检查pid是否存在的方法

我正在寻找一种可靠的跨平台方式来检查具有特定 pid 的进程是否正在运行。出现了两种可能的解决方案:

  1. kill -0 $PID — 如果进程存在,退出状态为 0,否则为 1,但是对于需要额外权限才能杀死的 pid,它也会返回 1。
  2. ps a | grep "^\s*${PID}" 和类似的都是丑陋的。

有没有办法拥有像#1 这样的东西,但没有所有者限制?

process kill process-management

2
推荐指数
1
解决办法
964
查看次数

标签 统计

zsh ×2

command-line ×1

debian ×1

ipv4 ×1

ipv6 ×1

kill ×1

linux ×1

netstat ×1

process ×1

process-management ×1

shell ×1

signals ×1