2016-06-05更新: 加入 硬件监控 内容


本文讲的是 Ubuntu 桌面。在服务器环境,当然我一直使用的都是 Linux 。公司的服务器是 CenOS ,自己的服务器用 Ubuntu。为了练手,用一台旧 Notebook 装了 ArchLinux 折腾着玩。


2010年,我使用了半年的 Ubuntu 桌面来办公,还写了一个 抛弃 Windows ,用 Ubuntu 办公 系列。经过这半年的测试,我认为,Ubuntu 已经完全可以满足办公的需求。

后来,我抛弃了 Office Boy 的工作,开始程序员生涯,桌面系统重新用回了 Windows 。

接下来的2年多时间里,我主要使用 cygwinMinGW 在 Windows 下工作。

2012年,由于从页游开发转向手游开发,我开始使用 Mac OS X 系统。OS X 与 Linux 同源,因此上手非常快。但由于极其讨厌 Finder 的垃圾设计,自己内心一直抵触使用 OS X 。

2013年,我的主要技术转向 cocos2d-x ,我不得不开始使用 XCode 和 Objective-C ,这样,就必须在 OS X 下工作了。

于是,在公司,我同时使用一台 Mac Mini 和一台 PC 开发。在家里,常用的设备目前是这样的:

  1. 一台 Windows 8 PC
  2. 一台 Windows 7 Notebook
  3. 一台 Windows 8 平板电脑
  4. 一台 Android 平板电脑
  5. 一部 Android 手机
  6. 一部 iPhone 手机
  7. 一部 iPod 设备

以前,对于我来说,必须使用 Windows 主要有这样几个考虑:

  1. 网上银行;
  2. QQ;
  3. 网盘客户端;
  4. Flash。

而现在,前三者都已经可以使用手机 App 替代了,何况我工作之外的时间已经不再使用QQ。而 Flash ? 再见了

另外,即使我的主 PC 不再是 Windows ,碰到必须在 Windows 下面进行的操作(例如Andoid刷机?),也可以借助 Notebook 来进行。Windows 8 平板也能起到作用。

看起来我似乎已经不需要 Windows 了。但由于主系统是 AMD 平台,安装黑苹果十分折腾,也不愿意再折腾原来折腾过的 ArchLinux ,于是就安装了省事的 Ubuntu。

下面记录一些我调整系统的过程。毕竟把系统调整到我的习惯,也是一件麻烦事。

1. 环境

1.1 shell

一直用的是 zsh。这个最简单了,安装 oh-my-zsh 即可,Linux/OS X/cygwin/MinGW 都通用。

1.2 服务管理器

sysv-rc-conf 这个最好用了。

2. 梯子

2.1 shadowsocks

以前在 Ubuntu 上搭建 shadowsocks 是作为服务端,这次则是作为客户端使用。shadowsocks 客户端自己就支持 daemon 模式,加上 -d 参数就可以了:

1
2
3
4
# 启动本地服务器(daemon模式)
sudo sslocal -s your_server_ip -p your_server_port -l your_local_port -k your_password -d start
# 停止本地服务器
sudo sslocal -s your_server_ip -p your_server_port -l your_local_port -k your_password -d stop

当然,也可以先创建一个配置文件 sudo vim /etc/shadowsocks.json

1
2
3
4
5
6
7
8
9
{
"server":"your_server_ip",
"server_port":your_server_port,
"local_port":your_local_port,
"password":"your_password",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":true
}

然后使用配置文件来启动,这就简单许多了:

1
sudo sslocal -c /etc/shadowsocks.json

2.2 supervisor

我更喜欢使用 supervisor 来控制 shadowsocks。先创建一个配置文件:

1
sudo vim /etc/supervisor/conf.d/shadowsocks.conf

内容如下:

1
2
3
4
5
[program:shadowsocks]
command=sslocal -c /etc/shadowsocks.json
autostart=true
startsecs=10
startretries=10

然后重载 supervisor :

1
2
sudo supervisorctl reload
# Restarted supervisord

查看当前的状态,可以看到 shadowsocks 已经在运行了:

1
2
sudo supervisorctl status
# shadowsocks STARTING

2.3 proxychains

如果要在命令行下也使用 shadowsocks ,那么可以借助 proxychains

proxychains 的系统配置文件位于 /etc/proxychains.conf ,为了方便修改,我选择创建一个自己的配置文件,这个配置文件在读取的时候优先于系统配置文件:

1
vim ~/.proxychains/proxychains.conf

内容如下(可以打开系统配置文件进行参考):

1
2
3
4
5
6
7
8
9
10
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
localnet 127.0.0.0/255.0.0.0
quiet_mode

[ProxyList]
socks5 127.0.0.1 your_local_port

然后做个测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
proxychains wget twitter.com

