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命令
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
- 查看文件中的前多少行

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。)
`*`代表任意长度字符`*.txt` 名字以.txt结尾的所有文件`?` 代表任意单个字符 例如: ls -l /bin/??sh 以sh结尾的文件`[]` 匹配字符序列中的任意单一字符 例如:[c1-c2]匹配c1-c2字符序列中的任意单一字符`[c1,c2,...,cn]`匹配中括号字符列表中的任意单一字符`cat`连接几个文件、从键盘创建文件、查看文件(只适合查看文件较小的)`less` less /var/log/messages 查看文件日志, /** 匹配包含 ** 的名称,按键pageup上翻页,按键pagedown下翻页`head` 从日志文件头部查看`tail` 从日志文件尾部查看
查看文件所在位置
whereis xxxx #xxx为想要查找的东西
cat查看文件内容
cat redis.conf
rm -ef 删除文件
Linux 防火墙
centos查看防火墙状态时报错
解决方式
yum install iptables-services
关闭防火墙
systemctl stop firewalld.service #停止systemctl disable firewalld.service #禁用#但是开机之后还会启动防火墙,禁止firewall开机启动systemctl disable firewalld.service #禁止firewall开机启动
开启防火墙
service iptables start
查看防火墙状态
service iptables status 或者使用 iptables -L
只允许某个端口通过防火墙配置
在开启了防火墙时,做如下设置,开启相关端口,修改 /etc/sysconfig/iptables 文件,添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙#备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,#正确的应该是添加到默认的22端口这条规则的下面
