ubuntu 安装 Fcitx/搜狗 输入法

卸载系统已经安装的ibus sudo apt-get purge ibus ibus-* 添加fcitx作者的源 sudo add-apt-repository ppa:fcitx-team/nightly sudo apt-get update 安装sogou/搜狗输入法引擎 sudo apt-get install fcitx-sogoupinyin (可选)安装google拼音或sun拼音或五笔 sudo apt-get install fcitx-pinyin sudo apt-get install fcitx-googelpinyin sudo apt-get install fcitx-sunpinyin sudo apt-get install fcitx-table fcitx-wubi 重启系统或退出后重登陆 Enjoy Linux and Fcitx…

2015年4月8日 · 1 分钟 · Jid

RHEL 5.x 将光盘指定为YUM服务器

测试了一下,确实是可以将光盘镜像作为yum的安装服务器。对于喜欢用rhel的人还是比较方便的。理论上也可以将在新版本的rhel出来后,用类似方法yum upgrade实现版本更新。 (1) mount -o loop rhel-5-server-dvd.iso /media/rhel (2) vi /etc/yum.repos.d/rhel-local.repo [Cluster] name=Red Hat Enterprise Linux $releasever - $basearch - Cluster baseurl=file:///media/rhel/Cluster enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [ClusterStorage] name=Red Hat Enterprise Linux $releasever - $basearch - ClusterStorage baseurl=file:///media/rhel/ClusterStorage enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [Server] name=Red Hat Enterprise Linux $releasever - $basearch - Server baseurl=file:///media/rhel/Server enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [VT] name=Red Hat Enterprise Linux $releasever - $basearch - VT baseurl=file:///media/rhel/VT enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (3) mkdir -p /var/rhel/{Cluster,ClusterStorage,Server,VT} ...

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

Linux 安装 C++ man pages

本篇介绍在ubuntu上安装C++在线文档(man pages),下篇将介绍C++在线文档的使用。需要注意的一点是:在这里的方法有别于通常的 man func_name,因此需要单独说明,以免安装后也不知道怎么用。 另外,为了达到最好的使用效果,请首先把C的开发文档提前安装上吧,命令: sudo apt-get install update sudo apt-get install manpages-dev glibc-doc 然后安装C++的开发文档,命令通常是 sudo apt-get install libstdc++6-4.4-doc 上面的4.4是gcc的版本,可以是4.2、4.3、4.4, 4.4是最新的。至于软件库中有无4.4,请参见下文的说明,使用命令查询: apt-cache search libstdc++|grep "doc" 以决定安装4.2、4.3或4.4 下面是英文原文: It’s so easy to search for any C related programming functions. All you need is to search the man pages. Take for example, if you want to know more about printf, simply type `$ man 2 printf` But that’s not the case with C++ functions. Every time, you have to go to the web for any doubts related to C++ functions. There are two ways by which you can search for documentation related to C++ functions. Man pages for C++ functions HTML documentation Both of the above are available from a single package. To install C++ documentation `$ sudo apt-get install libstdc++6-4.4-doc` This installs both the man pages and HTML documentation. The HTML documentation is found in the following path:file:///usr/share/doc/libstdc++6-4.4-doc/libstdc++/html/index.html If you are struggling to search C++ man pages, ReferHow to search C++ man pages Now there may be case that when you are referring this article the documentation 6.4.4 version is no longer available. In that case, follow the following steps `$ apt-cache search libstdc++|grep"doc"` libstdc++6-4.4-doc - The GNU Standard C++ Library v3 (documentation files)libstdc++6-4.1-doc - The GNU Standard C++ Library v3 (documentation files)libstdc++6-4.3-doc - The GNU Standard C++ Library v3 (documentation files) Search for the libstdc++ docs as shown above and install the version you want, preferably the latest ones (as shown above) `$ sudo apt-get install libstdc++6-4.4-doc`

2015年3月15日 · 2 分钟 · Jid

Shell编程:bash内部命令

