Linux常用命令,及使用方式和使用场景
cat /proc/version 查看当前系统版本
nohup java -jar ***.jar & 意思是启动该命令并放入后台运行
使用场景:Xshell远程连接时,终端命令行启动jar包时,退出xshell,项目会跟着退出问题的解决方案;
当然也可以写个脚本启动,这样更好,以后再弄
ctrl + z 和ctrl + c 的区别,ctrl + c 是直接结束程序运行,而ctrl + z则是将运行的程序挂起,你之后再运行该程序时会发现,端口被占用的情况
解决方案:
jobs
jps
查看后台挂起的程序及进程id
fg %id 将程序恢复到前台终端运行
bg %id 将程序恢复到后台运行
nginx上传文件大小限制修改
将 client_max_body_size 10M; 添加到nginx配置文件夹下的nginx.cof的server代码块里
server {
listen 80;
server_name localhost;
client_max_body_size 10M;
location /web/service {
proxy_pass http://192.0.0.1:8080/service;
}
location /web/service/upload {
proxy_pass http://127.0.0.1/upload;
}
}
终端怎么运行和关闭jar包项目;
首先 java是跨平台的,so 在Linux跟windows启动其实一样的,都是
java -jar xxxx.jar
将jar程序设置成后台运行,并且将标准输出的日志重定向至文件consoleMsg.log
nohup java -jar xxxx.jar >consoleMsg.log 2>&1 &
如果想杀掉运行中的jar程序,查看进程命令为:
ps aux|grep xxxx.jar
将会看到此jar的进程信息
root 1234 0.2 29.6 121 231 ? Sl 2018 18:12 java -jar xxxx.jar
root 8200 0.0 0.0 1100 1116 pts/0 S+ 2018 0:00 grep --color=auto xxxx.jar
其中8200则为此jar的pid,杀掉命令为
kill -9 8200
通过使用nohup java -jar lol.jar &命令,来使我们的lol.jar在后台运行。
为了方便管理,我们可以使用Shell来编写一些简单的脚本。
启动应用的脚本:
start(){
#!/bin/bash
nohup java -jar h1z1.jar &
}
关闭应用的脚本:
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
echo "${pid} 进程已被杀死,程序停止运行"
else
echo "${APP_NAME} 没有运行。"
fi
}
重启脚本:
restart(){
stop
start
}
后台运行程序综合:
nohup command > /dev/null 2>&1 &
解释:
nohup:
no hangup,不挂断地运行命令。只用nohup命令,关闭终端,进程还存在。若在终端中直接使用Ctrl+c,则会关闭进程。
command:
command是用户输入的命令,可自行设置。如“java -jar crm.jar”等。
&:
后台运行。当你只使用“&”时,关闭终端,进程会关闭。
建议:
所以当你要让程序在后台不挂断运行时,需要将nohup和&一起使用。
如:
nohup java -jar demo.jar &
查看端口占用命令,用以显示符合条件的进程情况
lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17673 mysql 30u IPv6 328935 0t0 TCP *:mysql (LISTEN)
mysqld 17673 mysql 35u IPv6 352556 0t0 TCP localhost:mysql->localhost:33338 (ESTABLISHED)
mysqld 17673 mysql 37u IPv6 352557 0t0 TCP localhost:mysql->localhost:33340 (ESTABLISHED)
mysql-wor 21189 root 19u IPv4 353637 0t0 TCP localhost:33338->localhost:mysql (ESTABLISHED)
mysql-wor 21189 root 23u IPv4 353641 0t0 TCP localhost:33340->localhost:mysql (ESTABLISHED)
具体端口占用详情:
netstat -pan | grep 3306
tcp 0 0 127.0.0.1:33340 127.0.0.1:3306 ESTABLISHED 21189/mysql-workben
tcp 0 0 127.0.0.1:33338 127.0.0.1:3306 ESTABLISHED 21189/mysql-workben
tcp6 0 0 :::3306 :::* LISTEN 17673/mysqld
tcp6 0 0 :::33060 :::* LISTEN 17673/mysqld
tcp6 0 0 127.0.0.1:3306 127.0.0.1:33338 ESTABLISHED 17673/mysqld
tcp6 0 0 127.0.0.1:3306 127.0.0.1:33340 ESTABLISHED 17673/mysqld
查看java安装地址:
echo $JAVA_HOME
/usr/lib/jvm/jdk1.8.0_211
nginx 命令大全:
设置开机启动
systemctl enable nginx.service
启动nginx服务
systemctl start nginx.service
停止开机自启动
systemctl disable nginx.service
查看服务当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动的服务
systemctl list-units --type=service
linux 查看 系统运行时间,上一次启动时间
2.查看/proc/uptime文件计算系统启动时间,第一个就是启动时间的秒数,运用系统工具date即可算出系统启动时间
cat /proc/uptime
6404720.15 70128.52
用data 命令 查看启动时间
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2019-09-02 14:01:49
查看/proc/uptime文件计算系统运行时间
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
实际效果:
root@iZZ:~# cat /proc/uptime
6404720.15 70128.52
root@iZZ:~# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2019-09-02 14:01:49
root@iZZ:~# cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
系统已运行:74天3时5分47秒root@iZZ:~#