# CentOS
# FHS
FHS (Filesystem Hierarchy Standard) 文件系统层次结构标准 (opens new window)
Name | Description |
---|---|
/bin | 存放二进制可执行文件 |
/boot | 存放用于系统引导时使用的各种文件及内核 |
/dev | 存放设备文件 |
/etc | 存放系统管理和配置文件(cron.d定时任务;firewalld防火墙;hosts;my.cnf mysql配置文件;ngnix;rc.d开机自动启动脚本;rpm;ssh;sysconfig内容较多,包含网卡配置文件;vimrc) |
/root | 超级⽤户(系统管理员)的主目录 |
/home | 存放所有用户⽂件的根目录,是普通⽤户主目录的基点,⽐如⽤户user的主目录就是/home/user,可以用~user表示 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的dll文件,存放了根文件系统程序运行所需的共享文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个⽬录是让⽤户临时挂载其他的⽂件系统。 |
/opt | 额外安装的可选应⽤程序包所放置的位置。 |
/proc | 虚拟⽂件系统目录,是系统内存的映射(不保存在硬盘,储存在内存中)。可直接访问这个目录来获取系统信息(如cpuinfo/meminfo)。 |
/tmp | 用于存放各种临时⽂件,是公⽤的临时⽂件存储点。 |
/usr | ⽤于存放系统应⽤程序,⽐较重要的⽬录/usr/local本地系统管理员软件安装目录 (安装系统级的应用)。这是最庞大的⽬录,要用到的应用程序和文件⼏乎都在这个目录。 |
/var | ⽤于存放运行时需要改变数据的⽂件,也是某些⼤文件的溢出区,⽐方说/var/log各种服务的日志⽂件(系统启动⽇志等。)等。 |
DANGER
修改配置文件时一定要先备份再修改
TIP
- 动态库:Windows系统下是.dll文件,Linux系统下是.so文件
- 静态库:Windows和Linux系统下都是.lib文件
# command
# 查看系统版本
cat /etc/redhat-release
uname -a
lsb_release -a
1
2
3
4
2
3
4
# Mac VMware Fusion
- 联网问题 (opens new window)
- 重启网络命令
- systemctl restart network
- service restart network
TIP
centos8重启网络命令报错:Failed to restart network.service: Unit network.service not found.
改用NetworkManager重启:systemctl restart NetworkManager (opens new window)
# systemd
systemd是目前Linux系统上主要的系统守护进程管理工具。Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
配置文件在 /etc/systemd/system
# 查看服务列表
systemctl list-unit-files
systemctl list-unit-files --type=service | grep firewalld
# 重新加载系统管理守护进程的配置文件。当systemd配置文件修改后,可使用此命令让系统重新加载配置文件
systemctl daemon-reload
# 加载某个服务的配置文件
systemctl reload xxx.service
# 启动服务
systemctl start xxx.service
# 停止服务
systemctl stop xxx.service
# 重启服务
systemctl restart xxx.service
# 开机启动
systemctl enable xxx.service
# 关闭开机启动
systemctl disable xxx.service
# 查看服务状态
systemctl status xxx.service
# 查看服务状态
systemctl is-active xxx.service
# 查看服务状态
systemctl is-enabled xxx.service
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
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
# CentOS 7 安装 MySQL
- How to Install MySQL on CentOS 7 (opens new window)
- How To Install MySQL on CentOS 7 (opens new window)
# Nginx
# 文档
# 源码安装
# 参考
- Nginx详细安装及配置 (opens new window)
- 一份简单够用的 Nginx Location 配置讲解 (opens new window)
- nginx 这一篇就够了 (opens new window)
# repo
- /usr/local/nginx/config/nginx.conf
#user nobody;
user root;
worker_processes 1; #工作进程:数目。根据硬件调整,通常等于cpu数量或者2倍cpu数量。
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
# 配置每个worker进程连接数上限,nginx支持的总连接数就等于worker_processes * worker_connections
# 需要注意的是,worker_connections最大为 65536
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 30;
#gzip on; #开启gzip压缩服务
#autoindex on; #打开目录浏览
#配置虚拟主机
server {
listen 80; #配置监听端口号
server_name localhost; #配置访问域名,域名可以有多个,用空格隔开
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /blog {
root /data/www/;
index index.html;
}
#location 的参数表示匹配的 URI
location /study {
# location 中的 root 参数表示:
# 1. 若参数前不加 / 则表示 nginx的安装路径,例如:默认指定为html,即表示为nginx安装主目录下的html目录
# 2. 若参数前加 / 则表示 Linux 中的根路径(/)路径
root /data/www;
index index.html index.htm;
# fix: vuepress2
try_files $uri $uri/ $uri.html /index.html?$query_string;
#proxy_set_header Host $http_host; # host: 端口
#proxy_set_header X-Real_IP $remote_addr; # 客户端的 IP 地址
#proxy_set_header REMOTE-HOST $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # HTTP 的请求端真实的 IP
}
location /react-blog-admin {
root html;
index index.html;
# fix: react-router 刷新 404
try_files $uri $uri/ /react-blog-admin/index.html;
}
#location /react-blog-admin/api {
# rewrite ^/react-blog-admin/(api/.*) http://$host:5000/$1 permanent;
#}
location /react-blog-admin/api/ {
# 将原请求的 http 链接 header 头中的 Host 信息放到转发请求中
proxy_set_header Host $http_host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Content-Length $http_content_length;
proxy_set_header Content-Type $http_content_type;
#proxy_pass http://101.132.125.209:5000/api/;
proxy_pass http://localhost:5000/api/; # nodejs_koa_blog
}
location /nginxconfig {
root /data/www;
index index.html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
#server {
# listen 8080;
# server_name www.myweb.com;
# location / {
# proxy_pass https://www.baidu.com;
# }
#}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem; #证书位置
# ssl_certificate_key cert.key; #私钥位置
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5; #密码加密方式
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# nodejs-koa-blog
- /data/www/repo/nodejs-koa-blog (opens new window)
- /data/www/repo/react-blog-admin (opens new window)
- .env
REACT_APP_API_URL=http://101.132.125.209/react-blog-admin/api
1- package.json
{ "name": "react-blog-admin", "version": "0.1.0", "private": true, "homepage": "/react-blog-admin", ... }
1
2
3
4
5
6
7- src/layouts/AuthenticatedApp/index.jsx
<Layout> <Router basename='/react-blog-admin'> <Sidebar collapsed={collapsed} />
1
2
3- deploy.sh
npm run build rm -rf /usr/local/nginx/html/react-blog-admin mkdir /usr/local/nginx/html/react-blog-admin cp -r ./build/* /usr/local/nginx/html/react-blog-admin/
1
2
3
4 - /data/www/repo/nuxtjs-blog-web (opens new window)
- .env.production
# just a flag NUXT_APP_ENV = 'production' # base api # BASE_URL = 'https://api.boblog.com/api/v1' BASE_URL = 'http://101.132.125.209/react-blog-admin/api/v1' BOBLOG_TOKEN = 'BOBLOG_TOKEN'
1
2
3
4
5
6
7- nuxt.config.js
{ ... // Build Configuration: https://go.nuxtjs.dev/config-build build: { transpile: [/^element-ui/], }, router: { mode: 'history', base: '/nuxtjs-blog-web', } }
1
2
3
4
5
6
7
8
9
10
11
# Clash
- mbsurf.xyz linux (opens new window)
clash_for_windows_pkg (opens new window)/data/www/clash-dashboard (opens new window)- /root/.config/clash/config.yaml
# HTTP 代理端口 port: 7890 # SOCKS5 代理端口 socks-port: 7891 # Linux 和 macOS 的 redir 代理端口 redir-port: 7892 # HTTP+SOCKS5 代理端口 mixed-port: 7893 # 允许局域网的连接 allow-lan: true # 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连) mode: Rule # 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出> )。 # 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。 log-level: error # Clash 的 RESTful API # external-controller: '0.0.0.0:9090' external-controller: '127.0.0.1:9090' # RESTful API 的口令,请求头 Authorization: 'Bearer 123456' secret: '123456' # 您可以将静态网页资源(如 clash-dashboard)放置在一个目录中,clash 将会服务于 `RESTful API/ui` # 参数应填写配置目录的相对路径或绝对路径。 # external-ui: /data/www/clash-dashboard external-ui: /data/yacd-dashboard
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 - 后台启动 Linux 系统使用 systemd 作为启动服务器管理机制,首先把 Clash 可执行文件拷贝到 /usr/local/bin 目录,相关配置拷贝到 /etc/clash 目录。
sudo mkdir /etc/clash
sudo cp clash /usr/local/bin
sudo cp config.yaml /etc/clash/
sudo cp Country.mmdb /etc/clash/
1
2
3
4
2
3
4
创建 systemd 服务配置文件 sudo vim /etc/systemd/system/clash.service:
[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/clash -d /etc/clash
# ExecStart=/usr/local/bin/clash -d /root/.config/clash/
Restart=on-failure
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- /root/.bashrc
# 利用 Export 命令使用代理 export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 # 取消系统代理 unset http_proxy https_proxy all_proxy # 对于某些ip或域名可以设置不走代理,如 export no_proxy=127.0.0.1,.devops.com,localhost,local,.local,172.28.0.0/16 # 查看代理 env | grep -i proxy alias proxyon="export http_proxy=http://127.0.0.1:7893;export https_proxy=http://127.0.0.1:7893;" alias proxyoff="export http_proxy='';export https_proxy='';"
1
2
3
4
5
6
7
8
9
10
11
12
13
14 - 外部控制:外部控制端口为 9090,因此也可以访问
http://clash.razord.top/
,输入 IP 地址(需本机可以访问的 IP)以及端口号 9090,来进入 Clash Dashboard 进行节点的选择。 Clash RESTful API (opens new window) - 查看运行日志:
journalctl -u mihomo -o cat -e # 或者 journalctl -u mihomo -o cat -f
1
2
3
参考链接:
# docker
# 安装
# 代理
# 国内镜像
# firewalld
firewall 的配置文件是以 xml 的格式存储在 /usr/lib/firewalld/
和 /etc/firewalld/
目录中。
firewalld 的字符界面管理工具是 firewall-cmd
# 查看状态
firewall-cmd --state
systemctl status firewalld
# 启动
systemctl start firewalld
# 重启
systemctl restart firewalld
# 停止
systemctl stop firewalld
# 查看是否开机启动
systemctl is-enabled firewalld
# 开启开机自启动
systemctl enable firewalld
# 关闭开机自启动
systemctl disable firewalld
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 配置防火墙
- 方法一:直接修改配置文件 /etc/firewalld/zones/public.xml
- 方法二:使用 firewall 命令
# 查看防火墙所有信息
firewall-cmd --list-all
# 查看所有打开的端口
firewall-cmd --zone=public --list-ports
# 查看 3306 端口是否对外开放
firewall-cmd --zone=public --query-port=3306/tcp
# 例如:对外开放/停止3306端口,供外部的计算机访问。
# 该命令方式添加的端口,可在 /etc/firewalld/zones 中的对应配置文件中得到体现
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --remove-port=3306/tcp
# 修改配置后需要重启防火墙
firewall-cmd --reload
# 重启防火墙
systemctl restart firewalld
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# java
JDK Development Kit 17.0.12 downloads (opens new window)
# centos7.9 安装 java17
# 下载jdk
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
# 解压到安装目录
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java
# 配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk-17.0.12
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
# 查看java版本
java -version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18