bash命令解释套装程序包含了一些内部命令。内部命令在目录列表时是看不见的,它们由Shell本身提供。常用的内部命令有:echo, eval, exec, export, readonly, read, shift, wait和点(.)。下面简单介绍其命令格式和功能。 1.echo 命令格式:echo arg 功能:在屏幕上显示出由arg指定的字串。 2.eval 命令格式:eval args 功能:当Shell程序执行到eval语句时,Shell读入参数args,并将它们组合成一个新的命令,然后执行。 3.exec 命令格式:exec命令参数 功能:当Shell执行到exec语句时,不会去创建新的子进程,而是转去执行指定的命令,当指定的命令执行完时,该进程(也就是最初的Shell)就终止了,所以Shell程序中exec后面的语句将不再被执行。 4.export 命令格式:export变量名 或:export变量名=变量值 功能:Shell可以用export把它的变量向下带入子Shell,从而让子进程继承父进程中的环境变量。但子Shell不能用export把它的变量向上带入父Shell。 注意:不带任何变量名的export语句将显示出当前所有的export变量。 5.readonly 命令格式:readonly变量名 功能:将一个用户定义的Shell变量标识为不可变。不带任何参数的readonly命令将显示出所有只读的Shell变量。 6.read 命令格式:read变量名表 功能:从标准输入设备读入一行,分解成若干字,赋值给Shell程序内部定义的变量。 7.shift语句 功能:shift语句按如下方式重新命名所有的位置参数变量,即$2成为$1,$3成为$2…在程序中每使用一次shift语句,都使所有的位置参数依次向左移动一个位并使位置参数$#减1,直到减到0为止。 8.wait 功能:使Shell等待在后台启动的所有子进程结束。wait的返回值总是真。 9.exit 功能:退出Shell程序。在exit之后可有选择地指定一个数位作为返回状态。 10.“.”(点) 命令格式:. Shell程序文件名 功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句。

2015年3月12日 · 1 分钟 · Jid

Solaris locale 详解

locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面:看中文,写中文,与 window中文系统的兼容和通信。从实际经验上看来,locale的设定与看中文关系不大,但是与写中文,及window分区的挂载方式有很密切的关系。本人认为就像一个纯英文的Windows能够浏览中文,日文或者意大利文网页一样,你不需要设定locale就可以看中文。那么,为什么要设定 locale呢?什么时候会用到locale呢? 一、为什么要设定locale 正如前面我所讲的,设定locale与你能否浏览中文的网页没有直接的关系,即便你把locale设置成en_US.ISO-8859-1这样一个标准的英文locale你照样可以浏览中文的网页,只要你的系统里面有相应的字符集(这个都不一定需要)和合适的字体(如simsun),浏览器就可以把网页翻译成中文给你看。具体的过程是网络把网页传送到你的机器上之后,浏览器会判断相应的编码的字符集,根据网页采用的字符集,去字体库里面找合适的字体,然后由文字渲染工具把相应的文字在屏幕上显示出来。 在下文本人会偶尔把字符集比喻成密码本,个人觉得对于一些东西比较容易理解,假如你不习惯的话,把全文copy到任何文本编辑器,用字符集替换密码本即可。 那有时候网页显示乱码或者都是方框是怎么回事呢?个人认为,显示乱码是因为设定的字符集不对(或者没有相应的字符集),例如网页是用UTF-8编码的,你非要用GB2312去看,而系统根据GB2312去找字体,然后在屏幕上显示,当然是一堆的乱码,也就是说你用一个错误的密码本去翻译发给你的电报,当然内容那叫一个乱;至于有些时候浏览的网页能显示一部分汉字,但有很多的地方是方框,能够显示汉字说明浏览器已经正确的判断出了网页的编码,并在字体库里面找到了相应的文字,但是并不是每个字体库都包含某个字符集全部的字体的缘故,有些时候会显示不完全,找一个比较全的支持较多字符集的字体就可以了。 既然我能够浏览中文网页,那为什么我还要设定locale呢? 其实你有没有想过这么一个问题,为什么gentoo官方论坛上中文论坛的网页是用UTF-8编码的(虽然大家一直强烈建议用GB2312编码),但是新浪网就是用GB2312编码的呢?而Xorg的官方网页竟然是ISO-8859-15编码的,我没有设定这个locale怎么一样的能浏览呢?这个问题就像是你有所有的密码本,不论某个网站是用什么字符集编码的,你都可以用你手里的密码本把他们翻译过来,但问题是虽然你能浏览中文网页,但是在整个操作系统里面流动的还是英文字符。所以,就像你能听懂英语,也能听懂中文。 最根本的问题是:你不可以写中文。 当你决定要写什么东西的时候,首先要决定的一件事情是用那种语言,对于计算机来说就是你要是用哪一种字符集,你就必须告诉你的linux系统,你想用那一本密码本去写你想要写的东西。知道为什么需要用GB2312字符集去浏览新浪了吧,因为新浪的网页是用GB2312写的。 为了让你的Linux能够输入中文,就需要把系统的locale设定成中文的(严格说来是locale中的语言类别LC_CTYPE ),例如zh_CN.GB2312、zh_CN.GB18030或者zh_CN.UTF-8。很多人都不明白这些古里古怪的表达方式。这个外星表达式规定了什么东西呢?这个问题稍后详述,现在只需要知道,这是locale的表达方式就可以了。 二、到底什么是locale? locale这个单词中文翻译成地区或者地域,其实这个单词包含的意义要宽泛很多。Locale是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。 这个用户环境可以按照所涉及到的文化传统的各个方面分成几个大类,通常包括用户所使用的语言符号及其分类(LC_CTYPE),数字 (LC_NUMERIC),比较和排序习惯(LC_COLLATE),时间显示格式(LC_TIME),货币单位(LC_MONETARY),信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES),姓名书写方式(LC_NAME),地址书写方式(LC_ADDRESS),电话号码书写方式 (LC_TELEPHONE),度量衡表达方式(LC_MEASUREMENT),默认纸张尺寸大小(LC_PAPER)和locale对自身包含信息的概述(LC_IDENTIFICATION)。 所以说,locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据这几大类的习惯定义的,这些locale定义文件放在/usr/share/i18n/locales目录下面,例如en_US, zh_CN and de_DE@euro都是locale的定义文件,这些文件都是用文本格式书写的,你可以用写字板打开,看看里边的内容,当然出了有限的注释以外,大部分东西可能你都看不懂,因为是用的Unicode的字符索引方式。 对于de_DE@euro的一点说明,@后边是修正项,也就是说你可以看到两个德国的locale: /usr/share/i18n/locales/de_DE@euro /usr/share/i18n/locales/de_DE 打开这两个locale定义,你就会知道它们的差别在于de_DE@euro使用的是欧洲的排序、比较和缩进习惯,而de_DE用的是德国的标准习惯。 上面我们说到了zh_CN.GB18030的前半部分,后半部分是什么呢?大部分Linux用户都知道是系统采用的字符集。 三、什么是字符集? 字符集就是字符,尤其是非英语字符在系统内的编码方式,也就是通常所说的内码,所有的字符集都放在/usr/share/i18n/charmaps,所有的字符集也都是用Unicode编号索引的。 Unicode用统一的编号来索引目前已知的全部的符号。而字符集则是这些符号的编码方式,或者说是在网络传输,计算机内部通信的时候,对于不同字符的表达方式,Unicode是一个静态的概念,字符集是一个动态的概念,是每一个字符传递或传输的具体形式。就像 Unicode编号U59D0是代表姐姐的“姐”字,但是具体的这个字是用两个字节表示,三个字节,还是四个字节表示,是字符集的问题。例如:UTF-8 字符集就是目前流行的对字符的编码方式,UTF-8用一个字节表示常用的拉丁字母,用两个字节表示常用的符号,包括常用的中文字符,用三个表示不常用的字符,用四个字节表示其他的古灵精怪的字符。而GB2312字符集就是用两个字节表示所有的字符。需要提到一点的是Unicode除了用编号索引全部字符以外,本身是用四个字节存储全部字符,这一点在谈到挂载windows分区的时候是非常重要的一个概念。所以说你也可以把Unicode看作是一种字符集(我不知道它和UTF-32的关系,反正UTF-32就是用四个字节表示所有的字符的),但是这样表述符号是非常浪费资源的,因为在计算机世界绝大部分时候用到的是一个字节就可以搞定的 26个字母而已。所以才会有UTF-8,UTF-16等等,要不然大同世界多好,省了这许多麻烦。 四、zh_CN.GB2312到底是在说什么? Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]]. 所以说呢,locale总是和一定的字符集相联系的。下面举几个例子: 1、我说中文,身处中华人民共和国,使用国标2312字符集来表达字符。 zh_CN.GB2312=中文_中华人民共和国+国标2312字符集。 2、我说中文,身处中华人民共和国,使用国标18030字符集来表达字符。 zh_CN.GB18030=中文_中华人民共和国+国标18030字符集。 3、我说中文,身处中华人民共和国台湾省,使用国标Big5字符集来表达字符。 zh_TW.BIG5=中文_台湾.大五码字符集 4、我说英文,身处大不列颠,使用ISO-8859-1字符集来表达字符。 en_GB.ISO-8859-1=英文_大不列颠.ISO-8859-1字符集 5、我说德语,身处德国,使用UTF-8字符集,习惯了欧洲风格。 de_DE.UTF-8@euro=德语_德国.UTF-8字符集@按照欧洲习惯加以修正 注意不是-8,所以完全的locale表达方式是 [语言[_地域][.字符集] [@修正值] 生成的locale放在/usr/lib/locale/目录中,并且每个locale都对应一个文件夹,也就是说创建了-8 locale之后,就生成/usr/lib/locale/de_DE@euro.UTF-8/目录,里面是具体的每个locale的内容。 五、怎样去自定义locale 在gentoo生成locale还是很容易的,首先要在USE里面加入userlocales支持,然后编辑locales.build文件,这个文件用来指示glibc生成locale文件。 很多人不明白每一个条目是什么意思。 其实根据上面的说明现在应该很明确了。 File: /etc/locales.build en_US/ISO-8859-1 en_US.UTF-8/UTF-8 ...

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

Solaris 创建用户

(1) mkdir mkdir -p /export/home/username (2) adduser useradd -s /usr/bin/bash -d /export/home/username username (3) set password passwd username (4) set home chown username /export/home/username (5) check vi /etc/passwd check the last line PS: more useradd usage should see : solaris sysadmin guide and solaris home directories

2015年3月8日 · 1 分钟 · Jid

man : 在线手册页,查询系统命令、库函数帮助

man – format and display the on-line manual pages 常用法: man [section] name 其中: section 指的是手册页的哪个部分,可以是1、2、3…8.,若不指定,man会按照次序依次查找,知道找到第一个。 name 指的是某个命令、函数或文件 下面对section做一些说明: 1 = 命令(比如cp mv rm 等) 2 = 系统调用 (比如openread close 等) 3 = C库函数 (比如printf ) 4 = 设备和特殊文件 5 至 8省略, 详细说明请查看: man man 例子: man cp => man 1 cp, 1通常省略 man open => man 2 open, 但如果用 `man 3 open` 的话就出错:No entry for open in section 3 of the manual man printf 注意:这个不同于 man 3 printf, 因为在用户命令里面也有一个控制格式出错的printf命令,所以优先显示的user command : printf, man 3 printf这个才是真正的查询C库函数里的printf函数 ...

2015年3月6日 · 1 分钟 · Jid

touch : 更新时间戳或创建空文件

touch – change file timestamps(更新时间戳) 用法:touch [option] filename 说明: touch命令主要有两个作用 更新文件的修改时间和访问时间, 若filename指定的文件不存在,则创建空文件 关于touch的option的详细描述请参考在线手册页。

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

UNIX/Linux修改PATH变量

安装完操作系统(UNIX 或 Linux,尤其是Solaris这样的系统)后经常遇到:command not found 的错误提示, 原因:一是需要的程序可能没有安装(安装上就得了),二是程序不在搜索路径里。 如果程序不在搜索路径里,就需要手动修改PAThH,把可执行程序的路径加到PATH系统变量中。 首先,确认一下目前的PATH, 用命令 echo $PATH 然后对缺失的path进行添加。方法如下: 对于Bash: 编辑home下的.bashrc 或.profile 或 .bash_profile,添加代码 export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$HOME/bin 对于Csh: 编辑home下的.cshrc,添加代码 set path=($path /bin /sbin /usr/bin /usr/sbin /usr/local/bin $home/bin)

2015年3月4日 · 1 分钟 · Jid

cygwin安装最新manpages

cygwin自身带的manpages不够全,比如 “man listen” 就没有,所以需要自己手动安装Linux的最新manpages。 下面有两个办法,推荐第一个: <1> 下载并安装到系统中 下载最新的manpages资源 http://www.kernel.org/pub/linux/docs/man-pages/,我下载的版本是3.41 解压都HOME中 make gz ; make install # 即可使用了 <2> 只下载不安装 下载最新的manpages资源http://www.kernel.org/pub/linux/docs/man-pages/,我下载的版本是3.41 解压到目录 %cygwin%\usr\man,%cygwin%就是cygwin的安装目录 在cygwin环境中编辑文件/etc/man.conf,增加一行 MANPATH /usr/man/man-pages-3.41 保存退出。其中上面的数字3.41要根据版本号做修改 重启cygwin环境即可使用。 经过以上步骤,一般的man信息就都可以在本地查找到了(基本上是全部)。

2015年3月2日 · 1 分钟 · Jid