命令部分复习

命令部分

1.怎样查看都有哪些进程占用了端口?
进程:一个正在运行的程序
端口:门牌号

  • lsof -i:端口号(查看某一端口的占用情况)
    lsof -i (显示符合条件的进程情况)
    COMMAND:进程名称或进程开启方式
    PID:进程ID
    USER:进程所有者
    FD:文件描述符8
    TYPE:协议类型
    DEVICE:端口号
    SIZE/OFF:偏移量
    NODE:协议名
    NAME:节点名
  • netstat -tunlp |grep 端口号(查看某一端口的占用情况)
    netstat -tunlp |grep (用于显示tcp,udp的端口和进程相关情况)
    -t 仅显示与tcp相关的
    -u仅显示与udp相关的
    -n不限时别名,能显示数字的全部转化为数字
    -l 仅显示出于listen(监听)状态的
    -p显示建立这些连接的程序名

2.ps和top的区别?

  • ps是进程操作命令,用于报告当前系统的进程状态
  • top是系统监测操作命令,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具
  • ps看到的是命令执行瞬间的进程信息,而top可以持续的监视

3.netstat都有哪些参数?
netstat命令用于显示网络状态
-a:显示所有连线中的Socket
-t:显示TCP传输协议的连线状况
-u:显示UDP传输协议的连线状况
-l:显示监控中的服务器的Socket
-p:显示正在使用Socket的程序识别码和程序名称
-n:直接使用ip地址,而不通过域名服务器
-r:显示Routing Table
-c:持续列出网络状态
-e:显示网络其他相关信息
-h:在线帮助
-0:显示计时器
-v:显示指令执行过程
-w:显示RAW传输协议的连线状况

4.如何查看一个进程处在哪个目录下?
ps以及top只可以查看到进程相对路径
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件
ps aux | grep process_name 找到对应 process 的 PID
ll /proc/PID 查进程绝对路径及信息

5.如何查看一个进程打开的文件?

  • lsof
  • proc查看 top得到进程号进入对应目录
    /proc/对应进程pid/fd
    在fd目录 -ls -lh下就能看到文件描述符和关联文件的文件路径

6.tcpdump参数的含义?
是一个运行在命令行下的抓包工具
-a:将网络地址和广播地址转化成名字
-b:在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的
-c:在收到指定的包的数量后,tcpdump就会停止
-d:将匹配信息包的代码以人们能够理解的汇编格式给出
-dd:将匹配信息包的代码以c语言程序段的格式给出
-ddd:将匹配信息包的代码以十进制的形式给出
-e:在输出行打印出数据链路层的头部信息
-f:将外部的Internet地址以数字的形式打印出来
-F:从指定的文件中读取表达式,忽略命令行中给出的表达式
-i:指定监听的网络接口
-l:使标准输出变为缓冲行形式,可以把数据导出到文件
-L:列出网络接口的已知数据链路
-m:从文件module中导入SMI MIB模块定义
-n:不把网络地址转换成名字
-nn:不进行端口名称的转换
-N:不输出主机名中的域名部分,例如,‘nic.ddn.mil‘只输出’nic‘
-p:将网卡设置为非混杂模式,不能与host或broadcast一起使用
-P:不将网络接口设置成混杂模式
-q:快速输出,只输出较少的协议信息
-r:从指定的文件中读取包(这些包一般通过-w选项产生)
-t:在输出的每一行不打印时间戳
-tt:在每一行中输出非格式化的时间戳
-ttt:输出本行和前面一行之间的时间差
-tttt:在每一行中输出由date处理的默认格式的时间戳
-T:将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简单网络管理协议)
-u:输出未解码的NFS句柄
-v: 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
-vv:输出详细的报文信息
-w:直接将分组写入文件中,而不是不分析并打印出来
-s:从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节
-S:将tcp的序列号以绝对值形式输出,而不是相对值
-X:告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器
-O:不运行分组分组匹配(packet-matching)代码优化程序

7.使用命令查找某个目录下所有文件名含有“abc”的文件,写出完整命令
find /某个目录名 -name abc

8.查找这些文件中哪些文件含“hello”,写出完整命令
find /abc -name “*.cpp” | xargs grep “hello”

9.find和grep的区别?
都是文件操作命令

  • find是在指定目录下查找文件
  • grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

10.gdb中给定一个地址,如何查看这个地址的内存?
x(examine)命令
格式: x /nfu < addr >
n:是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u来定义
f:表示显示的格式

  • x :按十六进制格式显示变量
    d :按十进制格式显示变量
    u :按十进制格式显示无符号整型
    o :按八进制格式显示变量
    t :按二进制格式显示变量
    a :按十六进制格式显示变量
    i :指令地址格式
    c :按字符格式显示变量
    f :按浮点数格式显示变量

u:表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes,当我们指定了字节长度后,GDB会从指定内存定的内存地址开始,读写指定字节,并把其当作一个值取出来

  • b:表示单字节
    h:表示双字节
    w:表示四字节
    g:表示八字节

< addr >:表示一个内存地址

11.g++和gcc的区别?

  • 就本质而言,gcc和g++并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件的类型,调用对应的GUN编译器而已,gcc调用了C compiler,而g++调用了C++ compiler
  • 对于.c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的)
  • 对于.c和.cpp文件,g++则统一当做cpp文件编译
  • 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL
  • gcc在编译C文件时,可使用的预定义宏是比较少的
  • 在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值