1. ps 监视进程
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10372 696 ? Ss Mar28 0:02 init [3]
root 2 0.0 0.0 0 0 ? S< Mar28 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Mar28 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< Mar28 0:00 [watchdog/0]
PID 进程ID
MEM 内存使用率
VSZ 占用虚拟内存大小
RSS 内存中页的数量(页是管理内存的单位,在PC上通常为4K)
TTY 进程所在终端的ID号
2. top
top -p pid,pid,…
top按1 后,会显示CPU详细内容
3. vi 到最后一行
shift+g
4. 通过端口查询pid
netstat -anp | grep 8001
tcp 0 0 :::8001 :::* LISTEN 1359/java
1359 是PID
5. Sar 进行性能监控
- 查看CPU使用情况
sar 2 5
// 每隔2秒,显示5次,CPU使用的情况
- 查看内存使用情况
sar - r 2 5
// 每隔2秒,显示5次,内存使用的情况
- 查看网络吞吐量
sar - n DEV 2 5
// 每隔2秒,显示5次,网络吞吐量情况
保存为文本:
sar 1 10 > data.txt
// 每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar 1 0 - e 15 : 00 : 00 > data.txt
// 每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为 hh:mm:ss格式)
sar 1 0 - r - e 15 : 00 : 00 > data.txt
// 每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 - n DEV - e 15 : 00 : 00 > data.txt
// 每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
6. 强制kill
看到vim占用cpu到99,然后用ps查询vim
Ps aux|grep vim
然后根据pid 杀死进程
Kill -9 pid
是强制杀死进程
7. 统计端口来路总数
netstat -an | grep 8081 | wc –l
8. 开启网络中断
开启网络中断可通过服务查看irqbalance服务查看状态,如果网络中断分布不均,则可以通过开启或关闭服务进行切换
service irqbalance stop
9. 解压bz2
$bzip2 –d test.tar.bz2
$tar xvf test.tar
解压到执行目录加命令:
-C test_dir
10. Rpm无法应用解决方法
当应用无关联删除rpm -e --allmatches –nodeps popt后,rpm无法应用,所以切记不要随便卸载不清楚地rpm
当卸载popt后,无法应用rpm了,执行rpm会报
Libpopt.so.0不存在,所以我们这时候无法在用rpm安装popt包,那么就下载源码包安装
源码包地址:
http://www.linuxfromscratch.org/blfs/view/6.3/general/popt.html
下载后,我们解压popt1.10.4后
执行:
sed -i -e "/*origOptString ==/c 0)" popt.c &&
./configure --prefix=/usr &&
make
然后检查
make check
然后安装:
make install
安装在执行rpm即又可用了,所以一定要小心啊
11. Vim 统计某个字符出现的次数
%s/the/&/gn
上面的代码是the出现的次数
匹配行数:
%s/^//n
12. 解压tar.bz2
#bzip2 –d xxx.tar.bz2
#tar xvf xxx.tar
13. 编译内核重启后,错误解决方法(linux 2.6.35内核)
mount: could not find filesystem ‘/dev/root’
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic – not syncing: Attempted to kill init!
修改
.config
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_SYSFS_DEPRECATED=y
或者在
Make menuconfig中
选
General setup--> [*] enable deprecated sysfs features to support old userspace tools
14. Linux date 获取时间戳(秒)
date +%s
15. Vi 替换命令
:%s/aaa/ bbb/g 全部替换
:s/aaa/bbb/ 替换当前行
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
按指定行替换
:startline,endline s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
例:
:1,3 s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
aaa是被替换内容
bbb 是替换内容
16. vim 代码自动补全
ctrl+p
光标可以上下移动
17. Vi添加行号
:set nu
18. Vi 设置缩进
set softtabstop=2
19. vi 批量注释
批量注释:
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式输入注释符号如// 或 #,输入完毕之后,Vim会自动将你选中的所有行首都加上注释
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释
20. Vi 剪切和复制
用v选中文本之后可以按y进行复制,如果按d就表示剪切,之后按p进行粘贴。
21. 更改系统语言为英文
export LANG="en_US"
22. 删除乱码文件或文件夹
首先,ls –li查看索引节点
[root@BP-28-xxxx tools]# ls -li
×Ü¼Æ 119644
85458947 drwxr-xr-x 8 1000 1000 4096 06-18 19:22 jdws-1.0
85458946 -rw-r--r-- 1 root root 612267 06-18 19:21 jdws-1.0.tar.gz
85491713 drwxrwxr-x 24 root root 4096 06-26 21:38 linux-2.6.35.13
85459795 -rw-r--r-- 1 root root 69335593 06-20 11:41 linux-2.6.35.13.tar.bz2
85459319 drwxr-xr-x 7 1169 1169 4096 06-18 19:25 pcre-8.10
85459318 -rw-r--r-- 1 root root 1285776 06-18 19:24 pcre-8.10.tar.gz.gz
85459796 -rwxr--r-- 1 root root 426 06-26 01:01 realserver
85983233 drwxr-xr-x 2 root root 4096 07-09 17:26 search_front_server
85459798 -rw-r--r-- 1 root root 51113771 07-09 17:42 search_front_server.zip
85954225 drwxr-xr-x 2 root root 4096 07-09 17:26 -?-¸WEB+À¥¦¦?¢¿
然后找到85954225
执行命令:
find ./ -inum 85954225 -print -exec rm {} -rf \;
之后就可以删除乱码文件或者文件夹了
23. Rpm 强制安装
后面加上 --nodeps –force即可
例:
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm --nodeps –force
24. linux php安装
首先安装:
rpm -ivh libjpeg-6b-37.x86_64.rpm
rpm -ivh libjpeg-devel-6b-37.x86_64.rpm
rpm -ivh libjpeg-6b-37.i386.rpm
rpm -ivh libjpeg-devel-6b-37.i386.rpm
rpm -ivh libpng-1.2.10-7.1.el5_3.2.i386.rpm
rpm -ivh libpng-1.2.10-7.1.el5_3.2.x86_64.rpm
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.i386.rpm
rpm -ivh libpng-devel-1.2.10-7.1.el5_3.2.x86_64.rpm
如果不能正常安装则进行强制安装
--nodeps –force
然后安装:
tar zxf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/ && ./configure && make && make install && /sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install && make && make install && cd ../../
tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8/ && /sbin/ldconfig
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
./configure && make && make install && cd ../
然后安装或解压mysql
然后:
tar jxvf php-5.3.5.tar.bz2
cd php-5.3.5
./configure '--prefix=/export/servers/php' '--with-mysql=../mysql-5.1.54-linux-x86_64-glibc23/' '--with-config-file-path=/export/servers/php/etc' '--disable-debug' '--enable-ftp' '--enable-inline-optimization' '--enable-magic-quotes' '--enable-mbstring' '--enable-soap' '--enable-safe-mode' '--enable-wddx=shared' '--enable-xml' '--with-gd' '--with-gettext' '--with-regex=system' '--with-zlib-dir=/usr/lib' '--enable-fpm' '--with-jpeg-dir' '--enable-fpm' '--with-fpm-user=www''--with-fpm-group=www' '--enable-shmop' '--with-mcrypt' '--with-mysqli=mysqlnd'
make
sleep 5
make install
//make ZEND_EXTRA_LIBS='-liconv' && make install
cd ..
cp -r -v php-fpm.conf /export/servers/php/etc/
增加扩展:
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/export/servers/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/export/servers/php/bin/php-config --with-eaccelerator-shared-memory --with-eaccelerator-sessions --with-eaccelerator-content-caching
make -j 9&&make -j 9 install
25. php 的fpm 配置端口
在/etc/php-fpm.conf中更改
Listen为
Listen 127.0.0.1:9001
端口可自定
默认是:listen = '/dev/shm/php-fcgi.sock'
26. Php 动态添加模块
首先,进入到php的安装目录下的ext目录,找到指定的模块进入目录,如curl 目录,进入
Cd /export/tools/php/php-5.3.5/ext/curl
进入后,执行php的phpize命令,如php目录是/export/servers/php
那么执行:
/export/servers/php/bin/phpize
执行后在该目录下会生成configure文件
然后执行configure:
./configure --with-curl --with-curlwrappers --with-php-config=/export/servers/php /bin/php-config
然后执行make && makeinstall
执行后,我们去/export/servers/php/lib/php/extensions/no-debug-non-zts-20090626 目录下查看是否有curl.so
然后再ll /export/servers/php/etc/php.ini中加入:
extension=curl.so
然后用
/export/servers/php/bin/php –m
查看是否有curl,如果有就成功了
27. Php报iconv错误解决方法
当make php时报了如下错误:
/export/huzhiguang/bak_tools/nginx+php/php-5.3.5/ext/iconv/iconv.c:337: undefined reference to `libiconv'
配置./configure时
--with-iconv=/usr/local
这样配置上其路径即可
28. Php 增加apache支持
'--with-apxs2=/export/servers/apache2/bin/apxs'
29. You've configured multiple SAPIs to be build解决方法
是 因为在安装php时加入了apache 支持和nginx支持,冲突了,所以,先进行apache安装
'--with-apxs2=/export/servers/apache2/bin/apxs'
然后再进行
'--enable-fpm' '--enable-fastcgi' '--with-fpm-user=www' '--with-fpm-group=www'
Nginx的安装
30. Vi 撤销和恢复
u是撤销你刚才做的动作
ctrl+r 是恢复你刚才撤销的动作
31. Xhprof使用问题总结
当报如下问题的时候:
Warning: fopen(/export/servers/xhprof_logs/4fffc57f6fa9e.xhprof_foo) [function.fopen]: failed to open stream: Permission denied in/export/data/www/search.360buy.com/xhprof_lib/utils/xhprof_runs.php on line 135
这是由于/export/servers/xhprof_logs/目录的权限不足,需要把其他使用人的写权限打开,所以这里可以赋予权限:
Chmod 777 /export/servers/xhprof_logs/
记住最后一项一定要是7
/export/servers/xhprof_logs/这个目录是我们保存xhprof日志的目录,是配置在php.ini 中的
xhprof.output_dir=/export/servers/xhprof_logs
这个路径
当我们要查看xhprof ui的时候,一定要把xhprof_html和xhprof_lib文件夹copy到我们的web 服务的目录下
还有就是这2个目录一定要指定好目录:
include_once $XHPROF_ROOT . "/search.360buy.com/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/search.360buy.com/xhprof_lib/utils/xhprof_runs.php";
否则会报如下错误:
Warning: include_once(/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php) [function.include-once]: failed to open stream: No such file or directory in/export/data/www/search.360buy.com/sample.php on line 30
Warning: include_once() [function.include]: Failed opening '/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php' for inclusion (include_path='/export/servers/php/include/ice/') in /export/data/www/search.360buy.com/sample.php on line 30
Warning: include_once(/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_runs.php) [function.include-once]: failed to open stream: No such file or directory in /export/data/www/search.360buy.com/sample.php on line 31
Warning: include_once() [function.include]: Failed opening '/export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_runs.php' for inclusion (include_path='/export/servers/php/include/ice/') in /export/data/www/search.360buy.com/sample.php on line 31
上面有提示错误的路径,如
export/data/www1/search.360buy.com/xhprof_lib/utils/xhprof_lib.php
这里我们查看是否我们需要的php在这个路径下,如果不在,我们则改为指定路径即可,/export/data/www/ 这个而是我们的web 应用的路径,程序会自动跟踪到,也就是我们指定的web服务路径
当我们执行需要测试的php时,成功后会生成指定的路径
http:///index.php?run=4fffc79e37141&source=xhprof_foo ---------------
后面连接的是生成好的我们监控信息
这里的index.php是xhprof_html目录下的,所以xhprof_html这个目录我们需要提前 copy到应用下,可以进行查看分析列表
Incl. CPU(microsecs) 是进入函数后其所有子函数的cpu时间和本函数消耗时间的总和
ICpu%是Incl. CPU(microsecs)/ Total Incl. CPU (microsecs),包含所有子函数的CPU消耗时间/总cpu消耗时间
Excl. CPU(microsec),本函数消耗的cpu时间
ECPU% 是Excl. CPU(microsec)/ Total Incl. CPU (microsecs) 的比率
32. Vi 查找不区分大小写
vim在默认的情况下,用/或?来查找字符串时,是区分大小写的,有时候很不方便。
我们可以用
:set ic
这样vim就不区分大小写了。
如果我们像区分大小写
:set noic
33. 配置静态IP
Vi /etc/sysconfig/network-scripts/ifcfg-eth0
然后将BOOTPROTO="static" 设置为static
配置IP、网关、DNS、子网掩码等
…..
IPADDR="192.168.12.63"
NETMASK="255.255.255.0"
GATEWAY="192.168.12.1"
DNS1="202.106.0.20"
…….
Onboot=yes
是引导默认的网卡
34. Wget 测试gzip
Wget --header="accept-encoding:gzip" 地址
35. Tar 打包+压缩
tar -zcvf /home/www/images.tar.gz /home/www/images
36. 挂载内存文件系统
内存文件系统一般分析ramdisk、ramfs、tmpfs
Ramdisk是通过固定分配内存的一块空间,进行格式化,然后挂载,这种方式不再我们考虑的范围之内因为不灵活。
剩下2种则是ramfs和tmpfs
Ramfs是用物理内存动态分配的文件系统,物理内存空间够用的情况下可进行动态分配。
Tmpfs是物理内存和swap内存搅浑系统共用,当物理内存不够用时用swap,而且tmpfs可进行设定分区上限大小,比较灵活。
在内存空间够用时ramfs和tmpfs的性能差不多,io无压力,当内存空间用尽时,2种内存文件系统均io比较高,但是tmpfs在io高后,会调用swap来分摊,而ramfs则需要清空内存文件系统中的文件才可以。
挂载tmpfs:
mount my_tmpfs $DIR_TMP -t tmpfs -o size=512m
例:
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
调整挂载内存系统的大小:
mount $DIR_TMP -o remount,size=1024m,nr_inodes=100k
nr_inodes为最大节点数,如果你的$DIR_TMP使用df命令查看明明有空间,却无法创建新文件(例如touch一个新文件),可能是文件节点用到上限了,可以用"df -i"命令来查看,如果是有空间但节点达到上限,就需要用nr_inodes来调整了
37. 查看文件夹大小
du -h --max-depth=1 /usr/
df是查看系统大小
du是查看文件夹大小
--max-depth 是深度,是文件夹的深度
后面是需要查看的文件夹
38. Ldd 查看二进制动态链接库
Ldd ./program
就可以查看该二进制文件下的动态链接库
39. 递归查找文本内容
grep 内容 匹配 [–r]
-r 是递归查找
如:
grep “content” * -r
这就是查找该目录下所有文件中含有content内容的文件查找出来
40. Umout报 device is busy.解决方法
df 查看硬盘容量信息
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 30720960 9464728 19695656 33% /
tmpfs 16432956 0 16432956 0% /dev/shm
/dev/sda3 392050276 20914848 351220420 6% /export
然后umount掉一个挂载点
Umount /export
当执行umount 时,报了
/export: device is busy.错误
我们通过fuser命令把所有占用/export的进程等kill掉,执行如下命令:
fuser –km /export
然后我们再执行
Umout /export
卸载成功,然后我们重新挂载
mount /dev/sda3 /export –t ext4
然后再用df查看挂载情况
41. Vi 格式化文本
先按g(小g)到最上面,然后按=,然后按G(大写G)到最下面文本就全部格式化了
42. 安装redis
$ wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
$ tar xzf redis-2.4.17.tar.gz
$ cd redis-2.4.17
$ make
启动redis
cd src
./ redis-server ../redis.conf
后面的../redis.conf是配置文件的路径
进入redis 的客户端:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
43. Lsof –i
Lsof –i
查看网络链接
可用于查看当连接多时造成的问题
44. Ss
查看连接
可以查看当连接多时造成的问题
一般连接多,最后死掉了可能是由于未关闭连接造成的
ss -a -t|grep 192.168.12.63:27017|grep TIME|wc -l
wc –l 统计总数
-t 是tcp
45. Linux中没有sar iostat等命令安装
可以yum install sysstat
或者找sysstat包安装
46. This account is currently not available
当切换登录用户时,如:
Su – mysql
系统提示了This account is currently not available当前用户无效,是由于该用户为
Sbin/nologin
所以通过vipw命令
进入后修改mysql用户为 bin/bash即可
mysql:x:503:503::/home/mysql:/bin/bash
47. scp ssh通信错误解决方法
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ca:3a:84:1b:64:1c:58:35:df:a9:00:2b:54:68:e4:23.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for 192.168.12.63 has changed and you have requested strict checking.
Host key verification failed.
lost connection
删除/root/.ssh/下的known_host文件即可
48. 重新链接gcc
安装新的gcc后,配置环境变量后,使用gcc还是旧的
那么我们首先
Cd /usr/bin
然后ln –s –f /export/servers/gcc-4.6.1/bin/gcc
即可
这样就将bin下的gcc直接链接到/export/servers/gcc-4.6.1/bin/gcc了
49. 安装boost_1.50
tar -zxvf boost_1_50_0.tar.gz
cd boost_1_50_0/
./bootstrap.sh --prefix=/usr --libdir=/usr/lib64
./b2 --prefix=/usr --libdir=/usr/lib64 --layout=system install
export Boost_LIBRARYDIR=/usr/include/boost/
BOOST_INCLUDE=/usr/local/include/boost
BOOST_LIB=/usr/local/lib
export BOOST_INCLUDE BOOST_LIB
这里要注意,编译时需要用到你以后使用的gcc版本,版本不一致会出现问题
50. Yum gcc
Yum install gcc*
需要是 gcc*否则会安装不全
51. 配置gcc环境变量
export PATH=/export/servers/gcc4.7/bin:$PATH
这里的gcc环境变量需要配置在$PATH前,这样最新的gcc就有优先级了,配置后面不生效,因为之前的gcc会先被调用,并且最好不用用软链接(ln –s)来更改gcc,这样容易出现问题
ls >a; od -Ax -tcx1 a
52. ssh 服务停止无法启动
/var/empty/sshd must be owned by root and not group or world-writable.
Linux上的SSH无法启动
报告/var/empty/sshd must be owned by root and not group or world-writable.
主要是权限造成的,解决方法如下:
(1) 方法1:
修改为root属主,启动成功
-bash-2.05b# chown root /var/empty/sshd/
-bash-2.05b# /etc/init.d/sshd start
Starting sshd: [ OK ]
(2) 方法2
chown -R root.root /var/empty/sshd
chmod 744 /var/empty/sshd
service sshd restart
方法2解决了问题
53. shell界面出现“-bash-4.1$”这种形式的解决方法
将.bashrc和.bash_profile文件cp到用户的home路径下
上面2个文件通过~/.bash_profile
然后就可以解决这个问题了
54. Shell 统计执行后的数量
如:
Lsof –I |wc -l
这样就可以统计数量
55. Cannot assign requested address解决方法
服务端没有被压死,但是http_load报这个问题
那么修改http_load服务器的/etc/sysctl.conf文件
添加上:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
执行sysctl –p生效
#开启time_wait状态的socket重用
net.ipv4.tcp_tw_reuse = 1
#开启time_wait状态的socket快速回收
net.ipv4.tcp_tw_recycle = 1
首先查看服务端:
是否有大量的TIME_WAIT
Netstat –anp
然后可通过ss –a|wc –l查看
服务端把:
net.ipv4.tcp_max_tw_buckets = 6000
千万要注意.tcp_max_tw_buckets这项,这个千万要在net.ipv4.ip_local_port_range的范围内,这样当超过最大的buckets时,才可以对TIME_WAIT进行快速回收,不要设置太大,如果设置的太大超过了端口限制,那么一般就会报Cannot assign requested address问题,当client端出现大量的TIME_WAIT时,首先分析的就应该是buckets是否设置过大,或者ip_local_port_range范围过小
调大(修改/etc/sysctl.conf);
net.ipv4.tcp_max_tw_buckets表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字
然后客户端,发送的最大端口数量限制,一般来说每台机器都有65535个端口,但是可用的也许在60000多;
修改(/etc/sysctl.conf)
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
1024-65000的范围这样可用的端口数量就变大很多,发送端可用的就多;
然后sysctl –p,让文件生效
sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收
参照:
http://zhumeng8337797.blog.163.com/blog/static/10076891420129155535790/
56. configure 报If you meant to cross compile, use `--host'.错误解决方法
当运行./configure时,报出了如下错误:
checking whether we are cross compiling... configure: error: in `/export/wanghong/ice/ThirdParty-Sources-3.4.1/db-4.8.30.NC/build_unix':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
需要在./configure 配置—host
而—host是本系统的机型
在./configure最上面就有显示如:
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking if building in the top-level or dist directories... no
红色的则为机型
所以配置:
./configure –host= x86_64-unknown-linux-gnu
57. Error, some other host already uses address解决办法
配置完静态ip后,启动
Service network restart 命令,报了如下错误:
Error, some other host already uses address xxx.xxx.xxx.xxx
有2种解决方法,一种是:
Ifconfig ech0 192.168.12.11 netmask 255.255.255.0 up
但是这个不能用service network restart 否则将会被覆盖
另一种是:
进入 /etc/sysconfig/network-scripts/ifup-eth文件中:
注释掉:
if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then
echo $”Error, some other host already uses address ${IPADDR}.”
exit 1
fi
然后再执行service network restart 即可
参考:
http://chyd96.blog.163.com/blog/static/62706076201052743350211/
58. 查看centos 版本
cat /etc/redhat-release
59. 查看文件大小
ls –lht
60. 回收内存
echo "3" > /proc/sys/vm/drop_caches
61. putty 断开连接解决方式
当putty超期时,报:
network error:software caused connection about、
设置secoonds between keepalive (0 to turn off) 为10
上图中,默认输入 0 是禁用保持连接,在这里我习惯的设置了 10。两个复选框都保持默认选中。
参考:
http://blog.csdn.net/googchar/article/details/8190104
62. 踢掉其他在线用户
首先用who命令查看
bianhaoqiong@bianhaoqiong-virtual:~$ who
bianhaoqiong pts/0 2011-11-30 18:53 (192.168.190.1)
bianhaoqiong pts/2 2011-11-30 17:52 (192.168.190.1)
然后发现pts/2 不是你的用户,然后踢掉即可
然后执行pkill -kill -t pts/2
63. Ssh 连接报Read from socket failed: Connection reset by peer问题解决方法
当连接ssh 时,报了如下错误:
Read from socket failed: Connection reset by peer
起因;
$sudo chmod 777 /etc/ -R (千万不要做,这是一个误操作)
导致了上面的结果
解决方法:
#chmod 400 /etc/ssh/*
在重新连接就可以了。
64. linux下su命令su cannot set groups Operation not permitted错误
linux下命令su执行出现以下错误
su: cannot set groups: Operation not permitted
如huzg切换到root用户后提示如上错误
首先看:
ll /bin/su
-rwsr-xr-x 1 root root 28336 Jan 21 2009 /bin/su
然后先分配root用户组,然后执行
chmod a+s /bin/su
然后就可以切换了
65. -bash: /dev/null: Permission denied
当从root用户切换到普通用户的时候报了如下错误:
-bash: /dev/null: Permission denied
在/etc/bashrc的78行
"$i" >/dev/null 2>&1
这里是要有写权限的
[root@BP-28-2-206192 home]# ll /dev/null
crwxr-xr-x 1 root root 1, 3 Mar 14 22:34 /dev/null
看一下/dev/null
在组这里只有执行和读的权限
所以我们重新给授权chmod 666 /dev/null
也就是所有的都授予rw权限,但未分配执行权限
66. 压缩tar.bz2
tar -cjf hiphop-php-bin.tar.bz2 bin
67. 指定动态链接库路径
vi /etc/ld.so.conf.d/hhvm.conf
在目录/etc/ld.so.conf.d/下创建,所以的配置引用在/etc/ld.so.conf文件下保存
然后在hhvm.conf中一定要引入动态链接库的路径,因为它无法进行递归操作
然后指定ldconfig
68. linux grep 命令取反
取含有abc 的是 grep abc
取不含有abc 的是 grep -v abc
69. 后台执行命令
Nohup 命令 &
如:
nohup sh compare_url_cbs.sh &
nohup ./nginx &
详见:
http://blog.sina.com.cn/s/blog_605f5b4f0100x28u.html
70. curl命令加引用来路头
curl –e “http://item.jd.com/849503.html”
Referrer: http//item.jd.com
参照:
http://codingstandards.iteye.com/blog/807844
71. linux 定时任务执行器
执行crontab -e
编辑任务执行器
然后将需要执行的语句和规则加入进去:
49 22 15 5 * nohup /usr/local/bin/http_load_gzip -p 100 -s 1200 /export/http_load_data/huzg/test_memery.txt &>/export/http_load_data/huzg/test_memery.log &
注意:
这里的二进制需要加上指定的路径,否则找不到文件
每一行对应一个cron job
每一行分为六个部分,每一部分用空格隔开,同一个部分用逗号隔开
minute hour day_of_month month weekday command
前五个域中使用*,则表示所有的时间点
minute:0-59
hour:0-23,0代表零点
day_of_month:1-31
month:1-12
weekday:0-6,0代表星期天,1-6代表星期一到星期六
command:需要执行的脚本或者命令
比如上面的就是5月15日的22时49分执行,最后的星期不需要用*代替
49 22 15 5 * 这样倒着配置
详见:
http://www.2cto.com/os/201109/105474.html
72. TIME_WAIT过多
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
默 认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
注:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
设置这两个参数: reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接; recyse是加速TIME-WAIT sockets回收
参考:
http://space.yoka.com/blog/1216916/3662173.html
73. 指定某个用户运行程序
su - <user> -c "<cmd>"
例:
su - huzg -c "/export/dev_hhvm/hiphop-php_hzg/build2/src/hhvm/hhvm -c /export/data/www/hhvm/config-club_hhvm_nolog_test.hdf -m daemon"
注:
-c 后的路径需要是绝对路径
74. 查看最后登录用户的命令
last
75. linux 打patch方法
详细见:
http://www.cnblogs.com/itech/archive/2009/08/19/1549729.html
1、diff
--------------------
NAME
diff - find differences between two files
SYNOPSIS
diff [options] from-file to-file
--------------------
简 单的说,diff的功能就是用来比较两个文件的不同,然后记录下来,也就是所谓的diff补丁。语法格式:diff 【选项】 源文件(夹) 目的文件(夹),就是要给源文件(夹)打个补丁,使之变成目的文件(夹),术语也就是“升级”。下面介绍三个最为常用选项:
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
2、patch
------------------
NAME
patch - apply a diff file to an original
SYNOPSIS
patch [options] [originalfile [patchfile]]
but usually just
patch -pnum <patchfile>
------------------
简单的说,patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换。这样说就意味着你可以有源文件(夹)――>目的文件(夹),也可以目的文件(夹)――>源文件(夹)。下面介绍几个最常用选项:
-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找。
总结一下:
单个文件
diff –uN from-file to-file >to-file.patch
patch –p0 < to-file.patch
patch –RE –p0 < to-file.patch
多个文件
diff –uNr from-docu to-docu >to-docu.patch
patch –p1 < to-docu.patch
patch –R –p1 <to-docu.patch
(1) 文件patch
原始文件:test0
修改后文件:test1
创建补丁:
diff -uN test0 test1 > test1.patch
diff –uN 原始文件 修改后文件 > 补丁名称
打补丁:
patch -p0 < test1.patch
恢复:
patch –RE -p0 < test1.patch
(2) 文件夹patch
原始文件夹:folder0
修改后文件夹:folder1
创建补丁:
diff -uNr floder0 folder1 > folder1.patch
diff -uNr 原始文件夹 修改后文件夹 > 补丁名称
打补丁:
cp folder1.patch folder0
cd folder0
cat folder1.patch | patch -p1
恢复:
cat folder1.patch | patch -R -p1
76. 通过端口KILL进程
[root@BP-28-2-206192 ~]# netstat -anp|grep 8083
tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:18083 0.0.0.0:* LISTEN -
这样对于查看端口没有进程状态的
[root@BP-28-2-206192 ~]# lsof -i:8083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcheck- 27124 huzg 33u IPv4 51310972 0t0 TCP *:us-srv (LISTEN)
通过lsof命令查看,然后强制PID kill掉
Kill -9 27124
相关推荐
arm-linux-gcc交叉编译器,版本3.4.1,用于Linux下的ARM开发。 安装方法: 1. tar zxvf arm-linux-gcc-3.4.1.tgz -C/ 2. 编辑 ~/.bashrc ,加入 export PATH=$PATH:/usr/local/arm/3.4.1/bin 3. 验证安装 [root@...
arm-none-linux-gnueabi-gcc-4.8.3 已验证可用,请放心使用。arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,...
util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...
p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip p13390677_112040_Linux-x86-64_3of7.zip p13390677_112040_Linux-x86-64_4of7.zip p13390677_112040_Linux-x86-64_5of7.zip p...
### 交叉编译环境的建立与arm-linux-gcc-4.3.2的安装 在进行嵌入式系统开发时,经常会遇到需要为不同的目标平台编译代码的情况,这就涉及到了交叉编译的概念。交叉编译是指在一个平台上编译代码,并生成可以在另一...
总结,`mysql-standard-4.1.22-pc-linux-gnu-i686.tar.gz` 是Linux环境下MySQL的一个旧版本,但其安装、配置和使用的基本原理依然适用于现代MySQL版本。了解这些基本概念和操作,对于任何Linux系统的数据库管理员来...
总结来说,"peak-linux-driver-8.15.1"是针对Linux系统的PCAN驱动程序,用于支持Peiker公司的CAN接口设备。通过正确安装和使用这个驱动,开发者能够轻松地在Linux环境中集成CAN通信功能,实现设备间的高效数据交换。
标题中的"aarch64-linux-android-4.9"是一个针对Android平台的交叉编译工具链的标识符,它主要用于在非Android系统(如x86架构的Linux或Windows)上构建适用于Android设备的ARM64架构(aarch64)的应用程序和库。...
总结一下,"arm-linux-gcc-4.5.1-v6-vfp-20101103"是友善之臂公司为ARM11处理器提供的一个交叉编译工具链,包含浮点运算支持,适用于开发基于Linux的ARM11嵌入式系统。通过这个工具,开发者能够在强大的主机环境下...
在嵌入式开发领域,ARM架构的Linux系统广泛应用,而编译工具链`arm-linux-gcc`是开发者必备的重要工具。`arm-linux-gcc-4.4.3`是一个针对ARM处理器的交叉编译器,它允许在非ARM架构的主机上(如x86或x86_64)构建...
总结来说,"aarch64-linux-android-4.9(windows-64位)" 是一个适用于64位Windows系统的Android NDK工具链,主要用于编译针对AArch64架构的原生代码。将这个工具链放置于Android Studio的`ndk-bundle/toolchain`...
ARM Linux交叉编译工具链,arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结)...
aarch64-linux-android-gdb 可调试arm64位内核的工具,目前自己测试可用
ARM-Linux-GCC-4.5.1是友善之臂提供的一个特定版本的交叉编译器,主要用于在非ARM架构的主机上构建针对ARM架构的Linux应用程序。交叉编译器是一种特殊的编译器,能够在一种处理器平台上生成适用于另一种处理器平台的...
qt-sdk-linux-x86-opensource-2010.05.1
标题中的"arm-linux-gcc-4.4.3.tar.gz"是一个针对ARM架构的Linux GCC交叉编译器的压缩包,版本为4.4.3。这个文件通常用于在非ARM设备(如Ubuntu系统)上构建能在ARM处理器上运行的Linux应用程序。下面将详细介绍...
总结来说,`arm-linux-gcc-5.4.0`是一个强大的工具,使得开发者能够在非ARM设备上构建和测试针对ARM Linux系统的应用。它的重要性在于提高了跨平台开发的效率和灵活性,特别是在处理复杂的项目如QT时,新版本的...
arm linux gcc 交叉编译器 gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2.tar
arm-none-linux-gnueabi-linux-4.8.1.part04.rar,交叉编译工具,设置积分为0,供更多人下载