Linux:服务器相关指令

本文介绍了SpringBoot项目的两种包类型,jar和war,及其启动方式。重点讲解了直接启动、后台启动和nohup启动jar包的命令,包括如何指定日志文件、错误输出及后台运行不受终端影响。此外,还提到了通过配置文件启动服务的方法,以及如何关闭jar包程序,使用ps和netstat命令查看进程,以及通过tail命令查看日志。最后,简述了shell重定向和文件描述符的概念。
摘要由CSDN通过智能技术生成

服务相关命令

1、随着微服务兴起,springboot也用得越来越多,springboot项目默认是打包成jar包的,执行jar包就可以同时启动其内置的tomcat,免去了单独部署tomcat的工作,可谓非常方便

2、目前在工作中遇到的服务包主要有两种类型:
    ⑴jar包:其内置了Tomcat,因此不需要部署在Tomcat中,可直接启动
    ⑵war包:其需要部署在Tomcat中,依靠Tomcat来启动
    ⑶因此这里主要介绍下启动jar包相关的命令

直接启动

1、命令格式:java -jar 包名

例1:

注:
1、可以看到启动日志是直接打印在终端上的

2、这种启动方式有个缺点:启动好了之后就不能动了,不能Ctrl+C退出,也不能关闭终端,一旦退出或者关闭终端,程序(服务)就会关闭

后台启动

1、命令格式:java -jar 包名 &

例2:

注:
1、&符号就代表后台启动

2、这种启动方式日志仍然输入到终端控制台中,虽然Ctrl+C不会关闭程序,但退出终端,程序会关闭

nohup启动

1、命令格式:nohup java -jar 包名 &

2、nohup英文全称no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行

例3:

注:
1、这种方式会生成一个nohup.out来记录日志,所以日志不会直接输出到终端,而且这种方式启动,Ctrl+C或者关闭终端,程序都不会结束

2、可以使用"tail -f nohup.out"来查看日志内容

3、Ctrl+C:发送SIGINT信号给前台进程组中的所有进程,常用于终止正在运行的程序
    ⑴这里的服务是在后台启动的,因此Ctrl+C不会影响到服务的启动

指定日志文件

1、nohup启动的日志输出文件nohup.out是自动生成的,但是我们更希望自己指定日志输出文件,因此可以用以下命令

2、命令格式:nohup java -jar 包名 > logs.log &

例4:

注:
1、此命令会将日志重定向到当前的logs.log文件中,但是只会输出标准输出

2、这种方式启动,Ctrl+C或者关闭终端,程序都不会结束

重定向错误输出

1、上一条命令只会讲标准输出(stdout)重定向到logs.log文件中,下面命令可以将错误也输出到文件中,也就是stderr

2、命令格式:nohup java -jar 包名 > logs.log 2>&1 &
    ⑴Linux下1表示标准输出,2表示错误输出
    ⑵>logs.log表示:标准输出重定向到logs.log中,默认是标准输出,省略1,不省略的话可以写成1>logs.log
    ⑶2>&1表示:错误输出也重定向到logs.log中,其中&1表示前面的logs.log文件。就是错误输出将会和标准输出输出到同一个地方
        ①不加&,写成2>1的话就表示把错误输出到1这个文件而不是前面标准输出的文件logs.log,所以&要加上
    ⑷最后一个&表示以后台方式启动程序

3、高级用法:nohup java -jar 包名 >/dev/null 2>&1 &
    ⑴使用"nohup"方式来启动时会自动生成一个"nohup.out"文件,如果这个日志量非常大的话,就会占很多空间,此时就可以使用">/dev/null"
    ⑵>/dev/null:将标准输出1重定向到/dev/null中
        ①/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称"黑洞"
        ②那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容
        ③2>&1:表示将错误输出绑定到标准输出上

指定配置文件启动

1、一般来说在启动服务时,服务所使用到的配置文件都是包内的

2、同时,我们也可以在启动jar包时指定包外的配置文件:使用包外的配置文件来启动

例:

注:以下例子都是基于"application-test.properties"型配置文件

1、退出或者关闭终端,程序(服务)就会关闭
java -jar 包名.jar --spring.profiles.active=test(命令中的test表示配置文件名,只需要名字中间那部分就好了)

2、Ctrl+C或者关闭终端,程序都不会结束并重定向错误输出
nohup java -jar 包名.jar --spring.profiles.active=test >/dev/null 2>&1 &

关闭jar包程序

1、如果使用后台启动java服务时,可以使用kill进程的方式结束进程

2、步骤:
    ⑴查看java进程:ps -ef | grep java
    ⑵根据步骤1返回的进程号,使用:kill -9 进程号

