Skip to content

让我们来谈谈分工

昨天,我看到一个新闻——雅虎取消了QA团队,工程师必须自己负责代码质量,并使用持续集成代替QA。 同时,也听到 […]

Read more

OpenBSD上doas用法简介

doas是OpenBSD 5.8上开始出现的一个程序,用来代替sudo。相比sudo,它的好处是配置简单明了。坏处嘛我还不知道,估计功能上没有sudo那么全面吧。因为我都是用sudo的一些基本功能(指定那些用户可以切换到root),所以对sudo的优势了解并不全面。另外就是,doas的配置完全不兼容sudo,且目前只有OpenBSD上才有。 doas的配置文件是/etc/doas.conf,配置规则如下 permit|deny [options] identity [as target] [cmd command [args …]] 一个规则以permit(允许)或deny(拒绝)开头,  接下来是一些选项(options,非必须),然后是配置的用户名或用户组(identity部分),再接下来是这个用户(identity部分)可以(或不允许)以哪个用户(target)的身份来执行命令,用as关键词来表示。这也是可选的。如果省略,表示这个用户(identity)可以以任意用户的身份执行后面cmd关键词指定的命令;   cmd关键词用来指定允许(或拒绝)的命令,args关键词用来指定命令的参数; cmd 和args都是可选的。省略的话表示任意命令和参数。 选项(options)部分有一下两个选择: a. nopass , 表示用户无需输入密码 b. keepenv  { [ variables … ] },表示用户的使用环境将会被保持,如果不指定的话,默认是会重置的(除了这些变量: DISPLAY, HOME, LOGNAME, MAIL, PATH, TERM, USER and USERNAME.)。keepenv还可以指定具体那些变量被保持。将需要保持的变量名称放在大括号中,多个时以空格分开。…

Read more

OpenBSD上的服务管理程序rcctl

rcctl 是OpenBSD系统上的后台进程(daemon)管理程序,功能上类似于以前redhat Linux上的chkconfig或新版中的systemctl。 它其实是一个shell脚本程序,最早见于OpenBSD 5.7。需要有root权限才可以使用。 它的原理主要是通过在/etc/rc.conf.local文件中设置相应进程的配置来完成。被管理的进程需要在/etc/rc.d/目录下有相应的控制脚本文件。 主要功能及示例 (下面的内容主要是根据rcctl的man手册翻译而来,我再加上一些范例。愿意的朋友可以自己阅读man手册) 启用或禁用后台进程(包括系统自带进程如httpd以及通过软件包安装的进程如mysqld/nginx等,下同) rcctl enable httpd ## 启用 rcctl disable httpd ## 禁用 启动或停止后台进程 rcctl start httpd rcctl stop httpd 也可以根据需要传入 -d (开启debug)或 -f (强制)参数 列出进程相关的参数 # rcctl get httpd httpd_class=daemon httpd_flags= httpd_timeout=30 httpd_user=root…

Read more

更改键盘映射

我的Thinkpad X20E的回车键坏掉了,但是手头很紧,不想换键盘,而且也不常用,干脆就把回车键映射到其它的键上吧。 考虑了一番,大写键(CapsLock)就是这次的牺牲品了。 当然,目前这台计算机运行的(还)是DragonFlyBSD 4.2。 下面要开始实施计划。当然,你还需要一个外接的键盘。 由于控制台(console)界面下和X(图形界面)下键映射的负责程序不同,需要分别来做。 1. 命令行下 根据网络搜索结果和命令手册,命令行下键的映射由kbdcontrol程序来控制。 首先,导出目前键盘映射表到一个文件(需要在控制台界面下操作,SSH不行(?)): kbdcontrol -d > /root/no_enter.map 然后编辑此文件。我的键盘映射表中,大写键编码为058 (找文件的2-8列中clock对应的编码)。 然后将058那一行的第二列的clock改为cr(Carriage Return)。参看下面我修改过的文件。 第一个带有#的058的行是kbdcontrol命令导出的数据,被我注释掉了。 [acheng@violet ~]$ cat /root/no_enter.map # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt…

Read more

DragonFlyBSD 4.2与radeon HDMI

我的Thinkpad X120E上安装的是DragonFlyBSD 4.2.3,当通过内置的HDMI连接到我的坚果家用投影仪上来播放电影时,声音却依然通过电脑自己的音响来播放。 折腾了半天,才知道DragonflyBSD上默认不启用HDMI的声音播放功能。还需要自己重新编译内核。 需要改动的文件为(假定源文件是放在/usr/src目录下):/usr/src/sys/dev/drm2/radeon/radeon_drv.c 需要的改动: 将 int radeon_audio=0中的0改为1(意为启用radeon的声音输出功能) 然后: cd /usr/src make clean make buildkernel make installkernel 然后在/etc/sysctl.conf文件中加入下面一行: hw.snd.default_unit=0 然后重启即可。 当需要临时使用计算机内置音响时,可以使用下面的命令切换: sysctl hw.snd.default_unit=1 本文参考了: http://www.freebsdwiki.net/index.php/Hardware_Configuration,_Audio/Video

Read more

DragonflyBSD – 配置有线网卡

在DragonflyBSD 4.2上,网卡的配置是写在/etc/rc.conf文件里面的。 比如要为某个网卡(我这里是re0)配置为使用dhcp获取ip地址,那么在rc.conf文件里写上这么一行即可: ifconfig_re0=”DHCP” 如果你不知道接口的名称,可以使用“ifconfig -a”命令查看: [acheng@violet ~]$ ifconfig -a re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING> inet6 fe80::ea9a:8fff:fe12:e1fd%re0 prefixlen 64 scopeid 0x1 inet 192.168.3.18 netmask 0xffffff00 broadcast 192.168.3.255 ether e8:9a:8f:12:e1:fd media: Ethernet autoselect (100baseTX <full-duplex>) status: active faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500…

Read more

find命令的几个实用范例

今天在网上看到了几个find命令的实战用法,觉得很不错。这里分享一下。 1. 查看当前目录下(包括子目录;find后面的那个点表示当前目录)共有多少个文件: $ find . -type f | wc -l 187534 2. 查看当前目录下(包括子目录)最新或最老的文件: # 最老的文件 $ find -type f -printf ‘%T+ %p\n’ | sort | head -n 1 2006-02-03+02:40:33 ./skel/.xemacs/init.el # 最新的文件 $ find -type f -printf ‘%T+ %p\n’…

Read more

Fish Shell和其他SHELL的差异

抽空看了一下Fish Shell的文档,发现它和其他shell的差别主要是增强或增加了一些方便用户的特性。主要表现在: 1.增强了TAB键自动补齐功能 会根据路径、文件名自动补齐,SHELL变量,常见命令、函数等 还可以使用complete命令为特定命令自定义补齐 2. 增加了自动建议 输入命令时,fish shell会根据$PATH变量的配置,命令行历史以及自动补齐功能提供自动建议(以灰色显示) 可以使用右箭头或ctrl+F接受自动建议 3. 改变了重定向标准错误的方式,使用^而非通用的 ‘2 > $file’: ^ filename  (或 ^^ filename) 4. 自动加载函数的方式 5. 命令行语法高亮显示 当然还有其他的一些不同,目前还没有感觉到方便或者不便: a. 配置文件的名称和位置: ~/.config/fish/config.fish 或全局配置文件: /usr/share/fish/config.fish /etc/fish/config.fish b. 设置变量的方式: 要设置变量smurf_color 的值为blue, 用: set smurf_color blue c….

Read more
Sidebar