1. 用命令查询系统是32位还是64位
    getconf LONG_BIT or getconf WORD_BIT
    例如:
    [root@sy02 /]# getconf LONG_BIT
    64

    file command
    例如:
    [root@sy02 /]# file /bin/ls
    /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), stripped
  2. 以Mb方式查看文件
    ls -lh
  3. 过滤显示文件
    如只显示xml结尾文件: ls *.xml
  4. 查看磁盘剩余空间: 
    df -hl
  5. ssh中下载文件到本地 : 
    session sftp tab option设置本地目的路径
    sz filename.filetype
  6. 两个服务器间拷贝文件 
    scp -P 2188 user@ip:/path/file .
  7. 清空文件: 
    true > des.txt
  8. svn提交文件: 
    svn -m "message" filename 不写"-m" 信息出现无法提交现象,加上message是个好习惯!
  9. tar命令解压文件: 
    tar xzvf this.tar.gz "tar xzvf this.tar.gz ./" 这个命令网上资料说是解压到本目录 经试验不可用
  10. 创建文件命令 
    touch filename
  11. Windows和linux换行符不一致问题 
    在 Linux 下的换行是 \n ,而在 Windows 下的换行是 \r\n 。不经过处理的话,两者的文件在显示的时候会出现问题,比如 一个 Linux 的文本文件用 Windows 记事本打开的时候不会换行格式很乱,一个 Windows 文件在 Linux 下用 VI 打开的话会 出现 ^M 字符等。
    解决方法:
    在 Linux 下使用 CMD : dos2unix and unix2dos
    dos2unix/unix2dos 包含在 Tofrodos 安装包
    DOS text files traditionally have CR/LF (carriage return/line feed) pairs as their new line delimiters while
    Unix text files traditionally have LFs (line feeds) to terminate each line.
    Tofrodos comprises one program, "fromdos" alias "todos", which converts text files to and from these formats.
    Use "fromdos" to convert DOS text files to the Unix format, and "todos" to convert Unix text files to the DOS format.
    This functionality is also available via the dos2unix/unix2dos symlinks.
    UBUNTU 下安装 dos2unix/unix2dos :
     $ sudo apt-get install tofrodos
  12. alias 目录起别名,方便访问
    vi ~/.bashrc
    alias scserver="cd /usr/local/netqin/boss/netqin/BOSS_SC_SERVICE/trunk/src"
    仅对某一用户生效 重新进入ssh时生效
  13. 查看当前目录下文件总数: 
    ls -l |grep "^-"|wc -l
  14. vi跳转 
    出现了"home" "end"键不管用的情况
    到某行尾部 : "$" 命令
    到某行开头 : "0" 命令
    正向滚动一整屏的命令是 CTRL-F (减去两行)。反向的命令是 CTRL-B。
  15. vi删除多行 : ndd 删除以当前行开始的n行
  16. 在linux中删除大量文件时,直接用rm会出现:-bash: /bin/rm: 参数列表过长,的错误。 
    这时可以用find命令来结合使用。 例: 1、rm * -rf 改为: find . -name "*" | xargs rm -rf '*' 就行了。 2、rm test* -rf 改为: find . -name "test*" | xargs rm -rf "test*"
  17. 远程登录其他服务器 ssh -p 2188 username@ip
  18. 僵尸进程清除方法
    kill -18 PPID (PPID是其父进程)
    这个信号是告诉父进程,该子进程已经死亡了,请收回分配给他的资源。
  19. 查找文件中的某字符串
    grep -n "str" -r ./ 这是查找当前目录下以及下辖子目录下所有包含str字符串的文件
     grep -R abc * 在本目录及其所有的子目录下的文件里面查找字符串abc
  20. Linux系统手动安装rz sz 软件包
    wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
    tar zxvf rzsz-3.48.tar.gz
    安装 cd rzsz-3.48
    修改Makefile第四行OFLAG= -O 为 OFLAG= -O -DREGISTERED
    make posix (make 跟几种配置选项 一般使用posix即可)
    cp rz sz /usr/bin/.
  21. linux 文件切割
    split -b 10m filename.txt m必须是小写 切割为10m 每个文件
  22. 查看 程序打开文件
    服务器tmp目录磁盘满了,直接清空或删除文件无效,空间仍然不能释放,需要以root用户方式 lsof命令查看程序占用的文件情况,找到该程序,kill掉重启才可以。
    lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
     在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
  23. secure CRT rz上传文件错误问题
    rz上传的文件大小和本地不对 ,文件10M上传后只剩了343bytes , 后来发现是 rz对话框里不小心勾上了
    upload file as ascii,去掉后正常
  24. 安装 Net::SNMP
    1) By CPAN (best)
    on command line, as root :
    [your_host]# perl -MCPAN -e shell
    cpan shell -- CPAN exploration and modules installation (v1.76)
    ReadLine support enabled
     cpan> install Net::SNMP
  25. ulimit修改最大打开文件数

    linux对用户有默认的ulimit限制,而这个文件可以配置用户的硬配置和软配置,硬配置是个上限。
    超出上限的修改就会出“不允许的操作”这样的错误。
    在 /etc/security/limits.conf加上
    * soft noproc 10240
    * hard noproc 10240
    * soft nofile 10240
    * hard nofile 10240
    如果使用了nginx 最好也调整下里边的配置
  26. 负载分析
    使用 ps faux 查看当前进程状态
    R – Running
    S – Sleeping
    D – Waiting for something
     如果某进程长时间为D ,说明该进程可能存在问题 ,导致其他进程请求处于等待状态,系统负载将会急剧升高 ( http://www.andymillar.co.uk/blog/2006/12/24/linux-load-average-explained/ )
  27. 更改文件的所有者
    chown username somefile
    chown -R username somedir (目录及子文件)
    chown username:usergroup somefile
  28. linux 时间戳
    http://tool.chinaz.com/Tools/unixtime.aspx
  29. linux中批量解压文件的方法-
    find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {} 
  30. 一行代码统计目录下代码行数 find . -name "*.java" | xargs wc -l
  31. 添加路由
    /sbin/route add -net 10.74.0.109 netmask 255.255.255.255 gw 172.16.54.1
    (需要添加的机器)                                                                (本机的网关)
    /sbin/route 可以查看路由表
  32. crontab 位置
    CentOS为例,其真实的位置在:/var/spool/cron
  33. curl显示连接时间  
    curl -o /dev/null -s -w ‘%{time_total}’ http://www.miotour.com
  34. 将MySQL中sql运行结果保存到文件
    方法一:在mysql>提示符中使用tee
    mysql> tee output.txt
    Logging to file 'output.txt'
    mysql> notee
    Outfile disabled.
    方法二:使用mysql命令行工具的--tee参数
    $mysql --tee=ot.txt
    Logging to file 'ot.txt'
    mysql>
    这回将所有的输入和输出内容都记录到指定的文件中(直到exit为止)。如果指定已经存在的文件,则结果会附加到文件中。
  35. 删除超过三天的日志
    find . -name "*.log.*" -mtime +3|xargs rm -rf
  36. ssh无密码连接
    从A无密码访问B,则在A上生成ssh-keygen -t rsa -P '' -f /root/.ssh/id_dsa  追加到B的  /root/.ssh/iauthorized_keys
    需要开启/etc/ssh/sshd_config :

    PubkeyAuthentication yes
    AllowUsers root
    AuthorizedKeysFile .ssh/authorized_keys

  37. linux java 安装
    http://lelong.iteye.com/blog/349549  设置.bashrc不管用,需要设置 /etc/profile

    export JAVA_HOME=/root/jre1.6.0_31/
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    并source  /etc/profile

  38. nc使用
    http://www.huanxiangwu.com/477/linux-nc-netcat 详解
    1. chat功能  主机 nc -l 1234  客户端 nc $ip 1234   注意版本,有的要加参数 -lp
    2. telnet redis并加入命令  
       echo -e "get test \r\n" | nc localhost 6379   redis必须加 "\r\n"  echo需要加参数 -e,识别反斜杠
    3. telnet memcache并加入命令
       printf "set zhangyan 0 0 5\r\n12345\r\n" | nc 127.0.0.1 11211
       printf "get zhangyan\r\n" | nc 127.0.0.1 11211
       incr   decr delete类似
     
       来自: http://blog.s135.com/post/384/
  39. mac vim for python 设置
    需要安装ctags gcc,gcc最好使用pkg版(我的是lion os),用tar包装的各种问题  并且必须是with python编译的才有自动补全功能  mvim
    ctags安装后需要设置到vimrc中,不然无法生成成员列表 各种问题(ctags: illegal option )
    let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'

    左右窗口切换Ctrl+ww 更多快捷方式 http://www.clovery.org/tree-explorer-plugin-nerdtree-for-vim.html

    ctrl+x 紧接着 ctrl+o 显示代码补齐功能
    vim python  http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/   

  40. mysql int bigint范围

    INT[(M)] [UNSIGNED] [ZEROFILL]
     

    A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295

    BIGINT[(M)] [UNSIGNED] [ZEROFILL] 

    A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615

     项目生成id范围设置小了,并且使用parseInt方式解析,导致超过2147483647即出错,解析方式改为parseLong,但目前还有隐患,数据库的类型设置的是INT而不是BIGINT,超出的话就无法生成。

  41.  linux 安装python  mysqldb出现错误  error: command 'gcc' failed with exit status 1 
    yum install gcc python-devel

  42. libz.a: could not read symbols: Bad value
    libz.a(compress.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
    尝试多种方法
    A 在setup_posix.py中设置extra_link_args+=['-fPIC'] ,无果, 重新安装了zlib 设置 

    extra_link_args+=['--with-zlib-dir=/usr/zlib'] 也无果, 最终发现是因为首先使用了mysql集成的zlib,会覆盖后边的选项,直接安装到/home/work/mysql/lib/mysql 中 ,再执行编译安装,终于成功。

  43. mac /home 目录新建文件夹 
    sudo vim /etc/auto_master  注释掉home那一行,并重新启动,不重启仅执行sudo automount  经本机测试无效。
  44. 毫秒数转时间,时间转毫秒

    毫秒数转时间  date -d @1402287199 +"%Y-%m-%d"

    时间转毫秒:
    D="20140601235958"

    date +%s -d "${D:0:8} ${D:8:2}:${D:10:2}:${D:12:2}"
    当前毫秒转日期 date  +"%Y-%m-%d"      |    date  "+%Y-%m-%d"
    http://blog.csdn.net/jk110333/article/details/8590746

  45. 读文件,并按照 ";" split每行
    #!/bin/bash
    lines=`cat files.txt`
    cat parser_tables.txt | (
    while read parser_table; 
    do
    	echo $parser_table >> info.log
    	parser=`echo $parser_table | cut -d \; -f 1`
    	table=`echo $parser_table | cut -d \; -f 2`
    	echo $parser
    	echo $table
    	for line in $lines
    	do
    		echo $line >> info.log
    	done
    done 
    )
    

     

  46. 批量替换多个文件中的字符串
    sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` 

  47. linux 按行切分文件

    split -l 300 large_file.txt new_file_prefix

     

  48.  iptables端口编辑

    在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件:

     

    1. vi /etc/sysconfig/iptables  
    2.  

     

    通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:
    1. 命令行 

    iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    2.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口

     

    1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  
    2.  

     

    3.关闭/开启/重启防火墙

     

    1. /etc/init.d/iptables stop  
    2.  
    3. #start 开启  
    4.  
    5. #restart 重启  

     


     
posted on 2011-12-21 16:55  架构师刀哥  阅读(407)  评论(0编辑  收藏  举报