众妙之门

业精于勤,荒于嬉;行成于思,毁于随

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

不挂断和后台运行命令

& : 指在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行

注意了nohup没有后台运行的意思;&才是后台运行

1. java -jar xxx.jar &

将java -jar xxx.jar任务放到后台 ,关闭xshell,对应的任务也跟着停止。

2. nohup java -jar xxx.jar

将java -jar xxx.jar任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

3. nohup java -jar xxx.jar &

将java -jar xxx.jar任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

查看 nohup.out的日志

在 nohup.out 文件目录下输入 tail -fn 50 nohup.out

查看最后几行的日志 tail -n 50 nohup.out

ps命令

命令:ps
语法:ps [options] [–help]
说明:显示瞬间行程 (process) 的动态

参数说明
-A 列出所有的行程
a 显示现行终端机下的所有程序,包括其他用户的程序
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示
-e 此参数的效果和指定”A”参数相同。 例如: ps -e  
e 列出程序时,显示每个程序所使用的环境变量
f 用ASCII字符显示树状结构,表达程序间的相互关系
-H 显示树状结构,表示程序间的相互关系。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t 指定终端机编号,并列出属于该终端机的程序的状况,格式:ps -t<终端机编号>
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分

查看运行的jar进程号PID
ps -ef | grep java 或者 ps aux

查看磁盘大小

查看指定文件夹里面文件的大小:du -h --max-depth=1 /usr/local/

查看磁盘空间大小:df -h

jobs查看目前的后台工作状态

命令可以显示当前终端正在运行的进程,包括前台运行和后台运行的进程。它对每个正在执行中的进程任务分配了一个序号(这个序号不是进程 ID),可以使用这些序号来引用各个进程任务。

命令说明
jobs 列出job number、命令串。
jobs -l 列出job number、命令串,同时列出pid号码。
jobs -r 仅列出正在后台运行的工作。
jobs -s 仅列出正在后台暂停的工作。

fg后台工作拿到前台处理

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号 (不是 pid)

命令说明
fg 取出最近被放到后台的工作。
fg + 取出最近被放到后台的工作。
fg - 取出最近最后第二个被放到后台的工作。
fg %3 取出后台号码为3 的工作。"%"可有可无。

bg让工作在后台下的状态由暂停变成运行中

将一个在后台暂停的命令,变成继续执行

如果后台中有多个命令,可以用 bg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号 (不是 pid)

命令说明
bg 2 让后台号码为2 的工作状态变成运行中。

kill结束后台工作

命令说明
kill -l  列出目前kill能够使用的信号有哪些。
kill -1 %2 启动被终止的进程,重新读取一次工作号码为2的工作的参数配置文件,类似重新启动。
kill -2 %2 相当于用键盘ctrl + c来中断工作号码为2的工作的进行。
kill -9 %2 立刻强制删除工作号码为2的工作。
kill -15 %2 以正常的程序方式终止工作号码为2的工作。
kill -17 %2 相当于用键盘ctrl + z来暂停工作号码为2的工作的进行。
kill pid号码  立刻删除pid号码对应的工作。

关机和重启命令

1.shutdown option time:在指定的时间,执行某项操作,如果是非root用户,需要输入登录密码。其中option如下可选:

-h:关机

-r:重启

-c:取消前一个关机命令

shutdown -h now:立马关机
shutdown -h +10(或10):十分钟后关机
shutdown -h 20:02:系统将在20:02关机
shutdown -r now:系统立马重启
shutdown -r +10:系统将在10分钟后重启

2.其他关机命令:

halt:关机,只有root用户才能用。

poweroff:关机,非root用户需要输入登录密码。

init 0:关机,非root用户需要输入登录密码。

3.其他重启命令:

reboot:重启,非root用户需要输入登录密码。

init 6:重启,非root用户需要输入登录密码。

固定IP配置(ubuntu )

1.(Ctrl+Alt+T)打开命令行,ifconfig查看记录相关配置(默认网关、子网掩码等)
首先输入:

vim /etc/network/interface

(每次更改前记得备份配置文件)

#auto lo
#iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.10 #要固定的IP地址
netmask 255.255.255.0 #ifconf可以查看的子网掩码
gateway 192.168.1.1 #默认网关dns-nameserver 114.114.114.114 8.8.8.8 #静态DNS码

2.重启网络配置和网络服务

 /etc/init.d/networking restart

防火墙

查看firewall服务状态:systemctl status firewalld

查看firewall的状态:firewall-cmd --state

开启、重启、关闭、firewalld.service服务:

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

查看防火墙规则:firewall-cmd --list-all 

查询、开放、关闭端口:

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口

查开机启动状态:systemctl list-unit-files |grep fire

开机启动:systemctl enable firewalld.service

禁止开机启动:systemctl disable firewalld.service

tail和grep

tail -f xxx.log ----实时刷新最新日志
tail -100f xxx.log --------实时刷新最新的100行日志
tail -100f xxx.log | grep [关键字] -------查找最新的一百行中与关键字匹配的行
tail -100f xxx.log | grep ‘2019-10-29 16:4[0-9]’ ------查找最新的100行中时间范围在2019-10-29 16:40-2019-10-29 16:49范围中的行
tail -1000f xxx.log | grep -A 5 [关键字] ----------查看最新的1000行中与关键字匹配的行加上匹配行后的5行

