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

实用的物理/数学参考网站推荐

转载整理,原出处不详。 物理学 HyperPhysics — 佐治亚州立大学出品,概念地图式物理知识索引,覆盖力学、电磁学、光学、量子物理等所有分支 The Feynman Lectures — 费曼物理学讲义在线版,加州理工免费开放 Physics Stack Exchange — 物理问答社区 数学 Wolfram MathWorld — 最全面的数学百科,公式和证明都很详尽 Khan Academy — 从基础到高等数学的视频教程,免费 Brilliant — 互动式数学和科学练习平台 数据查询 NIST — 物理常数权威数据 Wolfram Alpha — 计算知识引擎,可查询物理/数学/化学数据

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

showmount:查看 NFS 共享目录

命令格式 showmount [选项] [ServerIP] 常用选项 选项 作用 无参数 列出所有挂载了共享目录的客户端 -a 列出服务端共享目录 + 客户端挂载点 -d 列出当前被客户端挂载的目录 -e 列出服务端导出的所有共享目录 使用示例 # 查看某台服务器的共享目录 showmount -e 192.168.1.100 # 查看谁在挂载 showmount -a 192.168.1.100 # 查看所有信息 showmount 192.168.1.100

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

Solaris 开启 FTP 和 SSH 服务

FTP 服务 启动 FTP svcadm enable /network/ftp 查看状态 svcs -l network/ftp 允许 root 登录(不推荐) 编辑 /etc/ftpd/ftpusers,注释掉 root 那行。出于安全考虑,建议只给普通用户开放 FTP。 SSH 服务 SSH 默认已启动。如果需要允许 root 登录: 修改配置 vi /etc/ssh/sshd_config # 将 PermitRootLogin 改为 yes 重启 SSH svcadm restart network/ssh 如果重启不生效: svcadm refresh ssh svcadm enable ssh

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