查看/etc/services文件,可以浏覽所有網絡服務名對應的端口號,由於文件列表太長,不方便查閱,就寫個正則表達式的shell來指定特別的服務名稱查詢對應的端口號,或者根據端口號來查詢對應的服務名稱。
- #!/bin/bash
- read -p "choose service_name or port_number, 1:service, 2:port: " num
- case $num in
- "1")
- read -p "type the service name: " service_name
- grep "^$service_name .*" /etc/services |grep 'tcp'|awk '{print $2}'|awk 'BEGIN{FS="/"} {print "port number is " $1}'
- ;;
- "2")
- read -p "type the port number: " port_num
- grep "^.* $port_num/" /etc/services |grep 'tcp'|awk '{print "service name is " $1}'
- ;;
- *)
- echo "1:service name 2:port number"
- ;;
- esac
首先選擇1)服務名稱 或者 2)端口號 來查詢,輸入其他則提示信息。
選擇1則提示輸入服務名稱,然後得到對應端口號,若沒有則不打印結果,
- choose service_name orport_number, 1:service, 2:port: 1
- type the service name: http
- port number is 80
選擇2則提示輸入端口號,得到對應網絡服務名稱,若沒有則不打印結果。
- choose service_name or port_number, 1:service, 2:port: 2
- type the port number: 21
- service nameis ftp