shentao@shentao-ThinkPad-T450:~/blog$ type ss-local ss-local is hashed (/usr/bin/ss-local)
可以通过hash命令删除:
1 2 3
shentao@shentao-ThinkPad-T450:~/blog$ hash -d ss-local shentao@shentao-ThinkPad-T450:~/blog$ ss-local -v | grep shadowsocks-libev shadowsocks-libev 2.5.6 with OpenSSL 1.0.1f 6 Jan 2014
知识回顾
我们再来回顾下关于bash 的一些知识:
关于bash可以执行的类型
Aliases: An alias is a word that is mapped to a certain string, 命令的别名.
1 2
$ alias nmapp="nmap -Pn -A --osscan-limit" $ nmapp 192.168.0.1
Functions: A function contains shell commands, and acts very much like a small script. 用function定义一个函数:
1
function gcc { echo “just a testfor gcc”; }
Builtins: 内置函数, cd之类的
Keywords: Keywords are like builtins, with the main difference being that special parsing rules apply to them. For example, [ is a Bash builtin, while [[ is a Bash keyword. They are both used for testing stuff. [[ is a keyword rather than a builtin and is therefore able to offer an extended test:
1 2 3
$ [ a < b ] -bash: b: No such file or directory $ [[ a < b ]]
第一个< 是重定向, 第二个加了[[的关键词之后 < 成了小于号.
Executables: (Executables may also be called external commands or applications.) Executables are commonly invoked by typing only their name. This can be done because a pre-defined variable makes known to Bash a list of common, executable, file paths. This variable is called PATH. 外部命令, 也就是PATH中找到的那些命令
这些goroutine显示: locked to thread, 但上网查找有回复说到, 这并不是一个真正的死锁, 而是正常的goroutine拿线程锁的过程. 可能调用了cgo或者runtime.LockOSThread. 这个问题可以忽略掉, 以防绕进死胡同.
1 2 3 4 5
That is not a deadlock, at least not a deadlock in the Go program. It is normal for a goroutine to be locked to a thread. It can happen because of cgo, or because the code called runtime.LockOSThread. It is not a problem. The problem is that the thread has not made any progress for 214 minutes; what that is depends on what it is doing.