3. linux日常学习1

一、文件操作

1. 判断文件类型

  • 常见文件类型
字符设备(c):所有输入输出设备,键盘、鼠标、显示器、打印机
块设备(b):所有存储设备称为块设备文件,硬盘、U盘
软链接文件(l):类似windows的快捷方式
目录文件(d):类似windows文件夹
普通文件(f或-):类似记事本
管道文件(p):程序或进程间通信方式
套接字文件(s):程序或进程间通信方式
1.用file命令来判断文件类型
	file /root

2. ls

1.用途
	列出目录内容
2.参数
	-a:all,查看目录下的所有文件,包括隐藏文件
	-l:长列表显示
	-h:human,以人性化方式显示
	-d:只列出目录名,不列出其他内容
	-t:按修改时间排序
	-r:逆序排列
	-S:按文件大小排序
	-i:显示文件的inode号(索引号)
	-R:递归列出目录中的内容
	-m:用逗号分隔显示内容
3.举例
	(1)ls -lSh /root  //人性化按文件大小排列显示
	-rw-------. 1 root root 1.5K Oct 19  2019 anaconda-ks.cfg
	-rwxr-xr-x. 1 root root   15 Apr 29 12:51 1.sh
	
	(2)ls -lt /root  //按时间排序,默认把最近时间文件排上面
	
	(3)ls -R /tmp  //递归列出
	/tmp/:
	1.log  test  vmware-root
	/tmp/test:
	hello.txt

3. mkdir

1.用途
	创建目录
2.参数
	-p:级联创建
3.举例
	(1)mkdir /test/     //在根目录下创建test目录
	(2)mkdir ./test/    //在当前目录创建test目录
	(3)mkdir -p /test/yunwei/rehat.log  //级联创建目录文件
	(4)mkdir /tmp/{one,two}		//在tmp下创建两个目录

4. touch

1.用途
	创建文件与当文件存在是再使用touch命令就是修改文件时间戳
