Linux(centos)操作技巧汇总----->持续更新中
来源:互联网 发布:蚌埠学院网络 编辑:程序博客网 时间:2024/05/23 23:09
技巧一:文件上传下载
方式1:
Xshell远程登录服务器,通过命令 rz 和 sz 实现单个文件的上传和下载。
shell终端输入命令:rz
若提示:-bash: rz: command not found 表示未安装
安装:yum -y install lrzsz
安装完成后测试
上传命名:rz //弹出窗口选择上传文件
下载命令:sz filename //弹出窗口选择存放目录
注意:
1)文件可以直接拖拽上传,文件夹则不能;
2)命令rz上传的文件与服务器当前目录中文件同名则上传失败;
方式2:
安装xftp工具,对于目录的上传下载操作更加方便;
技巧二:tcpdump常用命令抓包
命令ifconfig查看待监听或说抓包网卡;
抓包命令1:tcpdump -i eth0 -s 0 -v -w $PATH/xxx.pcap
该命令抓取eth0网卡内所有的数据包,并存储到$PATH/xxx.pcap文件中,文件路径及名称自定义;
-i eth0 //监听指定网卡 当然也可以抓指定网口的数据包vEthx
-s 0 //抓取数据包默认长度为68字节,加上-s 0 后可以自动调整,抓取到完整的数据包
-v //显示抓包信息,主要是抓包数量
-w //保存pcap文件,可以用于数据包回放和wireshark查看数据包进行分析
常用的可选命令行参数包括:
1)关于类型的关键字:host net port 缺省值:host
host 主机地址,例如:host 201.23.36.25
net 网络地址,例如:net 202.0.0.0
port 端口,例如:port 23
2)关于传输方向的关键字:dst src dst or src dst and src 缺省值:dst or src
dst net 202.0.0.0 目的网络地址为202.0.0.0
3)协议关键字:tcp http smtp ftp udp ... ...
4)其他重要关键字:not and or
5)括号的正确使用:斜杠加半括号
技巧三:nm查看动态、静态库函数
nm常用的命令为:
nm -g --defined-only libxxx.a (或者libxxx.so)
-g, --extern-only Display only external symbols //相当于显示所有调用的函数(包括自定义和库函数)
--defined-only Display only defined symbols //只显示自定义函数
上述两个可选参数根据情况使用,更复杂的查看nm --help
技巧四:rpm安装or卸载软件包
安装:
rpm -ivh xxx.rpm
卸载:
rpm -e xxx.rpm // --nodeps 可选项,强制删除
查询:
rpm -qa | grep xxx
技巧五:md5sum生成和校验文件md5值
用途:md5值用来检测文件传输是否完整,只需要文件传输前后的md5值一致基本就可确定文件的完整性;
该方法只针对文件内容,跟文件名没有关系,测试如下:
data.txt和dd.txt文件内容一样,生成的md5值也是一样,命令:md5sum filename
技巧六:ifconfig配置IP
命令:ifconfig -a 查看网卡及各端口
命令:ifconfig vEthx 192.168.x.x netmask 255.255.255.0 可以配置网卡或者特定端口的IP地址
技巧七:禁止连接或ping本地机器
命令:iptabels -A INPUT -p icmp --icmp-type 8 -j DROP
命令:iptables -A OUTPUT -p -icmp --icmp-type 0 -j DROP
上述两条命令通过iptables配置filter表的过滤规则:
-A 表示追加规则
INPUT/OUTPUT 表示规则链,分别针对接收和发出的数据包
-p icmp 指定Internet控制报文协议
--icmp-type icmp数据包类型,8表示echo-request(请求回显),0表示相应包echo-reply
-j DROP 表示匹配规则后执行动动作,常用:DROP,ACCEPT
当进行上述设置后,本地机可以ping其他机器,但是本地机不能被ping通;
删除规则方法:
命令:iptables -L INPUT --line-numbers //带序号显示INPUT链的所有规则
命令:iptables -D INPUT 序号 //删除指定序号规则
命令:iptables -L OUTPUT --line-numbers //带序号显示OUTPUT链的所有规则
命令:iptables -D OUTPUT 序号 //删除指定序号规则
技巧八:MAC地址和网口
网桥模式下通过数据包目的MAC查找数据包的输出网口(vEthx),手动实现如下:
命令:brctl showmacs brx //brx表示桥,可以ifconfig查看,
该命令显示mac和port,找到目的mac对应的port,然后根据port找到对应该port号的本地mac
命令:ifconfig
显示网络配置信息,然后找到上述本地mac对应的网口好vEthx,该网口就是数据包待发出的网口。
技巧九:底层和应用层同名头文件
简单例子:底层和应用层都用到flow.h,而应用层间接调用了底层的flow.h文件,按照编程习惯很有可能
在flow.h文件中采用相同的安全卫士,底层和应用层不同的攻城狮开发:
#ifndef __FLOW_H__
#define __FLOW_H__
...
#endif
编译的时候就会出现底层flow.h定义的信息内容,在应用层就可能出现"incomplete type"类似的错误信息,
解决这类问题的方法很简单,修改下头文件安全卫士就OK啦,比如另外一个用__BOTTOM_FLOW_H__
当然有个前提,两个flow.h没有重定义内容。
技巧十:top
top -p 进程号
作用监视单独某一个进程,当然ps -A | grep XXX,查询到进程号
技巧十一:enum
枚举类型,首个成员赋值为0,末尾添加MAX成员,当申请数组时,直接启用MAX变量即可;
例如:
enum {
FLOW_PROTO_TCP = 0,
FLOW_PROTO_UDP,
FLOW_PROTO_ICMP,
FLOW_PROTO_SCTP,
FLOW_PROTO_DEFAULT,
/* should be last */
FLOW_PROTO_MAX,
};
技巧十二:assert
#define NDEBUG //取消bug调试
#include "assert.h"
void assert( int expression );
assert属于宏,一般是用来检测非法情况,适合的场景使用,过多使用则影响性能,测试成功后
添加上述的宏变量在编译时忽略处理。
技巧十三:shutdown
关于shutdown命令掌握两个常用选项
-h xxx 表示在xxx情况下关机
hh:mm 表示在几点几分关机
now 表示立刻关机
例子:shutdown -h now
shutdown -h 23:12
-r +x 表示在x分钟后关机
例子:shutdown -r +3 3分钟后关机
-k 模拟关机,主要用来给其他登录用户发送消息
shutdown -k now "xxxxxxx" 向所有其他登录用户发送“xxxx”信息
-c 取消设定
技巧十四:巧用define
完成代码编写后,测试过程中会需要在关键位置添加printf输出信息,但是在发布前又需要取消这些输出信息,
但是当软件出现故障时,又有需要快速查看到测试时的关键信息,如何解决,define帮你快速解决这个烦恼,
示例代码:
#include<stdio.h>
#define __TEST__ //该宏取消定义,则由d()调用的printf函数失效,也就是看不到输出信息了。
#ifdef __TEST__
#define d(x) x
#else
#define d(x)
#endif
int main(){
printf("--test1--\n");
d(printf("This is a test c file.\n"));
printf("--test2--\n");
return 0;
}
技巧十五:ldd
常用示例:ldd [可执行binary]
用来查询可执行binary包含的依赖动态库
[root@localhost bin]# ldd suricata
linux-vdso.so.1 => (0x00007fff8fbfe000)
libaivse000.so.5 => /usr/local/lib/libaivse000.so.5 (0x00007fe30ada9000)
libhtp-0.5.20.so.1 => /usr/local/lib/libhtp-0.5.20.so.1 (0x00007fe30ab89000)
... ...
技巧十六:ldconfig
简介:动态链接库管理工具
默认搜索目录:/lib /usr/lib /etc/ld.so.conf内所列出的目录
当新加载动态库时,需手动运行命令:ldconfig加载
常用命令:ldconfig -v 用于查看所有加载的目录下的动态
技巧十七:未完待续
- Linux(centos)操作技巧汇总----->持续更新中
- linux shell 操作技巧 (持续更新)
- Linux常用命令汇总(持续更新中)
- linux使用技巧(持续更新中)
- Ubuntu系统下使用技巧汇总(持续更新中~)
- 字符串操作汇总-持续更新中
- Linux入门操作小技巧(持续更新)
- Linux常用命令简略汇总(持续更新整理中)
- 3dsmax操作技巧(持续更新中)
- linux下的小技巧(持续更新中)
- linux技巧汇总(持续更新):批量替换,全文搜索
- 常用Linux命令汇总(持续更新... ..)
- mac操作技巧(持续更新)
- 关于实际开发中优化web的一些小技巧汇总(持续更新中)
- 【技巧】CSDN使用过程操作技巧集锦->持续更新中
- 设计模式汇总(持续更新中)
- Linux centos系统shell命令汇总(更新中)
- iOS 文件及字符串相关操作汇总 - 持续更新中......
- 线段树题目
- [Javascript]用正则表达式替换字符串中的图片地址(img src)
- 如何在ZBrush中将球体演变为头发
- mysql游标select into导致游标提前结束解决办法
- Android-电量优化
- Linux(centos)操作技巧汇总----->持续更新中
- ionic build ios 没有任何输出和响应
- LeetCode 292 Nim Game
- SDWebImagePrefetcher 类的引用
- Javascript中new Date的坑
- 面试之路(26)-面试相关的位运算总结
- 获取用户原始IP地址
- 经典 Spring 面试题和答案
- 深入理解Java的接口和抽象类