Linux

shell 脚本如何判断所在目录问题

这是某业务广泛的 QQ 群里的一次讨论,尘光大前辈问起都是怎么获取脚本所在绝对路径。

首先有同学表示可以使用 pwd配合 $0参数,但是很明显脚本执行的时候并不一定在当前 working dir,这就会带来一个明显的问题就是,如果执行的方式是 ./a.sh,那么获取到的$0和 pwd 的结果才是相同的,否则就是不同的:

当然,可以说判断执行的方式,根据判断$0是否是绝对路径等方法可以区分这个情况,但是首先这样就变[……]

Read more

目录

  1. 什么是 Websocket
  2. 为什么使用 Websocket
  3. 性能理论分析
  4. Websocket 服务端和反代实践
  5. 对反代性能进行测试
  6. Websocket 和 HTTP

什么是 Websocket

Websocket 是起初由 HTML5 定义的一个建立在单 TCP 连接上的全双工通信协议,后从 HTML5 规范独立并由 RFC 6445 标准化,但仍被习惯性地称为 HTML5 Websocket。

Websocket 工作在 HTTP 的80和443端口并使用前缀 ws://或者[[……]

Read more

在 Nginx 中,四层的数据被称为 stream,和四层代理有关的模块主要有:

  • ngx_stream_core_module:四层代理的基本功能模块
  • ngx_stream_upstream_module:四层代理转发到上游的模块
  • ngx_stream_proxy_module:四层代理相关配置

其他 stream 相关模块用于如 SSL 支持、geoip 支持、简单访问控制支持等,本次测试并没有使用到。

使用的注意事项

Nginx 的四层反代功能较为简单,其访问控制模块因为源站 IP 可以进行伪造,[……]

Read more

某群有人提到在 Debian 下: sudo cd xxx/ 会提示 sudo: cd: command not found (当然我大 Mac 是直接没有任何效果)

经查 OS X 的 man 手册写道:

实际上 ,执行一个外部程序时,shell 会 fork 一个子进程进行执行,而 cd 不是一个外部程序而是 shell 内建命令,因此 sudo 并不能找到一个叫做 cd 的外部程序执行,也不能作为子进程被执行(子进程不能影响其 shell 的工作目录),因此报 comma[……]

Read more

事情的起因是最近USTC LUG群里讨论到了一个问题:如何让普通用户无法通过 shutdown 关机,一个简单的解决是(root 执行)

实际上这个问题其实毫无意义,对于桌面系统而言,面向的使用者都是在物理接触机器的前提下进行的,实际上任何使用者都能关掉电源达到关机的作用。一直以来“Linux 普通用户不能关机”作为初学者就需要知道的常识而广为人知,但是实际上这点并不是那么绝对的,关于这点引用一下 USTC LUG前会长尘光的观点(我表示十分赞同):

关键字:“帐号”和“用户”的区别。关机操作是可以由用户进行,而不是帐号进[……]

Read more