Linux后台开发必懂得常用命令

来源:互联网 发布:关于淘宝开店的书籍 编辑:程序博客网 时间:2024/05/29 12:41

Linux后台开发主要涉及进程,网络,系统性能调优等方面的命令,再次总结下。

ipcs

提供关于一些进程间通信方式的信息,包括共享内存消息队列信号

interprocess communication (ipc)

Ipcs -a

默认输出信息,打印出所有进程间通信方式的信息

Ipcs -q

输出使用消息队列进行进程间通信的信息

Ipcs -s

输出使用信号进行进程间通信的信息

Ipcs -m

输出使用共享内存进行进程间通信的信息

Ipcs -t

输出信息的时间详细变化

Ipcs -p

输出ipc方式的进程id

Ipcs -c

输出ipc方式的创建者

Ipcs -u

输出ipc方式的各种状态


ipcrm

移除一个消息对象。或者共享内存,或者一个信号,同时会将与ipc对象相关链的数据也一起移除。只有超级管理员,或者ipc对象的创建者才有这项权利啦.

Key id  shm msg sem

Ipcrm -M shmkey

移除使用shmkey创建的共享内存段

Ipcrm -m shmid

移除使用shmid标识的共享内存段

Ipcrm -Q msgkey

移除使用msgkey创建的消息队列

Ipcrm -q msgid

移除使用msgid标识的消息队列

Ipcrm -S semkey

移除使用semkey创建的信号

Ipcrm -s semid

移除使用semid标识的信号

 

信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况;共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。在Linux系统下 ,常用的方式是通过shmXXX函数族来实现利用共享内存进行存储的。如Shmget,类似于 malloc函数。

netstat

是一款命令行工具,可用于列出系统上所有网络套接字的连接情况,包括tcp/udp/unix套接字,还能列出处于监听状态/等待请求的套接字。如果想确认系统web服务有没有开启,可以查看80端口是否开启。主要功能:打印网络连接、路由表、连接的数据统计、伪装连接以及广播域成员。

1.列出所有连接(-a(all))

netstat –a  上述命令列出 tcp, udp 和 unix 协议下所有套接字的所有连接

2.只列出tcp/udp的连接

Netstat –at  (all tcp)  只列出tcp连接(包括ipv4/ipv6)

Netstat –au   只列出udp连接(包括ipv4/ipv6)

3.禁用反向域名解析,加快查询速度(-n 助记no(禁止))

默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。

Netstat -ant

4.列出监听套接字的连接(-l:listen)

任何网络服务的后台进程都会打开一个端口,用于监听接入的请求

Netstat–tnl  现在我们可以看到处于监听状态的 TCP 端口和连接。

如果你查看所有监听端口,去掉 -t 选项。如果你只想查看 UDP 端口,使用 -u 选项,代替 -t 选项。-tnl -unl

注意:不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口。

5.获取进程名,进程号和用户id(-p,process)

查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。

使用 -p 选项查看进程信息。

使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在root 权限之下。

Sudo netstat -nlpt 列出tcp监听套接字和对应的进程名

使用 -ep 选项可以同时查看进程名和用户名。

sudo netstat -ltpe

列出用户名,若结合-n:则只列出用户id

6.打印统计数据(-s/statistics)

Netstat 可以打印出网络统计数据,包括某个协议下的收发包数量。

Netstat –s   若需要打印tcp/udp的数据包,则加-t/-u选项。

7.打印内核路由信息(-r/route)

Netstat –r   跟route命令显示的一样。

8.打印网络接口信息(-i/interface)

Netstat –I  加-e:更清晰明了 跟ifconfig命令一样

9.持续输出(-c/continue)

Netstat –ct 持续输出tcp信息

10.显示多播组信息(-g/group)

Netstat -g

11.打印active状态的连接

Active状态的套接字用ESTABLISHED来表示

netstat -atnp | grep ESTA:意思是列出active状态的tcp连接,配合watch 命令监视 active 状态的连接

watch-d -n0 "netstat -atnp | grep ESTA"

12.查看服务是否在运行

如果你想看看 http,smtp 或ntp 服务是否在运行,使用 grep

sudo netstat -aple | grep ntp

ntp 是网络时间协议,用于保证机器时间一致。不只是服务器,你的 Windowd、Mac 这样的桌面大多也有用它。ntpd 是提供这个服务的守护进程。

tcpdump

用简单的话来定义tcpdump,就是:dumpthe traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的头”完全截获下来提供分析。它支持针对网络层协议主机网络端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。如果选用明文传送内容,还可以对截获内容查看,所以有点黑客工具的味道。

常用命令:

tcpdump

普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包

tcpdump -i eth1

监视指定接口的数据包

tcpdump host sundown

截获所有进入或离开sundown的数据包

tcpdump host 210.27.48.1

截获所有210.27.48.1 的主机收到的和发出的所有的数据包

tcpdump host helios and \( hot or ace \)

打印helios 与 hot 或者与 ace 之间通信的数据包

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信

tcpdump ip host ace and not helios

打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包

tcpdump -i eth0 src host hostname

截获主机hostname发送的所有数据

tcpdump -i eth0 dst host hostname

监视所有送到主机hostname的数据包

tcpdump tcp port 23 and host 210.27.48.1

获取主机210.27.48.1接收或发出的tcp包

tcpdump udp port 123

对本机的udp 123 端口进行监视 


0 0
原创粉丝点击