├── IO.sh ├── README.md ├── awk.sh ├── cookieloganalysis.sh ├── cpu.sh ├── dish.sh ├── javadump.sh ├── maven.sh ├── mysqlmonitor.sh ├── net.sh ├── performancetool.sh └── process.sh /IO.sh: -------------------------------------------------------------------------------- 1 | IO.sh 2 | 3 | ##iostat是查看磁盘活动统计情况 4 | 5 | ##显示所有设备负载情况 r/s: 每秒完成的读 I/O 设备次数。即 rio/s;w/s: 每秒完成的写 I/O 设备次数。即 wio/s等 6 | iostat 7 | 8 | ##每隔2秒刷新磁盘IO信息,并且每次显示3次 9 | iostat 2 3 10 | 11 | #显示某个磁盘的IO信息 12 | iostat -d sda1 13 | 14 | ##显示tty和cpu信息 15 | iostat -t 16 | 17 | ##以M为单位显示磁盘IO信息 18 | iostat -m 19 | 20 | ##查看TPS和吞吐量信息 kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量; 21 | iostat -d -k 1 1 22 | 23 | #查看设备使用率(%util)、响应时间(await) 24 | iostat -d -x -k 1 1 25 | 26 | #查看CPU状态 27 | iostat -c 1 3 28 | 29 | #统计进程(pid)的stat,进程的stat自然包括进程的IO状况 30 | pidstat 31 | 32 | #只显示IO 33 | pidstat -d 1 34 | 35 | #-d IO 信息,-r 缺页及内存信息-u CPU使用率-t 以线程为统计单位1 1秒统计一次 36 | pidstat -u -r -d -t 1 37 | 38 | #文件级IO分析,查看当前文件由哪些进程打开 39 | lsof 40 | ls /proc/pid/fd 41 | 42 | #利用 sar 报告磁盘 I/O 信息DEV 正在监视的块设备 tps 每秒钟物理设备的 I/O 传输总量 rd_sec/s 每秒从设备读取的扇区数量 wr_sec/s 每秒向设备写入的扇区数量 avgrq-sz I/O 请求的平均扇区数 43 | #avgqu-sz I/O 请求的平均队列长度 await I/O 请求的平均等待时间,单位为毫秒 svctm I/O 请求的平均服务时间,单位为毫秒 %util I/O 请求所占用的时间的百分比,即设备利用率 44 | sar -pd 10 3 45 | 46 | #iotop top的io版 47 | iotop 48 | 49 | #查看页面缓存信息 其中的Cached 指用于pagecache的内存大小(diskcache-SwapCache)。随着写入缓存页,Dirty 的值会增加 一旦开始把缓存页写入硬盘,Writeback的值会增加直到写入结束。 50 | cat /proc/meminfo 51 | 52 | #查看有多少个pdflush进程 Linux 用pdflush进程把数据从缓存页写入硬盘 53 | #pdflush的行为受/proc/sys/vm中的参数的控制/proc/sys/vm/dirty_writeback_centisecs (default 500): 1/100秒, 多长时间唤醒pdflush将缓存页数据写入硬盘。默认5秒唤醒2个(更多个)线程。如果wrteback的时间长于dirty_writeback_centisecs的时间,可能会出问题 54 | cat /proc/sys/vm/nr_pdflush_threads 55 | 56 | #查看I/O 调度器 57 | #调度算法 58 | #noop anticipatory deadline [cfq] 59 | #deadline : deadline 算法保证对既定的IO请求以最小的延迟时间。 60 | #anticipatory: 有个IO发生后,如果又有进程请求IO,则产生一个默认6ms猜测时间,猜测下一个进程请求IO是干什么。这对于随机读取会造成较大的延时。对数据库应用很糟糕,而对于Web Server等则会表现不错。 61 | #cfq: 对每个进程维护一个IO队列,各个进程发来的IO请求会被cfq以轮循方式处理,对每一个IO请求都是公平。适合离散读的应用。 62 | #noop: 对所有IO请求都用FIFO队列形式处理。默认IO不会存在性能问题。 63 | cat /sys/block/[disk]/queue/scheduler 64 | 65 | 66 | #改变IO调度器 67 | $ echo deadline > /sys/block/sdX/queue/scheduler 68 | #提高调度器请求队列的 69 | $ echo 4096 > /sys/block/sdX/queue/nr_requests -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | shell-work 2 | ========== 3 | 4 | shell常用分析命令和脚本 5 | 6 | ##mysql监控脚本 7 | 8 | ##cookielog分析脚本 9 | 10 | ##线上java进程信息dump和机器信息dump脚本 11 | 12 | ##cpu监控相关 13 | 14 | ##dish 磁盘管理 15 | 16 | -------------------------------------------------------------------------------- /awk.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhwj184/shell-work/d56c20827a12e31ffa4e0bfd839375a2be89deeb/awk.sh -------------------------------------------------------------------------------- /cookieloganalysis.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhwj184/shell-work/d56c20827a12e31ffa4e0bfd839375a2be89deeb/cookieloganalysis.sh -------------------------------------------------------------------------------- /cpu.sh: -------------------------------------------------------------------------------- 1 | #限制某个线程的cpu使用率 2 | sudo cpulimit -p pid -l 50 3 | ps -eo %cpu,args | grep -m1 PROCESS | awk '{print $1}' 4 | 5 | #将当前进程按照memory和cpu排序 6 | ps aux --sort=%mem,%cpu 7 | 8 | #按照cpu使用率排序 9 | ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d" 10 | 11 | #查看当前系统的物理cpu个数 12 | grep "processor" /proc/cpuinfo | wc -l 13 | grep -c -e '^cpu[0-9]\+' /proc/stat 14 | 15 | #查看当前cpu型号 16 | grep "model name" /proc/cpuinfo 17 | 18 | #查看当前cpu信息 19 | cat /proc/cpuinfo 20 | 21 | #查看当前系统的位数 22 | grep -q '\' /proc/cpuinfo && echo 64 bits || echo 32 bits 23 | getconf LONG_BIT | grep '64' 24 | java -version 25 | 26 | #查看当前系统的cpu频率 27 | awk -F": " '/cpu MHz\ */ { print "Processor (or core) running speed is: " $2 }' /proc/cpuinfo ; dmidecode | awk -F": " '/Current Speed/ { print "Processor real speed is: " $2 }' 28 | 29 | 30 | #查看每个cpu每个进程的cpu使用率 31 | ps ax -L -o pid,tid,psr,pcpu,args | sort -nr -k4| head -15 | cut -c 1-90 32 | 33 | #查看当前中断 34 | cat /proc/interrupts 35 | 36 | #查看多个处理器的使用率相关信息 37 | mpstat –P ALL 1 38 | 39 | #每个物理CPU中Core的个数: 40 | cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}' 41 | 42 | #是否为超线程? 43 | #如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。 44 | #每个物理CPU中逻辑CPU(可能是core, threads或both)的个数: 45 | cat /proc/cpuinfo | grep "siblings" 46 | 47 | #/proc/stat 文件中有一行记录的机器从启动依赖,各个中断序号发生中断的次数。 48 | #这一行以intr开头,接下来的第一个数字是总的中断数目,之后就是分别的中断数目,从0开始。 49 | cat /proc/stat | grep intr 50 | -------------------------------------------------------------------------------- /dish.sh: -------------------------------------------------------------------------------- 1 | #按照目录大小排序战士最前面15个目录或者文件 2 | du -xB M --max-depth=2 /var | sort -rn | head -n 15 3 | 4 | #列出当前所有子目录的文件大小 5 | du -h --max-depth=1 6 | 7 | #列出当前文件或者目录最大的10个 8 | du -s * | sort -n | tail 9 | 10 | #按照目录大小从大到小排序 11 | du -b --max-depth 1 | sort -nr | perl -pe 's{([0-9]+)}{sprintf "%.1f%s", $1>=2**30? ($1/2**30, "G"): $1>=2**20? ($1/2**20, "M"): $1>=2**10? ($1/2**10, "K"): ($1, "")}e' 12 | 13 | #列出path这个目录的文件树 14 | du -h /path | sort -h 15 | 16 | #每隔60s监控对应目录的文件大小变化 17 | watch -n60 du /var/log/messages 18 | 19 | 20 | #递归删除当前目录下所有子目录中的.svn目录 21 | find . -type d -name '.svn' -print0 | xargs -0 rm -rdf 22 | 23 | #列出当前磁盘的使用情况 24 | df -P | column -t 25 | 26 | #监控磁盘的使用情况 27 | watch -d -n 5 df 28 | 29 | #列出当前inode的使用情况 30 | df -i 31 | 32 | #按照每个磁盘使用量从高到低排序 33 | df -h | grep -v ^none | ( read header ; echo "$header" ; sort -rn -k 5) 34 | 35 | 36 | #查看物理磁盘的使用情况 37 | df -x tmpfs | grep -vE "(gvfs|procbususb|rootfs)" 38 | 39 | #查看当前所有磁盘的大小和使用量 40 | df -H 41 | 42 | #查看所有分区使用情况 43 | fdisk -l /dev/sda 44 | 45 | # 显示系统所有的分区或给定的分区 46 | fdisk -l 47 | # 显示时,显示的是扇区数不是柱面数 48 | fdisk -u 49 | # 显示指定partition的block数 50 | fdisk -s partition 51 | 52 | #查看磁盘的读写容量 53 | iostat -m -d /dev/sda1 54 | 55 | #测试磁盘的读写速度 56 | hdparm -t /dev/sda 57 | 58 | #查看某个文件的所有链接 59 | find -L / -samefile /path/to/file -exec ls -ld {} + 60 | 61 | #查看最大的5个文件 62 | find . -type f -exec ls -s {} \; | sort -n -r | head -5 63 | 64 | #查看365天前的文件并删除 65 | find ./ -type f -mtime +365 -exec rm -f {} \; 66 | 67 | #查看大于100M的文件 68 | find . -type f -size +100M 69 | -------------------------------------------------------------------------------- /javadump.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhwj184/shell-work/d56c20827a12e31ffa4e0bfd839375a2be89deeb/javadump.sh -------------------------------------------------------------------------------- /maven.sh: -------------------------------------------------------------------------------- 1 | maven常用命令 2 | 3 | 4 | ##查看maven版本 5 | mvn --version 6 | 7 | ##创建基于maven web archetype的 maven web工程 8 | ##创建maven的spring web工程 http://www.mkyong.com/maven/how-to-create-a-web-application-project-with-maven/ 9 | mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 10 | 11 | ##创建maven的java普通工程 12 | mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app 13 | 14 | ##编译工程 15 | mvn compile 16 | 17 | ##执行单元测试 18 | mvn test 19 | 20 | ##打包 21 | mvn package 22 | 23 | ##安装到本地maven库 24 | mvn install 25 | 26 | ##将包部署到远程仓库 27 | mvn deploy 28 | 29 | 30 | ##将工程生成web站点,可以基于site的语法生成一个文档性的网站 31 | mvn site 32 | 33 | 34 | ##删除编译好的target目录 35 | mvn clean 36 | 37 | 38 | ##生成eclipse工程 39 | mvn eclipse:eclipse 40 | 41 | ##生成 IntelliJ IDEA工程 42 | mvn idea:idea 43 | 44 | 45 | ##如果maven工程中配置了jetty插件,则下面名称启动jetty内置服务器 46 | mvn jetty:run 47 | 48 | 49 | ##查看工程里面激活生效的profile, 50 | mvn help:active-profiles 51 | 52 | ##安装指定文件到本地仓库 53 | mvn install:install-file -DgroupId= -DartifactId= -Dversion=1.0.0 -Dpackaging=jar -Dfile= 54 | 55 | ##查看实际pom信息 56 | mvn help:effective-pom 57 | 58 | ##分析项目的依赖信息 打印整个依赖树 59 | mvn dependency:analyze 或 mvn dependency:tree 60 | 61 | 62 | ##查看帮助信息 63 | mvn help:help 或 mvn help:help -Ddetail=true 64 | 65 | ##查看插件的帮助信息 66 | mvn :help,比如:mvn dependency:help 或 mvn ant:help 67 | 68 | ##打包时跳过测试 69 | mvn package -Dmaven.test.skip=ture 70 | 71 | ##使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。 72 | mvn help:describe -Dplugin=help 73 | 74 | ##使用Help 插件输出完整的带有参数的目标列 75 | mvn help:describe -Dplugin=help -Dfull 76 | 77 | ##Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 78 | mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main 79 | 80 | ##Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序 81 | mvn dependency:resolve 82 | 83 | ##想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行 84 | mvn install -X 85 | 86 | ##构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件 87 | mvn install assembly:assembly 88 | 89 | ##显示详细错误信息 90 | mvn -e 91 | 92 | ##验证工程是否正确 93 | mvn validate 94 | 95 | ##在集成测试可以运行的环境中处理和发布包 96 | mvn integration-test 97 | 98 | ##运行任何检查,验证包是否有效且达到质量标准 99 | mvn verify 100 | 101 | ##产生应用需要的任何额外的源代码,如xdoclet 102 | mvn generate-sources 103 | 104 | ##下载源码 105 | mvn -DdownloadSources=true 106 | 107 | ##下载javadoc 108 | mvn -DdownloadJavadocs=true 109 | 110 | ##先下载最新版本,再执行打包操作 111 | mvn -U package -------------------------------------------------------------------------------- /mysqlmonitor.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhwj184/shell-work/d56c20827a12e31ffa4e0bfd839375a2be89deeb/mysqlmonitor.sh -------------------------------------------------------------------------------- /net.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | #查看http请求的header 4 | tcpdump -s 1024 -l -A -n host 192.168.9.56 5 | tcpdump -s 1024 -l -A src 192.168.9.56 or dst 192.168.9.56 6 | sudo tcpdump -A -s 1492 dst port 80 7 | 8 | #本地网络中IP地址为192.168.0.5的主机现在与外界通信的情况 9 | sudo tcpdump -i eth0 src host 192.168.0.5 10 | 11 | #查看网卡eth0的http请求的tcp包 12 | tcpdump -i eth0 port http 13 | tcpdump -i eth0 port http or port smtp or port imap or port pop3 -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna me:|password:|login:|pass |user ' 14 | 15 | 16 | #查看tcp,upd,icmp非ssh的包 17 | tcpdump -n -v tcp or udp or icmp and not port 22 18 | 19 | 20 | #查看http请求的request 包 21 | sudo tcpdump -i eth0 port 80 -w - 22 | 23 | 24 | #过滤http响应的get host头信息 25 | sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "GET \/.*|Host\: .*" 26 | 27 | 28 | #DNS查询请求响应包 29 | sudo tcpdump -i en0 'udp port 53' 30 | 31 | #nmap -sP指定使用Ping echo 进行扫描 /24查看目的网络有多少主机处于运行状态 32 | nmap -sP 192.168.0.1 33 | nmap -sP 192.168.0.0/24 34 | nmap -O www.baidu.com 35 | 36 | #Netstat主要用于Linux/Unix主机察看自身的网络状况,如开启的端口、在为哪些用户服务以及服务的状态 37 | netstat -a 38 | netstat -nlp 39 | 40 | #netcat扫描机器开放的端口 41 | nc -z -v -n 172.31.100.7 21-25 42 | 43 | #netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。 44 | nc -v 172.31.100.7 21 45 | 46 | #输出网络的路由表 47 | route 48 | 49 | #显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。 50 | uptime 51 | 52 | #监控 eth1 的网卡的流量 53 | iftop -i eth1 54 | #以位元组(bytes 即字节)为单位显示流量(预设是位元 bits): 55 | iftop -B 56 | #直接显示 IP, 不进行DNS 反解: 57 | iftop -n 58 | #直接显示连接埠编号, 不显示服务名称: 59 | iftop -N 60 | #显示某个网段进出封包流量 61 | iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0 62 | 63 | 64 | #网络流量实时监控工具之nload,查看网卡eth0的流量 65 | nload -n eth0 66 | 67 | #查看各个网卡的流量 68 | nload -h 69 | 70 | #IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器 71 | iptraf 72 | 73 | 74 | #查看网络接口当前配置与接口命名: 75 | ifconfig 76 | #打开(up)或关闭(down)适配器 77 | ifconfig <网络名> 78 | #为适配器分配IP地址: 79 | ifconfig <网络名> 80 | #为适配器分配第二个IP地址: 81 | ifconfig <网络名:实例数> 82 | 83 | #显示某个网络适配器的驱动信息,适用于查询软件兼容性的情况: 84 | ethtool -i eth0 85 | #显示网络数据: 86 | ethtool -S 87 | #设置适配器连接速度(Mbps) 88 | ethtool speed <10|100|1000> 89 | 90 | 91 | #iwconfig 查基本的Wi-Fi网络设置,如SSID、channel和加密等细节。此外还可以修改一些高级设置,包括接收敏感度,RTS/CTS,碎片,以及重试数 92 | #显示当前无线设置,包括接口名称: 93 | iwconfig 94 | #设置ESSID(扩展服务设置识别器)或网络名: 95 | iwconfig <接口名> essid <网络名> 96 | 97 | 98 | #wget 99 | wget -S --spider http://osswin.sourceforge.net/ 2>&1 | grep Mod 100 | 101 | #查看mac地址 102 | cat /sys/class/net/*/address 103 | 104 | #查看eth0的ip 105 | ifconfig eth0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}' 106 | 107 | #curl 查看页面对应的domail name 108 | curl -s http://en.m.wikipedia.org/wiki/List_of_Internet_top-level_domains | sed -n '//{s/<[^>]*>//g;p}' 109 | 110 | #talnet 111 | telnet localhost 6666 112 | 113 | #查看所有的网络接口 114 | awk '{print $1}' /proc/net/dev|grep :|sed "s/:.*//g" 115 | 116 | 117 | #查看DNS server版本好 118 | nslookup -q=txt -class=CHAOS version.bind NS.PHX5.NEARLYFREESPEECH.NET 119 | -------------------------------------------------------------------------------- /performancetool.sh: -------------------------------------------------------------------------------- 1 | #查看当前系统load 2 | uptime 3 | 4 | #查看系统状态和每个进程的系统资源使用状况 5 | top 6 | 7 | #可视化显示CPU的使用状况 8 | htop 9 | 10 | #查看每个CPU的负载信息 11 | mpstat -P ALL 1 12 | 13 | #每隔1秒查看磁盘IO的统计信息 14 | iostat -xkdz 1 15 | 16 | #每隔一秒查看虚拟内存的使用信息 17 | vmstat 1 18 | 19 | #查看内存使用统计信息 20 | free 21 | 22 | #查看网络使用信息 23 | nicstat -z 1 24 | 25 | #类似vmstat的显示优化的工具 26 | dstat 1 27 | 28 | #查看系统活动状态,比如系统分页统计,块设备IO统计等 29 | sar 30 | 31 | #网络连接状态查看 32 | netstat -s 33 | 34 | #进程资源使用信息查看 35 | pidstat 1 36 | pidstat -d 1 37 | 38 | #查看某个进程的系统调用信息 -p后面是进程id,-tttT 进程系统后的系统调用时间 39 | strace -tttT -p 12670 40 | #统计IO设备输入输出的系统调用信息 41 | strace -c dd if=/dev/zero of=/dev/null bs=512 count=1024k 42 | 43 | 44 | #tcpdump 查看网络数据包 45 | tcpdump -nr /tmp/out.tcpdump 46 | 47 | #块设备的读写事件信息统计 48 | btrace /dev/sdb 49 | 50 | #iotop查看某个进程的IO操作统计信息 51 | iotop -bod5 52 | 53 | #slabtop 查看内核 slab内存分配器的使用信息 54 | slabtop -sc 55 | 56 | #系统参数设置 57 | sysctl -a 58 | 59 | #系统性能指标统计信息 60 | perf stat gzip file1 61 | #系统cpu活动状态查看 62 | perf record -a -g -F 997 sleep 10 -------------------------------------------------------------------------------- /process.sh: -------------------------------------------------------------------------------- 1 | ## processes 进程管理 2 | 3 | ##ps查看当前系统执行的线程列表,进行瞬间状态,不是连续状态,连续状态需要使用top名称查看 更多常用参数请使用 man ps查看 4 | ps 5 | 6 | ##显示所有进程详细信息 7 | ps aux 8 | 9 | ##-u 显示某个用户的进程列表 10 | ps -f -u www-data 11 | 12 | ## -C 通过名字或者命令搜索进程 13 | ps -C apache2 14 | 15 | ## --sort 根据进程cpu使用率降序排列,查看前5个进程 -pcpu表示降序 pcpu升序 16 | ps aux --sort=-pcpu | head -5 17 | 18 | ##-f 用树结构显示进程的层次关系,父子进程情况下 19 | ps -f --forest -C apache2 20 | 21 | ##显示一个父进程的所有子进程 22 | ps -o pid,uname,comm -C apache2 23 | ps --ppid 2359 24 | 25 | ##显示一个进程的所有线程 -L 参数 26 | ps -p 3150 -L 27 | 28 | ##显示进程的执行时间 -o参数 29 | ps -e -o pid,comm,etime 30 | 31 | ##watch命令可以用来实时捕捉ps显示进程 32 | watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15' 33 | 34 | ##jobs 查看后台运行的进程 jobs命令执行的结果,+表示是一个当前的作业,减号表是是一个当前作业之后的一个作业,jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息 35 | jobs 36 | 37 | ##查看后台运营的进程号 38 | jobs -p 39 | 40 | ##查看现在被终止或者退出的进程号 41 | jobs -n 42 | 43 | 44 | ##kill命令 终止一个前台进程可以使用Ctrl+C键 kill 通过top或者ps获取进程id号 kill [-s 信号 | -p ] [ -a ] 进程号 ... 45 | ##发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。 关闭进程号12的进程 46 | kill 12 47 | 48 | 49 | ##等同于在前台运行PID为123的进程时按下Ctrl+C键 50 | kill -2 123 51 | 52 | ##如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程 53 | kill -9 123 54 | 55 | ##列出所有信号名称 56 | ##HUP 1 终端断线 57 | ##INT 2 中断(同 Ctrl + C) 58 | ##QUIT 3 退出(同 Ctrl + \) 59 | ##TERM 15 终止 60 | ##KILL 9 强制终止 61 | ##CONT 18 继续(与STOP相反, fg/bg命令) 62 | ##STOP 19 暂停(同 Ctrl + Z) 63 | kill -l 64 | 65 | ##得到指定信号的数值 66 | kill -l KILL 67 | 68 | ##杀死指定用户所有进程 69 | kill -u peidalinux 70 | kill -9 $(ps -ef | grep peidalinux) 71 | 72 | ##将后台中的命令调至前台继续运行 将进程123调至前台执行 73 | fg 123 74 | 75 | ##将一个在后台暂停的命令,变成继续执行 76 | bg 123 77 | 78 | ##该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思 下面输出被重定向到myout.file文件中 79 | nohup command > myout.file 2>&1 & 80 | 81 | ##at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次。 82 | ## 格式:at HH:MM YYYY-MM-DD //HH(小时):MM(分钟) YYYY(年)-MM(月份)-DD(日) 83 | ##HH[am pm]+D(天) days //HH(小时)[am(上午)pm(下午)]+days(天) 84 | at 12:00(时间) //at命令设定12:00执行一项操作 85 | #at>useradd aaa //在at命令里设定添加用户aaa 86 | #ctrl+d //退出at命令 87 | #tail -f /etc/passwd //查看/etc/passwd文件后十行是否增加了一个用户aaa 88 | 89 | ##计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。 90 | atq 91 | 92 | ##启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。 93 | atrm 1 //删除计划任务1 94 | 95 | ##pstree命令:列出当前的进程,以及它们的树状结构 格式:pstree [选项] [pid|user] 96 | pstree 97 | 98 | ##nice命令:改变程序执行的优先权等级 应用程序优先权值的范围从-20~19,数字越小,优先权就越高。一般情况下,普通应用程序的优先权值(CPU使用权值)都是0,如果让常用程序拥有较高的优先权等级,自然启动和运行速度都会快些。需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。 99 | nice [-n <优先等级>][--help][--version][命令] 100 | nice -n 5 ls 101 | 102 | ##sleep命令:使进程暂停执行一段时间 103 | date;sleep 1m;date 104 | 105 | 106 | ##renice命令 renice命令允许用户修改一个正在运行进程的优先权。 利用renice命令可以在命令执行时调整其优先权。 107 | ##其中,参数number与nice命令的number意义相同。(1) 用户只能对自己所有的进程使用renice命令。(2) root用户可以在任何进程上使用renice命令。(3) 只有root用户才能提高进程的优先权 108 | renice -5 -p 5200 #PID为5200的进程nice设为-5 109 | 110 | ##pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息 #pmap PID 111 | pmap 20367 112 | 113 | ##top 动态查看进程的变化。 114 | top 115 | 116 | 117 | ##crontab 任务调度 118 | ##基本格式 : 119 | ##*  *  *  *  *  command 120 | ##分 时 日 月 周 命令 121 | ##第1列表示分钟1~59 每分钟用*或者 */1表示 122 | ##第2列表示小时1~23(0表示0点) 123 | ##第3列表示日期1~31 124 | ##第4列表示月份1~12 125 | ##第5列标识号星期0~6(0表示星期天) 126 | ##第6列要运行的命令 127 | crontab -e ##执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) 128 | 129 | crontab -r ##删除目前的时程表 130 | 131 | crontab -l ##列出目前的时程表 132 | 133 | crontab file [-u user] ##-用指定的文件替代目前的crontab。 134 | #crontab文件的一些示例 135 | 30 21 * * * /usr/local/etc/rc.d/lighttpd restart ##表示每晚的21:30重启apache。 136 | 137 | 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart ##表示每月1、10、22日的4 : 45重启apache。 138 | 139 | 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart ##表示每周六、周日的1 : 10重启apache。 140 | 141 | 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart ##表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。 142 | 143 | * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart ##晚上11点到早上7点之间,每隔一小时重启apache 144 | 145 | 146 | 147 |    --------------------------------------------------------------------------------