my linux FAQ

  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 4294967295BIGINT[(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  

    通过/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  

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上的三节点集群上部署CockroachDB

CockroachDB是一个开源的分布式SQL数据库,提供一致性、可伸缩性和生存性。

1772
来自专栏hanlp学习笔记

HanLP分词器的使用方法

之前我有想过用机器学习的方法来进行词法分析,但是在项目中测试时正确率不够。于是这时候便有了 HanLP-汉语言处理包 来进行提取关键词的想法。

1990
来自专栏Java帮帮-微信公众号-技术文章全总结

集群间如何实现session共享【面试+工作】

3.4K8
来自专栏运维前线

Elasticsearch API 使用介绍

API文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.htm...

2216
来自专栏xingoo, 一个梦想做发明家的程序员

JavaMelody监控SQL

前言 前面讲过了Javamelody的基本配置,这里简单的介绍下,如何使用Javamelody来监控JDBC以及SQL。   在网上搜索很多资料,仅有开源...

3288
来自专栏Laoqi's Linux运维专列

KVM虚拟主机管理篇

5793
来自专栏张尧博客

su和sudo之间的区别以及如何在Linux中配置sudo

5066
来自专栏Java编程技术

MySQL 中基于 XA 实现的分布式事务

Xa主要规定了RM与TM之间的交互,下面来看下XA规范中定义的RM 和 TM交互的接口:

1233
来自专栏PHP在线

PHP输入流php://input介绍

在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php:...

4495
来自专栏烂笔头

SSDB安装配置记录

目录[-] SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用G...

4528

扫码关注云+社区

领取腾讯云代金券