ss 与 nssm

期中考试的时候实在无法忍受 ss 的 Windows 客户端的速度了,于是琢磨着是不是要换个客户端用用。 先前用的是用 C# 实现的客户端,不知为何连接速度非常慢。考虑到在 Arch Linux 上使用的 python 版本表现还不错,试着在 Windows 下 pip 安装了一下。 然后就发现……并没有 systemd 啊(摔)这怎么开机自启?其实是有两种解决方案: 使用计划任务等工具配置 使用 the Non-Sucking Service Manager 配置 我觉得 nssm 还是挺不错的,支持日志旋转等非常细致的功能,就是 last release 老了一点…… 不过 ss 的 python 版维护已经不勤快了,正在测试 libev 的版本……

20.8 别名 (从新手到菜鸟的Linux教程)

其实就是给命令做个缩写~语法是 alias [name]=[value] ,如果只运行 alias 的话就会显示全部的别名替换,比如 $ alias alias ls='ls --color=auto' $ 呃……还是拿我现在在用的 oh-my-zsh 举例子吧…… ➜ alias | wc -l 161 ➜ alias | grep git | wc -l 124 这么多别名有一大半都是为 git 服务的[捂脸] 看到一个好玩的 -='cd -' ,原来 - 表示旧目录的意思啊: $ pwd /home/xdroid $ cd repo $ pwd /home/xdroid/repo $ cd - /home/xdroid $ pwd /home/xdroid 应该是个 shell 都能用。

20.7 输入输出重定向 (从新手到菜鸟的Linux教程)

这个是 shell 的(一部分)精髓吧 所以我几乎每次都会搞错

简单说来就是通过一些保留的符号,操纵命令的输入流、输出流(包括标准输出流和错误输出流)。我们提到过 Unix/Linux 设计哲学是一切都是文件,所以一个命令(进程?)输入、输出都是“文件”;既然是文件那就可以进行重定向。

20.5 Shell 条件表达式 (从新手到菜鸟的Linux教程)

除了 js 和 c/cpp 的三目操作符 [] ? [] : [] 和 python 的 [val1] if [cond] else [val2] 是的我就是要吐槽它们顺序不一样 ,应该大部分语言的条件表达式只有 if-else 类或者 switch-case 类,那么我们也从这两种看一下 bash 里怎么做条件判断。 if-else 基本语法是 if [ cond1 ] then exp1 elif [ cond2 ] exp2 else exp3 fi 假设大家都已经掌握了 if-else 结构,这里只强调几个不按常理出牌的地方: 左右方括号周围要有空格,不然就是语法错误(原因接下来说道 test 的时候会分析),比如: $ if [ 1 -ne 2 ]; then echo "Surely"; else echo "Math taught by literature teacher."; fi Surely $ if [1 -ne 2 ]; then echo "Surely"; else echo "Math taught by literature teacher.

20.4 Shell 字符串 (从新手到菜鸟的Linux教程)

好的,我抓紧把这个坑填上就可以安利其他有趣的命令了(

我们提到过 shell 是弱类型的语言,除了数字和数组类型以外好像也就字符串类型了。个人感觉用 shell 的时候字符串类型是最多的,因为你看传参数是用字符串,就连循环

for i in `seq 1 10`
do
    ...
done

i 的取值 seq 1 10 都是字符串类型。记得某篇文章说过 Lisp 系统比类 Unix 系统高端之处就在于前者用表传参,而后者是用字符串传参= =

与 FFmpeg 共舞

这篇博文注定也是会比较细碎。

需求是这样的:有一系列索大法某 DV 录制的音乐会视频,现在需要压制然后按照节目分割。一开始我的想法是这样子的:

压制 => 分割

匪夷所思的 Gurobi 安装

大意是在 Matlab 命令行安装 Gurobi 的时候提示架构不对,看了一下安装文件的源码: % We don't require GUROBI_HOME on Mac or Linux. Get gurobiarch from path. gurobiarch = gurobipath; gurobiarch(end) = []; slashes = strfind(gurobiarch, fs); gurobiarch = gurobiarch(slashes(end-1)+1:slashes(end)-1); 关爱智障的眼神。 (解释一下,因为我把 Gurobi 安装到 /opt/gurobi 去了,但是似乎安装程序默认我们应该安装到一个类似于 /***/gurobi752/linux64/ 的地方) 顺便吐槽一下 CVX 。 申请 academic license 的时候需要输入(网卡的)特征编码,但是在我这里的发行版上 cvx_version 并不显示出来……继续读源码: %%%%%%%%%%%%%%%% % License file % %%%%%%%%%%%%%%%% if isoctave, if ~isempty( cvx___.license ), fprintf( 'CVX Professional is not supported with Octave.\n' ); end elseif cvx___.