您的位置:首页 > 运维架构 > Linux

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: