Linux 开发常用命令

1限制

ulimit命令用于修改当前shell启动进程所占用的资源限制。(修改仅在当前shell生效)

        ulimit命令格式:ulimit [-SacdfHlmnpstvw][size]  /*设置为无限大时,如ulimit -c unlimited*/

-H设置硬件资源限制.

-S设置软件资源限制.

-a显示当前所有的资源限制.

-c size:设置core文件的最大值.单位:blocks1block=512bytes

-d size:设置数据段的最大值.单位:kbytes

-f size:设置创建文件的最大值.单位:blocks

-l size:设置在内存中锁定进程的最大值.单位:kbytes

-m size:设置可以使用的常驻内存的最大值.单位:kbytes

-n size:设置内核可以同时打开的文件描述符的最大值.单位:n

-p size:设置管道缓冲区的最大值.单位:kbytes

-s size:设置堆栈的最大值.单位:kbytes

-t size:设置CPU使用时间的最大上限.单位:seconds

-v size:设置虚拟内存的最大值.单位:kbytes

-u <程序数目> 用户最多可开启的程序数目

示例:查看与设置最大打开文件数

ulimit -Sn /*查看软限制最大打开文件数*/

ulimit -Hn/*查看硬限制最大打开文件数*/

ulimit -Hn 10240 /*设置硬限制最大打开文件数为10240*/

ulimit -Sn 10239 /*设置软限制最大打开文件数位10239 该参数<=硬限制的参数10240*/

硬限制是可以在任何时候任何进程中设置,但硬限制只能由超级用户提起。

软限制是内核实际执行的限制,任何进程都可以将软限制设置为小于等于其硬限制的值。

2库文件

2.1静态函数库

.a结尾的文件

av crv libfoo.a bill.o fred.o      /*创建静态函数库libfoo.a*/

ranlib libfoo.a                /*为函数库生成内容表,之后libfoo.a就可以使用了*/

gcc -o program program.o -L. -lfoo /*使用静态函数库libfoo.a*/


2.2共享函数库

.so结尾的文件

gcc -fPIC -shared -o libfoo.so bill.c fred.c /*创建共享库libfoo.so*/

gcc -o program program.c ./libfoo.so    /*使用共享库libfoo.so*/

ldd program                          /*查看程序program使用的共享库*/


2.3内核模块

.ko结尾的文件

insmod ./hello.ko     /*加载内核模块hello.ko*/

rmmod ./hello.ko     /*卸载内核模块hello.ko*/


3进程

3.1查看进程

ps命令:

      通过man ps或ps --help查看ps的参数信息。ps命令支持3种不同类型的命令行参数:

<1>Unix风格的参数,前面加单破折线

<2>BSD风格的参数,前面不加破折线

<3>GUN风格的长参数,前面加双破折线


<1>Unix风格的ps命令的主要参数

参数

描述

-A

显示所有进程

-a

显示除控制进程和无终端的进程外的所有进程

-d

显示除控制进程外的所有进程

-e

显示所有进程

-f

显示完整格式的输出

-l

显示长列表

-H

层级格式显示进程(树状,用来显示父进程)

-L

显示进程中的线程

$ ps –lf

F S UID       PID PPID C PRI NI ADDR SZ WCHAN STIME TTY         TIME CMD

列的信息

说明

F

内核分配给进程的系统标记

S

进程的状态

UID

用户ID

PID

进程的进程号

PPID

父进程的进程号

C

进程生命周期中的CPU利用率

PRI

进程的优先级(数字越大,优先级越低)

NI

nice值,用来参与决定优先级

ADDR

进程的内存地址

SZ

假如进程被换出,所需交换空间的大致大小

WCHAN

进程休眠的内核函数名(进程或内核线程为之等待或休眠的事件)

STIME

进程启动时的系统时间

TTY

进程启动时的终端设备

TIME

运行进程需要的累计CPU时间

CMD

启动的程序名称

常用命令:

$ps –elf    ##以长列表完整格式显示所有进程的信息

$ps –elfH   ##以层级格式显示

$ps -elfL    ##显示进程中的线程



<2>BSD风格的ps命令的主要参数

参数

描述

T

显示跟当前终端关联的所有进程

a

显示跟任意终端关联的所有进程

g

显示所有的进程,包括控制进程

x

显示所有的进程,包括未分配任何终端的进程

j

显示任务信息

u

采用基于用户的格式显示

