I had similar problem. Quick solution is :
ulimit -n 4096
explanation is as follows - each server connection is a file descriptor. In CentOS, Redhat and Fedora, probably others, file user limit is 1024 - no idea why. It can be easily seen when you type: ulimit -n
Note this has no much relation to system max files (/proc/sys/fs/file-max).
In my case it was problem with Redis, so I did:
ulimit -n 4096 redis-server -c xxxx
in your case instead of redis, you need to start your server.
----------------------------------------------------------------------------------------------------
对于桌面用户来讲Q若是了解一部分Linux命oQ你可以更好的用LinuxQ体验它的魅力,下面列DZ一些:
想看看你的Shell是哪一U,执行下面的命?/span>
1 | echo $SHELL |
1 | command -option file |
1 | ls -la |
1 | ls -la | more |
你会在屏q上看到如下信息Q?/span>
1 | ls -l a* |
1 | ls a? cd |
q条命o会列出所有以写a开头隔一个未知字W以写cdl尾的所有文件。例如adcdQaxcdQ但是不会列出adfdcdQ也不会列出axcd.txt?/span>
1 | man ls |
1 | grep foo /etc/ passwd |
1 | grep -i "foo" /etc/ passwd |
1 | grep -r "foo" /home/sjvn |
1 | ls -la | grep foo* |
1 | ps -ef | grep firefox |
1 | kill -9 1234 |
1 | kill 1234 |
1 | cp fred.txt ethel.txt |
1 | cp fred.txt /home/sjvn/docs/fred.txt |
1 | cp *.txt /home/sjvn/docs/ |
1 | cp -r /home/sjvn/docs/* /home/sjvn/backup |
1 | mv fred.txt ethel.txt |
1 | rm fred.txt |
1 | rm -i fred.txt |
uname: uname -a命o用一行简短的l你ȝ的电脑的基本信息。这通常包括你的电脑名称QLinux内核版本Q你的发行版名称{?/span>
1 | cat /proc/cpuinfo |
1 | cat /proc/version |
1 | cat /etc/ printcap |
1 | set | more : set | more |
1 | echo $PATH |
如果你想学习更多的关于LInuxQ推荐你去LinuxCommand.org或者看一看Linux in a Nutshell。如果你惛_成一个Linux shell~程的大事,推荐你去学习卡梅伦纽汉姆?Learning the bash Shell ?/span>
~译Q?/p>
ҎAQg++ -I/usr/local/include/boost/ test.cpp -o test /usr/local/lib/ -lboost_thread.a -lboost_system.a -lpthread
ҎBQg++ -I/usr/local/include/boost/ test.cpp -o test -L/usr/local/lib/ -lboost_thread -lboost_system -lpthread
Linux上安装用boost入门指导
获得boost
boost分布
只需要头文g的库
使用boost建立一个简单的E序
准备使用boost二进制文件库
把你的程序链接到boost?/p>
1.获得boost
下蝲boost_1_46_1.tar.bz2
解压
2.boost分布
boost_1_46_1.........................boost根目?/p>
boost/.....................................所有boost头文?/p>
libs/........................................Tests,.cpps,docs{的库文?/p>
注意Q?/p>
Q?Qboost根目录(通常?usr/local/boost_1_46_1Q想?BOOST_ROOT变量?/p>
Q?Q编译程序时如果用到boost库,需要指定头文g路径-I$BOOST_ROOT
Q?Q因为所有头文g都在boost文g夹下Qƈ且头文g都是hpp后缀Q所#include形如Q?/p>
#include <boost/whaever.hpp>
3.只需要头文g的库
l大多数的boost库都是header-noly的:它们完全由包含模板和inline函数的头文gl成Q不需要单独编译和二进制库文gQ也不需要链接时特别对待?/p>
只有下面的boost库必需单独built:
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.MPI
Boost.ProgramOptions
Boost.Python (see the Boost.Python build documentation before building and installing it)
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Wave
下面q些单独built是可选(optionalQ的Q
Boost.DateTime Boost.Graph Boost.Math Boost.Random Boost.Test
4.使用boost建立单的E序
下面的程?example.cc)只用到header-only库。它是从标准输入中读入一串整敎ͼ使用Boost.Lambda每个C?后输出?/p>
view sourceprint?
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
}
~译Qg++ -I$BOOST_ROOT example.cc -o example
q行Qecho 1 2 3 | ./example
5.准备使用boost二进制库
如果你的E序用到需要单独编译的boost库,你需要首先获得这些二q制库文件?/p>
5.1~译安装所有二q制库文?/p>
cd $BOOST_ROOT
./bootstrap.sh --help
./bootstrap.sh --prefix=/usr/local ##其实默认情况下prefix的值就?usr/local
此时生成了bjam可执行文Ӟq个东西是用来~译boost库的?/p>
./bjam install
5.2仅安装指定的二进制库文g
下面均用系l默认的~译器,即Linux上的gcc?/p>
5.2.1安装Boost.build
Boost.Build是一个用于开发、测试、安装Y件的Z文本的系l。Boost.Build的生成安装步骤:
Q?Qcd $BOOST_ROOT/tools/build/v2
Q?Q?/bootstrap.sh
Q?Q?/bjam install --prefix=/usr/local/ ##prefix是Boost.Build安装位置
Q?Q把prefix/bin攑ֈPATH中 ##当然/usr/local/bin已经PATH中了
5.2.2调用bjam时不指定toolset则用系l默认的~译器。如果你的Linux上装了不同版本的gccQ则使用toolset选项时可以指定版本号Qtoolset=gcc-4.4
5.2.3指定build路径Q通过--build-dir=/path选项Q不指定旉认在当前路径下创建bin.v2文g夹,把生成的文g攑֜其内?/p>
5.2.4调用bjam
cd $BOOST_ROOT
bjam --build-dir=./build-boost toolset=gcc stage
上面的命令将创徏static and shared non-debug multi-threaded variants of the libraries.如果要徏立所有的variantsQ请使用"--build-type=complete"选项?/p>
所有的boost二进制库文g放在stage/lib/下,如果你要另外指定路径Q请使用“--stagedir=directory"选项?/p>
注意省build旉Q你可能需要少build一些库文gQ?/p>
查看库文件名U --show-libraries
限制build哪些库 --with-libraryname或?-without-libraryname
选择特定的build variant adding release or debug to the command line
友情提示QBoost.Build会生成很多报告输出,如果你能保证建立q程不出错误Q你可以止q些输出以节省时间。方法:在命令后q加”>build.log 2>&1"
6.把你的程序链接到boost?/p>
下面的程序是从邮件中抽取“主题”内容Q它用到了Boost.Regex库,q个库是需要单独编译的?/p>
view sourceprint?
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
~译Q?/p>
ҎAQg++ -I$BOOST_ROOT example.cc -o example $BOOST_ROOT/stage/lib/ -lboost_regex.a
ҎBQg++ -I$BOOST_ROOT example.cc -o example -L$BOOST_ROOT/stage/lib/ -lboost_regex
当你要用多个库源于一个\径时使用ҎBq力了Qpaid offQ。注意到ҎB中ƈ没有指定.aQ静态库Q还?soQ动态库Q,pȝ自动地帮你选择使用静态库q是动态库Q当然你可以通过选项“-static"昄地指定?/p>
6.1库文件的命名方式
拿libboost_regex-gcc34-mt-d-1_36来说Q?/p>
lib....................................通用前缀
boost_regex.....................库名
gcc34...............................~译时用的toolset是gcc-3.4
mt...................................~译时是支持多线E的
d/s/g/y/p..........................ABI tag
1_36................................Tag version
6.2q行我们的程?/p>
首先新徏一个文本文件mail.txt
view sourceprint?
To: George Shmidlap
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
---
See subject.
如果我们的程序链接到了一个共享动态库Q我们需要让pȝ知道到哪儿去加蝲它。请看我的~/.bashrc文gQ?/p>
view sourceprint?
#boost
export BOOST_ROOT="/usr/local/boost_1_46_1"
export LD_LIBRARY_PATH="/usr/local/boost_1_46_1/stage/lib:$LD_LIBRARY_PATH"
q行E序Q?/example < mail.txt
应该输出
view sourceprint?
Will Success Spoil Rock Hunter?
chmod 777 * -RQ这个不能更攚w藏文件夹?
chmod 777 -R | ls -al -RQ用q个Q也不能更改隐藏文g夏V?br /> 用怎么用,才能把子目录下的隐藏文g夹的权限也更改?for file in `find . -print`
do
chmod 777 -R $file
done
q叫一个郁闷啊Q出师不利,不带q么吓唬刚玩Ubuntu的小朋友吧~于是赶紧找资料,又回下前面的操作,最后发现问题出在执行sudo apt-get install之前更换了Y件源Q但是却忘了update?/span>了,于是执行下面的命令:
{上面命令执行完后,再执行sudo apt-get install可以了Q其实错误信息已l很明确了,Unable to locate packet是无法扑ֈ包嘛Q那q不赶紧sudo apt-get update下!
Linux是一个多用户多Q务的操作pȝ。多用户是指多个用户可以在同一旉使用?机pȝQ多d是指Linux可以同时执行几个dQ?br />它可以在q未执行完一个Q务时?执行另一Q务? 操作pȝ理多个用户的请求和多个d。大多数pȝ都只有一个CPU和一个主存,
但一个系l可能有多个二存储盘和多个输?输出讑֤。操作系l管理这些资源ƈ?多个用户间共享资源,当您提出一个请求时Q给您造成一U假象,
好象pȝ只被您独自占 用。而实际上操作pȝ监控着一个等待执行的d队列Q这些Q务包括用?strong style="color:black;background-color:#A0FFFF">作业、操作系 lQ务、邮件和打印作业{?br />操作pȝҎ每个d的优先为每个Q务分配合适的旉 片,每个旉片大U都有零点几U,虽然看v来很短,但实际上已经_计算机完成成?
上万的指令集。每个Q务都会被pȝq行一D|_然后挂vQ系l{而处理其他Q务; q一D|间以后再回来处理q个dQ直到某个Q务完成,
从Q务队列中去除? Linuxpȝ上所有运行的东西都可以称之ؓ一?strong style="color:black;background-color:#ff9999">q程。每个用户Q务、每个系l管?守护q程Q都可以UC?strong style="color:black;background-color:#ff9999">q程?br />Linux用分时管理方法所有的d共同分npȝ资源?我们讨论q程的时候,不会d心这?strong style="color:black;background-color:#ff9999">q程I竟是如何分配的Q或者是内核如何理分配
旉片的Q我们所兛_的是如何L制这?strong style="color:black;background-color:#ff9999">q程Q让它们能够很好Cؓ用户服务? q程的一个比较正式的定义是:在自w的虚拟地址I间q行的一?br />单独的程序。进 E?a name="baidusnap2">?/strong>E序是有区别的,q程不是E序Q虽然它q序生。程序只是一个静态的指o集合 Q不占系l的q行资源Q?strong style="color:black;background-color:#ff9999">q程是一个随旉
可能发生变化的、动态的、用系l运行资 源的E序。而且一个程序可以启动多?strong style="color:black;background-color:#ff9999">q程? Linux操作pȝ包括三种不同cd?strong style="color:black;background-color:#ff9999">q程Q每U?strong style="color:black;background-color:#ff9999">q程都有自己
的特点和属性。 交互q程——׃个shell启动?strong style="color:black;background-color:#ff9999">q程。交?strong style="color:black;background-color:#ff9999">q程既可以在前台q行Q也可以在后台运?批处?strong style="color:black;background-color:#ff9999">q程——q种q程和终端没有联p,
是一?strong style="color:black;background-color:#ff9999">q程序列 监控q程Q也U守?strong style="color:black;background-color:#ff9999">q程Q?#8212;—Linuxpȝ启动时启动的q程Qƈ在后台运行? 上述三种q程各有各的作用Q用场合也有所
不同? q程?strong style="color:black;background-color:#A0FFFF">作业的概念也有区别。一个正在执行的q程UCؓ一?strong style="color:black;background-color:#A0FFFF">作业Q而且作业可以?含一个或多个q程Q尤其是当用了道和重定向命o?br />例如“nroff -man ps.1|grep kill|more”q个作业同时启动了三个q程? 作业控制指的是控制正在运行的q程的行为。比如,用户可以挂v一?br />q程Q等一 会儿再l执行该q程。shell记录所有启动的q程情况Q在每个q程q程中,用户?以Q意地挂vq程或重新启?strong style="color:black;background-color:#ff9999">q程?strong style="color:black;background-color:#A0FFFF">作业控制是许
多shellQ包括bash和tcshQ的一个特 性,使用戯在多个独?strong style="color:black;background-color:#A0FFFF">作业间进行切换? 一般而言Q?strong style="color:black;background-color:#ff9999">q程?/strong>作业控制相关联时Q才被称?strong style="color:black;background-color:#A0FFFF">作业?
在大多数情况下,用户在同一旉只运行一?strong style="color:black;background-color:#A0FFFF">作业Q即它们最后向shell键入的命?。但是?strong style="color:black;background-color:#A0FFFF">作业控制Q用户可以同时运行多?strong style="color:black;background-color:#A0FFFF">作业Qƈ在需要时?br />q些作业间进行切换?q会有什么用途呢Q例如,当用L辑一个文本文Ӟq要中止编辑做其他事情Ӟ??strong style="color:black;background-color:#A0FFFF">作业控制Q用户可以让~辑器暂
时挂Pq回shell提示W开始做其他的事情。其他事 情做完以后,用户可以重新启动挂v的编辑器Q返回到刚才中止的地方,p用户从来?有离开
~辑器一栗这只是一个例子,作业控制q有许多其他实际的用途?br />
GCC 有超q?00个的~译选项可用. q些选项中的许多你可能永q都不会用到, 但一些主要的选项会频繁用到. 很多?GCC 选项包括一个以上的字符. 因此你必Mؓ每个选项指定各自的连字符, q且p大多?Linux 命o一样你不能在一个单独的q字W后跟一l选项. 例如, 下面的两个命令是不同?
gcc -p -g test.c
gcc -pg test.c
W一条命令告?GCC ~译 test.c 时ؓ prof 命o建立剖析(profile)信息q且把调试信息加入到可执行的文g? W二条命令只告诉 GCC ?gprof 命o建立剖析信息.
|
|
|
|
输入法切换用ctrl+shift
Ubuntu自带的输入法不太如人意思,用v来也不方便,我在Ubuntu和FC中都是用FcitxQ很好用Q?/p>
安装配置如下Q?
1. 安装 fcitx
sudo apt-get install fcitx
2. 配置默认输入法ؓ fcitx
im-switch -s fcitx // 注意无须?sudo
3. 重启 x-window
重启之后Qfcitx 输入法应当正常启动,输入条将昄在屏q最上面Q不q输入框中文昄可能?“口口”Q需要小的改动?/p>
4. 修改配置文g
gedit ~/.fcitx/config
//如果没有配置gedit 支持GB18030~码Q打开后文件会是ؕ码(此处针对9.10前版本,9.10无需配置已支持)
修改如下几项Q?/p>
昄字体(?=YaHei Consolas Hybrid //主要是看你的OpenOffice中有什么字体,加进来就?/strong>?br />
Enter键行?1 # =1表示回R时清除输入框中输入的内容Q随个h喜好讄
上一?, # 使用 , . 页Q随个h喜好讄
下一?.
[输入法]
使用拼音=0
拼音名称=拼音
使用双拼=0
双拼名称=双拼
默认双拼Ҏ=自然?/p>
使用Z=0
Z名称=Z
使用码表=1
提示词库中的词组=1
其他输入?
5. 修改码表文g
sudo gedit /usr/share/fcitx/data/tables.conf
׃五笔拼音已经完全够用Q其它输入法没必要出现了,文g中只需留下如下内容Q其它配|段可以清除或注释掉?/p>
[码表]
名称=五笔拼音
码表=wbpy.mb
调频=2
拼音=1
拼音?z
自动上屏=-1
I码自动上屏=-1
自动词组=1
_匚w=0
提示~码=0
6、重?x-window
重启 x-window 之后Q小企鹅输入法中文显C将完全正常Q且只有“五笔拼音”Q免M在多个输入法中来回切换的ȝ?/p>
NoteQ?Restart 后小企鹅面板不是最上面Q我们也以用[Ctrl+Alt+h]来把它调上来?/strong>
代码: |
man -a printf |
代码: |
man 1 printf man 3 printf |
代码: |
gcc xxx.c |
代码: |
./xxx.out |
代码: |
gcc --help |
代码: |
man gcc |