Liunx 学习

nohup命令

nohup命令用于不挂断地运行命令(关闭当前session不会中断改程序,只能通过kill等命令删除)。
使用nohup命令提交作业,如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件。

vi | vim命令

编辑文件, vim 是增强命令. 不代表所有的 Linux 都支持
vim 增强在有高亮显示
使用方式:vi fileName

命令模式:
是控制编辑的文件的状态的,如:保存,退出编辑等

a - append, 追加的方式进入编辑模式
i - insert, 插入的方式进入编辑模式
o - under line , 在光标所在位置之下,新增一行,进入编辑模式
O - pre line, 在光标所在位置之上,新增一行, 进入编辑模式
dd - delete line 删除指定行, 默认 1 行
:w write - 保存
:q quit - 退出 vi 编辑器
:wq 保存并退出
:q! 强制退出不保存
:set nu 显示行号
/keywords 搜索关键字, keywords 是关键字的命名
G 光标跳转到文件尾
gg 光标跳转到文件头

ps -ef | grep命令

ps命令将某个进程显示出来

grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

中间的 | 是管道命令 是指 ps命令 与 grep 同时执行

检查java 进程是否存在ps -ef | grep java

nohup java -jar -Xmx10240m backstage-0.0.1-SNAPSHOT.jar > nohup 2>&1 &

分析: 不挂断运行backstage-0.0.1-SNAPSHOT.jar这个jar,并设置最大堆大小(达到最大堆大小后会进行GC机制),输出结果重定向到当前目录的nouhup 文件当中

回收器堆设置:

  • -Xms:初始堆大小
  • -Xmx:最大堆大小
  • -XX:NewSize=n 设置年轻代大小
  • -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
  • -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
  • -XX:MaxPermSize=n:设置持久代大小

tail命令

  1. tail [ -fn / -f ] [number] [文件名] 查看某文件多少行的日志内容(不输入number时,默认显示文件的最后10行)

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

参数

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

tail -fn 是动态显示日志 (使用tail -fn时 需要加上 number)

tail -fn [number] 动态显示 number 行日志

tail -fn 200 [文件名] 动态显示 某文件中 200行日志

tail -c 10 [文件名] 显示某文件的最后 10 个字符:

head命令

  • 显示文件的前多少行, 默认显示前 10 行
  • head -number filename
  • 查看文件中的前多少行

Liunx - 图1

cut命令

是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除。

ps -ef | grep java | grep backstage-0.0.1 | cut -c 9-18 | xargs kill -9

分析:列出所有进程 并且 找到含有java的进程,再从含有java进程中找到 含有 backstage-0.0.1的进程,然后截取第9-18行的字符串,基本就是该程序的进程号,然后通过xargs给 kill -9 批量杀死符合条件的所有进程

xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数。(kill和rm这样的命令是不会处理管道等过来的标准输入的。所以用xargs。)

  1. `*`代表任意长度字符
  2. `*.txt` 名字以.txt结尾的所有文件
  3. `?` 代表任意单个字符 例如: ls -l /bin/??sh sh结尾的文件
  4. `[]` 匹配字符序列中的任意单一字符 例如:[c1-c2]匹配c1-c2字符序列中的任意单一字符
  5. `[c1,c2,...,cn]`匹配中括号字符列表中的任意单一字符
  6. `cat`连接几个文件、从键盘创建文件、查看文件(只适合查看文件较小的)
  7. `less` less /var/log/messages 查看文件日志, /** 匹配包含 ** 的名称,按键pageup上翻页,按键pagedown下翻页
  8. `head` 从日志文件头部查看
  9. `tail` 从日志文件尾部查看

查看文件所在位置

  1. whereis xxxx #xxx为想要查找的东西

cat查看文件内容

cat redis.conf

rm -ef 删除文件

Linux 防火墙

centos查看防火墙状态时报错

解决方式

  1. yum install iptables-services

关闭防火墙

  1. systemctl stop firewalld.service #停止
  2. systemctl disable firewalld.service #禁用
  3. #但是开机之后还会启动防火墙,禁止firewall开机启动
  4. systemctl disable firewalld.service #禁止firewall开机启动

开启防火墙

  1. service iptables start

查看防火墙状态

  1. service iptables status 或者使用 iptables -L

只允许某个端口通过防火墙配置

在开启了防火墙时,做如下设置,开启相关端口,修改 /etc/sysconfig/iptables 文件,添加以下内容:

  1. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙
  2. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙
  3. #备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,
  4. #正确的应该是添加到默认的22端口这条规则的下面