2.举例
	(1)rm -rf /tmp/*    //删除/tmp目录下所有文件
	(2)touch /tmp/file1
	(3)touch file1  file2  file3
	(4)stat file1	//查看文件的属性
	(5)touch -a file1 -t "20201010"    //修改文件访问时间,-t支持到年月日时分
	(6)touch -m file1 -t "202010101111"		//修改文件更改时间
	(7)touch -d "20200101" file1   //同时修改文件访问时间和更改时间
3.文件属性(stat)
	Access: 文件的查看访问时间
	Modify: 文件内容修改的时间
	Change: 文件的属性时间,文件的大小,权限

5. cat/more/less/head/tail

1.用途
	查看文件内容
2.命令
	(1)cat:一般查看小文件,从第一行到最后一行列出来
		-n:显示行号
		-A:显示控制字符,如换行符,制表符
	(2)more和less:一般查看大文件,q 退出查看,可搜索输/,建议less
	(3)head:默认查看文件前10行,head -5 /etc/passwd
	(4)tail:默认查看文件后10行,tail -5 /etc/passwd; -f 表示动态查看
	(5)ldd:一般用来查看二进制命令文件
3.举例
	(1)cat /etc/passwd		//查看/etc/passwd文件内容
	(2)cat -n /etc/passwd   //查看/etc/passwd文件内容并显示行号
	(3)tac /ect/passwd
	(4)ldd /bin/mkdir	//查看mkdir命令文件内容,which mkdir

6. cp

1.用途
	本地文件拷贝
2.语法及参数
	cp [选项] 需要拷贝的文件 拷贝到哪里去
	-r:递归拷贝目录
	-v:显示拷贝过程信息
	-p:文件属性信息一起拷贝
	-a:递归拷贝文件,包括目录及文件属性信息
3.举例
	(1)cp ./file /tmp/test1     //将当前目录下file复制到/tmp下并重命名为test1
	(2)cp -r /root/dir1 /tmp/   //将/root/dir1目录复制到/tmp目录下
	(3)cp -p /home/file1 /tmp/   //拷贝home/file1文件(包含属性信息)到/tmp/下

7. mv

1.用途
	移动文件或重命名
2.语法
	(1)不同路径下
    	mv 需要移动的文件 移动到新的路径下
    (2)相同路径下
    	mv 原来文件名字 新文件名字
3.举例
	(1)mv /root/file1 /tmp
	(2)mv /tmp/file1 /tmp/test1

8. rm

1.用途
	删除文件
2.参数
	-r:递归删除,一般用于删除目录
	-f:强制删除,不提示
3.举例
	(1)rm file1
    (2)rm -r /tmp/dir1/
    (3)rm -f /root/file1
    (4)rm -rf /tmp/*   //删除tmp目录下所有文件

9. help

1.用途
	简单求助命令,命令参数不知道可以使用help
2.使用
	(1)内部命令
		help 命令
	(2)外部命令
		命令 --help
	(3)如何判断内部命令还是外部命令
		type 命令
		shell为内部
		第三方程序为外部

二、Bash标准输入输出

1. 名词解释

  • 标准输入(stdin):键盘输入,文件描述符—0
  • 标准输出(stdout):屏幕上正确的输出,文件描述符—1
  • 标准错误(stderr):屏幕上错误的输出,文件描述符—2

2. 相关符合

>:标准覆盖重定向,1或>标准输出重定向,2>标准错误重定向
>>:标准追加重定向
<:标准输入
&>:标准输出标准错误重定向

3. 举例说明

①环境准备

1.创建1.sh脚本文件
	echo -e 'hostname\nhello' > 1.sh
2.赋予1.sh可执行权限
	chmod +x 1.sh
3.执行脚本
	./1.sh
    // mr.hu
   //  ./1.sh:行2:hello:未找到命令

②将标准输出(屏幕上的正确结果)重定向到/tmp/1.log中

./1.sh >/tmp/1.log

③将标准错误,重定向到/tmp/err.log中

./1.sh 2>/tmp/err.log

④将正确、错误结果都重定向到e.log中

./1.sh &>/tmp/2.log

⑤将错误结果追加到/tmp/err.log中

./1.sh 2>>/tmp/err.log

⑥补充

//将标准输出和标准错误扔掉(放入空设备中),/dev/null Linux中特殊设备文件,空设备类似黑洞
./1.sh >/dev/null 2>&1
或
./1.sh &>/dev/null

2. echo

1.用途
	echo会将输入的字符串送往标准输出,并在最后加上换行符、可理解为打印字符串
2.参数:
	-n:不输出最后的换行符
	-e:解释转义字符(字符串中出现\n,\t等特殊字符)
3.举例
	(1)echo hello world		//打印helloworld
	(2)echo hello > file1	//将hello重定向到file1文件中(可结合> >>使用)
	(3)echo -e 'hello\nworld' > 1.sh // -e表示吧\n解释为换行符
	   hello
	   world

三、文件查找命令

1. which/whereis

1.用途
	which找出命令的绝对路径;whereis找出命令路径及文档手册信息
2.举例
	(1)which mkdir
		/usr/bin/mkdir
	(2)whereis mkdir

2. find

1.用途
	根据需求查出内容;精确查找,磁盘搜索,IO读写,cpu开销大
2.用法及参数
	(1)找出来输出到屏幕
        find 查找路径 选项 关键字
        -name:按文件名查找文件
        -iname:按忽略大小写查找文件
        -size:按文件大小来查找,+1M大于1M,-1M小于1M
        -type:按文件类型查找(d,f,l,b...)
        -mtime:按文件修改时间查找,-n指n天以内,+n指n天前
        -user:按用户
        -group:按组
        -perm:按权限,如-perm 644
	举例:
		find /etc/ -name "*.conf"	//找/etc目录里以.conf结尾的文件
		find ./ -iname 'file1'	//忽略大小写查找file1文件
		find /dev -type b	//查找/dev下块类型文件
		find /etc -type f -size +1M		//查找etc中大于1M的文件
		find ./ -type f -mtime +2  //查找两天以前,今天22号,就是[1-20)不含20号的文件
		find ./ -type f -mtime -2  //查找两天内的,今天22号,就是(20-22]不含20号的文件
		find ./ -type f -mtime 2   //今天22号,则查找20号当天文件
		find ./ -type f -daystart -mtime 2 
    (2)找出来后执行某个操作
    	find 路径 选项 关键字 动作
    	-exec:对查找的文件直接执行该参数后shell命令,执行时必须以空格、反斜杠、分号结尾
    	-ok:对查找到的文件询问式执行该参数后shell命令,执行时必须以空格、反斜杠、分号结尾
    	-delete:删除查找到的文件
    	-ls:列出查找到的文件
    	-print:打印出查找到的文件(默认选项)
    举例:
    	find /test/ -type f -ok cp {} /tmp \;

四、文件打包工具

1. 常见压缩工具

压缩工具 说明 解压工具
zip 兼容Unix与windows,可压缩多个文件或目录 unzip
gzip 压缩档文件,压缩率低,cpu开销小 gunzip

2. zip

1.语法
	zip 压缩后的文件	需要压缩的文件
2.参数
	-r:递归压缩,压缩目录
	注意:zip压缩默认压缩后的格式就是.zip;
3.举例
	zip /tmp/test.zip ./*	//将当前目录下所有文件压缩到/tmp下命名为test.zip
1.解压
	unzip /tmp/test.zip -d /backup/		//将压缩文件解压到指定backup目录下

3. tar

1.用途
	可以将多个文件打包成一个并且压缩
2.语法及参数
	tar 选项 打包后的文件 需要打包的文件
	-c:创建tar包(打包)
    -z:调用gzip工具压缩
    -j:调用xz工具压缩
    -v:显示详细信息
    -f:指定包名
    -x:解压
    -C:指定解压路径
    -t:列出或查看tar包内容
    -r:往tar包里追加文件
3.举例
	(1)tar -cvzf /tmp/test.tar.gz ./*	//将当前目录下所有内容打包
	(2)tar -xf /tmp/test.tar.gz -C /dir/	//将.zip.gz压缩文件解压到/dir/目录下
	(3)tar -cvf /tmJf /tmp/boot_test.tar.xz /test/ /boot/   //将两个目录打包成一个
	(4)tar -xf /tmp/boot_test.tar.xz -C /dir/
	(5)tar -tf /tmp/test.tar.gz 	//查看tar包里内容
	(6)tar -f /tmp/test.tar -r /etc/hosts	//将hosts文件追加到test的压缩包里

4. date

1.用途
	打印或者设置当前系统日期和时间
2.参数
	-s:设置日期
	date -s '20201111 12:12:11'
    $():括号里面的命令优先执行

五、vim编辑器

1. 命令行模式

可以进行一些基本的复制、删除、跳转、撤销、移动等操作
命令 含义 备注
yy 复制光标所在行 3yy表示复制3行
p(小写) 光标所在行后面粘贴
P(大写) 光标所在行前面粘贴
gg 光标快速跳到文件首行,并定位到首字符 3gg表示快速跳到文件第三行行首
G 光标快速跳到文件首尾,并定位到首字符
dd 删除光标所在行 3dd表示删除3行(包括光标所在行)
d^ 从光标位置删至行首,不包括光标位
d$ 从光标位置删至行尾,包括光标位,与D相同
u 撤销 ctrl+r 取消撤销
// vim +/关键字 文件名 打开指定文件,并高亮显示关键词
vim +/shutdown /tmp/passwd		

2. 编辑模式

1.进入方式
	i:在光标所在字符前开始插入
	a:在光标说在字符后开始插入
	o:在光标所在行的下面另起一行插入
	I:在光标所在行首开始插入,如果行首有空格则在空格之后插入
	A:在光标所在的行尾开始插入
	O:在光标所在行上面另起一行开始插入
	S:删除光标所在行并开始插入

3. 底行模式

① 如何进入底行模式

  • 命令模式进入:按冒号(:)
  • 编辑模式进入:先按ESC,再按冒号(:)

②底行模式能做什么

  1. 保存和退出
  • 保存文件,命令:w;另存为到其他文件,命令:w 文件名
  • 保存退出,命令:wq;强制保存退出:wq!
  • 退出不保存,命令:q;强制退出:q!
  • 命令:x在文件没有修改的情况下,表示直接退出(:q);在文件修改的情况下表示保存并退出(:wq)
  1. 搜索替换
1.搜索
	:/root		n往下匹配;N往上匹配
2.替换
	:%s/root/ROOT/	 	全文搜索,替换每一行匹配到的第一个关键字
	:%s/root/ROOT/g  	全文搜索,替换每一行匹配到的所有关键字
	:%s/root/ROOT/gc 	交互式替换
	:%s/\/sbin/nologin/\/bin/bash/   \转义符
	:%s#/sbin/nologin#/bin/bash#g    更换分隔符
	:7s/shutdown/SHUTDOWN/g			 只替换第7行内容
	:noh			取消高亮
1.其他功能
	(1)临时设置行号
	:set number 或 :set nu
	(2)永久设置行号
	echo "set number" >> /etc/vimrc
	
	:set list  设置控制符
	
	(3)地址定位
	:1,5 w /tmp/5.txt	保存前5行内容到/tmp/5.txt
	:r /tmp/5.txt    在光标所在行下面读取/tmp/5.txt文件内容
	:3r /tmp/5.txt   在当前文本的第3行后读取/tmp/5.txt文件
	:1,8d		删掉文本的1-8行
	:nr !command   在第n行下面读取命令所执行的结果
	:n! command    用命令的执行结构替换第n行内容;4! hostname

六、用户切换

1.切换用户
	su - USERNAME
2.以其他身份执行命令
	sudo 

七、权限

1. r(读权限)

  • 针对目录

    一个目录拥有r权限,说明可以查看该目录的内容(ls命令)

  • 针对普通文件

    一个普通文件拥有r权限,说明可以查看该文件的内容(cat/head/tail/less/more)

  • 读取,数字 4

2. w(写权限)

  • 针对目录

    一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm)

  • 针对普通文件

    一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器)

  • 写,数字 2

3. x(执行权限)

  • 针对目录

    一个目录拥有x权限,说明可以进入或切换到该目录里(cd)

  • 针对普通文件

    一个普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限)

  • 执行,数字 1

4. 没有权限

  • 没有权限用横杆 - 表示,数字 0

5. 修改文件普通权限

(1) chmod
chmod [选项] 模式 文件名
-R:递归更改目录和目录里文件权限
(2) 举例
1.参数
    u:表示文件拥有者
    g:表示文件数组里的用户
    o:表示其他人,即不是文件的创建者,也不在文件属组里
    a:表示所有人
2.举例
    (1)chmod u=rwx flie2
    (2)chmod u+x,g=rw,o-r file3
    (3)chmod -R o+x dir1/     //将dir1目录及目录下文件的o都加上x权限
3.数字权限
	r - 4,w - 2, x - 1, - - 0
    (1)chmod 644 file1
    (2)chmod 700 dir/*		//将dir目录下所有文件权限设置700
    (3)chmod -R 777 dir/

八、远程连接

1. ssh

ssh -p 22 10.10.10.10
ssh -p 22 root@192.168.1.1

2. scp

1.用法1:将本地文件远程拷贝到远端
	scp [选项] 本地文件 远程服务器ip:/路径
	scp -P 1022 ./1.txt 192.168.159.10:/tmp/
    scp -P 1002 -r ./dir1 192.168.159.10:/tmp/		//递归拷贝目录
2.用法2:将远程服务器上的文件拷贝到本地
	scp [选项] 远程服务器ip:/文件 本地路径
	scp -P 1002 heima@192.168.1.1:/etc/passwd  /backup/file1  //将远端服务器文件拷贝本地更名

九、进程

1. ps

1.用途
	静态查看进程
2.常见组合
	ps -ef
	ps -eF
	ps -ely
	ps -aux
	ps -auxf
	a:显示当前终端下所有进程,包括其他用户进程
	u:显示进程拥有这、状态、资源占用等详细信息
	x:显示没有控制终端的进程,通常和a一起用
	o:自定义打印内容
	-e:显示所有进程
	-f:完整输出显示进程间父子关系
	-l:较长,详细的将进程信息列出
3.举例
	ps -ef | grep apache
	ps -ef | head -5
    ps -eF | head -5
4.显示信息介绍
	USER:运行进程的用户
	PID:进程ID
	%CPU:cpu占用率
	%MEM:内存占用率
	VSZ:占用虚拟内存
	RSS:占用实际内存,驻留内存
	TTY:进程运行的终端
	STAT:进程状态,man ps获取帮助(/STATE)
		R 运行
		S 可中断睡眠sleep
		D 不可中断睡眠
		T 停止的进程
		Z 僵尸进程
		X 死掉的进程

2. top

1.用途
	动态查看进程命令
2.按键-在使用top是可以按键
	M:按内存的使用排序
	P:按cpu使用排序
	T:按该进程使用的cpu时间累积排序
	k:给某个PID一个信号,默认值是信号15
	l:显示cpu的负载
	s:改变两次刷新之间的时间,默认5s
	q:退出程序
	N:以PID的大小排序
	R:对排序进行反转
	f:自定义显示字段
	r:重新安排一个进程的优先级别
3.举例
	-d:后面可以接秒数,指定每两次屏幕信息刷新之间的时间间隔
	-p:指定某个进程来进行监控
	-b -n:一次处理方式执行top
	top -d 1 -p 10126 //查看指定进程动态信息
	top -d 1 -u apache //查看指定用户进程
	top -d 1 -b -n 2 > top.txt //将2次top信息写入到文件

3. kill

kill [信号] 进程PID
killall
pkill

结束进程
kill -15 7578
pkill -9 -u stu1

十、计划任务

1. 了解计划任务

cat  /etc/crontab
--------------------
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed


前5个字段分别表示:
	分:0-59
    时:0-23
    日:1-31
    月:1-12
    周:0-7(0表示周日或者7表示周日)

5 * * * *
05 * * * *
20 08 * * *  //每天8:20做...
00 06 * 12 * //十二月的每天6:00
03 01 * * 7  //每周日1:03

还有一些特殊符号:
	,  表示分隔,间隔
	-  表示一个段
	/n 表示每个n的单位执行一次

*/5 * * * *   //每隔5分钟
03 03,06 1-15 * *   //每月1号到15号的3:03和6:03执行
00 */2 * * 1,3     //周一和周三每个2小时执行一个任务
00 08-18/2 1-3,15 * *  //每月1号到3号和15号,早上8:00-晚上6:00每个2小时执行一个任务

