Content Table

CentOS 7 简单使用

下载 CentOS

访问 https://www.centos.org/download/ 下载 Minimal ISO 即可,其他的虽然功能齐全,但是太大了。

必要工具

  • yum install zip unzip -y:

    1
    2
    3
    4
    5
    # 把文件夹 H5 和文件 x.html 压缩成 result.zip
    zip -r result.zip H5 x.html

    # 解压 filename.zip, 如无 -d 则解压到当前目录,有则解压到目录 dest-directory
    unzip filename.zip [-d dest-directory]
  • yum install bzip2 (解压 .bz2 文件)

  • yum install net-tools (安装后才能使用 ifconfig 等)

  • yum install psmisc 安装 pstree 查看进程树 (pstree -g)

  • tar 解压 tar.gz: tar xf filename.tar.gz

  • 安装 tree: yum install tree

  • 安装 7z: yum install -y p7zip,如果不能用 yum 安装,可以自己编译

    1
    2
    3
    4
    5
    wget http://nchc.dl.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
    tar -jxvf p7zip_9.20.1_src_all.tar.bz2
    cd p7zip_9.20.1
    make
    make install
  • 安装 VIM (默认只安装了 VI,不能高亮搜索,不能语法高亮等)

    • 查看本机是否已经安装 VIM: rpm -qa | grep vim
      1
      2
      3
      vim-minimal-7.4.629-5.el6.x86_64
      vim-enhanced-7.4.629-5.el6_8.1.x86_64
      vim-common-7.4.629-5.el6_8.1.x86_64
      如果安装了则会显示上面 3 个包,缺少了的需要进行安装:
      • 缺少 vim-common: yum -y install vim-common
      • 缺少 vim-minimal: yum -y install vim-minimal
      • 缺少 vim-enhanced: yum -y install vim-enhanced

    查看 yum 安装的软件的文件都放到了哪些地方: rpm -ql nodejs

安装 Java

  • 下载 Linux 64 位版本的 Java 8

    查看系统的信息 uname -a,可以看到 CentOS 7 是 64 位的

    Linux bogon 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

  • 解压到 /usr/local 目录

  • 修改 .bash_profile 文件(在用户目录下),添加 Java 到环境变量

    1
    2
    export JAVA_HOME="/usr/local/jdk1.8.0_144"
    export PATH="$PATH:$JAVA_HOME/bin"
  • 使修改的 .bash_profile 生效: source .bash_profile

  • 执行 java -version 正常输出则安装好了

安装 Tomcat

  • 下载 Tomcat 8
  • 解压到 /usr/local 目录
  • 运行 Tomcat: <tomcat>/bin/startup.sh
  • wget 访问 Tomcat 首页: wget http://127.0.0.1:8080
  • 其他机器访问 Tomcat 首页,拒绝访问,因为 CentOS 7 的端口 8080 默认是禁用的,需要开放此端口

开放端口

CentOS 7 使用 firewalld 控制端口,不再使用 iptables,默认 8080 端口等都是禁用的。

  • 开启端口: firewall-cmd --zone=public --add-port=8080/tcp --permanent

    –zone #作用域
    –add-port=8080/tcp #添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效

  • 重启防火墙: firewall-cmd --reload

  • 查看开放的端口: firewall-cmd --zone=public --list-ports

  • 正在监听的端口: netstat -an | grep LISTEN

参考: CentOS 7 firewalld 使用简介

禁用端口

  • 禁用端口: firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  • 重启防火墙: firewall-cmd --reload

SSH 登陆

ssh root@192.168.82.130,然后输入密码。

ssh username@host

SSH + Key 登陆

  • 客户端:
    1. 执行 ssh-keygen -t rsa -C "your_email@example.com"
    2. 在用户目录的 .ssh 目录下找到生成的 id_rsaid_rsa.pub
    3. 复制 id_rsa.pub 到 CentOS 的服务器上
  • 服务器:
    1. 用户的 id_rsa.pub 放到 /root 目录
    2. mkdir /root/.ssh
    3. cd /root/.ssh
    4. cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
  • 客户端: ssh username@host,不需要密码,直接能访问了

