Linux基础命令-大全
命令
1.
// An highlighted block
var foo = 'bar';
1.A
1.
// An highlighted block
var foo = 'bar';
2.B
3.C
1.cat命令
1.cat命令
cat [OPTION]... [FILE]...
-E:显示行结束符$ -n:对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
2.chage命令
// An highlighted block
var foo = 'bar';
4.D
1.dd命令
1.dd命令
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
dd 命令:convert and copy a file
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定的参数转换文件
转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
fdatasync 写完成前,物理写入输出文件
例子:
1)备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
2)破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
3)有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
4)备份:
4.1)将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy
4.2)将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image
4.3)备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz
5)恢复:
5.1)将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx
5.2)将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
6)拷贝内存资料到硬盘
将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/mem of=/root/mem.bin bs=1024
7)从光盘拷贝iso镜像
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
dd if=/dev/cdrom of=/root/cd.iso
8)销毁磁盘数据
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行
dd if=/dev/urandom of=/dev/sda1
2.df命令
2.df命令
df [OPTION]... [FILE]...
文件系统空间占用等信息的查看工具
-H 以10为单位
-T 文件系统类型
-h human-readable
-i inodes instead of blocks
-P 以Posix兼容的格式输出
3.du命令
3.du命令
du [OPTION]... DIR
查看某目录总体空间占用状态
-h human-readable
-s summary
--max-depth=# 指定最大目录层级
4.dmesg命令
4.dmesg命令
dmesg [OPTION...]
1)列出加载到内核中的所有驱动
我们可以使用如‘more’。 ‘tail’, ‘less ’或者‘grep’文字处理工具来处理‘dmesg’命令的输出。由于dmesg日志的输出不适合在一页中完全显示,因此我们使用管道(pipe)将其输出送到more或者less命令单页显示。
dmesg | more
dmesg | less
2)列出所有被检测到的硬件
要显示所有被内核检测到的硬盘设备,你可以使用‘grep’命令搜索‘sda’关键词
dmesg | grep sda
3)只输出dmesg命令的前20行日志
在‘dmesg’命令后跟随‘head’命令来显示开始几行,‘dmesg | head -20′命令将显示开始的前20行。
dmesg | head -20
4)只输出dmesg命令最后20行日志
在‘dmesg’命令后跟随‘tail’命令(‘ dmesg | tail -20’)来输出‘dmesg’命令的最后20行日志,当你插入可移动设备时它是非常有用的。
dmesg | tail -20
5)搜索包含特定字符串的被检测到的硬件
由于‘dmesg’命令的输出实在太长了,在其中搜索某个特定的字符串是非常困难的。因此,有必要过滤出一些包含‘usb’ ‘dma’ ‘tty’ ‘memory’等字符串的日志行。grep 命令 的‘-i’选项表示忽略大小写。
dmesg |grep -i eth
dmesg | grep -i usb
dmesg | grep -i dma
dmesg | grep -i tty
dmesg | grep -i memory
6)清空dmesg缓冲区日志
我们可以使用如下命令来清空dmesg的日志。该命令会清空dmesg环形缓冲区中的日志。但是你依然可以查看存储在‘/var/log/dmesg’文件中的日志。你连接任何的设备都会产生dmesg日志输出。
dmesg -c
7)实时监控dmesg日志输出
在某些发行版中可以使用命令‘tail -f /var/log/dmesg’来实时监控dmesg的日志输出
watch "dmesg | tail -20"
结论:dmesg命令在系统dmesg记录实时更改或产生的情况下是非常有用的。你可以使用man dmesg来获取更多关于dmesg的信息。
5.dig命令
5.dig命令
5.declare命令
6.declare命令
1.Shell变量一般是无类型的,但是bash Shell提供了declare和typeset两个命令
用于指定变量的类型,两个命令是等价的
2.declare [选项] 变量名
-r 声明或显示只读变量
-i 将变量定义为整型数
-a 将变量定义为数组
-A 将变量定义为关联数组
-f 显示已定义的所有函数名及其内容
-F 仅显示已定义的所有函数名
-x 声明或显示环境变量和函数
-l 声明变量为小写字母 declare –l var=UPPER
-u 声明变量为大写字母 declare –u var=lower
5.E
1.ethtool命令
1.ethtool命令
df [OPTION]... [DEVICE]
ethtool 是用于查询及设置网卡参数的命令。
ethtool ethx //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等
ethtool –h //显示ethtool的命令帮助(help)
ethtool –i ethX //查询ethX网口的相关信息
ethtool –d ethX //查询ethX网口注册性信息
ethtool –r ethX //重置ethX网口到自适应模式
ethtool –S ethX //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] //设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商
相关参考:
1)which ethtool //查询 ethtool 存放的路径
2)rpm -qf /sbin/ethtool //查询 ethtool 的版本信息
3)将 ethtool 设置永久保存在网络设备的方法
解决方法一:
ethtool 设置可通过 /etc/sysconfig/network-scripts/ifcfg-ethX 文件保存,从而在设备下次启动时激活选项。
例如:ethtool -s eth0 speed 100 duplex full autoneg off
此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行:
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
解决方法二:
将ethtool设置写入/etc/rc.d/rc.local之中。
2.eval命令
2.eval命令
1.eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令
适用于那些一次扫描无法实现其功能的变量.该命令对变量进行两次扫描
2.示例:
[root@server ~]# CMD=whoami
[root@server ~]# echo $CMD
whoami
[root@server ~]# eval $CMD
root
[root@server ~]# n=10
[root@server ~]# echo {0..$n}
{0..10}
[root@server ~]# eval echo {0..$n}
0 1 2 3 4 5 6 7 8 9 10
3.expect命令
3.expect命令
1.expect 语法:
expect [选项] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]
2.选项
-c:从命令行执行expect脚本,默认expect是交互地执行的
示例:expect -c 'expect "\n" {send "pressed enter\n"}
-d:可以输出输出调试信息
示例:expect -d ssh.exp
3.expect中相关命令
spawn 启动新的进程
send 用于向进程发送字符串
expect 从进程接收字符串
interact 允许用户交互
exp_continue 匹配多个字符串在执行动作后加此命令
4.expect最常用的语法(tcl语言:模式-动作)
5.单一分支模式语法:
expect “hi” {send “You said hi\n"}
匹配到hi后,会输出“you said hi”,并换行
6.多分支模式语法:
expect "hi" { send "You said hi\n" } \
"hehe" { send "Hehe yourself\n" } \
"bye" { send "Good bye\n" }
匹配hi,hello,bye任意字符串时,执行相应输出。等同如下:
expect {
"hi" { send "You said hi\n"}
"hehe" { send "Hehe yourself\n"}
"bye" { send " Good bye\n"}
}
6.F
7.G
1.groupadd命令
// An highlighted block
var foo = 'bar';
2.groupdel命令
// An highlighted block
var foo = 'bar';
3.gpasswd命令
// An highlighted block
var foo = 'bar';
8.H
1.hostname命令
1.hostname
显示主机名
hostname master 临时修改主机名
2.hostnamectl命令
2.hostnamectl
显示主机名
hostnamectl set-hostname master 永久修改主机名
扩展:永久修改主机名
(1)修改/etc/sysconfig/network文件,添加或修改:
NETWORKING=yes
HOSTNAME=主机名
(2)修改/etc/hosts文件
将"127.0.0.1"所在行中的"localhost.localdomain"修改为"新主机名"
将"::1"所在行中的"localhost.localdomain"修改为"新主机名"
(3)修改/etc/hostname文件
删除文件中的所有内容,然后输入新的主机名
(4)重启计算机
3.host命令
3.host命令
9.I
1.ifconfig命令
1.ifconfig命令
ifconfig 网络接口 [选项] 地址/参数
Linux 系统配置网卡的命令工具,可用于查看和更改网络接口的地址和参数,包括IP 地址、广播地址、子网掩码和物理地址,也可激活和关闭网卡。
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>]
[io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>]
[netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。
例子:
1)启动关闭指定网卡
ifconfig eth0 down
ifconfig eth0 up
2)为网卡配置和删除IPv6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡诶之IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
3)用ifconfig修改MAC地址
ifconfig eth0 down //关闭网卡
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
ifconfig eth0 up //启动网卡
ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
ifconfig eth1 up //启动网卡
4)配置IP地址
ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
5)启用和关闭ARP协议
ifconfig eth0 arp //开启
ifconfig eth0 -arp //关闭
6)设置最大传输单元
ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes
2.ip命令
2.ip命令
配置Linux网络属性:ip 命令
(1)ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE
可设置属性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
例1:ip link set eth1 down
例2:ip link show up
(2)ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 仅链接可用
host: 本机可用
[broadcast ADDRESS]:指明广播地址
例1: ip addr add 1.1.1.1/24 scope global dev eth1 label eth1:0
例2: ip addr del 1.1.1.1/24 dev eth1 label eth1:0
(3)ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
例1: ip addr show dev eth1
(4)ip addr flush 使用格式同show
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
(5)ip route - routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加网关:ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
删除路由:ip route del TARGET
例1: ip route del default via 10.0.7.254
显示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
3.install命令
3.install命令
1.install命令:
install [OPTION]... [-T] SOURCE DEST 单文件
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...创建空目录
2.选项:
-m MODE,默认755
-o OWNER
-g GROUP
3.示例:
install -m 700 -o wang -g admins srcfile desfile
install –m 770 –d /testdir/installdir
10.J
11.K
12.L
13.M
1.modprobe命令
1.modprobe命令
modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]
Linux modprobe命令用于自动处理可载入模块。
modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
-a或--all 载入全部的模块。
-c或--show-conf 显示所有模块的设置信息。
-d或--debug 使用排错模式。
-l或--list 显示可用的模块。
-r或--remove 模块闲置不用时,即自动卸载模块。
-t或--type 指定模块类型。
-v或--verbose 执行时显示详细的信息。
-V或--version 显示版本信息。
-help 显示帮助
例子:
1)卸载网卡驱动
modprobe -r e1000
rmmod e1000
2)装载网卡驱动
modprobe e1000
2.mtr命令
2.mtr命令
mtr [参数] [地址/IP]
检查在目的地址有丢包的情况下,查出具体在哪一跳丢包,然后反馈给机房,机房再反馈给运营商
-h 提供帮助命令
-v 显示mtr的版本信息
-r 已报告模式显示
-n 不用主机解释
-c 发送多少个数据包
--report 结果显示,并不动态显示。
-s 用来指定ping数据包的大小
-a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的
-i 使用这个参数来设置ICMP返回之间的要求默认是1秒
-4 IPv4
-6 IPv6
输出参数解释:
第一列是IP地址
丢包率:Loss
已发送的包数:Snt
最后一个包的延时:Last
平均延时:Avg
最低延时:Best
最差延时:Wrst
方差(稳定性):StDev
mtr作用
1.linux网络连通性判断工具,检测网络
一般,windows用ping和tracert来判断网络连通性
linux中用mtr命令,结合ping nslookup tracert来判断网络的相关特性。
检测步骤:
1)检查目的地址有丢包的情况下,查出具体在哪一跳丢包。
2)看最后的目的地址是否有丢包,若没有一跳没有丢包,说明线路ok;
3)若有丢包,看路由情况,查找第一次丢包发生在哪一跳。
ping检测网络的步骤:
1)ifconfig观察本地网络设置是否正确;
2)ping 本机/本机ip-→若不通,表明网卡安装或配置有问题;
3)ping 网关-→ 若ping通,表明局域网中的网关路由器正常运行;
4)ping本地DNS地址,检查dns是否能够正确解析IP;
/etc/resolv.conf文件中的nameserver
5)ping 远程ip-→ 检查本机是否能正常访问Internet
2.通过mtr进行链路测试
链路测试的前提条件
当网站访问很慢或无法访问时,若排除其它显著问题,而检测到 ping 有明显丢包时,建议进行链路测试。
Linux 环境下,您可以通过 mtr 命令行工具(优先使用) 或 traceroute 命令行工具进行链路测试来判断问题来源
处理步骤:
1)利用链路测试工具探测网络状况和服务器状态。
2)根据链路测试结果分析处理。
判断各区域是否存在异常,并根据各区域的情况分别处理。
区域 A:客户端本地网络,即本地局域网和本地网络提供商网络。针对该区域异常,客户端本地网络相关节点问题,请对本地网络进行排查分析;本地网络提供商网络相关节点问题,请向当地运营商反馈。
区域 B:运营商骨干网络。针对该区域异常,可根据异常节点 IP 查询归属运营商,然后直接或通过阿里云售后技术支持,向相应运营商反馈问题。
区域 C:目标服务器本地网络,即目标主机归属网络提供商网络。针对该区域异常,需要向目标主机归属网络提供商反馈问题
2.mktemp命令
2.mktemp命令
1.mktemp命令:创建并显示临时文件,可避免冲突
2.mktemp [OPTION]... [TEMPLATE]
TEMPLATE: filenameXXX
X至少要出现三个
3.OPTION:
-d: 创建临时目录
-p DIR或--tmpdir=DIR:指明临时文件所存放目录位置
4.示例:
mktemp /tmp/testXXX
tmpdir=`mktemp –d /tmp/testdirXXX`
mktemp --tmpdir=/testdir testXXXXXX
14.N
1.netstat命令
1.netstat命令
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
Linux netstat命令用于显示网络状态,利用netstat指令可让你得知整个Linux系统的网络情况.
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p][--numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
2.nslookup命令
2.nslookup命令
3.newgrp命令
// An highlighted block
var foo = 'bar';
15.O
16.P
1.passwd
// An highlighted block
var foo = 'bar';
17.Q
18.R
1.route命令
1.route命令
路由管理命令
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N]
[mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help
(1) 选项
-C //显示路由缓存。
-F //显示发送信息
-v //显示详细的处理信息。
-n //不解析名字。
-ee //使用更详细的资讯来显示
-V //显示版本信息。
-net //到一个网络的路由表。
-host //到一个主机的路由表。
(2) 参数
add //增加路由记录。
del //删除路由记录。
target //目的网络或目的主机。
gw //设置默认网关。gateway 的简写,后续接的是 IP 的数值。
mss //设置TCP的最大区块长度(MSS),单位MB。
window //指定通过路由表的TCP连接的TCP窗口大小。
dev //如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。
reject //设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
例子:
1)添加和删除路由
route {add | del } [-net|-host] [网域或主机] netmask [mask] [gw|dev]
增加 (add) 与删除 (del) 路由的相关参数:
(a) -net :表示后面接的路由为一个网域。
(b) -host :表示后面接的为连接到单部主机的路由。
(c) netmask :与网域有关,可以设定 netmask 决定网域的大小。
(d) gw :gateway 的简写,后续接的是 IP 的数值,与 dev 不同。
(e) dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。
例1:route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
例2:route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
例3:route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
2)查询路由信息
route -nee
(a) -n:不要使用通讯协定或主机名称,直接使用 IP 或 port number。
(b) -ee:使用更详细的资讯来显示。
3)添加/删除默认网关路由
route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME}
(a) IP-ADDRESS:用于指定路由器(网关)的IP地址。
(b) INTERFACE-NAME:用于指定接口名称,如eth0。
例1:route add default gw 192.168.1.1 eth0
例2:route del default gw 192.168.1.1 eth0
例3: route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
例4: route add default gw 192.168.233.2 dev eth1 metric 99
4)添加/删除到指定网络的路由规则
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
(a) NETWORK-ADDRESS:用于指定网络地址。
(b) NETMASK:用于指定子网掩码。
(c) INTERFACE-NAME:用于指定接口名称,如eth0。
例1:route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
例2:route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
5)添加/删除路由到指定网络为不可达
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} reject
(a) NETWORK-ADDRESS:用于指定网络地址。
(b) NETMASK:用于指定子网掩码。
例1:route add -net 10.0.0.0 netmask 255.0.0.0 reject
例2:route del -net 10.0.0.0 netmask 255.0.0.0 reject
更多扩展看-->>Linux基础命令-网络配置和相关命令中的route命令
19.S
1.ss命令
1.ss命令
格式:ss [OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
tcp finite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1: 等待第一阶段
FIN_WAIT_2: 等待第二阶段
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息
2.su命令
// An highlighted block
var foo = 'bar';
3.stat命令
3.stat命令
20.T
1.traceroute命令
1.traceroute命令
traceroute[参数][主机]
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。
例1: traceroute www.baidu.com
例2: 跳数设置
traceroute -m 10 www.baidu.com
例3: 显示IP地址,不查主机名
traceroute -n www.baidu.com
例4: 探测包使用的基本UDP端口设置6888
traceroute -p 6888 www.baidu.com
例5: 把探测包的个数设置为值4
traceroute -q 4 www.baidu.com
例6: 绕过正常的路由表,直接发送到网络相连的主机
traceroute -r www.baidu.com
例7: 把对外发探测包的等待响应时间设置为3秒
traceroute -w 3 www.baidu.com
2.tracepath命令
2.tracepath命令
-n 不查看主机名字
例1: 跟踪路由
tracepath -n www.qq.com
21.U
1.useradd
// An highlighted block
var foo = 'bar';
2.usermod
// An highlighted block
var foo = 'bar';
22.V
23.W
1.watch命令
1.watch命令
watch [OPTION]...[COMMAND]
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
-n或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间
-d或--differences watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来
-t或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出
-h或--help
例子:
1)每隔一秒高亮显示网络链接数的变化情况
watch -n 1 -d netstat -ant
2)每隔一秒高亮显示http链接数的变化情况
watch -n 1 -d 'pstree|grep http'
3)实时查看模拟攻击客户机建立起来的连接数
watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'
4)监测当前目录中 scf' 的文件的变化
watch -d 'ls -l|grep scf'
5)10秒一次输出系统的平均负载
watch -n 10 'cat /proc/loadavg'
24.X
25.Y
26.Z
27.备注
1.文件内容: cat ,more,less
2.文件截取:head,tail
3.按列抽取:cut
4.排序和统计:sort,wc
5.按关键字抽取:grep