ProxyChains-3.1 (http://proxychains.sf.net)
--2015-04-04 21:18:39-- http://twitter.com/
Resolving twitter.com (twitter.com)... 199.59.148.10
Connecting to twitter.com (twitter.com)|199.59.148.10|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://twitter.com/ [following]
--2015-04-04 21:18:40-- https://twitter.com/
Connecting to twitter.com (twitter.com)|199.59.148.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 59703 (58K) [text/html]
Saving to: ‘index.html’

100%[============================================================>] 59,703 163KB/s in 0.4s

2015-04-04 21:18:42 (163 KB/s) - ‘index.html’ saved [59703/59703]

3. 按键绑定

我习惯把 CapsLocks 变成 Control L 。因为大写锁定键本来就没有什么作用。在Windows下,有许多软件 做这件事,

在 Linux Mint 17 中,键盘的布局设置中,提供了选项来调整键盘布局。

而在 Ubuntu 下,12.04 之前系统设置中就可以互换,之后的版本中,这个功能就消失了。

可以使用这样几种方法来搞定。

3.1 使用 xmodmap

编辑下面的内容,保存为 ~/.xmodmap

1
2
3
remove  Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L

然后在 ~/.zshrc 中加入 xmodmap ~/.xmodmap 即可。

3.2 使用 setxkbmap

这种方法来自于这里: CapsLock Remap Howto

直接在 ~/.zshrc 中加入 setxkbmap -layout us -option ctrl:nocaps 即可。

3.3 问题

上面的两种方法,都有一个很大的缺点,那就是:

  1. 切换 tty 的时候失效;
  2. 屏幕锁定后解锁失效。

虽然失效后可以再次执行上面的命令来恢复,但毕竟太麻烦,下面的几个方法就没有这个问题了。

3.4 XKeyCaps

XKeyCaps 是一个可视化调整键盘映射的软件。具体功能可自行研究。

3.5 gnome-tweak-tool

这个 GUI 软件界面有些 BUG ,但可用。

3.6 dconf

使用 dconf 来永久改变键映射,而且立即生效。

首先可以使用 read 子命令来查看当前的映射:

dconf read /org/gnome/desktop/input-sources/xkb-options

例如我的值就是:

['esperanto:qwerty']

然后可以使用 write 子命令来设置当前的映射,为了避免影响原来的映射,可以把原来的映射的选项加在设置的前面:

dconf write /org/gnome/desktop/input-sources/xkb-options "['esperanto:qwerty','ctrl:nocaps']"

使用 man xkeyboard-config 查看所有的选项。例如,如果只是希望将 CapsLock 与 Control L 互换,则可以使用 ctrl:swapcaps 这个值。

┌──────────────────────────────────────────────┐
│Option            Description                 │
├──────────────────────────────────────────────┤
│ctrl:nocaps       Caps Lock as Ctrl           │
│ctrl:lctrl_meta   Left Ctrl as Meta           │
│ctrl:swapcaps     Swap Ctrl and Caps Lock     │
│ctrl:ac_ctrl      At left of 'A'              │
│ctrl:aa_ctrl      At bottom left              │
│ctrl:rctrl_ralt   Right Ctrl as Right Alt     │
│ctrl:menu_rctrl   Menu as Right Ctrl          │
│ctrl:ctrl_ralt    Right Alt as Right Ctrl     │
│                                              │
└──────────────────────────────────────────────┘

4. 应用软件

麒麟 操作系统的生态圈开发了许多软件,在 Ubuntu 下直接可用。

  • 快盘
  • 农历
  • filefox 地址栏点击全选网页地址
    进入 `about:config` 设置 `browser.urlbar.clickSelectsAll` 的值即可。
    

5. wine 中文乱码

有个 Windows 软件我是必须要使用的,那就是用了10年的 Acemoney ,这个软件仅有 Windows 版本。这种情况,就只能上 wine 了。

首先加入 ppa 的源,安装最新的 wine1.7

1
2
3
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

wine 中的中文软件界面一如既往地出现了乱码,在注册表中替换字体都没用。 Wine的中文显示与字体设置 中提到的一句话启发了我:

注意字无法显示和显示为乱码是不同的症状,如果看到乱码,请确保系统语言和运行Wine时的语言环境一致。如果有汉字丢失或显示为方框,请继续阅读本文。

而我的软件界面中似乎每个字符都可以显示,而我的语言环境的确设置的是 en_us.UTF-8 ,这和 Acemoney 中显示的中文是不一样的。因为 ubuntu 在英文环境下可以正常显示中文,因此我就没有将系统设置成中文界面。再说了,git 的提示等信息,看中文还的确怪不习惯的。

于是将系统语言改为中文,重新登出一次,Wine中的中文就显示正常了。

「手把手」告別你的Wine中文亂碼-Wine二部曲 一文也是比较靠谱的,可以参考。

6. 输入法

自带的 Pinyin 就已经很好用了,支持双拼,且支持自定义词组,输入时间和日期都非常方便。

唯一不爽的是,rq 输出的日期是类似于 2015-4-6 这种形式,而我需要 2015-04-06 这种形式。这只需要编辑自定义词组即可。编辑完后,使用下面的代码重启 ibus 即可使用:

1
2
killall ibus-daemon
ibus-daemon -d

7. 配置工具

除了上面提到的 gnome-tweak-tool 之外,还有几个配置工具是可以用的:

8. 硬件监控

使用 Psensor 来监控CPU和主板温度。首先安装 lm-sensors

1
sudo apt-get install lm-sensors

然后运行:

1
sudo sensors-detect

这会询问一堆问题,直接使用默认的回答(回车)即可。然后运行 sudo sensors 可以看到数据(下面是我的电脑):

1
2
3
4
5
6
7
8
radeon-pci-0008
Adapter: PCI adapter
temp1: +24.0°C (crit = +120.0°C, hyst = +90.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1: +39.6°C (high = +70.0°C)
(crit = +70.0°C, hyst = +69.0°C)

接下来安装 Psensor ,配置一下就能显示出界面了。

1
sudo apt-get install psensor

Psensor

硬盘温度的检测,需要安装 hddtemp

1
sudo apt-get install lm-sensors hddtemp

然后使用下面的命令查看硬盘温度:

1
2
3
4
5
sudo hddtemp SATA:/dev/sda          
# /dev/sda: ADATA SP600: 36°C

sudo hddtemp SATA:/dev/sdb
# /dev/sdb: WDC WD10EARS-00Y5B1: 41°C

9. 其它

留言

2015-04-04
次访问