2. 创建/查看/删除

① 用户编辑自己的定时任务

crontab -e    //编辑当前用户自己的定时任务
crontab -l    //列出当前用户自己所有的定时任务
crontab -r    //删除当前用户自己所有的定时任务

② 管理员编写其他用户定时任务

crontab -e -u redhat  //编辑指定用户定时任务
crontab -l -u Redhat
crontab -r -u Redhat

③ 举例

crontab -e
*/1 * * * * echo "Hello world" >> /tmp/one.log
ll /var/spool/cron/			//root建立的计划任务都在这目录下的root文件中
tail -f /var/log/cron      //查看计划任务日志

十一、网络命令

1. ifconfig

#1.ifconfig命令
#作用:
ifconfig命令用于显示或设置网络设备。
#说明: 
与windows下的ipconfig命令类似,linux下使用ifconfig命令查看
#格式
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地址。
[网络设备] 指定网络设备的名称。

#实例
显示网络设备信息

# ifconfig        
eth0   Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C 
     inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
     inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
     TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
     Interrupt:185 Base address:0x2024 

lo    Link encap:Local Loopback 
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
     TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)
启动关闭指定网卡

# ifconfig eth0 down
# ifconfig eth0 up
为网卡配置和删除IPv6地址

# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡诶之IPv6地址

# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
用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 //启动网卡
配置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地址,加上子掩码,加上个广播地址
启用和关闭ARP协议

# ifconfig eth0 arp  //开启
# ifconfig eth0 -arp  //关闭
设置最大传输单元

# ifconfig eth0 mtu 1500 
//设置能通过的最大数据包大小为 1500 bytes

2. ping

#2.ping命令
#作用
用于检测主机。若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
#格式
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
#参数
-d 使用Socket的SO_DEBUG功能。
-c<完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络界面送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p<范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小> 设置数据包的大小。
-t<存活数值> 设置存活数值TTL的大小。
-v 详细显示指令的执行过程。
#实例
检测是否与主机连通
ping www.baidu.com
//需要终止按ctrl +c
指定接收包的次数
ping -c 2 www.baidu.com
//收到两次包后,自动退出

3. nslookup

#nslookup 
#作用:
查看dns信息用的,linux系统不自带,需要手动安装
如果你的Linux系统没有nslookup命令,那么八成是你没有安装bind-utils包。
直接yum install bind-utils就可以解决问题了。

#格式:
        进入非交互模式       nslookup 域名(www.baidu.com)
非交互模式nslookup会连接到默认的域名服务器
(即/etc/resolv.conf的第一个dns地#址)。
        进入交互模式         nslookup

#交互模式常用命令:
exit        退出交互模式
set all 列出nslookup工具常用选项设置值

#返回值说明
返回值一共分为两部分,第一部分是本机的DNS信息,包括服务器和地址

第二部分非权威应答对应的英文是:Non-authoritative answer。什么叫非权威应答?假设某个DNS server没有域名test.com的记录信息,当有客户端通过它请求获取test.com的域名信息,此DNS Server会通过迭代递归的方式从test公司实际存储此记录信息的DNS server中获取test.com的域名信息,反馈给发出请求的客户端,同时会把test.com的记录信息放在自身缓存中放置一段时间,当又有客户端请求test.com域名解析时,此DNS server直接从自身缓存中提取返回给客户端,这个回答叫“非权威回答”,简言之凡是从非实际记录存储DNS server中获取的域名解析回答,都叫“非权威回答”。

[root@localhost ~]# nslookup www.baidu.com
Server:     114.114.114.114
Address:    114.114.114.114#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 61.135.169.121
Name:   www.a.shifen.com
Address: 61.135.169.125

#www.a.shifen.com.指代www.baidu.com对应的dns主机名记录

4. traceroute

#traceroute
#作用:
显示数据包到主机间的路径。
对应window下的tracert命令

#格式: 
Traceroute [options] <IP-address or domain-name> [data size]

#参数
  -d   使用Socket层级的排错功能。
  -f<存活数值>   设置第一个检测数据包的存活数值TTL的大小。
  -F   设置勿离断位。
  -g<网关>   设置来源路由网关,最多可设置8个。
  -i<网络界面>   使用指定的网络界面送出数据包。
  -I   使用ICMP回应取代UDP资料信息。
  -m<存活数值>   设置检测数据包的最大存活数值TTL的大小。
  -n   直接使用IP地址而非主机名称。
  -p<通信端口>   设置UDP传输协议的通信端口。(缺省为33434)

  -q  设置TTL测试数目(缺省为3)
  -r   忽略普通的Routing Table,直接将数据包送到远端主机上。
  -s<来源地址>   设置本地主机送出数据包的IP地址。
  -t<服务类型>   设置检测数据包的TOS数值。
  -v   详细显示指令的执行过程。
  -w<超时秒数>   设置等待远端主机回报的时间。
  -x   开启或关闭数据包的正确性检验。  
[data size]:每次测试包的数据字节长度(缺省为38)
#返回值说明
显示到达目的地的数据包路由
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
 1  10.20.35.254 (10.20.35.254)  0.626 ms  1.205 ms  1.476 ms
 2  10.20.0.1 (10.20.0.1)  0.365 ms  0.453 ms  0.463 ms
 3  124.160.189.213 (124.160.189.213)  2.377 ms  2.226 ms  2.250 ms
 4  124.160.188.101 (124.160.188.101)  2.253 ms 124.160.188.105 (124.160.188.105)  2.396 ms  2.518 ms
 5  124.160.189.89 (124.160.189.89)  8.592 ms 124.160.189.97 (124.160.189.97)  11.756 ms 124.160.189.105 (124.160.189.105)  7.020 ms
 6  219.158.96.133 (219.158.96.133)  28.295 ms  27.595 ms 219.158.96.129 (219.158.96.129)  27.675 ms
 7  202.96.12.114 (202.96.12.114)  29.006 ms  28.724 ms 124.65.194.154 (124.65.194.154)  30.519 ms
 8  61.148.155.50 (61.148.155.50)  31.042 ms 124.65.58.198 (124.65.58.198)  28.132 ms 124.65.58.54 (124.65.58.54)  27.523 ms
 9  202.106.48.18 (202.106.48.18)  27.811 ms 123.125.248.102 (123.125.248.102)  26.961 ms 123.125.248.46 (123.125.248.46)  50.428 ms

5. netstat

用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等


常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
1.列出所有端口 (包括监听和未监听的)- netstat -a | more
    
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:30037         *:*                     LISTEN
 udp        0      0 *:bootpc                *:*
 
 Active UNIX domain sockets (servers and established)
 Proto RefCnt Flags       Type       State         I-Node   Path
 unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
 unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket
2.列出所有tcp端口 - netstat -at
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:30037         *:*                     LISTEN
 tcp        0      0 localhost:ipp           *:*                     LISTEN
 tcp        0      0 *:smtp                  *:*                     LISTEN
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
3.列出所有udp端口 - netstat -au
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 udp        0      0 *:bootpc                *:*
 udp        0      0 *:49119                 *:*
 udp        0      0 *:mdns                  *:*
4.只显示监听端口 - netstat -l
5.显示每个协议的统计信息 - nestat -s
 Ip:
 11150 total packets received
 1 with invalid addresses
 0 forwarded
 0 incoming packets discarded
 11149 incoming packets delivered
 11635 requests sent out
 Icmp:
 0 ICMP messages received
 0 input ICMP message failed.
 Tcp:
 582 active connections openings
 2 failed connection attempts
 25 connection resets received
 Udp:
 1183 packets received
 4 packets to unknown port received.
 .....
显示tcp和udp
netstat -st
netstat -su
posted @ 2020-04-29 19:15  qi.hu  阅读(242)  评论(0编辑  收藏  举报