1. ls
ls -l -R /home/peidachang 列出/home/peidachang文件夹下的所有文件和目录的详细资料
ls -l t* 列出当前目录中所有以“t”开头的目录的详细内容
ls -l * |grep "^-"|wc -l ---文件个数
ls -sSh 列文件大小大圩排列
2. cd 切换目录
3. pwd 查看当前目录
4. mkdir 创建目录
mkdir -p test2/test22 递归创建多个目录
mkdir -m 777 test3 创建权限777的目录
5. rm 删除
rm 文件:询问是否删除
rm -f 文件 :强行删除不询问
rm -fr 文件 : 强行删除,并递归删除子目录
6. rmdir 删除目录
7. mv 移动备份改名文件
mv test.log test1.txt 改名
mv -i log1.txt log2.txt 改名,询问重复时是否覆盖
mv -f log3.txt log2.txt 改名直接覆盖
mv test1.txt test3 test1.txt移动到test3目录,多个时:mv log1.txt log2.txt log3.txt test3
mv * ../ 移动当前目录所有文件到上一级目录
8. cp 复制
cp log.log test5 复制log.log到test5目录
cp -a test3 test5 复制整个目录
9. touch 修改文件时间戳 新建文件
touch log2012.log log2013.log 创建两个文件
touch -r log.log log2012.log 更新log.log的时间和log2012.log时间戳相同
touch -t 201211142234.50 log.log 设定文件的时间戳
10. cat 链接文件
cat log2012.log 一次显示整个文件 tac log2012.log 从后往前显示
cat -n log2012.log log2013.log 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
cat -b log2012.log log2013.log log.log 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
11. nl 显示行号
nl log2012.log 用 nl 列出 log2012.log 的内容和行号,忽略空白行
nl -b a log2012.log 用 nl 列出 log2012.log 的内容,空本行也加上行号
12. more 分页显示文件
more +3 log2012.log 显示文件中从第3行起的内容
more +/day3 log2012.log 从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出
more -5 log2012.log 设定每屏显示行数5
ls -l | more -5 每行5个显示
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
13. less 比more更强大的分页显示
14. head 显示文件的开头部分
head -n 5 log.log 显示开头的5行
head -n -5 log.log 显示除了最后5行意外的部分
head -c 20 log.log 显示开头的20个字节
head -c -32 log.log 显示除最后32个字节意外的部分
15. tail 显示文件末尾部分,与head类似
tail -f log.log 循环刷新显示末尾
tail -n 5 log.log 显示结尾的5行
tail -n +5 log.log 从第五行开始显示
16. which 查找可执行文件位置
which java 搜索java位置
17. whereis 程序名搜索,只搜 二进制、man说明文件、源代码文件。搜索数据库,因此很快,一周更新一次数据库,滞后。find是实时搜索磁盘
whereis svn
whereis -b svn 值查找二进制文件
18. locate 快速搜索档案库,每天跑一次档案库
locate pwd 查找pwd的相关所有文件
19. find 磁盘搜索
find 路径 -参数 [命令]
find . -name "*.log" 当前目录查找.log结尾的文件
find . -type f -name "*.log" 当前目录查找类型问f文件的,名称为*.log的文件
find . -type d | sort 当前目录查找目录类型并排序
find /opt/soft/test/ -perm 777 查找权限777的文件
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
find test -path "test/test3" -prune -o -print test目录下查找文件,但不希望在test/test3目录下查找
find . -type f -exec ls -l {} \; find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出
find . -type f -mtime +14 -exec rm {} \; 在目录中查找更改时间在n日以前的文件并删除它们
find . -name "*.log" -mtime +5 -ok rm {} \; 在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示
find . -name "*.log" -exec mv {} .. \; 查找文件移动到指定目录
find . -name "*.log" -exec cp {} test3 \;
xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
find . -perm -7 -print | xargs chmod o-w 在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限
find / -name "core" -print | xargs echo "" >/tmp/core.log 在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中
find . -type f -print | xargs grep "hostname" 用grep命令在所有的普通文件中搜索hostname这个词
20. chmod 改变权限
chmod a+x log.log 给所有用户(a) 增加(+) 执行(x) 权限
chmod ug+w,o-x log.log 文件属主(u) 增加写权限;与文件属主同组用户(g) 增加写权限;其他用户(o) 删除执行权限
chmod a-x log.log 所有用户删除执行权限
chmod u=x log.log 撤销原有所有权限,使拥有者有可执行权限
chmod -R u+x log.log 递归赋权限,所有者增加执行权限
chmod 751 file 给属主分配读写执行,所在组读执行,其他用户执行
chmod u=rwx,g=rx,o=x file
chmod =r file 所有用户分配读权限
chmod 444 file 同上
chmod a-wr,a+r 同上
21. tar 打包(不压缩)
tar xvf fileName.tar x解包提取v显示操作过程f指定打包文件名
tar cvf fileName.tar DirName c建立新的打包文件,v显示操作过程f指定打包文件名
tar zxvf fileName.tar.gz zx支持gzip压缩文件
tar zcvf fileName.tar.gz DirName zc支持gzip解压文件
tar jxvf fileName.tar.gz jx支持bzip2压缩文件
tar jcvf fileName.tar.gz DirName jc支持bzip2解压文件
unzip fileName.zip
zip fileName.zip DirName
rar x fileName.rar
rar a fileName.rar DirName
22. chgrp 改变文件组
chgrp -v bin log.log 文件由root群组改为bin群组
chgrp -R bin logDir 文件夹及内部所有子文件递归由root群组改为bin群组
chgrp --reference=log2.log log1.log 改变log1.log群组属性,使得和log2.log相同
23. chown 改变文件所有者
系统管理员拷贝文件到另一个用户目录后改变文件所有者为那个用户
chown user:group log.log
chown user: log.log
chown :group log.log
chown -R -v root:mail dirName
24. gzip 压缩解压缩
gzip * 把当期目录所有文件分别压缩
gzip -dv * 把当前目录所有的压缩文件解压缩,-d解压缩v显示过程信息
gzip -rv dirName 递归分别压缩目录里的所有文件,不打包
gzip -dr dirName 上面的解压缩
25. df查询磁盘信息
df 显示磁盘使用情况
df -t ext3 显示指定类似ext3磁盘
df -T 列出文件系统类似
df -h 更易读的方式显示磁盘信息
26. du 显示目录和文件占用空间
du -h * | sort -n
du -s ./* | sort -rn r倒序排列
du log.log 显示文件占用空间
du log2.log log3.log log4.log 显示多个文件大小
du dirName 目录空间占用
du -s dirName 显示总和大小
du -h 方便阅读显示
du -ah dirName 文件目录都显示
du -c log1.log log2.log 分别显示大小,并统计显示总大小,-s的增强
du|sort -nr|more 按空间大小排序
27. ln 软硬连接,软是文件或者目录的快捷方式,硬是文件拷贝,都可同步
ln -s log.log link1 建立log.log的快捷方式link1
ln log.log ln1 建立硬连接
rm -fr 删除:硬连接任然存在,软链接会闪烁提示源不存在
ln -sv /opt/soft/test/test3 /opt/soft/test/test5 必须绝对路径
28. diff 比较文件差异
diff log1.log log2.log 比较两个文件差异,输入差异的地方
diff log1.log log2.log -y -W 50 并行左右输出-y,宽度50字符,比较
diff log1.log log2.log -c 上下文输出格式
diff dir1 dir2 比较文件夹不同
29. date 命令
date 显示当前时间
30. cal 显示日历
cal 9 2014 显示 2014年 9月日历
cal -y 2014 显示整年日历
cal -m 显示日历,星期一显示在第一列
31. grep
ps -ef|grep svn -c 指定进程个数
cat test.txt | grep -f test2.txt 从test中过滤,按照test2.txt中的规则过滤
cat test.txt | grep -nf test2.txt 外加现实行号
grep 'linux' test.txt test2.txt 文件中搜索linux
grep aux | grep ssh | grep -v "grep" 过滤含有ssh但不含有grep 的进程
cat test.txt | grep ^u 找出u开头的所有行
cat test.txt | grep ^[^u] 找出非u开头的所有行
cat test.txt | grep hat$ 以hat结尾的行
cat test.txt | grep -E "ed|at" 含有ed或者at字符的内容行
grep '[a-z]\{7\}' *.txt 目录下.txt结尾的文件中,搜索含有连续7个字符的行
32. wc word count 统计字数、字节数、行数
wc test.txt 行数 单词数 字节数
-c 统计字节数 -l 统计行数 -m 统计字符串数 -w 统计字数
33. ps Process Status
ps -A 所有进程
ps -u root root用户的进程
ps -ef 显示所有进程 e显示环境变量 f显示程序之间的关系
ps -au 显示详细信息
ps aux 列举所有内存中的程序
34 kill 按pid杀进程
kill -9 pid
35 killall 按名称啥进程
killall vi
killall -9 bash 把所有登陆后的bash杀掉
36 top 进程资源占用,类似windows任务管理器 http://www.jb51.net/LINUXjishu/34604.html
top -Hp pid 查询指定进行的线程资源占用情况
shift + h 切换线程
1 切换查看多处理器每个内核情况
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
内容:
当前时间 系统运行时间 当前登陆用户数 1/5/15分钟load负载
进程总数 *** zombie:僵尸进程数
处理器: us:用户空间占用CPU百分比 sy:内核空间占用CPU百分比 ni:用户进程空间内改变过优先级的进程占用CPU百分比 id:空闲CPU百分比
wa:等待输入输出的CPU时间百分比 hi 硬中断 si 软中断
内存: buffers:用作内核缓存的内存量 cached:缓冲的交换区总量
进程: PR:优先级 NI:nice值。负值表示高优先级,正值表示低优先级 VIRT: 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP:进程使用的虚拟内存中,被换出的大小,单位kb。 RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR: 共享内存大小,单位kb S:D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
TIME+: 进程使用的CPU时间总计,单位1/100秒
37 free 查询内存命令
free -g 按G为单位显示内存情况 -m按M显示
free -s 10 10秒显示一次
输出: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html
第一行的输出时从操作系统(OS)来看的。也就是说,从OS的角度来看:
shared 表示被几个进程共享的内存
buffer和cache可以被快速回收的
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
free输出的第二行是从一个应用程序的角度看系统内存的使用情况。
一个应用程序认为系统被用掉多少内存(= 一行的used - buffer - cache)
一个应用程序认为系统还有多少内存(= 一行的free + buffer + cache )
38 vmstat 虚拟内存使用 http://blog.csdn.net/chinalinuxzend/article/details/1761998
vmstat 5 1000 5s采样一次,采样1000次
vmstat -a 5 1000 显示活跃和非活跃内存大小
vmstat -f 查看fork多少次
vmstat -s 内存使用详细信息
vmstat -d 统计所有磁盘读写
vmstat -p /dev/sda1 统计指定磁盘读写
vmstat -m 查看slab小对象创建销毁缓存区
r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。一般负载超过了3就比较高,超过了5就高,超过了10就不正常了
b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
cache cache直接用来记忆我们打开的文件,给文件做缓冲,Linux/Unix把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
This shows the number of blocks read from the disk in the previous interval
bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
This indicates the number of total blocks written to disk in the previous interval
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wt 等待IO CPU时间。 This indicates the amount of CPU time spent waiting for I/O to complete
-s:
cpu ticks 时钟频率
nice user cpu ticks nice加权的进程 的 用户态CPU频率
IRQ cpu ticks 中断请求的 cpu频率
softirq cpu ticks 软中断 cpu频率
CPU context switches 处理器上线文切换次数
pages paged in IN分页的 总VM页面数
pages paged out OUT分页的 总VM页面数
pages swapped in IN交换的 总VM页面数
pages swapped out OUT交换的 总VM页面数
forks fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
-D/-d:
partitions 总分区数
total reads 请求读总数
merged reads 不同的读请求归并到一起读的次数(优化读性能)
read sectors 读磁盘扇面总数
milli reading 读磁盘耗费时间
inprogress IO (IO: cur): The total number of I/O that are currently in progress
milli spent IO(IO: s): This is the number of milliseconds spent waiting for I/O to complete
39 iostat 输入输出统计,磁盘 http://blog.csdn.net/chinalinuxzend/article/details/1761998
iostat 2 100 2秒一次,采集100次,显示cpu和io
iostat -c 只显示cpu信息
iostat -d sda1 显示指定磁盘(d)信息
iostat -m 以m为单位显示
iostat -d -k 显示磁盘信息,k为单位,包括tps和吞吐量
iostat -d -x -k 2 1000 显示使用率和响应时间,-x显示详细信息
iostat -x : This shows extended-performance I/O statistics.
tps: Transfers per second. This is the number of reads and writes to the drive/partition per second.
Blk_read/s : The rate of disk blocks read per second.
Blk_read : The total number of blocks read during the interval.
rrqm/s : The number of reads merged before they were issued to the disk
wrqm/s : The number of writes merged before they were issued to the disk.
r/s : The number of reads issued to the disk per second.
w/s : The number of writes issued to the disk per second.
rsec/s : Disk sectors read per second.
wsec/s : Disk sectors written per second.
rkB/s : Kilobytes read from disk per second. 每秒读磁盘多少K
wkB/s : Kilobytes written to disk per second.
avgrq-sz : The average size (in sectors) of disk requests.
avgqu-sz : The average size of the disk request queue.
await : The average time (in ms) for a request to be completely serviced. This average includes the time that the request was waiting in the disk's queue plus the amount of time it was serviced by the disk.
svctm : The average service time (in ms) for requests submitted to the disk. This indicates how long on average the disk took to complete a request. Unlike await, it does not include the amount of time spent waiting in the queue.
40 watch 周期执行命令、定时执行命令 时显示结果,因为有的命令没有定时刷新显示参数
watch -n 1 -d netstat -ant 没一秒 执行一次 netstat -ant命令,-d高亮显示差异
Ctrl + g 取消
watch -n 1 -d 'pstre|grep http' 每隔一秒高亮显示http连接数的变化
watch -n 10 'cat /proc/loadavg' 每10秒输出一次系统负载
41 at 预订时间执行一次任务
at 5pm+3 days 3天后 下午5点执行后面输入的任务
at 17:20 tomorrow
atq 查询所有预订任务
atrm 编号 删除预订任务
42 crontab定时执行任务,多次执行
minute hour day month week command
yum install crontabs
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
service crond status
ntsysv 查看系统开机启动
chkconfig -level 35 crond on 开机启动crond
创建crontab 文件 mytest
crontab mytest
crontab -l 列出
crontab -e 编辑
crontab -r 删除
* * * * * cmd 每一份钟执行一次
43 lsof 查看进程打开的文件,打开文件的进程,进程打开的端口
lsof
lsof /bin/bash 查看谁在使用/bin/bash文件
lsof -D test/test3 递归查看某个目录的文件信息
lsof | grep 'test/test3' 同上
lsof -u liufei.cxd 用户打开的文件
lsof -c mysql -c apache 某个进程打开的文件
lsof -p 1,2,3 1,2,3进程打开的文件
lsof -i 列出所有网络连接信息
lsof -i tcp
lsof -i udp
lsof -i :3306
lsof -i udp:55
lsof -i tcp:80
44 ifconfig 查看ip,网卡管理
ifconfig 查看ip
ifconfig eth0 up 打开eth0网卡
ifconfig eth0 down 关闭eth0网卡
45 route 显示和操作IP路由表
46 ping 加ip测试联通性
ping 192.168.1.201
ping -c 10 192.168.1.23 ping 10 次
ping -c 10 -i 0.5 ip -i 间隔0.5秒就发一个包
47 traceroute 一台机器到另一台机器的路由经过
traceroute www.baidu.com
traceroute -m 10 www.baidu.com 最多10跳
tracetoute -n www.baidu.com 显示ip不显示主机名
48 netstat IP\TCP\UDP\ICMP协议数据统计
netstat -a 列出所有端口 -a显示所有连线中的socket
netstat -nu 显示当前UDP链接情况 -n显示IP,不通过域名服务器 u:udp t:tcp
netstat -apu 显示uDP端口和使用情况 -p正在使用
netstat -s 显示网络统计信息
netstat -l 显示监听的套接口
netstat -n 显示所有已建立的链接
netstat -e 显示以太网的统计数据
netstat -r 显示路由表信息
netstat -at 列出所有tcp端口
netstat -ap | grep ssh 显示程序运行的端口
netstat -anpt | grep ':8080' 显示运行在指定端口的进程
netstat -st tcp统计信息
netstat -ie 显示网卡列表并统计以太网信息
49 ss 显示socket信息,比netstat更快更详细
ss -t -a -t显示tcp连接,-a显示所有socket
ss -s -s统计显示套接字使用概况
ss -l -l列举所有打开的网络连接端口
ss -pl -p查看进程使用的socket
ss -pl |grep 3306
ss -u -a -u UDP的socket
ss dest 192.1.1.1:443 匹配目的地址和端口号
ss src 192.1.1.1:80 匹配本地地址和端口
50 wget 下载文件 从网络下载资源
wget http://....*.zip
wget http://127.0.0.1:7001/status.1688
51 sort
sort -u seq.txt 去除重复行
sort -r number.txt 降序
sort -n number.txt 要以数值来排序
sort -n -k 2 -t : facebook.txt -t 设定间隔符 -k 指定列数,按哪列排序
-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
52 uniq
uniq -c 一般用于排序后,统计相邻行的重复出现次数,输出为: 重复次数 重复内容
uniq -d 只输出重复行
uniq -d 只显示文件中不重复的各行
53 python发布web服务:
python -m SimpleHTTPServer 7777
54 nicstat 网络流量统计实用工具 http://www.linuxidc.com/Linux/2013-07/86941.htm
./nicstat.sh -l 查看网卡速度
./nicstat 3 2 间隔3秒,查看2次结果
./nicstat 3 2 -x 查看扩展信息
./nicstat.sh -t 查看tcp相关信息
./nicstat.sh -u 查看udp相关信息
./nicstat.sh -M 默认以KB为单位,现在以M单位查看
参数:
lo and eth0 : 网卡名称.
rKB/s : 每秒接收到千字节数.
wKB/s : 每秒写的千字节数.
rPk/s : 每秒接收到的数据包数目.
wPk/s : 每秒写的数据包数目.
rAvs : 接收到的数据包平均大小.
wAvs : 传输的数据包平均大小.
%Util : 网卡利用率(百分比).
Sat : 网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息.
-t
InKB : 表示每秒接收到的千字节.
OutKB : 表示每秒传输的千字节.
InSeg : 表示每秒接收到的TCP数据段(TCP Segments).
OutSeg : 表示每秒传输的TCP数据段(TCP Segments).
Reset : 表示TCP连接从ESTABLISHED或CLOSE-WAIT状态直接转变为CLOSED状态的次数.
AttF : 表示TCP连接从SYN-SENT或SYN-RCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYN-RCVD状态直接转变为LISTEN状态的次数
%ReTX : 表示TCP数据段(TCP Segments)重传的百分比.即传输的TCP数据段包含有一个或多个之前传输的八位字节.
InConn : 表示TCP连接从LISTEN状态直接转变为SYN-RCVD状态的次数.
OutCon : 表示TCP连接从CLOSED状态直接转变为SYN-SENT状态的次数.
Drops : 表示从完成连接(completed connection)的队列和未完成连接(incomplete connection)的队列中丢弃的连接次数.
-u
InDG : 每秒接收到的UDP数据报(UDP Datagrams)
OutDG : 每秒传输的UDP数据报(UDP Datagrams)
InErr : 接收到的因包含错误而不能被处理的数据包
OutErr :因错误而不能成功传输的数据包.
55 proc
/proc/cpuinfo - CPU 的信息(型号, 家族, 缓存大小等)
/proc/meminfo - 物理内存、交换空间等的信息
/proc/mounts - 已加载的文件系统的列表
/proc/devices - 可用设备的列表
/proc/filesystems - 被支持的文件系统
/proc/modules - 已加载的模块
/proc/version - 内核版本
/proc/cmdline - 系统启动时输入的内核命令行参数
56 pstack
pstack pid > pstack.txt
57 history 查看历史命令
history 10 历史10条命令
58 last 显示历史登陆用户
59 查看linux操作系统日志 /var/log/
sudo -u root grep 'java' /var/log/messages 查看指定进程的操作系统日志
messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。
其他信息,比如某个人的身份切换为 root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。
通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。
dmesg 用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里
硬盘性能低下 : dmesg | grep DMA
以太网连接出现问题 dmesg | grep eth
sudo dmesg|grep -i kill|less
60 tree 树状列文件及目录
tree -s 列出文件及目录大小
61 文件分割:
split -b 2000m filename copy /B file + file2 newFile
62 echo 输出并换行
-n 取消末尾的换行输出
-e 开启反斜杠控制字符串转义 -E关闭
63 '' 和 "" 区别:
' ' (單引號),凡在 hard quote 中的所有 meta 均被关闭。
" " (雙引號),在 soft quoe 中大部份 meta 都会被关闭,但某些則保留(如 $ )
64 命令群组:() {}
( ) 將 command group 置於 sub-shell 去執行,也稱 nested sub-shell。
{ } 則是在同一個 shell 內完成,也稱為 non-named command group。
若,你對上一章的 fork 與 source 的概念還記得了的話,那就不難理解兩者的差異了。
要是在 command group 中扯上變量及其他環境的修改,我們可以根據不同的需求來使用 ( ) 或 { } 。
通常而言,若所作的修改是臨時的,且不想影響原有或以後的設定,那我們就 nested sub-shell ,
反之,則用 non-named command group 。
65 tsar / sar 查看最近一天的处理器及内存占用情况:
tsar -d 20150404 查看2015年4月4日的情况
sar -u -o saveFile.txt 10 5 查询cpu信息,保存为文件saveFile.txt 10秒采集一次,采集5次
sar -A 输出所有报告的综合
sar -u 统计处理器情况
sar -r 统计内存 -R统计内存页面
sar -b 统计IO和传输率
sar -c 统计进行创建数信息
sar -w 文件系统交换情况
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
66 显示进程的内存映像信息: pmap
pmap [ -x | -d ] [ -q ] pids
-x extended Show the extended format. 显示扩展格式
-d device Show the device format. 显示设备格式
-q quiet Do not display some header/footer lines. 不显示头尾行
-V show version Displays version of program. 显示版本
pmap -x 8092 | grep tddl