Linux下常用的命令(不斷整理中)
2014-11-05 20:36
567 查看
------ 重啓機器 --------
1)shutdown –help 可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。
2) shutdown -h now 现在立即关机
3)shutdown -r now 现在立即重启
4)shutdown -r +3 三分钟后重启
5)shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机
6)shutdown -r 20:23 在20:23时将重启计算机
7)shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端
------ 权限 --------
chmod +777 xxx.jar
------ cpu --------
CPU平均利用率,1分钟负载,cpu核利用率:top
查看CPU信息:cat /proc/cpuinfo
查看cpu频率可调节范围:/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
使用cpu的函数热点:perf top --cpu [cpu_num]
------- 内存 -------
内存使用率:top 或free -m
进程内存消耗情况
vmstat
sar -r 2 5
top
pidstat -r -p [pid] [interval] [times]
分析java堆
jmap -dump:format=b,file=[输出文件名].hprof [javapid]
mat 分析jmap dump的堆
jstat
jstat -gccapacity 2098 2000
jconsole
jvisualvm
----- 网络相关 -----------
网卡信息:ifconfig
关掉网卡:ifdown
ifconfig eth1 down
启用网卡:ifup
ifcofnig eht1 up
查看进程打开的端口:lsof -Pnl -M -i[46][TCPUDP]
netstat -na
网络中断在cpu间是否均匀分配:cat /proc/interruptes
sar -n FULL 1 2
sar -n DEV 1 10 #网卡流量
arp
arp -a #
arp -d #清空arp缓存
arping -I br0 192.168.1.59 查看ip对应的mac地址
ethtool ethx :查看网络接口的速度,是否有网线连接着
ping -s 65000 -c 10 access_ip
nettool
显示/删除ip
ip -o -f inet addr show
ip -f inet addr delete 163.177.67.189/25 dev eth0
查看网络重传情况
cat /proc//net/snmp
curl url [-d content]
wget
socktop是systemtap提供的一个工具,位于/usr...
tcpstat
nmon
tcpudump -i eth1 -s0 -w file
rz -bey 直接使用 rz 命令有时会出现大文件报错的情况
------- 磁盘 ------
磁盘分区:df
磁盘读写速率(以KB为单位):iostat -p -ktd 1
查看磁盘及分区: fdisk -l
查看打开文件的进程: lsof 文件路径
文件IO消耗
线程IO消耗情况:pidstat -d -t -p [pid] 1 100
iostat -x sda 3 5
------- 操作系统,内核 --------
内核信息:uname -a
操作系统版本:cat /etc/issue
lsb_release -a
------ 进程,线程 ------
ps -eo pid,ppid,stime,etime,time,%cpu,%mem,command
ps -eo pid,ppid,stime,etime,time,%cpu,%mem,command --sort=%cpu
-o psr #查看进程是在哪个processor上运行
以树形结构查看进程:ps H -eo pid,ppid,session,command
或:ps --forest -eo pid,ppid,session,command
进程cpu消耗情况:pidstat 1 2 注:要安装SYSSTAT
ps -eTf 查看线程
ps -Lef
top 查看线程 <shift>+h
线程cpu消耗情况:pidstat -p [pid] -t 1 5
查看线程cpu使用:ps H -eo user,pid,tid,time,%cpu,cmd --sort=%cpu
sar
上下文切换、运行队列等:vmstat 1
查看java线程信息
kill -3 [javapid] ,javaid是ps都到的十进制id的十六进制表示
jstack -l [javapid]
taskset -p[c] cpuid|cpu_mask process proc_arg #启动进程并绑定cpu
taskset -p[c] cpuid|cpu_mask pid #将进程id为pid的进程绑定cpu
taskset -p[c] pid #查看进程cpu绑定情况
------ 硬件型号,总线 ------
查看系统硬件信息信息:dmidecode
查看pci总线:lspci
查看系统cpu配置: lscpu
grep -A [NUM] pattern file #显示从pattern行开始,连续NUM行
hwconfig #查看硬件信息,可能需要安装
/proc/devics 查看设备的主设备号。传统上, 主编号标识设备相连的驱动,现代 Linux 内核允许多个驱动共享主编号。次编号被内核用来决定引用哪个设备.
----- 程序调试优化 -----
统计某程序中的函数调用情况:gprof (应用程序编译时需要添加-pg选项)
------- rpm软件管理 -----------
查询已安装的软件:rpm -qa
安装软件:rpm -ivh 软件文件路径
卸载:rpm -e "rpm -qa显示的包名称"
--allmatches #卸载匹配的所有版本
------ 内核模块相关 ------
modinfo: 显示模块信息
lsmod : 列出已经被内核调入的模块,以及模块被其他那些模块依赖
insmod : 将某个module插入到内核中,不解决依赖
rmmod :将某个module从内核中卸载
modprobe:自动根据依赖文件装入模块, 模块的配置参数在/etc/modprobe.d文件夹下
modprobe -l #显示系统所有模块,包括加载和未加载
depmod -a: 生成依赖文件,告诉modprobe和kerneld要从哪儿调入modules。这个依赖文件就在/lib/modules/kernel版本/modules.dep。
Kerneld:负责自动的将模块调入内核和把模块从内核中卸载
/etc/init.d/boot.local 注:用于suse
/etc/init.d/after.local 注:用于suse
/etc/modules 开机时启动的模块
----------------
mknod /dev/usb/lp0 c 180 0 #创建一个主次代码分别为180和0的字符设备lp0
setup tool #redhat系统管理配置工具 配置文件在/etc/sysconfig目录下
yast
yast2 #suse系统管理配置工具
resize2fs #使用fdisk调整分区大小,或者是改变了LV的大小后,使用该命令
#调整文件系统的大小以适应分区改变后的大小(修改时必须umount)
/etc/udev/rules.d/70-persistent-net.rules 设置网卡与eth的对应关系,包括驱动模块
/etc/sysconfig/network #redhat 修改里面的hostname来改变主机名
/etc/HOSTNAME #suse 里面的名字为主机名
--------------- GPU --------------------
nvidia-smi -a
nvidia-smi -q -d MEMORY,UTILIZATION,TEMPERATURE,COMPUTE -l 1
---------------- 虚拟机管理 ---------------------------
xm new [虚拟机]
xentop #查看xen宿主机上所有虚拟机的状态
---------------- ipmi ------------------------
ipmitool -H 10.0.31.69 -U ADMIN -P ADMIN sensor #i620默认用户名密码ADMIN
--------------- 防火墙 ----------------------------
概念:
table: 系统内建有3张表nat、filter和mangle
chain:表filter包3条内建的链INPUT、FORWARD、OUTPUT,也可以新建用户定义chain
chain policy:
rule:rule匹配后,会到达target
target:可以是用户定义的chain,也可以是ACCEPT、DROP、QUEUE或RETURN
rule-specification = [matches...] [target]
match = -m matchname [per-match-options]
target = -j targetname [per-target-options]
iptables [-t nat/filter] [-L] [-nv] #显示防火墙设置
iptables [-t table] -A chain rule-specification #在chain末尾增加rule
iptables [-t table] -D chain rule-specification #删除符合rule说明的rule
iptables [-t table] -D chain rulenum #删除第rulenum条rule(第1条rule是开始的那条)
iptables [-t table] -I chain [rulenum] rule-specification #在第rulenum条插入rule
iptables [-t table] -R chain rulenum rule-specification #替换rulenum条rule
iptables [-t table] -N chain #创建一个新用户定义的chain、
iptables [-t table] -X [chain] #删除一个用户定义的chain
iptables [-t table] -E old-chain-name new-chain-name #重命名用户定义chain
iptables [-t table] -P chain target #设置内建chain的target,target为ACCEPT、DROP、QUEUE或RETURN
iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 15001:15004 -j ACCEPT
/etc/sysconfig/iptables #配置文件
/etc/init.d/iptables #redhat启停防火墙
cSuSEfirewall2 {start | stop} #suse启停防火墙
---------------- 链接与库 -------------------------
当程序中提示找不到相关共享库时(2种方法):
1. 将库路径添加到/etc/ld.so.conf,然后用root身份运行ldconfig更新高速缓冲区;
2. export LD_LIBRARY_PATH=库路径:$LD_LIBRARY_PATH
查看.o或者库文件的符号名称
nm 库文件
---------------- 资源限制 ---------------------------
quota # 查看磁盘配额
quotacheck # 扫描磁盘配额使用量
edquota
-u username #设置用户的磁盘配额
-g groupname #设置用户组的磁盘配额
-t #修改宽限时间
quotaon #启动磁盘配额
quotaoff #管理磁盘配额
ulimit # 限制进程资源
-----------------------字符处理---------------------------
sed
sed -e 's,^,<tr><td>,' -e 's,$,</td></tr>,' -e 's,:,</td><td>,g' filename
awk
cut -d '分隔字符' -f fields # filed示例:3 3,5 3-5 3- -5
cut -c 字符范围 # 字符范围:3 3,5 3-5 3- -5
sort
-t '分隔符' #默认是tab键
-k field #默认是第一个域
-u #唯一相当于uniq
-r #反向
wc
-l #显示多少行
-w #显示多少单词
-m #显示多少字符
last | tr ‘[a-z]’ '[A-Z]' #小写转大写字母
------------------ 定时任务 ----------------------
/etc/init.d/atd [start|stop|restart] #at服务
at 23:00 2005-09-15 #在这个时间执行接下来输入的任务
atq #查询at的任务列表
atrm [jobnumber] #删除任务
/etc/init.d/crond [start|stop|restart] #cron服务
/var/spool/cron/ #crontab用户任务保存目录
/var/log/cron #cron执行任务的日志文件
/etc/crontab #系统例行的任务表
crontab
[-u username] #root用户替username管理任务
-l #查看crontab工作内容
-e #编辑工作内容
-r #删除所有工作内容
例子:
#crontab -e #每月1号到20号的星期3的3:00或6:00
*/10 3,6 1-20 * 3 date #每隔10分钟执行一次date命令
分 时 日 月 星期
---------------- 系统启动 -----------------------
init 5 #切换到runlevel 5,图形界面启动。runlevel 3是字符界面
/etc/inittab #启动runlevel配置文件
---------- 目录操作 -----------
find 目录 -name "文件名"
-follow 进入符号连接的目标目录查找
find ./ -iname "*" -mmin -20 -type f #查找出从现在时刻和前20分钟之间时间段修改过的文件
find /tmp -mtime
+30 -type f | xargs rm -rf #假如在一个目录中保留最近30天的文件,30天前的文件自动删除
------- 性能分析 --------------
perf stat -e context-switches -e page-faults,branch-misses,cache-references,cache-misses -p pid
cache-misses 是LLC-prefetches-misses ,即从三级缓存预取miss
perf stat -e cache-misses,LLC-prefetches-misses -p 23583
Performance counter stats for process id '23583':
2,170,856 cache-misses
2,170,856 LLC-prefetches-misses
1)shutdown –help 可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。
2) shutdown -h now 现在立即关机
3)shutdown -r now 现在立即重启
4)shutdown -r +3 三分钟后重启
5)shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机
6)shutdown -r 20:23 在20:23时将重启计算机
7)shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端
------ 权限 --------
chmod +777 xxx.jar
------ cpu --------
CPU平均利用率,1分钟负载,cpu核利用率:top
查看CPU信息:cat /proc/cpuinfo
查看cpu频率可调节范围:/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
使用cpu的函数热点:perf top --cpu [cpu_num]
------- 内存 -------
内存使用率:top 或free -m
进程内存消耗情况
vmstat
sar -r 2 5
top
pidstat -r -p [pid] [interval] [times]
分析java堆
jmap -dump:format=b,file=[输出文件名].hprof [javapid]
mat 分析jmap dump的堆
jstat
jstat -gccapacity 2098 2000
jconsole
jvisualvm
----- 网络相关 -----------
网卡信息:ifconfig
关掉网卡:ifdown
ifconfig eth1 down
启用网卡:ifup
ifcofnig eht1 up
查看进程打开的端口:lsof -Pnl -M -i[46][TCPUDP]
netstat -na
网络中断在cpu间是否均匀分配:cat /proc/interruptes
sar -n FULL 1 2
sar -n DEV 1 10 #网卡流量
arp
arp -a #
arp -d #清空arp缓存
arping -I br0 192.168.1.59 查看ip对应的mac地址
ethtool ethx :查看网络接口的速度,是否有网线连接着
ping -s 65000 -c 10 access_ip
nettool
显示/删除ip
ip -o -f inet addr show
ip -f inet addr delete 163.177.67.189/25 dev eth0
查看网络重传情况
cat /proc//net/snmp
curl url [-d content]
wget
socktop是systemtap提供的一个工具,位于/usr...
tcpstat
nmon
tcpudump -i eth1 -s0 -w file
rz -bey 直接使用 rz 命令有时会出现大文件报错的情况
------- 磁盘 ------
磁盘分区:df
磁盘读写速率(以KB为单位):iostat -p -ktd 1
查看磁盘及分区: fdisk -l
查看打开文件的进程: lsof 文件路径
文件IO消耗
线程IO消耗情况:pidstat -d -t -p [pid] 1 100
iostat -x sda 3 5
------- 操作系统,内核 --------
内核信息:uname -a
操作系统版本:cat /etc/issue
lsb_release -a
------ 进程,线程 ------
ps -eo pid,ppid,stime,etime,time,%cpu,%mem,command
ps -eo pid,ppid,stime,etime,time,%cpu,%mem,command --sort=%cpu
-o psr #查看进程是在哪个processor上运行
以树形结构查看进程:ps H -eo pid,ppid,session,command
或:ps --forest -eo pid,ppid,session,command
进程cpu消耗情况:pidstat 1 2 注:要安装SYSSTAT
ps -eTf 查看线程
ps -Lef
top 查看线程 <shift>+h
线程cpu消耗情况:pidstat -p [pid] -t 1 5
查看线程cpu使用:ps H -eo user,pid,tid,time,%cpu,cmd --sort=%cpu
sar
上下文切换、运行队列等:vmstat 1
查看java线程信息
kill -3 [javapid] ,javaid是ps都到的十进制id的十六进制表示
jstack -l [javapid]
taskset -p[c] cpuid|cpu_mask process proc_arg #启动进程并绑定cpu
taskset -p[c] cpuid|cpu_mask pid #将进程id为pid的进程绑定cpu
taskset -p[c] pid #查看进程cpu绑定情况
------ 硬件型号,总线 ------
查看系统硬件信息信息:dmidecode
查看pci总线:lspci
查看系统cpu配置: lscpu
grep -A [NUM] pattern file #显示从pattern行开始,连续NUM行
hwconfig #查看硬件信息,可能需要安装
/proc/devics 查看设备的主设备号。传统上, 主编号标识设备相连的驱动,现代 Linux 内核允许多个驱动共享主编号。次编号被内核用来决定引用哪个设备.
----- 程序调试优化 -----
统计某程序中的函数调用情况:gprof (应用程序编译时需要添加-pg选项)
------- rpm软件管理 -----------
查询已安装的软件:rpm -qa
安装软件:rpm -ivh 软件文件路径
卸载:rpm -e "rpm -qa显示的包名称"
--allmatches #卸载匹配的所有版本
------ 内核模块相关 ------
modinfo: 显示模块信息
lsmod : 列出已经被内核调入的模块,以及模块被其他那些模块依赖
insmod : 将某个module插入到内核中,不解决依赖
rmmod :将某个module从内核中卸载
modprobe:自动根据依赖文件装入模块, 模块的配置参数在/etc/modprobe.d文件夹下
modprobe -l #显示系统所有模块,包括加载和未加载
depmod -a: 生成依赖文件,告诉modprobe和kerneld要从哪儿调入modules。这个依赖文件就在/lib/modules/kernel版本/modules.dep。
Kerneld:负责自动的将模块调入内核和把模块从内核中卸载
/etc/init.d/boot.local 注:用于suse
/etc/init.d/after.local 注:用于suse
/etc/modules 开机时启动的模块
----------------
mknod /dev/usb/lp0 c 180 0 #创建一个主次代码分别为180和0的字符设备lp0
setup tool #redhat系统管理配置工具 配置文件在/etc/sysconfig目录下
yast
yast2 #suse系统管理配置工具
resize2fs #使用fdisk调整分区大小,或者是改变了LV的大小后,使用该命令
#调整文件系统的大小以适应分区改变后的大小(修改时必须umount)
/etc/udev/rules.d/70-persistent-net.rules 设置网卡与eth的对应关系,包括驱动模块
/etc/sysconfig/network #redhat 修改里面的hostname来改变主机名
/etc/HOSTNAME #suse 里面的名字为主机名
--------------- GPU --------------------
nvidia-smi -a
nvidia-smi -q -d MEMORY,UTILIZATION,TEMPERATURE,COMPUTE -l 1
---------------- 虚拟机管理 ---------------------------
xm new [虚拟机]
xentop #查看xen宿主机上所有虚拟机的状态
---------------- ipmi ------------------------
ipmitool -H 10.0.31.69 -U ADMIN -P ADMIN sensor #i620默认用户名密码ADMIN
--------------- 防火墙 ----------------------------
概念:
table: 系统内建有3张表nat、filter和mangle
chain:表filter包3条内建的链INPUT、FORWARD、OUTPUT,也可以新建用户定义chain
chain policy:
rule:rule匹配后,会到达target
target:可以是用户定义的chain,也可以是ACCEPT、DROP、QUEUE或RETURN
rule-specification = [matches...] [target]
match = -m matchname [per-match-options]
target = -j targetname [per-target-options]
iptables [-t nat/filter] [-L] [-nv] #显示防火墙设置
iptables [-t table] -A chain rule-specification #在chain末尾增加rule
iptables [-t table] -D chain rule-specification #删除符合rule说明的rule
iptables [-t table] -D chain rulenum #删除第rulenum条rule(第1条rule是开始的那条)
iptables [-t table] -I chain [rulenum] rule-specification #在第rulenum条插入rule
iptables [-t table] -R chain rulenum rule-specification #替换rulenum条rule
iptables [-t table] -N chain #创建一个新用户定义的chain、
iptables [-t table] -X [chain] #删除一个用户定义的chain
iptables [-t table] -E old-chain-name new-chain-name #重命名用户定义chain
iptables [-t table] -P chain target #设置内建chain的target,target为ACCEPT、DROP、QUEUE或RETURN
iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 15001:15004 -j ACCEPT
/etc/sysconfig/iptables #配置文件
/etc/init.d/iptables #redhat启停防火墙
cSuSEfirewall2 {start | stop} #suse启停防火墙
---------------- 链接与库 -------------------------
当程序中提示找不到相关共享库时(2种方法):
1. 将库路径添加到/etc/ld.so.conf,然后用root身份运行ldconfig更新高速缓冲区;
2. export LD_LIBRARY_PATH=库路径:$LD_LIBRARY_PATH
查看.o或者库文件的符号名称
nm 库文件
---------------- 资源限制 ---------------------------
quota # 查看磁盘配额
quotacheck # 扫描磁盘配额使用量
edquota
-u username #设置用户的磁盘配额
-g groupname #设置用户组的磁盘配额
-t #修改宽限时间
quotaon #启动磁盘配额
quotaoff #管理磁盘配额
ulimit # 限制进程资源
-----------------------字符处理---------------------------
sed
sed -e 's,^,<tr><td>,' -e 's,$,</td></tr>,' -e 's,:,</td><td>,g' filename
awk
cut -d '分隔字符' -f fields # filed示例:3 3,5 3-5 3- -5
cut -c 字符范围 # 字符范围:3 3,5 3-5 3- -5
sort
-t '分隔符' #默认是tab键
-k field #默认是第一个域
-u #唯一相当于uniq
-r #反向
wc
-l #显示多少行
-w #显示多少单词
-m #显示多少字符
last | tr ‘[a-z]’ '[A-Z]' #小写转大写字母
------------------ 定时任务 ----------------------
/etc/init.d/atd [start|stop|restart] #at服务
at 23:00 2005-09-15 #在这个时间执行接下来输入的任务
atq #查询at的任务列表
atrm [jobnumber] #删除任务
/etc/init.d/crond [start|stop|restart] #cron服务
/var/spool/cron/ #crontab用户任务保存目录
/var/log/cron #cron执行任务的日志文件
/etc/crontab #系统例行的任务表
crontab
[-u username] #root用户替username管理任务
-l #查看crontab工作内容
-e #编辑工作内容
-r #删除所有工作内容
例子:
#crontab -e #每月1号到20号的星期3的3:00或6:00
*/10 3,6 1-20 * 3 date #每隔10分钟执行一次date命令
分 时 日 月 星期
---------------- 系统启动 -----------------------
init 5 #切换到runlevel 5,图形界面启动。runlevel 3是字符界面
/etc/inittab #启动runlevel配置文件
---------- 目录操作 -----------
find 目录 -name "文件名"
-follow 进入符号连接的目标目录查找
find ./ -iname "*" -mmin -20 -type f #查找出从现在时刻和前20分钟之间时间段修改过的文件
find /tmp -mtime
+30 -type f | xargs rm -rf #假如在一个目录中保留最近30天的文件,30天前的文件自动删除
------- 性能分析 --------------
perf stat -e context-switches -e page-faults,branch-misses,cache-references,cache-misses -p pid
cache-misses 是LLC-prefetches-misses ,即从三级缓存预取miss
perf stat -e cache-misses,LLC-prefetches-misses -p 23583
Performance counter stats for process id '23583':
2,170,856 cache-misses
2,170,856 LLC-prefetches-misses
相关文章推荐
- LINUX最常用命令整理
- linux 常用命令整理
- Linux一些常用(还有一部分给力的)的命令(一)(综合整理)
- Linux下常用cvs命令整理
- Linux 常用命令整理
- linux环境下常用网络命令(粗稿整理集)
- Linux常用命令整理
- linux下vi常用命令——读《鸟哥的linux私房菜》整理
- Linux常用实际命令(个人整理)
- 常用Linux命令整理
- Linux常用操作命令整理
- Linux 常用命令及参数整理
- 近期常用linux命令整理
- linux常用命令整理
- 常用的linux系统监控命令整理
- [整理]Linux常用命令
- Linux 常用命令整理
- Linux下常用cvs命令整理
- linux下vi常用命令整理
- Linux下常用命令整理