长期更新,Linux常用命令

长期更新,Linux常用命令

Scroll Down
小提示,本文编写于  2,361  天前,最后编辑于  2,103  天前,某些信息可能有些出入,仅供参考。

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:~#