UNIX 基本命令简介(文件系统篇)
[ 资料来源: Wikipedia ]
UNIX Command Line Programs And Builtins | |
---|---|
File System | cat , cd , chmod , chown , chgrp , cmp , cp , dd , df , du , file , fsck , ln , ls , mkdir , mount , mv , pax , pwd , rm , rmdir , split , tee , touch , type , umask |
Processes | at , bg , chroot , cron , kill , killall , nice , pgrep , pidof , pkill , ps , pstree , time , top |
User Environment | clear , env , exit , finger , history , id , logname , mesg , passwd , su , sudo , uptime , talk , tput , uname , w , wall , who , whoami , write |
Text Processing | awk , banner , basename , comm , csplit , cut , dirname , ed , ex , fmt , head , iconv , join , less , more , paste , sed , sort , strings , tail , tr , uniq , vi , wc , xargs |
Shell Programming | alias , echo , expr , false , printf , sleep , test , true , unset , wait , yes |
Networking | dig , inetd , host , ifconfig , netstat , nslookup , ping , rdate , rlogin , netcat , traceroute |
Searching | find , grep , locate , whatis , whereis , which |
Documentation | apropos , help , info , man |
Miscellaneous | bc , cal , date , lp , lpr |
cat
( catenate )
cat
是一个用于“连接( concatenate )”或“显示”文件的标准 UNIX 程序。名称来源于单词 catenate,是 concatenate 的同义词。
单一 UNIX 规范( Single UNIX Specification, SUS )指定了 cat
的行为,要求写入标准输出的顺序与指定的参数顺序一致,另外还要求了一个选项 -u
,使显示的每一个字节都与读取的相同。
BSD 版和 GNU coreutils
版的 cat
都有如下选项:
-b
: 将非空白行标注行号-n
: 将所有输出行标注行号-s
: 将多行相邻的空白行压缩-v
: 显示不可打印字符,但不显示制表符和换行符-t
( on BSD ),-T
( on GNU ): 隐含了-v
,但同时将制表符也显示为^I
-e
( on BSD ),-E
( on GNU ): 隐含了-v
,但同时将换行符显示为$
对于二进制文件,cat
也能像处理文本文件一样处理得很好,因为 cat
只是简单地连接文件,并不在之间添加任何东西。
阅读更多…
FreeBSD 配置使用 Tor
相信大家应该听说过“洋葱头”吧,Tor 的安全性和匿名性相当不错,所以昨天我也在我的 FreeBSD 上安装试用了一下。
首先安装 Tor,相信应该都没问题吧。但我在安装时还是遇到了一个问题。。。我本想安装 tor-devel ,但依赖 libevent2,这也还不是问题,因为 libevent2 和 libevent 可以共存,但问题是 tor-devel 和 libevent 冲突,而我需要使用的 tmux 又依赖于 libevent,一时没办法,还是安装 tor 稳定版吧。。。
接着进入 tor 的配置目录 /usr/local/etc/tor/
,将示例配置文件复制一份,并去掉后面的 .sample
即可。然后编辑 torrc
配置文件,可以直接接受前面的默认设置,另外如果使用同时安装的启动脚本 /usr/local/etc/rc.d/tor
来启动 tor,请注意检查启动脚本里的配置是否和此处 torrc
里的配置相冲突,否则 tor 在启动会出现错误而无法运行。
接下来在配置文件 torrc
最后添加 “Tor 的网桥”,并设置“节点”,我所使用的如下所示:
## Bridges #UseBridges 1 #UpdateBridgesFromAuthority 1 #bridge 205.185.117.180:9001 #bridge 74.219.153.179:443 #bridge 92.76.20.230:9221 StrictExitNodes 1 ExitNodes {us} ExcludeNodes {cn},{mo},{hk}
在这里最重要的是设置出口节点,一般来说,建议大家添加最后三行即可,这样 tor 每次会自动从服务器上获取网桥,基本能满足需要。如果大家有很好的网桥,并想固定使用,就把上述的 UseBridge 1
注释掉,并添加相应的 bridge
项。至于 UpdateBridgeFromAuthority 1
是关于网桥认证的,大家也可以根据需要是否打开。
网桥可以通过直接访问 Tor 的 “bridge relay” 网页获取,另外也可以往 bridges@torproject.org 发送一封内容为 “get bridges” 的邮件,Tor 的网页上说只能使用 GMail 和 Yahoo 邮箱,但我其他的邮箱没试过。由于国内的节点不可靠也很可能有问题,所以建议使用 ExcludeNodes
排除。
最后如果需要开机自动启动,就将 tor_enable="YES"
添加到 /etc/rc.conf
即可。
运行 tor 之后,可以通过 sockstat | grep tor
查看 Tor 的相应端口。
此外,Tor 也可以在普通用户的权限下运行,可以将配置文件 torrc
复制到 ~/.torrc
,然后做适当修改,比如更改日志的位置等。
FreeBSD 中为 OpenVPN 添加自定义路由表
[ 参考资料:chnroutes usage 使用 OpenVPN 的 route 命令 ]
对于网上一些 OpenVPN 的代理,当连接好之后,一般会接受服务器端的一些设置,将本地的默认路由设置为远程服务器,即本地所有的数据都经由远程服务器转发,虽然达到了代理的要求,但实用性却不行,对于访问国内的资源,应该选择不经过远程服务器,而是直接访问,相比速度也明显提升。
首先到 chnroutes 上下载适合自己系统的文件。对于所有的平台都可以使用 routes.txt 文件,经过我的比较,建议大家使用这个文件,虽然路由条目只有不到 1000,而使用那儿提供的脚本自己生成的路由条目大约有 1800 条,但我在网上测试了前面一些,发现有一些 IP 段并不是国内的。
下面以我的 FreeBSD 平台为例大致说明:
先大致介绍下在 FreeBSD 配置 OpenVPN 客户端。安装好 OpenVPN 软件包之后,创建配置目录 /usr/local/etc/openvpn
,然后将 OpenVPN 代理分发的客户端配置文件复制到上述目录(如果配置文件扩展名为 ovpn
,建议改为 UNIX 风格的 conf
),接着修改 /etc/rc.conf
文件,添加如下配置即可:
### OpenVPN openvpn_enable="YES" openvpn_configfile="/usr/local/etc/openvpn/your_config.conf"
如果大家有好几套代理服务器的配置文件,并想建立不同的目录分别存放,则还应该修改 OpenVPN 的启动文件 /usr/local/etc/rc.d/openvpn
,里面有一个 dir
的项目应该修改,只修改 /etc/rc.conf
文件里的 openvpn_configfile
的值会不无法启动,因为找不到对应的证书和密钥。具体如何修改我目前还没试过,如果以后试了我会再更新的。
阅读更多…
FreeBSD 挂载镜像文件和 USB 存储设备
挂载 ISO 镜像文件
[ 参考: The FreeBSD Diary: mounting an ISO image
在 FreeBSD 下挂载 ISO 镜像文件与 GNU/Linux 还是存在较大差别,我刚使用 FreeBSD 时也是无从下手,感觉明显没有 GNU/Linux 容易使用。其实 FreeBSD 下挂载镜像也是很方便的,虽然需要先手动配置一下,卸载后又要运行一条命令。
# mount commands mdconfig -a -t vnode -f /path/to/image.iso -u 1 mount -t cd9660 /dev/md1 /mnt/cdrom # umount commands mount -u /mnt/cdrom mdconfig -d -u 1
如果想挂载一个 .iso
镜像文件,首先使用 mdconfig
命令创建一个与镜像文件对应的虚拟设备,选项 -a
表示“连接内存磁盘( attach a memory disk )”,-t vnode
表示将后面由 -f
指定的文件作为 memory disk。最后的 -u 1
表示为将要创建的 md(4)
设备指定一个特定的单元值,而不使用自动分配的值,这里指定 1 ,则将创建设备 /dev/md1
。
使用完后卸载也与挂载类似,卸载后还需使用 mdconfig -d
将刚创建的 md(4)
设备“断开( detach )”。
阅读更多…
FreeBSD 下使用 ataidle 配置硬盘
现在的硬盘一般都有 S.M.A.R.T 支持,另外还有电源管理功能。虽然对于笔记本电脑来说,节能并延长续航时间固然重要,但当硬盘工作在节能模式下时,硬盘的磁头会时不时地收回停下,而一但需要读取数据时,磁头又不得不重新载入工作。我觉得这对于省电并没有什么作用,而且磁头时不时重载,不仅会有明显的噪音,也对硬盘寿命有一定影响。
磁头重载次数也称为 LCC ( Load Cycle Count ) 参数,如果硬盘电源管理得比较严,则磁头重载周期较短,LCC 的值也会增长较快。以前也有文章说明过使用 Ubuntu Linux 时 LCC 快速增长,现在应该好多了吧。
虽然硬盘能承受的磁头重载次数都很大,约为 60 万,所以只要不是增长得很快都没问题。但也可以关掉硬盘的高级电源管理( APM )功能。既没有了不时地重载的噪音,也不会使 LCC 快速增长。
首先安装软件 sysutils/ataidle
, 然后将以下配置添加到 /etc/rc.conf
:
# disk ataidle_enable="YES" ataidle_devices="ada0" ataidle_ada0="-I 120 -S 240 -A 127 -P 254"
FreeBSD Intel HD声卡配置
去年底切换到 FreeBSD 后,因为刚开始使用,谈不上任何经验,系统安装好之后面对一大堆问题,体验比不上 GNU/Linux 。其中一个主要问题是声卡的配置,首先参照 FreeBSD 手册加载了声卡内核模块,我的 X200 是 Intel HD 声卡,故加载了 snd_hda
模块,并将 snd_hda_load="YES"
添加到 /boot/loader.conf
。(大家请按自己的声卡加载对应的模块,加载后可以使用 cat /dev/sndstat
查看声卡信息,确认模块加载正确)
但声卡模块加载无误后,依然没有声音,后来上网查找,了解到 FreeBSD 下声卡一般都配置有四个“音频通道”,两个输出,分别为内置扬声器和耳机;还有两个输出,分别为内置麦克风和外接麦克风。并且每个输出和输入组成一个声音单元,或声音设备分别为 pcm0 和 pcm1,默认情况在我的 X200 上,声音单元 0 代表耳机,1 代表内置扬声器。所以使用 sysctl hw.snd.default_unit=1
将系统默认的声音单元设为 1,此时扬声器即可正常工作了。(这是我的笔记本配置,台式机没有试过,可能有区别)
但事情到些还没有完,真正难以处理的问题是:内置扬声器工作正常,但接上耳机后,扬声器无声了,但耳机也没声音。为此我也上网找了很多,但却总是不理解如何解决。最后仔细地读 snd_hda(4)
,终于理解 FreeBSD 下声卡的配置方式。下面是我的配置过程:
阅读更多…
FreeBSD 下的牛津词典
在 FreeBSD 下的有个简易的词典: zh-oxford, 这个词典是在 CLI 下使用的,可直接通过命令 sudo su root -c "pkg_add -rv zh-oxford"
安装。
但在我的系统上安装好后,命令 oxford newword
的输出却是乱码,即使修改终端的 LANG
也无济于事,猜测是该词典的数据文件编码有问题。
于是用 vim 查看了相关文件,发现词典文件的编码果然不对劲,都是 CP936,于是使用 iconv
将文件编码转换为 UTF-8,乱码问题解决。
我将转换好编码的词典数据,和该软件包的原文件重新打包了,大家可以直接从所附链接下载安装。
该词典的查词程序是用 LISP 编写的,故和传说中的 Emacs 有关系了,程序注释里有如下内容,大家可仿照着与 Emacs 共同使用。
;; Configuration: ;; add following code to your ~/.emacs file ;; (add-to-list 'load-path "<oxford installation directory>") ;; (require 'oxford) ;; How to use: ;; M-x oxford Searching for a word ;; M-x oxford-mode Enable oxford minor mode, ;; type C-h f oxford-mode see more help
FreeBSD 下配置鼠标的灵敏度和速度
我使用的是 ThinkPad X200, 平时基本不用外接鼠标,很依赖键盘和“小红点”,在 Windows 下,联想提供 TrackPoint 的驱动程序,里面可以设置“灵敏度”,鼠标移动速度也可以方便调节。另外在 Linux 下,也可以方便地通过改变 /sys/devices/platform/i8024/serio1/
目录(这是我的 X200 的目录,您的可能会有不同)下的 sensitivity, speed
文件里的值来设置“灵敏度”和“速度”,还可以将 press_to_select
文件里的值设为 “1” 来打开“点击‘小红点’代表单击”功能。
在 Linux 下还可以将下面几行命令添加到 /etc/rc.local
文件中以达到自动设置,大家请修改相应的值以适合自己的使用习惯。
# configure the trackpoint echo -n 255 > /sys/devices/platform/i8042/serio1/sensitivity echo -n 200 > /sys/devices/platform/i8042/serio1/speed echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select