Cygwin 安装完整 man-pages

问题 Cygwin 自带的 man pages 不完整,比如 man listen、man socket 等系统调用没有文档。 解决方法 方法一:编译安装(推荐) # 1. 下载最新 man-pages # https://www.kernel.org/pub/linux/docs/man-pages/ # 2. 解压 tar zxvf man-pages-3.41.tar.gz cd man-pages-3.41 # 3. 安装 make gz make install 方法二:手动放置 下载并解压到 Cygwin 安装目录的 %cygwin%\usr\man 下 编辑 /etc/man.conf,添加: MANPATH /usr/man/man-pages-3.41 重启 Cygwin 终端 版本号根据实际下载的版本修改。 验证 man listen man socket 能正常显示说明安装成功。

2015年3月2日 · 1 分钟 · Jid

Vim 打开文件时自动跳到上次的光标位置

问题 在 Linux 下用 Vim 打开文件时,光标总是在第一行,而不是上次退出时的位置。Windows 下的 gVim 默认支持这个功能。 解决方法 将以下代码添加到 ~/.vimrc: if has("autocmd") filetype plugin indent on augroup vimrcEx au! autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END else set autoindent endif 原理 line("'\"") 获取上次退出时光标所在行号(Vim 自动在 .viminfo 中记录) exe "normal! g""跳转到该位置(用g` 跳转,不改变 jumplist) 判断条件确保行号有效(大于 1 且不超过文件总行数)

2015年3月1日 · 1 分钟 · Jid

Solaris 配置 NFS 共享

以下操作均需 root 权限。 服务端配置 1. 启动 NFS 服务 # Solaris 10+ svcadm enable network/nfs/server # 旧版本 /etc/init.d/nfs.server start 2. 共享目录 即时生效(重启后失效): # 只读共享 share -F nfs -d "shared dir" /export/home/shared # 读写共享,限定客户端 share -F nfs -o rw=192.168.1.100 -d "home dirs" /export/home2 永久生效: 将 share 命令写入 /etc/dfs/dfstab: share -F nfs -d "shared dir" /export/home/shared 3. 验证共享 dfshares # 或 showmount -e 客户端配置 1. 启动 NFS 客户端服务 svcadm enable network/nfs/client 2. 挂载共享目录 临时挂载: mount -F nfs 192.168.1.1:/export/home/shared /mnt/shared 永久挂载(写入 /etc/vfstab): ...

2015年2月19日 · 1 分钟 · Jid

Ubuntu 安装 dos2unix 文件格式转换工具

问题 Windows 和 Linux 的文本文件换行符不同(Windows 用 \r\n,Linux 用 \n),在 Linux 下打开 Windows 编辑的脚本会报错。需要用 dos2unix 转换。 Ubuntu 默认没有 dos2unix,但有替代方案。 方案一:安装 tofrodos(推荐) sudo apt-get install tofrodos 安装后提供两个命令: 命令 作用 fromdos file Windows → Linux(相当于 dos2unix) todos file Linux → Windows(相当于 unix2dos) 习惯原命令名的话,创建符号链接: sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix sudo ln -s /usr/bin/todos /usr/bin/unix2dos 或在 ~/.bashrc 中设置别名: alias dos2unix=fromdos alias unix2dos=todos 方案二:直接安装 dos2unix 较新版本的 Ubuntu 可以直接安装: sudo apt-get install dos2unix 使用 dos2unix script.sh # 转换为 Unix 格式 unix2dos file.txt # 转换为 Windows 格式

2015年2月10日 · 1 分钟 · Jid

Solaris 设置 Locale(语言/区域环境)

什么是 Locale Locale 定义了系统的语言和区域习惯,包括字符编码、日期格式、货币符号等。 常用变量: 变量 作用 LC_CTYPE 字符分类与转换(影响能否显示/输入中文) LC_MESSAGES 程序提示信息的语言 LC_TIME 日期时间格式 LC_NUMERIC 数字格式 LC_COLLATE 字符串排序规则 LC_ALL 覆盖所有 LC_* 变量 LANG 默认值,当 LC_* 未设置时生效 优先级:LC_ALL > LC_* > LANG 操作命令 查看当前 locale locale 查看已安装的语言包 locale -a 设置方法 临时生效(当前会话) # sh / ksh / bash LANG=zh_CN.UTF-8; export LANG LC_ALL=zh_CN.UTF-8; export LC_ALL # csh setenv LANG zh_CN.UTF-8 setenv LC_ALL zh_CN.UTF-8 永久生效(单用户) 在 ~/.profile 或 ~/.cshrc 中添加上述 export/setenv 命令。 永久生效(全局) 编辑 /etc/default/init: # 格式:VAR=value,支持 TZ、LANG、LC_* LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 修改后重启生效。 ...

