Linux操作
服务器命令
systemctl:systemctl命令是service和chkconfig命令的组合体,可用于管理系统。
- 输出系统中各个服务的状态:
systemctl list-units --type=service
- 查看服务的运行状态:
systemctl status firewalld
#关闭服务
systemctl stop firewalld
启动服务
systemctl start firewalld
#重新启动服务(不管当前服务是启动还是关闭):
systemctl restart firewalld
#重新载入配置信息而不中断服务:
systemctl reload firewalld
#禁止服务开机自启动:
systemctl disable firewalld
#设置服务开机自启动:
systemctl enable firewalld
#禁用开机启动:
systemctl disable firewalld
#重启防火墙:
firewall-cmd --reload
#开放端口(修改后需要重启防火墙方可生效):
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#查看开放的端口:
firewall-cmd --list-ports
#关闭端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
- 列出/目录下的文件
ls -l /
- 获取目前所在工作目录的绝对路径
pwd
- 改变当前工作目录
cd /usr/local
- 显示或修改系统时间与日期
date '+%Y-%m-%d %H:%M:%S'
- 用于设置用户密码
passwd root
- 改变用户身份(切换到超级用户)
su -
- 用于清除屏幕信息
clear
- 显示目前登录到系统的用户
who -buT
- 显示系统内存状态(单位MB)
free -m
- 显示系统进程运行动态
#查看sshd进程的运行动态
ps -ef | grep sshd
- 查看即时活跃的进程,类似Windows的任务管理器
top
文件操作命令
- 创建目录
mkdir /test
- 创建文件,例如创建text.txt文件
touch text.txt
- 删除文件
```shell
rm text.txt
#强制删除
rm -rf testdir/
- 拷贝文件,例如将test1目录复制到test2目录
cp -r /mydata/tes1 /mydata/test2
- 移动或覆盖文件
mv text.txt text2.txt
- 压缩与解压
将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩)
tar -cvf /mydata/etc.tar /etc
用gzip压缩文件夹/etc中的文件到文件etc.tar.gz
tar -zcvf /mydata/etc.tar.gz /etc
用bzip2压缩文件夹/etc到文件/etc.tar.bz2
tar -jcvf /mydata/etc.tar.bz2 /etc
分页查看压缩包中内容(gzip)
tar -ztvf /mydata/etc.tar.gz |more -c -10
解压文件到当前目录(gzip)
tar -zxvf /mydata/etc.tar.gz
解压文件到指定目录(gzip)
tar -zxvf /mydata/etc.tar.gz -C /mydata/etc
查看磁盘空间占用情况
df -hT
查看当前目录下的文件及文件夹所占大小
du -h --max-depth=1 ./*
显示当前网络接口状态
ifconfig
查看当前路由信息
netstat -rn
查看所有有效TCP连接
netstat -an
- 分页查看文件,例如每页10行查看boot.log文件
more -c -10 /var/log/boot.log
从网络上下载文件
wget 地址
文件上传下载
安装上传下载工具lrzsz
yum install -y lrzsz
上传文件,输入以下命令XShell会弹出文件上传框
rz
下载文件,输入以下命令XShell会弹出文件保存框
sz fileName
#重启命令:
sudo reboot
sudo shutdown -r now #立刻重启
sudo shutdown -r 10 #过10分钟自动重启
sudo shutdown -r 20:35 #在时间为20:35时候重启
#关机命令:
1、sudo halt #立刻关机
2、sudo poweroff #立刻关机
3、sudo shutdown -h now #立刻关机
4、sudo shutdown -h 10 #10分钟后自动关机
防火墙
#1、查看firewall服务状态
systemctl status firewalld
#出现Active: active (running)切高亮显示则表示是启动状态。
#出现 Active: inactive (dead)灰色表示停止,看单词也行。
#2、查看firewall的状态
firewall-cmd --state
#3、开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
#4、查看防火墙规则
firewall-cmd --list-all
#5、查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
Iptables
- 安装前先关闭firewall防火墙
- 安装iptables
yum install iptables
- 安装iptables-services
yum install iptables-services
- 开启防火墙
systemctl start iptables.service
Vim编辑器
打开文件编辑:vi 文件名
按 "i" 键 进入编辑模式
编辑完成后,按 Esc 键 退出编辑
保存 :wq
:wq 表示保存退出
:wq! 表示强制保存退出
: x 表示保存退出
:q在vim中表示退出
:q!表示强制不保存退出,不对文件进行保存
":q" 和 ":q!" 的区别如下:
如果文件有修改,:q 会提示有修改,是否退出,输入y退出
如果文件有修改,:q! 会强制直接退出,并且不对文件进行保留
端口/进程
netstat(network status网络状态)命令各个参数说明如下:
-t:指明显示TCP端口,t是TCP的首字母。
-u:指明显示UDP端口,u是UDP的首字母
-l:仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序),l是listening的首字母。
-p:显示进程标识符和程序名称,每一个套接字/端口都属于一个程序,p是program的首字母。
-n:不进行DNS轮询,显示IP(可以加速操作),n是numeric的首字母,以数字形式显示地址和端口号。
-a:显示所有连接和侦听端口,a是all的首字母。
-o:显示拥有的每个连接关联的进程id,o是own的首字母。
详细端口扫描:
netstat -an
当前所有tcp端口:
netstat -ntlp
当前所有udp端口:
netstat -nulp
当前系统端口使用情况:
netstat -anp
当前所有80端口使用情况:
netstat -ntulp |grep 80
指定端口运行的程序:
lsof -i :port
查看进程号
# Linux
lsof -i:端口号
netstat -tunlp|grep 端口号
# windows
netstat -ano |findstr 8080
查看端口
sudo netstat -apn | grep 进程号
扩展
ps -ef|grep java
或
ps -ef|grep jar
结束进程
# Linux强制杀掉进程
kill -9 进程号
windows强制杀掉进程
taskkill /pid 进程号 -f
查找某服务路径
sudo find / -name *tomcat*
常用服务
JDK
安装JDK: yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Subversion
查看状态:ps -ef|grep svn
启动:svnserve -d -r /home/svn/
停止: killall svnserve
Nginx
#01进入安装路径
cd /usr/local/nginx/sbin
#02启动
./nginx
#03检查
ps -ef | grep nginx 出现master 则启动成功
#04重启
./nginx -s reload
#05停止
./nginx -s stop
#06检查配置文件是否正确<code>./nginx -t -c /path/to/nginx.conf</code>
SpringBoot
### 01日志打印
nohup java -jar sxpcwlkj.jar > nohup.out 2>&1&
### 02指定日志文件
nohup java -jar sxpcwlkj.jar > mylog.txt 2>&1&
### 03不进行日志打印
nohup java -jar sxpcwlkj.jar >/dev/null &
### 04日志打印 端口指定
nohup java -jar sxpcwlkj.jar --server.port=8880 > nohup.out 2>&1&
### 05进入日志:cd ./logs
### 06查看日志:tail -f -n2200 catalina.out
实例
启动日志打印:
nohup java -jar sxpcwlkj.jar > nohup.out 2>&1&
ohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中停止后台运行的jar:
ps -ef | grep java
kill命令杀掉jar包运行的进程:
kill -9 100
kill 进程ID nohup 命令
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
nohup: 不挂断的运行,并没有后台运行功能,用nohup运行命令可以使命令永久执行下去,和用户终端没有关系,断开SSH不影响运行,&是后台运行.
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &到命令的尾部。
MQTT
进入:
cd /www/server/emqx/bin
启动:
emqx start
停止:
emqx stop
重启:
emqx restart
Redis
# 1进入目录:
cd /www/server/redis/src
# 2登录:
./redis-cli
# 3启动:
./redis-server
# 或者
./redis-server --port 6380
# 4已设置访问密码启动方式
./redis-server …/redis.conf
# 5停止:
redis-cli -h 127.0.0.1 -p 6379 shutdown
redis-cli -h 127.0.0.1 -p 6379 -a password shutdown
如果上述方式都没有成功停止redis,则可以使用 kill -9 杀死redis进程