记录Linux相关的知识或使用技巧。
Linux放行8080端口
以centos7为例:
查看防火墙状态
firewall-cmd --state
1
2
3[root@hadoop01 ~]# firewall-cmd --state
running
[root@hadoop01 ~]#systemctl status firewalld.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23[root@hadoop01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-03-14 05:38:19 CST; 16min ago
Docs: man:firewalld(1)
Main PID: 9269 (firewalld)
Tasks: 2
Memory: 25.6M
CGroup: /system.slice/firewalld.service
└─9269 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Mar 14 05:38:20 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete FORWARD -...hain?).
Mar 14 05:38:20 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete FORWARD -...hain?).
Mar 14 05:38:20 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete FORWARD -...hain?).
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete FORWARD -...t name.
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete FORWARD -...t name.
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete INPUT --i...hain?).
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete INPUT --i...hain?).
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete OUTPUT --...hain?).
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete INPUT --i...hain?).
Mar 14 05:38:21 hadoop01 firewalld[9269]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w --table filter --delete INPUT --i...hain?).
Hint: Some lines were ellipsized, use -l to show in full.
[root@hadoop01 ~]#
开启防火墙
systemctl start firewalld.service
1
2[root@hadoop01 ~]# systemctl start firewalld.service
[root@hadoop01 ~]#
开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
1
2
3[root@hadoop01 ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@hadoop01 ~]#–zone=public:表示作用域为公共的;
–add-port=8080/tcp:添加tcp协议的端口8080;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
重启防火墙
systemctl restart firewalld.service
1
2[root@hadoop01 ~]# systemctl restart firewalld.service
[root@hadoop01 ~]#
重新载入配置
firewall-cmd --reload
1
2[root@hadoop01 ~]# firewall-cmd --reload
success
firewall-cmd用法
Linux卸载java-1.8
查看已安装java
rpm -qa | grep jdk
1
2
3
4
5
6
7[root@hadoop01 ~]# rpm -qa | grep jdk
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
[root@hadoop01 ~]#
卸载
方式一
yum -y remove java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
1
2
3
4
5
6
7
8
9
10
11[root@hadoop01 ~]# yum -y remove java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.191-2.6.15.5.el7 will be erased
--> Finished Dependency Resolution
......
Removed:
java-1.7.0-openjdk.x86_64 1:1.7.0.191-2.6.15.5.el7
Complete!方式二
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
1
2
3
4
5
6[root@hadoop01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
[root@hadoop01 ~]# rpm -qa | grep jdk
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
[root@hadoop01 ~]#
yum和rpm区别
rpm是RPM Package Manager(RPM软件包管理器)的缩写,是由红帽公司开发的软件包管理方式,使用rpm可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum会从一个资源库(repository)中下载软件包,并经过完全依赖解析来安装它,所以每次运行yum install的时候会看到安装一堆相关软件;而rpm则需要先下载好一个rpm文件然后进行安装,并且如果rpm程序发现缺少了一个依赖,就会报错并退出。
yum -y remove
和rpm -e --nodeps
区别为什么使用yum remove卸载不了,而需要使用rpm卸载呢?
这里需要首先判断软件是通过什么方式安装的,执行:
rpm -q php
如果此命令返回php版本,则是rpm安装;
如不返回php版本则是二进制安装。
卸载有没有顺序?
有的。使用
rpm –qa | grep php
此命令是把php相关的包都列出来,而卸载最好从最下面的一个包开始,直到卸载掉第一个为止。
注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包即可。
如果实在实在有卸载不掉的包,可以增加—nodeps这个参数来卸载,例如:
1
2
3rpm -e php-4.3.4-11 --nodeps
或
rpm -e --nodeps php-4.3.4-11
- 使用编译安装
make && make install
,如果要卸载可以使用:make uninstall
centos7开放、关闭及查看端口
查看防火墙所有开放的端口
1 | [root@hadoop01 ~]# firewall-cmd --zone=public --list-ports |
查看防火墙状态
1 | [root@hadoop01 ~]# firewall-cmd --state |
查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start
若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
查询端口号8080 是否开启
1 | [root@hadoop01 nginx]# firewall-cmd --query-port=8080/tcp |
开放端口的方法
1 | [root@hadoop01 ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent |
关闭端口方法
1 | [root@hadoop01 ~]# firewall-cmd --remove-port=8080/tcp --permanent |
重启防火墙
1 | systemctl restart firewalld.service |
关闭防火墙
1 | systemctl stop firewalld.service |
查看监听(Listen)的端口
1 | netstat -lntp |
检查端口被哪个进程占用
1 | netstat -lnp|grep 8080 |
标准输出,标准输入,标准错误
输出:
echo
输入:
read
它的一般形式为:read varible1 varible2 ...
标准输入
标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。标准输出
标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。标准错误
标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件文件重定向
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 (追加)
command < filename >filename2 把c o m m a n d命令以f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件作为标准输出
command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到d e l i m i t e r分界符
command <&m 把把文件描述符m作为标准输入
command >&m 把把标准输出重定向到文件描述符m中
command <&- 把关闭标准输入