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 条评论
登录 后参与评论

相关文章

  • redis学习笔记

    摘录些nosqlfans上看的资源(http://blog.nosqlfan.com/html/3537.html),用了一年了,只会安装、启动和get set...

    财主刀刀
  • scala学习笔记

    一 入门 为了增加编程趣味和技能,学习新语言,体会函数式编程和简易的并发管理模型,了解日渐活跃的Spark,尝试下Scala。Scala = Scalable ...

    财主刀刀
  • 困扰我多年的Connection reset问题

    第一次出现:是thrift的python client去请求server,发现偶尔出现这个问题 第二次:接入第三方的api,去请求数据时,发现一个接入方的api...

    财主刀刀
  • windows下vmware配置nat网络

    超蛋lhy
  • 一文了解强化学习

    虽然是周末,也保持充电,今天来看看强化学习,不过不是要用它来玩游戏,而是觉得它在制造业,库存,电商,广告,推荐,金融,医疗等与我们生活息息相关的领域也有很好的应...

    杨熹
  • 人工智能进行连续决策的关键——强化学习入门指南

    用户1737318
  • 项目经理思维导图——12 关键项目成员离职pm如何平衡好进度、范围和成本?

    yeedomliu
  • Spark Core源码精读计划11 | Spark广播机制的实现

    在RPC的领域里摸爬滚打了很长时间,是时候抽身出来看一看其他东西了。顺着SparkEnv初始化的思路继续看,下一个主要组件是广播管理器BroadcastMana...

    暴走大数据
  • 强化学习是如何解决问题的?

    什么是强化学习算法呢?要回答这个问题,必须先回答强化学习可以解决什么问题,强化学习如何解决这些问题。

    博文视点Broadview
  • 2.计算机组成-数字逻辑电路 门电路与半加器 异或运算半加器 全加器组成 全加器结构 反馈电路 振荡器 存储 D T 触发器 循环移位 计数器 寄存器 传输门电路 译码器 晶体管

    所以想要准确的保存一个比特,你需要保持住D的值,持续经过CP从0~1然后再到0的过程

    noteless

扫码关注云+社区

领取腾讯云代金券