为什么80%的码农都做不了架构师?>>>
1. grep去除注释行和空行
grep -v ^# /etc/vsftpd/vsftpd.conf |grep -v ^$ > /tmp/1.txt
grep -a(--text)将二进制文件视为文本搜索
grep -n "osd_stat_t" $(find . -name "*.h") //搜索文件内容
2. 查看服务器当前网络流量
ethstatus -i eth0 | eth1
3. 添加路由
route add -net 172.20.0.0 netmask 255.255.0.0 gateway 192.168.15.250 dev eth0
route add -net 172.20.6.0 netmask 255.255.255.0 gateway 172.20.1.253 dev eth1
route add -net 10.0.0.0 netmask 255.0.0.0 gateway 10.33.6.1 dev em2
route del -net 10.0.0.0 netmask 255.0.0.0
route add default gw 59.60.4.198
4. vi/vim技巧篇
(1) 删除所有含有 abc.com的行
:1,$g/abc\.com/d
(2)统计查找出的字符串个数
:%s/ORA//gn
(3)将换行符替换成空格
:%s/\n/ /g
(4)删除\r
:%s/^M//g
(5)查看和转换dox格式文件
:set ff=unix
set ff
set binary
(6)多行批量注释
:98,117 s/^/##/g
:28,96s/^/#/g
:27,30s#^#//#g
(7)关键字搜索
:match ErrorMsg /error/
:2match MoreMsg /info/
:3match WarningMsg /warning/
(8) vim a.txt进入后临时切回终端操作, ctrl+z, 再切回vim界面, fg(重新将程序唤到前台)
(9)取消高亮 :nohl
6. sendmail显示待寄邮件的清单
mailq
7. 查看最常用的30条命令
cat /root/.bash_history |grep -v ^# |awk '{print $1}' |sort |uniq -c |sort -nr |head -30
salt 'nds-wx-?' cmd.run "cat /var/log/ceph/radosgw.INFO | grep 59bf75dd-3aa4-42fa-bfa8-2ce651d57db7| awk '{if(\$8>100)print}' >/tmp/slatest.log"
8. ldd
查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题
http://linux.chinaunix.net/techdoc/system/2008/10/13/1037839.shtml
9. 多个文件中查找指定字符串
grep IP ./*.ini
find /test -type f -name "*.ini" -exec grep -l "IP" {} \
10. 查看cpu个数
(1)grep -c 'model name' /proc/cpuinfo
(2)top进入后按数字1
11. ipcs [ -m] [ -q] [ -s]
报告进程间通信设施状态
12. ipcrm [-M|m] [-Q|q] [-S|s]
删除共享内存、消息队列,信号
13. iptables
用来设置、维护和检查Linux内核的IP包过滤规则的软件防火墙。
iptables -F 关闭防火墙
#http端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
#ssh端口转发
iptables -t nat -A PREROUTING -d 172.24.133.39/32 -p tcp -m tcp --dport 10122 -j DNAT --to-destination 54.x.x.x:22
14. nohup (不挂断的运行命令)
nohup command > myout.file 2>&1 &
15. tcpdump (linux下抓包分析)
http://www.51testing.com/?uid-22578-action-viewspace-itemid-142353
16. 查看性能/负载情况
w,uptime,top,mpstat,iostat,sar,vmstat,netstat
netstat -s 显示所有连接的统计信息
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
18. make函数详解
http://wenku.baidu.com/view/ea9913235901020207409c5e.html
19. hostname
查看 uname -a; hostname;
修改 hostname new 永久修改 vi /etc/sysconfig/network
20. 查看系统errno说明
find /usr/include -name "errno.h"|xargs grep 2
21. 查看开机重启时间 (人为误操作,确认机子被重启过)
who -b 最近一次系统启动的时间
last boot
uptime/top 查看在线时间
22. 程序转入前后台执行
&用在一个命令最后,放入后台执行
ctrl+z ,可能一个正在前台执行的命令放在后台,并且暂停
jobs 查看当前有多少在后台运行的命令
fg 将后台中的命令调至前台继续运行
bg 将一个在后台暂停的命令,变成继续执行。
23. 读取文件指定行范围的数据
(1) sed -n '5,10p' filename
(2) grep -n -A2 -B2 'main' main.c
其中 -n 显示行号 -A2 显示匹配行的行后两行 -B2 显示匹配行的行前两行
(3) cat filename | head -n 3000 | tail -n +1000 //显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000 //显示3000~3999行
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
24. 分割读取大文件
split -b 500m filename
25. linux用shell实现重要数据定期备份
http://www.iteye.com/topic/259742
26. gw_log 取distinct IP
cat log/*.20120329 |grep 'connect ok'|cut -d '|' -f 4|cut -d ' ' -f 3|cut -d',' -f 1|sort -u
cat dx.txt |grep -v loss| grep -v CST | cut -d "/" -f 5
27. od
用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。
28. xxd
将一个文件以十六进制的形式显示出
29. 实时监测命令的运行结果
watch -d -n 3 w
30. dd if of
dd命令把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。(io基准测试)
--dd bs=1M count=2048 if=/dev/zero of=test_2G conv=fdatasync; ##NULL字符填充
dd bs=1M count=65 if=/dev/urandom of=test_65M conv=fdatasync ##随机字符
dd if=/dev/zero of=test.img bs=4k count=2000
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k conv=fdatasync; rm -rf /tmp/output.img
(测试磁盘写入速度)
31. Linux下多线程查看(pstree、ps、pstack)
http://blog.csdn.net/yfkiss/article/details/6729364
pstack pid + strace -o server.strace -Ttt -p pid
1、ps H -eo tid,cmd | grep 程序名
2、pstack 进程号 | grep Thread
3、pstree -p 进程号
32. 端口查看
lsof详解(显示系统打开的文件)
http://blog.csdn.net/guoguo1980/archive/2008/04/24/2324454.aspx
lsof |grep delete 查看已删除但是被进程打开占用的文件
lsof -i :端口 显示占用该端口的进程情况
lsof -i :22 //知道22端口现在运行什么程序
lsof -c abc //显示abc进程现在打开的文件
lsof -p $pid //看进程号为$pid的进程打开了哪些文件
lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head //占用情况排序
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|grep 14522
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
33. ulimit 详解 http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/
34. 统计文件夹大小 du -h --max-depth=1
35. cp --reply=yes 1/a.txt ./ ??
36. tar排除
--exclude=/proc:排除/proc目录,不打包这个目录,后面也同理,记得排除自身打包的文件名
37. uname -a 内核信息
38. cat /proc/interrupts 显示中断信息
39. 将几个文件合并为一个文件
$cat file1 file2 > file
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
40. tee
功能说明:读取标准输入的数据,并将其内容输出成文件。
语 法:tee [-ai][--help][--version][文件...]
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
参 数:
-a或--append 附加到既有文件的后面,而非覆盖它.
-i-i或--ignore-interrupts 忽略中断信号。
--help 在线帮助。
--version 显示版本信息。
tail -f /var/log/ceph/ceph-osd.
41. find . -type d -maxdepth
find ./ -type d -exec chmod 755 {} \; ——文件夹权限
find ./ -type f -exec chmod 644 {} \; ——文件权限
42. man cmd|col -b>cmd.man 过滤乱码
43. top | tee -a >/mnt/hgfs/code/top.log
44. curl -s http://whatismyip.org
curl -H host: xxx.aw.xxx.com 127.0.0.1:8080
45. wget http://whatismyip.org 然后再 cat index.html 也可以看到
46. wall -- send a message to everybody's terminal.
47. write 命令的功能是向系统中某一个用户发送信息。 该命令的一般格式为:write 用户帐号 [终端名称]
49. pidof daytools = ps aux|grep daytools //找出正在运行的程序的进程PID
50. ipcs 报告进程间通信设施状态, 用来限制共享内存(m)、消息队列(q)、信号(s)
a参数表示显示全部队列消息
51. awk 处理文本的编程语言工具。样式扫描和处理语言
52. linux下挂载wins的共享文件夹
mount -t smbfs -o username=admin,passwd=123456 //10.10.10.10/data /mnt/data1
mount -t cifs -o username=admin,passwd=123456,directio //10.10.10.10/data /mnt/data2
fuser -km /mnt/data_dbf (umount device is busy)
53. 查看用户组信息
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
54. reset 将终端机设回原始的状态
例如不小心把二进位档用 cat 指令进到终端机,导致终端乱码。
【linux系统信息查看命令】:
查看cpu信息: lscpu
查看主板的序列号: dmidecode | grep -i ’serial number’
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i 'cpu'][dmidecode -t processor]
查看内存信息:cat /proc/meminfo [free -m][vmstat]
查看板卡信息:cat /proc/pci
查看显卡/声卡信息:lspci |grep -i ‘VGA’[dmesg | grep -i 'VGA']
查看网卡信息:dmesg|grep eth
lspci |grep Network
lspci -vvv
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk – l & df -Th
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname -a
查看及启动系统的32位或64位内核模式:isalist –v [isainfo –v][isainfo –b]
dmidecode查看硬件信息,包括bios、cpu、内存等信息
测定当前的显示器刷新频率:/usr/sbin/ffbconfig –rev /?
查看系统配置:/usr/platform/sun4u/sbin/prtdiag –v
查看当前系统中已经应用的补丁:showrev –p
显示当前的运行级别:who –rH
查看当前的bind版本信息:nslookup –class=chaos –q=txt version.bind
dmesg | more 查看硬件信息
lspci 显示外设信息, 如usb,网卡等信息
lsnod 查看已加载的驱动
lshw
psrinfo -v 查看当前处理器的类型和速度(主频)
prtconf -v 打印当前的OBP版本号
iostat –E 查看硬盘物理信息(vendor, RPM, Capacity)
rpm -ql ansible | head //list files in package
prtvtoc /dev/rdsk/c0t0d0s 查看磁盘的几何参数和分区信息
df –F ufs –o i 显示已经使用和未使用的i-node数目
isalist –v
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Cpuinfo 主机CPU信息
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Meninfo 主机内存信息
Version Linux内存版本信息
查看网口速率 mii-tool
清除操作记录 history -c
批量文件中的字符串查找替换:sed -i "s/aaa/bbb/g" `grep aaa -rl *.*` (当前目录下*.*文件中的aaa替换为bbb)
sed -i "/ONBOOT/a PEERDNS=no" /etc/sysconfig/network-scripts/ifcfg-em*
sed -i "/DNS/"d /etc/sysconfig/network-scripts/ifcfg-em*
sed -i "/NM_CONTROLLED/s/yes$/no/g" /etc/sysconfig/network-scripts/ifcfg-em*
sed -i 's/SELINUX=enforcing.*$/SELINUX=disabled/g' /etc/selinux/config
指定位置后新增一行
查看系统glibc支持的版本:strings /lib64/libc.so.6 | grep GLIBC_
查找同一硬连接的所有文件:ls -il src | awk '{print $1}' | xargs find / -inum
查看gcc/g++的默认include路径: `g++ -print-prog-name=cc1plus` -v
自动循环执行命令,查看结果变化:watch -n 1 -d "netstat -anp|grep tcp|wc -l"
ng服务启动: /etc/init.d/aiya-nginx start
php启动: /opt/aiya/nginx/fastcgi/sbin/php-fpm start
logrotate: http://blog.csdn.net/cjwid/article/details/1690101
1.1 实现ssh免密码登录
# ssh-keygen -t rsa //生成无密码认证(一路回车)
# cd /root/.ssh/
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# ssh localhost
ssh-keygen -y -f ch_200808.pem >ch_200808.pem.pub //通过密钥生成公钥,添加到auth..
(集群时,将id_rsa.pub scp至其他台,append to authorized_key)
# ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22 [email protected]"
##linux和xshell可直接用.pem登录
##secureCRT登录:使用.pem产生的公钥.pub,且原.pem文件去后缀后和.pub放同一目录下
Q: Ssh自动将hostkey添加到knowhosts
A: vim /etc/ssh/ssh_config; StrictHostKeyChecking no; Host *打开
--ssh+nohup &,远程执行耗时任务不关闭
--nc: linux下强大的网络工具NetCat, 瑞士军刀
--useradd: 创建root权限用户xie
useradd -u 0 -o -g root -G root -d /home/xie xie
usermod -u 0 -o -g root -G root xie
--ab: linux下压测工具命令
--for: for pkg in $(cat yum.list); do echo $pkg; yum install $pkg -y; done
--lsmod; modinfo ext4
sysctl -a
sysctl fs.inotify.max_user_watches
sysctl fs.inotify.max_user_instances=512
--查看磁盘UUID: lsblk; blkid /dev/sda5
查看内存插槽数:dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
echo $PATH | tr ":" "\n"
101: at命令
(1)使用: at [参数] [时间], ctrl+d保存退出
(2)查询: atq
(3)查看详情: at -c 8
(4)删除: atrm 8
(5)服务: /usr/sbin/atd
(6)权限控制: /etc/at.deny
102: 磁盘分区
sfdisk
partprobe
lspci| grep Ethernet //查看机器网卡
按过期时间和大小批量删除目录日志:
find . -mtime +5 -exec /bin/rm -rf {} \
find . -size +2000000k -exec /bin/rm -rf {} \;
//dell自带soft,查看系统硬件状况
omreport storage adisk controller=0|grep ^Name #查看硬盘插槽
omreport storage vdisk #Layout:可以查看raid情况,无返回就是没有
omreport storage pdisk controller=0
omreport chassis info 可以查看已安装组件版本的摘要,机器型号
omreport storage adisk controller=0 查看磁盘陈列中的硬盘状态
omreport storage vdisk controller=0 查看虚拟硬盘的状态
omreport storage controller 查看控制器的属性
omreport storage channel controller=0 查看通道的属性
omreport storage enclosure controller=0 查看enclosure的属性
omreport storage battery 查看电池属性
omconfig storage controller action=setrebuildrate controller=0 rate=100 调整rebuild的速度
//从输入中选择随机输出
ls | shuf
ls | shuf -n 1
--ss
“ss”表示socket统计。这个命令调查socket,显示类似netstat命令的信息。它可以比其他工具显示更多的TCP和状态信息。
--显示本机的出口IP
curl ifconfig.me
--一个通过HTTP显示文件夹结构树的简单网页,可以通过浏览器在端口8000访问,直到发出中断信号。
python -m SimpleHTTPServer
-- mtr baidu.com (ping+traceroute)
yum provides */nslookup
--查找提供nslookup命令的安装包
##linux下测试网速
1) wget 一个大文件
2) cd /opt;
wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod a+rx speedtest_cli.py
mv speedtest_cli.py /usr/local/bin/speedtest-cli
chown root:root /usr/local/bin/speedtest-cli
#踢出某个tty终端用户
pkill -kill -t pts/0
#linux下载ftp文件
wget -c ftp://172.25.74.165:21/edu.tar.gz --ftp-user=200512 --ftp-password=200512
#查看进程线程数
cat /proc/75182/status|grep Threads
#时区查看和修改
date -R
TZ='Asia/Shanghai'; export TZ
#cat file | nl | less
Usage: nl [OPTION]... [FILE]...
Write each FILE to standard output, with line numbers added.
#将两个文件合并并用tab键分开
paste a b
paste -d'+' a b //用+分开
paste -s a //将多行数据合并到一行用tab键隔开
linux查看内存的插槽数以及每条内存有多大
dmidecode|grep -P -A5 "Memory\s+Device"| grep Size | grep -v Range
linux查看内存增援的最大内存容量
dmidecode | grep -P 'Maximum\s+Capacity'
linux查看内存条的频率
dmidecode | grep 'Speed'
#日志文件清空
truncate -s 0 $file
#在Linux和UNIX中找出并删除显示着但已经被删除的大文件:
- lsof -nP | grep '(deleted)'
# 查看目录下的文件数量和更新情况
ls -lR|grep "^-"|wc -l //当前目录含子目录的文件数
ls -lR|grep "^d"|wc -l //当前目录含子目录的文件夹数
find . -mtime -11 -type f
ls -lR|egrep -v '2013|2014|2015' | egrep 'Nov|Dec|Jan'|head
ls -lR|egrep -v '2013|2014|2015' | grep Dec|head
#快速删除某目录下的大量文件
rsync --delete-before -a -H -v /tmp/rsync_blank/ /data/osd.2
time find ./ -type f -delete
time rsync -a --delete /tmp/blank/ /home/test/
rsync --delete-before -a -H -v --progress --stats /tmp/blank/ /home/test/
##进程流量查询
iftop -i eth0 -n -P
echo | g++ -v -x c++ -E - ## 查看编译器的默认include路径
ctrl + l #终端clear
mount | column -t ##按列对齐输出