Ubuntu应用

本文更新于 2018.04.15

14.04更换阿里云源

步骤:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo vim /etc/apt/sources.list #修改
sudo apt-get update #更新列表

阿里云源(sources.list内容):

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

安装YouCompleteMe插件

在Ubuntu14.04及以上, 不需要按YCM官方那样下载或编译, 只需简单用源里的即可:

sudo apt-get install vim-addon-manager
sudo apt-get install vim-youcompleteme
vim-addons install youcompleteme

隔离某些cpu核心

某些机器(比如服务器)有多个CPU, 每个CPU有多个核心(这里指逻辑核心lcore).如果在这些机器上运行一些性能攸关的多核程序, 就需要把用到的cpu核心隔离起来, 以防被系统调度到.

  1. vim /etc/default/grub

    修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash isolcpus=1,2,3,4,7,8,9,10,11,13,14,15,18,19,20,21,22,23”

    其中, 1,2,3,4,7,8,9,10,11,13,14,15,18,19,20,21,22,23是要隔离的cpu核心编号

  2. update-grub

  3. 重新启动

VMware Workstation中的Ubuntu Server虚拟机重启后共享文件夹消失

前提:已经安装好VMware Tools, 且宿主机Win7上已经设置好了共享文件夹, 并设置为“总是启用”, 但是重启后共享文件夹看不到了, 即/mnt/hgfs下没有任何内容.

重新执行脚本vmware-config-tools.pl可以解决这个问题, 但这个脚本的执行过程需要挺长时间; 执行 sudo service open-vm-tools restart , 也可以解决问题, 但每次输入这个命令, 很麻烦, 可以将此命令加到 /etc/rc.local 中(不加sudo).

Cannot set LC_CTYPE to default locale: No such file or directory

安装Ubuntu Server版本(不带桌面环境)时, 如果安装时的语言选择了中文, 发现在字符界面很多命令的输出结果中包含菱形方块乱码.我们可以修改 /etc/default/locale 文件把中文环境改为英文环境, 来解决这个问题, 方法是把关键的

LANG=”zh_CN.UTF-8”
LANGUAGE=”zh_CN:zh:en_US:en”

改为

LANG=”en_US.UTF-8”
LANGUAGE=”en_US:en”

其余项中包含zh_CN的也替换为en_US.如果此时重启或重新登录系统, 会发现运行locale等命令时会提示以下错误:”Cannot set LC_CTYPE to default locale: No such file or directory” 我们需要回过头来检查 /etc/default/locale 中的设置, 确认其中设置的en_US.UTF-8和en_US都已生成locale文件.比如我们要生成 en_US:sudo locale-gen en_US

生成成功后, 重新登录系统, 就不会出现上述问题了.

man文档不全

在ubuntu系统下, 使用man查看一些指令是, 有时候会得不到相应的帮助信息. 这并不是说查看的命令不存在, 而是ubuntu系统的man指令的相关内容不存在.

比如今天(2014.01.28)我在man sigwait的时候, 就找不到相关的文档. 解决这个问题的办法是安装相应的库, 在系统上把下面几个安装上就可解决问题了. 下面的文件可能版本稍有区别, 但大同小异:

manpages
manpages-dev
libstdc++6-4.3-doc
manpages-posix
manpages-posix-dev

如果有需要看中文手册的, 留意一下zh打头的, 安装好后就可以看中文了.

命令示例:

# 安装sigwait函数所在的man文档
sudo apt-get install manpages-posix-dev

修改系统对消息队列的默认限制

sudo vi /etc/sysctl.conf 增加:

#mqueue max
fs.mqueue.msg_max=1000
fs.mqueue.msgsize_max=8192
fs.mqueue.queues_max=255

保存, 重启系统就已经修改过了.