Linux系统出发

系统初始化

Debian系用apt-get(apt),Red Hat系用yum、dnf

  1. wget:dnf -y install wget
  2. net-tools:dnf -y install net-tools
  3. tar:dnf -y install tar
    1
    2
    3
    4
    5
    # 解压tar包
    tar -xvf xxx.tar

    # 解压tar.gz
    tar -xzvf xxx.tar.gz
  4. unzip:dnf -y install unzip
  5. git:dnf -y install git
  6. tree:dnf -y install tree(键入 tree 即可查看当前目录下的文件树)
  7. vim:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 1. 查看已存在的包
    rpm -qa|grep vim

    # 2. 如果只显示vim-minimal-8.0.1763-15.el8.x86_64,则重新安装
    dnf -y install vim*

    # 3. 配置vim
    vim /etc/vimrc

    # 4. 按i进入编辑模式,添加以下(已存在的配置可删除)
    set nu " 设置显示行号
    set showmode " 设置再命令行最下面显示当前模式
    set autoindent " 设置enter键后,光标移动到下一行时。以上一行起始字符对齐
    syntax on " 语法检测,当编辑C或者shell时,关键字会用特殊颜色显示

    # 5. 按ESC退出编辑模式,输入:wq保存并且退出
  8. nodeJS
  9. conda
  10. nginx
  11. ssh证书工具。acme.sh,弃用,用cloudfare的提供的证书更好。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    # 1. 安装acme.sh
    curl https://get.acme.sh | sh -s email=username@example.com

    # 2. 重载
    source ~/.bashrc

    # 3. 开启自动更新
    acme.sh --upgrade --auto-upgrade

    # 4. 选择默认的CA(letsencrypt是免费的)
    acme.sh --set-default-ca --server letsencrypt

    # 5. 把对应域名的服务开启,智能生成证书(不需要指定任何根目录)
    ## nginx
    acme.sh --issue -d mydomain.com --nginx
    ## apache
    acme.sh --issue -d mydomain.com --apache

    # 6. 生成的证书在/root/.acme.sh/中,用install命令将其复制移动到指定位置,进行使用
    ## apache示例(没有相关目录则新建)
    acme.sh --install-cert -d domain.com \
    --cert-file /path/to/certfile/in/apache/cert.pem \
    --key-file /path/to/keyfile/in/apache/key.pem \
    --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
    --reloadcmd "service apache2 force-reload"
    ## nginx示例(没有相关目录则新建)
    acme.sh --install-cert -d domain.com \
    --key-file /etc/nginx/certs/domain.com/key.pem \
    --fullchain-file /etc/nginx/certs/domain.com/cert.pem \
    --reloadcmd "service nginx force-reload"

    # 7. 于服务器设置处配置证书路径,开启SSL(nginx)
    server {
    listen 443 ssl;
    server_name domain.com;
    ssl_certificate /etc/nginx/certs/domain.com/cert.pem;
    ssl_certificate_key /etc/nginx/certs/domain.com/key.pem;
    location / {
    proxy_pass http://localhost:1002; # 代理的服务端口
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    }
    server {
    listen 80;
    server_name domain.com; # HTTP重定向到HTTPS
    return 301 https://$server_name$request_uri;
    }

    # 8. 重启服务以生效
    sudo systemctl restart nginx

1. 常用命令行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 停机、重启或切断电源
shutdown、halt、poweroff、reboot

# 退出ssh连接
Ctrl + d

# 查看IP
ip addr
ifconfig

# 重设用户密码
sudo passwd root
# 切换用户(如下切换到root用户)
su - root

# 新建文件夹
mkdir 文件夹名称
# 删除文件夹
rm -rf 文件夹名称

# 复制文件
cp source_file destination_file
# 复制文件夹
cp -r source_folder destination_folder

# 删除文件夹
rm -rf 文件夹名
# 删除文件
rm -f 文件名

# vi/vim 新建/打开文件
vi/vim 文件名

# 升级源
dnf update

# 查看已开启服务端口
netstat -tnl

# 查看已开放远程访问的端口
firewall-cmd --list-ports
# 查看某个端口状态
firewall-cmd --zone=public --query-port=80/tcp
# 开放某个端口访问(重启防火墙后生效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 关闭某个端口访问
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 查看防火墙状态
firewall-cmd --state
# 开启防火墙
systemctl start firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 重启防火墙
firewall-cmd --reload

2. 域名设置

1. 二级域名设置

按以下步骤添加二级域名:

  1. 于DNS管理处,新增A记录
  2. Name填上二级域名的前缀,如xxx.domain.com的话,就填上xxx
  3. value填上服务器ip地址,保存即可

3. 知识概念

  • apt-get 命令是Debian和Ubuntu系统上的包管理器,用于在系统上安装、升级和删除软件包。它可以从系统的软件包存储库中自动下载和安装软件包,并解决它们的依赖关系。
  • yumdnf 命令是Red Hat和CentOS系统上的包管理器,用于安装、升级和删除软件包。它可以从系统的软件包存储库中自动下载和安装软件包,并解决它们的依赖关系。
  • wget 命令是一个Linux/Unix操作系统下的命令行工具,用于从互联网上下载文件。可以通过URL地址下载文件,也可以通过FTP和HTTP等协议下载文件。