Linux实用命令(sed,tcpdump,mkpasswd等)

1、mkpasswd自动生成随机密码(如没有些命令请yum -y install expect安装)
常用的选项 
-l  指定字符的总数
-d  指定数字的个数
-c  指定小写字符个数 
-C  指定大写字符个数
-s  指定特殊字符个数
usage: mkpasswd [args] [user]
where arguments are:
-l     #(length of password, default = 7)
          指定密码的长度,默认是7位数
-d    #(min # of digits, default = 2)
          指定密码中数字最少位数,默认是2位
-c    #(min # of lowercase chars, default = 2)
          指定密码中小写字母最少位数,默认是2位
-C   #(min # of uppercase chars, default = 2)
          指定密码中大写字母最少位数,默认是2位
-s   #(min # of special chars, default = 1)
         指定密码中特殊字符最少位数,默认是1位
-v     (verbose, show passwd interaction)
         这个参数在实验的时候报错,具体不知道

2、tcpdump命令
tcpdump -nn -i eth0 src host 10.10.80.254 and dst 10.10.80.52 and dst port 22
tcpdump -nn -i eth0 src host 10.10.80.254 and src portrange 10-80 and dst 10.10.80.52 and dst port 22
tcpdump tcp -i eth0 and src host 10.10.80.254 and src portrange 10-80 and dst 10.10.80.52 and dst port 22 -nn -vv
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
(9)-e 列出链路层头部,查看mac(tcpdump icmp -i eth0 and host 10.47.39.15 -e)
在表达式中一般如下几种类型的关键字: 
第一种是关于类型的关键字,主要包括host,net,port,例如 host 210.27.48.2, 指明 一台主机,net 192.168.1.0/24指明网络,port 23 指明端口号23。如果没有指定类型,缺省的类型是host。 
第二种是确定传输方向的关键字,主要包括src,dst,src port, dst port,src portrange 40000-60000,如果没有指明 方向关键字,则缺省是src or dst关键字。 
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI (分布式光纤数据接口网络)上的特定的网络协议,实际上它是”ether”的别名,fddi和ether 具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。如果没有指定任何协议,则tcpdump 将会 监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, greater, 还有三种逻辑运算,取非运算是`not ',`!`;与运算是`and`,`&&';或运算是`or`,`||`

3、安装Tab增强版:bash-completion,可补全命令参数;
因为CentOS官方源并不带有bash-completion的包,所以,为了可用yum安装,增加epel的源,
首先,使用wget下载epel的rpm包,使用rpm指令安装,之后运行yum安装,代码如下:
[adam@ultraera ~]$ wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
[adam@ultraera ~]$ sudo rpm -ivh epel-release-6-8.noarch.rpm
[adam@ultraera ~]$ sudo yum clean all
[adam@ultraera ~]$ sudo yum makecache
[adam@ultraera ~]$ sudo yum install -y bash-completion
安装完成之后,注销终端,重新登录即可。
apt-get install bash-completion

4、在sed中引入shell变量的方法
1.eval sed 's/$a/$b/' filename
2.sed "s/$a/$b/" filename
3.sed 's/'$a'/'$b'/' filename 
4.sed s/$a/$b/ filename

5、awk中引入shell变量方法为:""$1""
sed -n "/^$1:/p" /etc/passwd|awk -F ":" '{print ""$1"""的UID为:"$3" """$1"""的shell环境:"$NF}'

6、查看进程ps -ef和ps aux
ps -ef 是用标准的格式显示进程的、其格式如下
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Aug01 ? 00:00:01 /sbin/init
UID #用户ID、但输出的是用户名 
PID #进程的ID 
PPID #父进程ID 
C #进程占用CPU的百分比 
STIME #进程启动到现在的时间 
TTY #该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 
CMD #命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19348 1384 ? Ss Aug01 0:01 /sbin/init
USER #用户名 
%CPU #进程占用的CPU百分比 
%MEM #占用内存的百分比 
VSZ #该进程使用的虚拟內存量(KB) 
RSS #该进程占用的固定內存量(KB)(驻留中页的数量) 
STAT #进程的状态 
START #该进程被触发启动时间 
TIME #该进程实际使用CPU运行的时间
STAT状态位常见的状态字符有:
D #无法中断的休眠状态(通常 IO 的进程); 
R #正在运行可中在队列中可过行的; 
S #处于休眠状态; 
T #停止或被追踪; 
W #进入内存交换 (从内核2.6开始无效); 
X #死掉的进程 (基本很少见); 
Z #僵尸进程; 
< #优先级高的进程 
N #优先级较低的进程 
L #有些页被锁进内存; 
s #进程的领导者(在它之下有子进程); 
l #多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); 
+ #位于后台的进程组;

7、添加多个loopback口(设置网卡别名)
[root@CentOS ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:1
[root@CentOS ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
IPADDR=192.168.100.1
NETMASK=255.255.255.0
NETWORK=192.168.100.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=192.168.100.255
ONBOOT=yes
NAME=loopback1

8、SCP的使用方法及参数

命令参数:

-1  强制scp命令使用协议ssh1  

-2  强制scp命令使用协议ssh2  

-4  强制scp命令只使用IPv4寻址  

-6  强制scp命令只使用IPv6寻址  

-B  使用批处理模式(传输过程中不询问传输口令或短语)  

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  

-p 保留原文件的修改时间,访问时间和访问权限。  

-q  不显示传输进度条。  

-r  递归复制整个目录。  

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   

-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   

-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  

-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    

-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     

-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   

-P port  注意是大写的P, port是指定数据传输用到的端口号   

-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

第1个指定了用户名,命令执行后需要输入用户密码;  scp local_file remote_username@remote_ip:remote_folder  

第2个没有指定用户名,命令执行后需要输入用户名和密码;scp  local_folder remote_ip:remote_folder  

例:scp -r root@43.224.34.73:/home/lk /root

posted @ 2019-03-27 16:48  Me-lihu  阅读(3)  评论(0编辑  收藏  举报