Linux 杂记

记录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用法

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 removerpm -e --nodeps区别

    • 为什么使用yum remove卸载不了,而需要使用rpm卸载呢?

      • 这里需要首先判断软件是通过什么方式安装的,执行:rpm -q php

        如果此命令返回php版本,则是rpm安装;

        如不返回php版本则是二进制安装。

    • 卸载有没有顺序?

      • 有的。使用rpm –qa | grep php

        此命令是把php相关的包都列出来,而卸载最好从最下面的一个包开始,直到卸载掉第一个为止。

      • 注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包即可。

      • 如果实在实在有卸载不掉的包,可以增加—nodeps这个参数来卸载,例如:

        1
        2
        3
        rpm -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
2
[root@hadoop01 nginx]# firewall-cmd --query-port=8080/tcp
yes

开放端口的方法

1
2
[root@hadoop01 ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success

关闭端口方法

1
2
[root@hadoop01 ~]# firewall-cmd --remove-port=8080/tcp --permanent
success

重启防火墙

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 <&- 把关闭标准输入

-------------本文结束感谢您的阅读-------------