2015年2月9日 · 1 分钟 · Jid

Solaris 用户主目录管理

背景 Solaris 中用户主目录有两个位置: /home — 由 automounter(自动挂载器)控制,管理员不能直接在此创建目录 /export/home — 管理员可以在此创建用户主目录 方式一:本地主目录(不使用 automounter) # 创建用户 useradd -u 400 -g user -c "user oops" -m -d /export/home/oops oops # 设置密码 passwd oops # 设置权限 chown oops /export/home/oops chgrp user /export/home/oops -m 参数会自动创建主目录。 方式二:自动挂载主目录(NFS) # 创建用户(不指定 -d,默认使用 /home/oops) useradd -u 400 -g user -c "user oops" oops # 设置密码 passwd oops # 手动创建实际目录 mkdir /export/home/oops chown oops /export/home/oops chgrp user /export/home/oops # 配置 automounter vi /etc/auto_home # 添加一行: # oops remotehost:/home/& remotehost:/home/& 表示用户 oops 的主目录从远程主机挂载,& 是用户名的通配符。 ...

2015年2月8日 · 1 分钟 · Jid

最大公约数(GCD)的两种 C 语言实现

一、辗转相除法(欧几里得算法) 数学原理 定理: gcd(a, b) = gcd(b, a % b),其中 a ≥ b。 证明: 设 a = k * b + r(其中 k = a / b,r = a % b),则: 若 d 能整除 a 和 b,则 d 也能整除 r = a - k * b 若 d 能整除 b 和 r,则 d 也能整除 a = k * b + r 因此 (a, b) 和 (b, a % b) 的公约数完全相同,最大公约数也相同。不断递归直到余数为 0,此时的除数即为 GCD。 ...

2015年1月15日 · 2 分钟 · Jid

关闭 Linux 命令行和 Vim 的报警声(Beep)

命令行 Beep 声 在终端中按 Tab 补全或遇到错误时发出"嘟"声,两种关闭方式: 方法一(推荐,仅影响当前用户): echo "set bell-style none" >> ~/.inputrc 重新登录后生效。 方法二(全局生效): 编辑 /etc/inputrc,去掉 set bell-style none 前面的 #。如果文件不存在则用方法一。 Vim Beep 声 echo "set vb t_vb=" >> ~/.vimrc 这会将 Vim 的蜂鸣替换为视觉闪烁(visual bell),并将闪烁设为空(即完全静默)。

2015年1月13日 · 1 分钟 · Jid

Linux 下编译安装 tar.bz2 软件包

标准流程 以源码包 foo-1.0.tar.bz2 为例: # 1. 解压 tar jxvf foo-1.0.tar.bz2 # 2. 进入源码目录 cd foo-1.0 # 3. 配置(指定安装路径,方便卸载) ./configure --prefix=/opt/foo # 4. 编译 make # 5. 安装(通常需要 root) sudo make install 各步骤说明 步骤 作用 说明 tar jxvf 解压 j 表示 bzip2,如果是 .tar.gz 则用 tar zxvf ./configure 检查环境、生成 Makefile --prefix 指定安装路径,不指定则默认装到 /usr/local make 编译源码 根据 Makefile 编译生成可执行文件 make install 安装到系统 将编译产物复制到 --prefix 指定的目录 卸载 # 如果源码目录还在 sudo make uninstall # 或者直接删除安装目录 sudo rm -rf /opt/foo 常见问题 configure 报错缺少依赖:根据错误提示安装对应的 -dev 或 -devel 包 make 报错:检查 GCC 是否安装(gcc --version) 权限不够:make install 需要 root 权限,使用 sudo

2015年1月12日 · 1 分钟 · Jid

VMware Workstation 最小化到系统托盘

问题 VMware Workstation 最小化后仍然占据任务栏位置,无法像 VirtualBox 那样最小化到系统托盘。 解决方案 使用 Trayconizer 这个小工具(仅 4KB),可以让任何程序最小化到托盘。 步骤 下载 Trayconizer(选择 Unicode 版本) 将 Trayconizer.exe 放到 C:\Windows\ 目录下(方便任何位置调用) 修改 VMware 快捷方式的目标为: C:\Windows\Trayconizer.exe "C:\Program Files\VMware\VMware Workstation\vmware.exe" 注意:Trayconizer.exe 和后面的路径之间有一个空格。 用修改后的快捷方式启动 VMware,最小化时就会自动收入托盘。 通用性 此方法不限于 VMware,任何 Windows 程序都可以用同样的方式最小化到托盘: C:\Windows\Trayconizer.exe "目标程序的完整路径"

2015年1月11日 · 1 分钟 · Jid