c

显示真实的命令名称

f

用分层格式来显示进程,表明哪些进程启动了哪些进程

H

将线程按进程来显示

常用命令:

$ ps aux

$ ps auxf


pstree命令

lincoln@ubuntu:~$ pstree --help  

pstree: unrecognized option '--help'  

Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -u ]  

              [ -A | -G | -U ] [ PID | USER ]  

       pstree -V  

Display a tree of processes.  

  

  -a, --arguments     show command line arguments                  显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。  

  -A, --ascii         use ASCII line drawing characters  

  -c, --compact       don't compact identical subtrees             不使用精简标示法。  

  -h, --highlight-all highlight current process and its ancestors  列出树状图时,特别标明现在执行的程序  

  -H PID,  

  --highlight-pid=PID highlight this process and its ancestors  

  -G, --vt100         use VT100 line drawing characters  

  -l, --long          don't truncate long lines  

  -n, --numeric-sort  sort output by PID  

  -p, --show-pids     show PIDs; implies -c  

  -u, --uid-changes   show uid transitions                         显示用户名称。  

  -U, --unicode       use UTF-8 (Unicode) line drawing characters  

  -V, --version       display version information  

  PID    start at this PID; default is 1 (init)  

  USER   show only trees rooted at processes of this user  

 lincoln@ubuntu:~$   
示例 1 查看相关 ID :进程 ID ,父进程 ID ,组 ID ,会话 ID ,命令

ps -o pid,ppid,pgid,sid,comm  进程id

示例2:查看进程中的子进程或线程

ps mp pid -o THREAD,tid   或 ps -T -p pid   或  pstree -p pid

示例3:查看进程是否为守护进程

ps axj | grep programname

当进程为守护进程时,因守护进程没有控制终端,所以其终端名(TTY)设置为问号(?),终端前台进程组ID(TDGID)设置为-1

可先通过ps axj |more 看下各个列的标题。


常用命令:

ps  auxf 或 ps -ef  或 ps –elfH

3.2实时监测进程

top命令

top的交互命令

命令

描述

l

切换单CPU状态模式和对称处理器模式

B

打开/关闭表中重要数字的加粗显示

Z

设置表的颜色

l

显示/关闭平均负载信息行

t

显示/关闭CPU信息行

m

显示/关闭MEMSWAP

f

添加/移除输出中的不同信息列

o

更改信息行的显示顺序

R

切换正常排序还是倒序排序

H

显示/关闭显示线程情况

c

切换显示进程的命令名还是完整的命令行输入(包括参数)

S

切换显示累计CPU时间还是相对CPU时间

i

切换是否显示空闲进程

n#

设置要显示的进程数

r

改变指定进程的优先级

ds

改变更新的间隔(默认为3s

W

把当前设置写到一个配置文件中

q

退出top命令




3.3杀死进程

kill命令:用于杀死进程或发送信号给特定进程

kill [ -s signal | -p ] [ -a ] [ -- ] pid 

杀死任一进程的可靠方法:kill –9 pid

4 CPU与内存

4.1 top命令

查看所有任务、CPU、内存,继续按1查看各个cpu的信息,如Cpu0Cpu1

top - 21:51:27 up 12:31, 2 users, load average: 0.00, 0.00, 0.00

Tasks: 63 total,  1 running, 62 sleeping,  0 stopped,  0 zombie

Cpu0 : 0.0%us, 0.5%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem:  2059432k total,  201084k used, 1858348k free,   30692k buffers

Swap:  786424k total,       0k used,  786424k free,   94888k cached


4.2查看CPU信息

cat /proc/cpuinfo

4.3查看内存信息

cat /proc/meminfo

4.4查看内存使用情况

free

附:

查看磁盘信息:fdisk -l

查看内核信息:uname -a

查看硬件信息:dmidecode

查看开机信息:dmesg

5监控IO状态

CentOS安装iostat

yum install sysstat    /*安装sysstat*/

/etc/init.d/sysstat start /*启动sysstat*/

checkfig sysstat on   /*设置sysstat自启动*/

Ubuntu安装iostat

sudo apt-get install sysstat /*安装sysstat*/

/etc/init.d/sysstat start   /*启动sysstat*/

iostat -d -k 1 10        #查看TPS和吞吐量信息

iostat -d -x -k 1 10     #查看设备使用率(%util)、响应时间(await

iostat -c 1 10           #查看cpu状态




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值