1、磁盘管理
df -h查看整体磁盘使用情况
df -h /home 查看/home目录的使用情况
du -sh *: 查看当前目录下每个文件或文件夹的大小
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量
truncate -s 0 将某个文件清零,或修改为某个大小
2、文本处理
# 每行按空格或TAB分割,输出文本中的1、4项
$ awk '{print $1,$4}' log.txt
$ awk '{print $1,$4}' log.txt
3、压缩/解压
tar -zcvf xxx.tar.gz path/ 压缩打包
tar -zxvf xxx.tar.gz 解压
4、sleep
sleep 1 睡眠1秒
sleep 1s 睡眠1秒
sleep 1m 睡眠1分
sleep 1h 睡眠1小时
5、tee命令
echo "some thing" | tee -a xxx.log
文字既可以在屏幕上输出,也可以写入到文件中。
6、test命令
[ -f "xxx.file" ] 该文件名是否存在并且为文件
7、grep 命令
-w : 精确匹配
-i : 忽略大小写
-v : 反选
id | Linux id命令用于显示用户的ID,以及所属群组的ID。 |
|
---|---|---|
declare | 声明变量 | -a 声明数组 |
echo | 输出 | -n不换行输出 |
8 查看 重启情况
# last reboot
--------------------------------------------------------------------------------------------------------------------------------------------
reboot system boot 2.6.18-92.el5 Mon Dec 6 12:50 (05:11)
reboot system boot 2.6.18-92.el5 Mon Dec 6 10:49 (07:12)
reboot system boot 2.6.18-92.el5 Sun Dec 5 18:56 (23:05)
reboot system boot 2.6.18-92.el5 Mon Nov 29 09:55 (7+08:06)
9、top命令
可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
介绍top中一些字段的含义:
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。
10、ps 命令
ps -ef | grep java 检查java 进程是否存在
11、kill命令
参数
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
12、压缩解压
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
13、linux抓包工具
1. http数据包抓取 (直接在终端输出package data)
tcpdump tcp port 80 -i hccvswitch -n -X -s 0 对网卡hccvswitch的请求指定80端口进行输出
2. 抓取http包数据指定文件进行输出package
tcpdump tcp port 80 -n -s 0 -w /tmp/tcp.cap
对应的/tmp/tcp.cap基本靠肉眼已经能看一下信息,比如http Header , content信息等
3. 结合管道流
tcpdump tcp port 80 -n -s 0 -X -l | grep xxxx
这样可以实时对数据包进行字符串匹配过滤。
抓DHCP包
/usr/sbin/tcpdump -i eth0 -s 1500 -w dhcp.pcap 'udp and port 67 and port 68'
-i 指定抓包网卡
-s 指定抓包长度,默认只抓包头
-w 将抓包内容保存下来,然后用wireshark之类的软件看更方便。如果想要在屏幕滚动查看,忽略这个选项
udp and port 67 and port 68:dhcp报文的过滤条件,udp协议,端口67和68
14、traceroute命令
用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。
15、查看服务器cpu核数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
16、source命令用法
source FileName
在当前bash环境下读取并执行FileName中的命令。
18、linux利用grep查看打印匹配的下几行或前后几行的命令
转自:http://www.itokit.com/2013/0308/74883.html
linux系统中,利用grep打印匹配的上下几行
如果在只是想匹配模式的上下几行,grep可以实现。
$grep -5 'parttern' inputfile //打印匹配行的前后5行
$grep -C 5 'parttern' inputfile //打印匹配行的前后5行
$grep -A 5 'parttern' inputfile //打印匹配行的后5行
$grep -B 5 'parttern' inputfile //打印匹配行的前5行
查看mysql慢日志中ip地址为192.168.0.10发送过来的SQL语句的后面三行
- tail -50 /usr/local/mysql/data/sql-slow.log |grep -3 '192.168.0.10'
匹配php错误日志中某一个字段
2,tail -100 /data/logs/php/php_error_5.3.log | grep "Memcache::get()";
查看某一个文件第5行和第10行
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
19、修改TOP命令排序列
1,快捷键:
大写M:根据内存排序,默认从大到小,大写R更改为从小到大排序
大写P:根据CPU使用排序,默认从大到小,大写R更改为从小到大排序
大写T:根据使用时间排序,默认从大到小,大写R更改为从小到大排序
2,使用<>:
>:向右移动一列排序,比如现在是以CPU排序,那么输入>后就按照内存排序,输入R更改排序顺序,向右移动不了了,就表示以最右边的列排序。
<:向左移动一列排序
20、查看文件开头或结尾几行
可以使用head(查看前几行)、tail(查看末尾几行)两个命令。
例如:
查看/etc/profile的前10行内容,应该是:
# head -n 10 /etc/profile
查看/etc/profile的最后5行内容,应该是:
# tail -n 5 /etc/profile
21、在文件中匹配字符串
grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
21、查找文件中是否存在某字符串、插入字符串、删除字符串
# restart when startup
if [ `grep -c "/opt/athena/restart.sh" /etc/rc.local` -eq '0' ]; then
sed -i '$i\/opt/athena/restart.sh' /etc/rc.local
fi
模糊匹配,删除文件中包含该字符串的行
sed -i '/athena/d' /etc/rc.local
删除最后一行:
sed -i '$d' file