例5:

ps命令

1、Linux中的ps命令(process status)命令用于显示当前进程的状态,类似于windows的任务管理器

2、语法:ps [options] [--help]

3、参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
    ⑴-A:列出所有的进程
    ⑵-e:在命令执行后显示环境
    ⑶-f: 完整显示输出
    ⑷-u:以用户为主的格式来显示程序状况(ps -u 用户名)

4、使用带有-ef选项的ps命令,返回系统中所有用户的所有进程的完整列表
    ⑴一般将此ps命令的结果传送到grep中,则该结果更易于查看:用于查找指定进程,通过传入的关键字来查找
    ⑵格式:ps -ef | grep 进程关键字
    ⑶如:ps -ef | grep java,表示只查看存在java关键字的进程

例6:

注:
UID:进程用户ID,虽然uid通常是指数字型的标识,但在第一列下指定的是用户名,标记为UID
PID:进程ID
PPID:父进程ID
C:CPU调度情况
STIME:进程启动的时间
TIME:进程共占用CPU的时间
CMD:启动进程的命令

tail命令

1、作用:tail命令可用于查看文件的内容,有一个常用的参数" -f "常用于查阅正在改变的日志文件
    ⑴命令"tail -f filename":会把filename文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要filename更新就可以看到最新的文件内容
    ⑵-f参数常用于在终端显示屏上查看服务等的实时日志
    ⑶然后可以使用Ctrl+C来终止显示

2、语法:tail [参数] [文件名] 

3、参数:
    ⑴-f:循环读取
    ⑵-q:不显示处理信息
    ⑶-v:显示详细的处理信息
    ⑷-c<数目>:显示的字节数
    ⑸-n<行数>:显示文件的尾部 n 行内容

例7:

查看端口号

1、命令格式:netstat -tunlp
    ⑴该命令用于查看当前所有已被占用的端口号

2、命令格式:netstat -tunlp | grep 关键字
    ⑴该命令用于查看指定信息的端口号
    ⑵关键字值可以为进程号、端口号等

例8:

系统时间

1、查看当前系统时间:date

2、修改系统时间:date -s 时间字符串
    ⑴只修改系统的日期,不修改时间(时分秒):date -s 2019-06-18
    ⑵只修改时间不修改日期:date -s 16:10:00
    ⑶同时修改日期和时间:date -s "2016-06-18 16:10:00"
    ⑷注:使用该方法修改的时间,在重启linux系统后会失效

拓展

shell重定向介绍

1、就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到指定的位置,在交互式的程序中,输入来自用户的键盘和鼠标,结果输出到用户的屏幕,甚至播放设备中。而对于某些后台运行的程序,输入可能来自于外部的一些文件,运算的结果通常又写到其他的文件中。而且程序在运行的过程中,会有一些关键性的信息,比如异常堆栈,外部接口调用情况等,这

些都会统统写到日志文件里
2、shell脚本也一样,但是我们一般在使用shell命令的时候,更多地还是通过键盘输入,然后在屏幕上查看命令的执行结果。如果某些情况下,我们需要将shell命令的执行结果存储到文件中,那么我们就需要使用输入输出的重定向功能

文件描述符

1、当执行shell命令时,会默认打开3个文件,每个文件有对应的文件描述符来方便我们使用

2、所以我们平时在执行shell命令中,都默认是从键盘获得输入,并且将结果输出到控制台上
    ⑴但是我们可以通过更改文件描述符默认的指向,从而实现输入输出的重定向
    ⑵比如我们将1指向文件,那么标准的输出就会输出到文件中

类型文件描述符默认情况对应文件句柄位置
标准输入:standard input0从键盘获得输入/proc/self/fd/0
标准输出:standard output1输出到屏幕即控制台/proc/self/fd/1
错误输出:error output2输出到屏幕即控制台/proc/self/fd/2

输出重定向

1、输出重定向的使用方式很简单,基本的一些命令如下:

命令 介绍
command >filename把标准输出重定向到新文件中
command 1>filename同上
command >>filename把标准输出追加到文件中
command 1>>filename同上
command 2>filename把标准错误重定向到新文件中
command 2>>filename 把标准错误追加到新文件中

注:
1、我们使用>或者>>对输出进行重定向
    ⑴符号的左边表示文件描述符,如果没有的话表示1,也就是标准输出,符号的右边可以是一个文件,也可以是一个输出设备

2、当使用>时,会判断右边的文件存不存在,如果存在的话就先删除,然后创建一个新的文件,不存在的话则直接创建

3、但是当使用>>进行追加时,则不会删除原来已经存在的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕猫的耗子A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值