更换 yum 镜像

国内访问 yum 默认镜像太慢,可以更换为比较稳定的阿里云镜像。

  1. 备份:

    1
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

    • CentOS 6

      1
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    • CentOS 7

      1
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. 运行 yum makecache 生成缓存

7z 使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 解压 filename.7z 到当前目录
7za x filename.7z

# 解压 filename.7z 到 here 目录,注意 -o 和 here 之间没有空格
7za x filename.7z -ohere

命令: 7za {a|d|l|e|u|x} 压缩包文件名 {文件列表或目录,可选}
x: 以完整路径解压
a: 向压缩包里添加文件或创建压缩包,如
向 001.7z 添加 001.jpg,执行:7za a 001.7z 001.jpg
将 001 目录打包,执行:7za a 001.7z 001
d: 删除压缩包里的文件,如将 001.7z 里的 001.jpg 删除,执行:7za d 001.7z 001.jpg
l: 列出压缩包里的文件,如列出 001.7z 里的文件,执行:7za l 001.7z
e: 解压到当前目录,目录结构会被破坏,如 001.rar 内有如下目录及文件 123/456/789.html,
执行:7za e 001.rar,目录 123 和 456 及文件 789.html 都会存放在当前目录下。

安装 Nodejs 8

直接 yum install nodejs 安装的是 Nodejs 6,如果想要安装 Nodejs 8、Nodejs 9 则需要看官方文档,安装步骤如下

1
2
3
4
5
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs

# 安装后查看版本
node -v

使用淘宝 NPM 镜像,安装时使用 cnpm 代替 npm:

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装 MongoDB

详细内容请参考官方文档,安装步骤如下:

  1. 指定 MongoDB 的原: 创建文件 /etc/yum.repos.d/mongodb-org-4.0.repo,内容如下:

    1
    2
    3
    4
    5
    6
    [mongodb-org-4.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
  2. 安装 MongoDB: yum install -y mongodb-org

  3. 启动 MongoDB: systemctl start mongod

    或者 mongod --auth --config /etc/mongod.conf

  4. 关闭 MongoDB: systemctl stop mongod

  5. 访问 MongoDB: mongo --host 127.0.0.1:27017

MongoDB 默认使用端口 27017,配置在 /etc/mongod.conf

Gotop

Gotop 用于查看系统资源使用情况,很多时候不能直接使用 yum 安装,其实只有一个可自行文件,下载后直接使用:

  1. https://github.com/cjbassi/gotop/releases 下载 gotop_3.0.0_linux_386.tgz

  2. 解压:

    1
    tar zxvf gotop_3.0.0_linux_386.tgz
  3. 移动:

    1
    mv gotop /usr/local/bin
  4. 运行:

    1
    gotop

后台运行程序

例如使用 ssh 远程用 node 运行的程序不是 deamon 进程 (systemctl, service 运行的是),当前 ssh 窗口关闭后程序就会退出,可以使用 nohup node app.js & 解决这个问题,能使命令永久的在后台执行:

  • nohup 不挂断地运行命令
  • & 指在后台运行,但关掉 ssh 窗口后程序就会退出

nohup 执行后,会产生日志文件:

  • nohup node app.js &: 在运行命令的目录产生日志文件 nohup.out
  • nohup node app.js >> /temp/logs/my-app.log 2>&1 &: 日志被重定向到 my-app.log 文件中 (推荐使用这种方式)
  • nohup node app.js > /dev/null 2>&1 &: 不生成日志文件

注意: 为什么 nohup & 启动的进程在终端退出之后会退出?

因为在 nohup 执行之后,该终端必须以命令 exit 正常退出,若直接关闭 ssh 窗口退出,则有些主机会认为你异常退出而关闭你的进程。