linux shell基础命令
du -h #查询磁盘文件大小和列表
df -h # 查询服务器磁盘使用情况
top/free # 查询服务器内存,cpu等资源使用情况
iptables # 防火墙相关的命令
vi /etc/sysconfig/iptables # 编辑防火墙配置
关于防火墙配置可参考:http://blog.chinaunix.net/uid-26495963-id-3279216.html
# 统计,查找,用户,群组,授权,分析,搜索命令
curl members.3322.org/dyndns/getip # 获取当前服务器的外网地址。
-----------------------------------------------------------------------------------------------
find 命令
find . -size +100000k -exec ls -lh {} \; # 查询系统大于100000k文件列表
find / -name nginx* # 查询根目录下文件名以nginx为前缀的所有文件;
find语法1: find 目录 -类型 搜索规则
-----------------------------------------------------------------------------------------------
Linux 校对服务器时钟
方法一:Linux中有个ntp包可以自动校准时间,并且非常好用
校准时间命令:ntpdate cn.pool.ntp.org
如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了: 00 12 * * * /sbin/ntpdate cn.pool.ntp.org
方法二:服务器采用ntp更新时间,经常牵扯到UTC是否开启的问题,开启了时间就会快8个小时,另一个快速校对Linux服务器时间至北京时间
rdate -t 60 -s stdtime.gov.hk
使用rdate将stdtime.gov.hk服务器的时间抓取回来,然后写入硬件: hwclock -w
下面是rdate的命令使用方法介绍
功能说明:显示其他主机的日期与时间。
语 法:rdate [-ps][主机名称或IP地址...]
补充说明:执行rdate指令,向其他主机询问系统时间并显示出来。
参 数:
-p 显示远端主机的日期与时间。
-s 把从远端主机收到的日期和时间,回存到本地主机的系统时间。
-----------------------------------------------------------------------------------------------
查看当前Linux服务器的端口是否被占用
方法1:lsof -i
lsof -i tcp:8080 或 lsof -i:8080
方法2:netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
举例:
~] netstat -anp # 查询所有使用中的端口清单 ~] netstat -anp | grep 8080 # 查看8080端口是否被使用
查看远程服务器的端口是否已经开启/或被打开
注:需要检查防火墙以及服务器的安全组
方法1:telnet
telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet
~] telnet ip port
方法2:nc
Ncat/nc是一个功能丰富的网络实用程序,可以从命令行跨网络读取和写入数据。 Ncat是为Nmap项目编写的,是目前分散的Netcat版本系列的高潮。 它旨在成为可靠的后端工具,可立即为其他应用程序和用户提供网络连接。nc 命令 是 ncat 的软链接。ncat 与 cat 有着相似的作用
TCP/UDP协议测试bai端口
~] nc -vuz ip port //测试udp协议 ~] nc -vtz ip port //测试tcp协议
方法3:curl
利用URL语法在命令行下工作的文件传输工具,1997年首次发行。
它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。
CURL还包含了用于程序开发的libcurl。
// 举例1: -d参数用于发送 POST 请求的数据体。 ~] curl -d'login=emma&password=123' -X POST https://google.com/login // 或者 ~] curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login // 举例2:发送get请求 ~] curl -X GET https://google.com/login?login=emma // 或者,默认发送GET请求 ~] curl https://google.com/login?login=emma
详情可以参考:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
方法4:wget
wget是一个下载文件的工具,它用在命令行下。经常用于下载一些软件或从远程服务器恢复备份到本地服务器。
支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,通过启动一个wget下载任务,wget在后台执行直到任务完成
wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。
wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
举例
~] wget ip:port // 测试端口连通性,如果端口未开启,则会一直处于链接中,否则会响应成功或失败,成功执行会执行下载
方法5:ssh
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在linux上可以通过ssh命令来测试端口的连通性,具体用法格式如下:
举例:
~] ssh -v -p port username@ip // 说明: // -v 调试模式(会打印日志). // -p 指定端口 // username 远程主机的登录用户 // ip 远程主机
结果图示:
-----------------------------------------------------------------------------------------------
查看和强制踢出用户命令
一、输入w命令查看已登录用户信息
[root@wlptServer ~]# w
13:58:22 up 263 days, 3:25, 4 users, load average: 0.00, 0.02, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 18Oct16 27days 3.57s 3.57s -bash
xpdlapp pts/0 172.10.1.1 13:07 50:02 0.01s 0.01s -bash
root pts/2 172.10.1.1 13:57 0.00s 0.01s 0.00s w
xpdlapp pts/3 172.10.1.1 13:58 2.00s 0.00s 0.00s -bash
二、使用命令pkill -kill -t 用户tty
[root@wlptServer ~]# pkill -kill -t pts/0
[root@wlptServer ~]# pkill -kill -t pts/3
三、验证操作是否成功
[root@wlptServer ~]# w
14:03:09 up 263 days, 3:29, 2 users, load average: 0.00, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 18Oct16 27days 3.57s 3.57s -bash
root pts/2 172.10.1.1 13:57 0.00s 0.09s 0.00s w
登陆用户信息说明:
USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
TTY:用户登陆所用的终端。
FROM:显示用户在何处登陆系统。
LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。
JCPU:一终端代号来区分,表示在摸段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:指WHAT域的任务执行后耗费的CPU时间。
WHAT:表示当前执行的任务。
-----------------------------------------------------------------------------------------------
windows-dos终端:测试远程服务器的指定端口是否可用;
nc -w 5 10.107.20.12 2181 && echo ok