以上是日常查看日志中最常用的一些参数与命令。涉及到的linux命令无非就是tail和grep这两个,注意以上所有的命令都是从左往右读。命令会先打开文件才会去进行grep匹配关键字。所以有时候不是匹配条件写错了,而是因为你展示的行数太少了。grep命令没有在你展示的内容中匹配到。这也是有些人经常会疑惑的地方。

tail:用于查看文件的内容
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

grep:用于查找文件里符合条件的字符串。
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或–silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

SSH登录服务器

ssh 107.148.0.89 -l root -p 6020

SCP复制和上传

scp(secure copy) 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,可以在两台 Linux 主机进行复制操作

# 语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

# 简易写法
scp [可选参数] file_source file_target
# 参数说明
-1 强制 scp 命令使用协议 ssh1
-2 强制 scp 命令使用协议 ssh2
-4 强制 scp 命令只使用 IPv4 寻址
-6 强制 scp 命令只使用 IPv6 寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩(将 -C 标志传递给 ssh ,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限
-q 不显示传输进度条
-r 递归复制整个目录【常用,用于复制文件夹】
-v 详细方式显示输出。 scp 和 ssh(1) 会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题
-c(cipher) 以 cipher 将数据传输进行加密,这个选项将直接传递给 ssh
-F(ssh_config) 指定一个替代的 ssh 配置文件,此参数直接传递给 ssh
-i(identity_file) 从指定文件中读取传输时使用的密钥文件,此参数直接传递给 ssh
-l(limit) 限定用户所能使用的带宽,以 Kbit/s 为单位
-o(ssh_option) 如果习惯于使用 ssh_config(5) 中的参数传递方式
-P(port) 注意是大写的 P ,  port 是指定数据传输用到的端口号
-S(program) 指定加密传输时所使用的程序。此程序必须能够理解 ssh(1) 的选项
# 拷贝本机 /root/test 整个目录至远程主机 root 用户的家目录下
scp -r /root/test root@remot_ip:~/

# 拷贝本机单个文件至远程主机 root 用户的家目录下
scp /home/root/test/test.txt root@remot_ip:~/

# 把远程端上面的 /root/ 文件夹,下载到本地的 /home/test/test/ 下,使用远程端的 root 登录
scp -r root@www.abc.com:/root/ /home/test/test/

# 把远程端上面的 /test/test.txt 下载到本地的 /home/test/test/ 下并改名为 abc.txt ,使用远程端的 root 登录
scp test@www.abc.com:/test/test.txt /home/test/test/abc.txt

# 自定义端口
scp -r -P 60202 test@www.abc.com:/root/test /root/test1

 注意:
1.如果远程服务器防火墙有特殊限制,scp 便要走特殊端口,具体用什么端口视情况而定
例: scp -p 4588 remote_user@www.abc.com:/usr/local/sin.sh /home/administrator 

2.使用 scp 要注意所使用的用户是否具有可读取远程服务器相应文件的权限

查询CentOS用户登录的历史记录

1、登录成功的记录(Last Logged In Users),位置在:/var/log/wtmp。
通过命令last可以查看记录列表:

[root@Server ~]# last

参数:
-a 把从何处登入系统的主机名称或IP地址,显示在最后一行;

-d 将IP地址转换成主机名称。当用户从远端而非本地主机登入系统时,所记录的将不仅是主机名称,还包括该远端主机的IP地址。默认情况下会用IP地址来显示远端的主机,使用这项参数可将其换成主机名称;

-f 指定记录文件。预设last指令会去读取/var/log目录里的btmp文件;

-n 设置列出名单的显示列数,如果你只想查询最后登入系统的10位用户名称,可将显示列数设成"10",想查询最后的30位用户,则设为"30",依此类推;

-R 不显示登入系统的主机名称或IP地址;-x 可显示系统关机、重新开机,以及执行等级的改变等信息。

2、登录失败的记录(Bad Login Attemps Log),位置在:/var/log/btmp。
通过命令lastb可以查看记录列表:

[root@Server ~]# lastb -5

执行结果:

第一列信息:用户名,或者显示reboot(启动或者重启操作在这里会记录成reboot)

第二列信息:终端位置,pts/0 (伪终端或虚拟终端) 意味着从诸如SSH或telnet的远程连接的用户。tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户,如果是启动或者重启操作,这里会显示成system boot

第三列信息:登录ip或者内核,如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。也有在状态中显示内核版本的信息,笔者猜测这些记录应该是属于系统的操作,如开机,关机,重启等操作

第四列信息:开始时间,其中的日期格式为date +"%a %b %d"

第五列信息:结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机)

第六列信息:持续时间

3.清空登录历史记录:

[root@Server ~]# echo > /var/log/wtmp
[root@Server ~]# echo > /var/log/btmp
posted on 2019-10-18 11:30  xuanm  阅读(199)  评论(0编辑  收藏  举报