1.从当前目录查找文件
find . -name "xxxx"
2.文件中查找内容
grep -rn "xxxx" ./
./ : 表示路径为当前目录.
-r 是递归查找
-n 是显示行号
3. Linux的CPU信息查询:cat /proc/cpuinfo
4. 查询CPU个数:# cat /proc/cpuinfo |grep processor|wc –l
5. 查询总的内存大小:# cat /proc/meminfo |grep MemTotal
6. 查询硬盘空间:
df -h|awk '{print $2}'|sed '1d'|awk -F"G" '{print $1}' | awk '{tot+=$1};END{ print "Disk Size:" tot "G"}'
7. Linux定时任务
Linux下执行:crontab –e
在打开的编辑窗口中输入下面这行,表示第天的2点执行report.sh脚本
* 2 * * * su - prestat -c "cd /home/prestat/report;./report.sh" >/dev/null 2>&1
8. 查看进程中每个线程的CPU使用情况:
ps -e -o user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
9. nm 命令
nm - list symbols from object files
nm libTest.so | grep String 列出Test动态库中String类型符号
c++filt _ZNK4String4findEPKc
10. 使用iostat命令可以查看系统IO状态
iostat l
Linux 2.6.32.12-0.7-xen 07/23/2014 _x86_64_
avg-cpu: %user %nice %system %iowait %steal %idle
32.97 0.00 8.90 3.05 0.09 54.99
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
11. Liunx上抓tcap包的命令
下面这个命令得在root用户下面使用,消息的收发端都可以使用。
tcpdump -i eth1 -Xs 0 -w 'DEST.pcap' host IP地址 and port 端口号
按Ctrl+c终止命令后,就会将抓的包信息存到DEST.pcap目录里面。
12. PC机windows下端口是否被占用:
Netstat –ao|find “10.71.122.35:8080”
或Netstat –ao|find “8080”
例如:
netstat -nao|find "0.0.0.0:80"
Local Address Foreign Address State PID TCP
TCP 0.0.0.0:80 Pacers:0 LISTENING 1144
用tasklist的FILTER,我们可以很快找到这个进程:
C:Usersinetdemon>tasklist /FI "PID eq 1144"
映像名称 PID 会话名 会话# 内存使用
13. TOP命令解析:
Us用户空间占用CPU百分比
SY内核空间占用CPU百分比
NI用户进程空间内改变过优先级的进程占用CPU百分比
ID空闲CPU百分比
WA等待输入输出的CPU时间百分比
HI硬件中断
SI软件中断
PID每个进程的ID
PPID每个进程所有者的UID
USER每个进程所有者的用户名
PRI每个进程的优先级别
SIZE该进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB
TSIZE该进程的代码大小。对于内核进程这是一个很奇怪的值
DSIZE数据和堆栈的大小
TRS文本驻留大小
D被标志为“不干净”的页项目
LIB使用的库页的大小 。对于ELF进程没有作用。
RSS该进程占用的物理内存的总数量,单位是KB。SHARE该进程使用共享内存的数量。
STAT该进程的状态。其中S代表休眼状态;D代表不可中断的休眼状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态。
TIME该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个进程子进程所占用的时间,且该时间还包括这个进程子进程所占用的时间。且标题会变成CTIME。
%CPU该进程自最过一次刷新以来所占用的CPU时间和总时间的百分比。
%MEM该进程占用的物理内存占总内存的百分比。
COMMAND该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命令行。
top
1.作用
top命令用来显示执行中的程序进程,使用权限是所有用户。
2.格式
top [-] [d delay] [q] [c] [S] [s] [n]
3.主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。
4.说明
top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。
图1 top命令的显示
在
图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起
(Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。
第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使用
的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
5.应用实例
使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面
14.巧用shell强制登出Linux用户
单板管理的过程中经常需要增删用户,在删除用户的过程中有时候会遇到下面的问题:
linux:~ # userdel user1
userdel: account user1 is currently in use.
You have new mail in /var/mail/root
主要是因为有pts在登录这个账号,所以解决方法就是kill掉可行:
pkill -kill -t ptsX
但如果单板很久没有重启,或者需要删除的用户当前很多pts在登录或者引用,就相当麻烦
既然用pkill的命令可以解决,那肯定用shell脚本也可以。通过脚本,显然可以一劳永逸的解决这个问题
脚本内容:
#!/bin/ksh
#Provided by andywu on 07.31.2013
#Notice the user to input the username that will be deleted.
if [ $# -eq 1 ]
then
username=$1
else
echo "Please input the user you want to delete:"
read username
fi
#To clear the old information.
if [ -e ptslist.txt ]
then
rm -rf ptslist.txt
fi
who | grep $username |awk '{print $2}' >> ptslist.txt
count=`cat ptslist.txt |wc -l`
echo $count
#Batched logout of pts clients.
if [ $count -gt 0 ]
then
for line in `cat ptslist.txt`
do
pkill -kill -t $line
done
fi