Random Posts
Tags
Categories
Recent Comments
- 小肥 on GDB 从裸奔到穿戴整齐
- flandre on 异步事件模型的 Self-pipe trick
- inv on 异步事件模型的 Self-pipe trick
- skywind on 异步事件模型的 Self-pipe trick
- skywind on 异步事件模型的 Self-pipe trick
Links
Meta
Tag Archives: 命令行
我在命令行下学日语
同一个动作重复 300 遍,肌肉就会有记忆,重复 600 遍,脊柱就会有记忆,学完五十音图不熟练,经常遗忘或者要好几秒才想得起来一个怎么办?没关系,我做了个命令行下的小游戏 KanaQuiz 来帮助你记忆: usage python3 kanaquiz.py <operation> operations: python3 kanaquiz.py {-h} play hiragana only python3 kanaquiz.py {-k} play katakana only python3 kanaquiz.py {-a} play all kana quiz python3 kanaquiz.py {-d} play dakuon quiz python3 kanaquiz.py {-t} … Continue reading
我在命令行下剪辑视频
是的,你不需要格式工厂,你也不需要会声会影,更不需要爱剪辑这些莫名其妙的流氓软件,命令行下视频处理,包括剪辑,转码,提取,合成,缩放,字幕,特效等等,全部命令行搞定,这不是疯狂,而是效率: MP4 转换 GIF 知乎可以发 MP4,但对桌面录屏这种十多二十秒的小短片远远没有 GIF 来的便捷,GIF 在很多软件里支持的也比 MP4 要广泛,转换命令为: ffmpeg -i in.mp4 -an -c:v gif out.gif 参数 -i 的指明输入文件 “in.mp4” ,-an 代表禁用音频,-c:v 的意思是指定视频编码为 gif,最后是输出文件名。 那么效率在哪里呢? 别急,我们写完善点,做个脚本:video_convert_to_gif.cmd @echo off if “%1” == “” goto HELP set “IN=%1” set “OUT=%~dpn1.gif” … Continue reading
新版瑞士军刀:socat
我在《用好你的瑞士军刀:netcat》中介绍过 nc 和它的几个实现(bsd, gnu, nmap),netcat 还有一个最重要的变种 socat (socket cat),值得花一篇完整的文章介绍一下,它不仅语义统一,功能灵活,除了完成 nc 能完成的所有任务外,还有很多实用的用法: 基本命令就是: socat [参数] <地址1> <地址2> 使用 socat 需要提供两个地址,然后 socat 做的事情就是把这两个地址的数据流串起来,把第左边地址的输出数据传给右边,同时又把右边输出的数据传到左边。 最简单的地址就是一个减号“-”,代表标准输入输出,而在命令行输入: socat – – # 把标准输入和标准输出对接,输入什么显示什么 就会对接标准输入和标准输出,你键盘敲什么屏幕上就显示什么,类似无参数的 cat 命令。除了减号地址外,socat 还支持:TCP, TCP-LISTEN, UDP, UDP-LISTEN, OPEN, EXEC, SOCKS, PROXY 等多种地址,用于端口监听、链接,文件和进程读写,代理桥接等等。 因此使用 … Continue reading
用好你的瑞士军刀/netcat
Netcat 号称 TCP/IP 的瑞士军刀并非浪得虚名,以体积小(可执行 200KB)功能灵活而著称,在各大发行版中都默认安装,你可以用它来做很多网络相关的工作,熟练使用它可以不依靠其他工具做一些很有用的事情。 最初作者是叫做“霍比特人”的网友 Hobbit hobbit@avian.org 于 1995 年在 UNIX 上以源代码的形式发布,Posix 版本的 netcat 主要有 GNU 版本的 netcat 和 OpenBSD 的 netcat 两者都可以在 debian/ubuntu 下面安装,但是 Windows 下面只有 GNU 版本的 port。 不管是程序员还是运维,熟悉这个命令都可以让很多工作事半功倍,然而网上基本 90% 的 netcat 文章说的都是老版本的 OpenBSD 的 netcat,已经没法在主流 linux … Continue reading
SSH 命令的三种代理功能(-L/-R/-D)
ssh 命令除了登陆外还有三种代理功能: 正向代理(-L):相当于 iptable 的 port forwarding 反向代理(-R):相当于 frp 或者 ngrok socks5 代理(-D):相当于 ss/ssr 如要长期高效的服务,应使用对应的专用软件。如没法安装软件,比如当你处在限制环境下想要访问下某个不可达到的目标,或者某个临时需求,那么 ssh 就是你的兜底方案。 正向代理: 所谓 “正向代理” 就是在本地启动端口,把本地端口数据转发到远端。 用法1:远程端口映射到其他机器 HostB 上启动一个 PortB 端口,映射到 HostC:PortC 上,在 HostB 上运行: HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC 这时访问 HostB:PortB 相当于访问 HostC:PortC(和 iptable … Continue reading
别让 cd 浪费你的时间
终端下工作最烦躁的就是路径切换,没有自动路径切换的帮助,就像在泥里走路,于是有了各种 autojump / z / fasd 等工具来提升路径切换的效率,今天向大家介绍一个更好用的工具:z.lua,用熟练了以后就像终端里溜冰,路劲切换从此指哪打哪。 z.lua 是一个会学习你使用习惯的 cd 命令,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 Mozilla),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。 正则将按顺序进行匹配,”z foo bar” 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo。 特性说明: 性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。 支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。 支持 Fish Shell,Power … Continue reading
十行代码实现命令行书签
路径书签/别名,用来给目录取个名字,要用时快速跳转,它不是用来代替:z.lua / z.sh / autojump 这类第一梯队的 cd 辅助工具的,而是作为他们的一个补充。 先前我想找个现成的路径书签的小插件,找到这个:pm 把现有目录添加成书签要: pm add my-project 跳到这个书签对应的目录要: pm go my-project 然后列出所有书签要: pm list 删除书签要: pm remove my-project 我又看了好几个书签软件,都大同小异,又难用,实现又啰嗦,这玩意儿居然写出 500 行以上的代码来,真是匪夷所思。所以我打算用十行代码实现一个更优雅的书签功能。 目标1:少打字 同样一个功能多打一个字母,做一千次就多打了 1K 的内容,能省则省,我不明白为什么这些插件做的都那么啰嗦,输入完命令名还得再输入 add/remove/go/list 之一的参数,然后才是书签名,要我来做,我会把命令名起短一点,比如叫做 m : m # 列出当前所有书签 m foo … Continue reading
Nas 系统的虚拟化方案
对搞技术的人来说,Nas 是个理想的玩具,既然是程序员用的 Nas ,自然要专业一点,不能像小白一样买台威联通或者群晖往哪里一放就行,如果这样,就没有必要继续往下读了。 就像有人喜欢买成品车,有人喜欢自己改装车;有人喜欢傻瓜相机,有人喜欢机械相机。如果你喜欢 DIY,想让自己家里的硬件发挥更大用途,让自己的 nas 系统更专业些,那么请继续。 有人说,生命的意义在于奉献;还有人说,生命的意义在于付出;然而对于 Nas 玩家来说,生命的意义只有两个字 — “折腾”。 有人问:“Nas 还能玩出一朵花来?”,答案是:“当然能”,折腾 Nas 第一步就是上虚拟化环境,有这个基础,后面才能更好的搞其他东西。所以今天我们先把 Nas 虚拟化这个纲领性的问题给说清楚说透彻。 Nas 系统为什么要虚拟化? 首先是让一台物理机可以安装多个不同的隔离的操作系统,Nas 很多都是魔改 Linux,一机多用的话,除了可以自由的安装其他主流 Linux 发行版外,你还能装台 Windows 来跑迅雷。 其次,而对于程序员,往往还需要另外一个干净的标准 Linux 发行版作为一个开发/折腾的环境,比如 Ubuntu / Debian / Centos 这些,虚拟化后,你可以自由的折腾你的发行版,通过虚拟机隔离后,你乱折腾自己的开发环境也不会把 Nas 弄挂,把自己的数据弄飞。 最后,资源分配更加灵活,系统/磁盘级别的备份迁移和恢复也可以很方便的实现。