# 面试官:如何查看端口被哪个应用程序占用?

在这里插入图片描述

# 状态查询

# 查看内存

free 
              total        used        free      shared  buff/cache   available
Mem:        1883724      751448       92992       98748     1039284      822780
Swap:             0           0           0

# 以m为单位显示
free -m
              total        used        free      shared  buff/cache   available
Mem:           1839         733          90          96        1014         803
Swap:             0           0           0

# 以g为单位显示
free -g 

              total        used        free      shared  buff/cache   available
Mem:              1           0           0           0           0           0
Swap:             0           0           0

# 查看磁盘

df

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       41151808 3707352  35331024  10% /
devtmpfs          931516       0    931516   0% /dev
tmpfs             941860       0    941860   0% /dev/shm
tmpfs             941860   98740    843120  11% /run
tmpfs             941860       0    941860   0% /sys/fs/cgroup
tmpfs             188376       0    188376   0% /run/user/0
# 以更容易读的方式显示,如以G M K 为单位
df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  3.6G   34G  10% /
devtmpfs        910M     0  910M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M   97M  824M  11% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0

# 文本操作

文本操作命令能用管道符随意结合,发挥最大的作用

# cat

直接输出文件所有内容,文件内容较大时可以用grep进行过滤

cat fileName

# more

more fileNmae

Enter(向下翻滚一行) 空格(向下滚动一屏) Q(退出命令) B(向上滚动一屏)

# less

less fileName

PageUp 键向上翻页 PageDown键向下翻页

# tail

查看文件的尾行,默认数组最后10行

# 输出文件的最后100行
tail -n 100 fileName

# 实时查看文件的最后内容,一般用来实时查看日志
tail -f fileName

和tail类似,输出头部

head fileName

# 输出文件的前100行
head -n 100 fileName

# uniq

对内容去重,只把相邻且相同的去重,如果想要全局去重,需要先用sort排序

# 文件排序并去重
cat fileName | sort | uniq 

# 文件排序并去重,且输出每行出现的次数
cat file | sort | uniq -c 

# sort

对内容进行排序,数据按字典序排列,如果想按数值排,加-n选项

cat fileName | sort

# wc

#  文件里有多少行
wc -l fileName

# 文件有多少个单词
wc -w fileName

# 文件有多少个字节
wc -c fileName

# 文件有多少个字符
wc -m fileName

可以和管道符结合使用

cat fileName | wc -l

# 网络

# 远程传输文件scp

先保证服务器间,ssh间能互相跳转 命令格式

scp -r 源目录 用户名@ip:目标目录

-r参数的作用是递归复制源目录,及复制目录下的子目录和文件

scp -r ~/app hadoop@hadoop001:~/
scp -r ~/app hadoop@hadoop002:~/

## 分发环境变量
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

# 查看网络是否连通

Linux

可以先查看地址是否能ping通

ping www.baidu.com

查看端口是否开放 第一种:

telnet www.baidu.com 3306

第二种:

ping www.baidu.com -p 3306

windows

查看远程主机端口是否开放

telnet www.baidu.com 3306

什么都没显示则是开放的,并且那边的服务得开启,如测试80,tomcat的服务得启动

# 观察端口被哪个应用(占用输出详细信息,没有占用则没有输出)

lsof -i:端口号

如查看8080被哪个程序占用

lsof -i:8080

COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    1070 root   27u  IPv4 80073916      0t0  TCP *:webcache (LISTEN)

被占用则输出占用的程序,否则无输出

# 下载文件

wget 文件地址