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,再按冒号(:)
②底行模式能做什么
- 保存和退出
- 保存文件,命令:w;另存为到其他文件,命令:w 文件名
- 保存退出,命令:wq;强制保存退出:wq!
- 退出不保存,命令:q;强制退出:q!
- 命令:x在文件没有修改的情况下,表示直接退出(:q);在文件修改的情况下表示保存并退出(:wq)
- 搜索替换
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