cat命令查看GBK编码的文件

问题描述

我有个Windows的批处理文件(.bat),但是批处理文件的编码是GBK,我的Linux上使用的编码是utf-8,用cat查看这个文件的时候发现是乱码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost blog]# cat StartWriting.bat
@echo off
REM Ȑ»»ƌ·
echo %~d0
%~d0
REM ½񫵱ǰĿ¼
echo %~dp0
set blogRoot=%~dp0
cd %blogRoot%
echo ´򿩰ostĿ¼:%~dp0source\_posts
set postRoot=%~dp0source\_posts
explorer %postRoot%
echo ՚%blogRoot%Ŀ¼Ђ´򿩧it-bash
start git-bash --cd=%blogRoot%

choice /t 10 /d n /m ˇ·򀮈¡Զ³̸𩄬ɏ²»-ȡ)

IF ERRORLEVEL 2 goto end

echo -ȡԶ³̷ז§
git pull origin master
:end
REM echo ³͐򾢊
REM pause[root@localhost blog]#

解决方案

1
cat 文件名 | iconv -f GBK -t UTF-8

例如:

1
cat StartWriting.bat | iconv -f GBK -t UTF-8

运行效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost blog]# cat StartWriting.bat | iconv -f GBK -t UTF-8
@echo off
REM 切换盘符
echo %~d0
%~d0
REM 进入当前目录
echo %~dp0
set blogRoot=%~dp0
cd %blogRoot%
echo 打开post目录:%~dp0source\_posts
set postRoot=%~dp0source\_posts
explorer %postRoot%
echo 在%blogRoot%目录下打开git-bash
start git-bash --cd=%blogRoot%

choice /t 10 /d n /m 是否拉取远程更新(默认不拉取)

IF ERRORLEVEL 2 goto end

echo 拉取远程分支
git pull origin master
:end
REM echo 程序结束
REM pause[root@localhost blog]#

前言

安装hexo之前,需要先安装好nodejs,如果还没安装好nodejs,请先安装好nodejs

1
2
3
node -v
npm -v
npm config list

运行效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~]# node -v
v12.21.0
[root@localhost ~]# npm -v
6.14.11
[root@localhost ~]# npm config list
; cli configs
metrics-registry = "https://registry.npm.taobao.org/"
scope = ""
user-agent = "npm/6.14.11 node/v12.21.0 linux arm64"

; userconfig /root/.npmrc
registry = "https://registry.npm.taobao.org/"

; node bin location = /usr/bin/node
; cwd = /root
; HOME = /root
; "npm config ls -l" to show all defaults.

[root@localhost ~]#

安装hexo

1
npm install hexo-cli -g

创建站点或克隆已有站点

创建站点

创建一个名为test的站点:

1
hexo init test

克隆已有站点

我之前已经在github-pages部署过站点了,只需要克隆站点,然后更新命令即可。
克隆已有站点:

1
git clone git@github.com:lanlan2017/blog.git blog

进入站点目录,删除package-lock.json文件,这个文件存放的是hexo各个插件的url,可能插件的url已经更新了,删掉,后面重新安装插件,就会使用更新之后的插件url.

1
2
cd blog/
rm package-lock.json

安装插件

1
npm install

部分允许效果:

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
[root@localhost hexo]# git clone git@github.com:lanlan2017/blog.git blog
正克隆到 'blog'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
......
remote: Total 10545 (delta 902), reused 1756 (delta 838), pack-reused 8701
接收对象中: 100% (10545/10545), 4.57 MiB | 33.00 KiB/s, done.
处理 delta 中: 100% (6862/6862), done.
[root@localhost hexo]# ls
blog
[root@localhost hexo]# cd blog/
[root@localhost blog]# ls
_config.yml FM.properties HexoD.bat HexoS.bat HexoS.sh HexoSTest.bat KillBlog.sh package.json package-lock.json scaffolds source StartWriting.bat themes
[root@localhost blog]# rm package-lock.json
rm:是否删除普通文件 "package-lock.json"?y
[root@localhost blog]# ls
_config.yml FM.properties HexoD.bat HexoS.bat HexoS.sh HexoSTest.bat KillBlog.sh package.json scaffolds source StartWriting.bat themes
[root@localhost blog]# npm install
npm WARN deprecated highlight.js@9.18.5: Support has ended for 9.x series. Upgrade to @latest
......
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})

added 535 packages from 563 contributors in 36.961s

12 packages are looking for funding
run `npm fund` for details

[root@localhost blog]#

测试hexo

输入如下命令,启动本地服务器:

1
hexo s

部分运行结果:

1
2
3
4
[root@localhost blog]# hexo s
INFO Start processing
......
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

浏览器查看

当前手机上的浏览器查看

在手机上的浏览器进入http://localhost:4000即可访问该站点(我的博客)。

其他设备查看

确保当前手机和其他设备在同一个网络下

其他设备连接到手机的同一个WiFi下,或者连接该手机的热点,或者手机连接该设备的热点。

打开浏览器,进入http://手机IP:4000即可访问该站点,例如此时:http://192.168.1.6:4000/

更新hexo插件

进入上面的站点目录

1
2
3
4
5
[root@localhost blog]# pwd
/opt/hexo/blog
[root@localhost blog]# ls
_config.yml FM.properties HexoS.bat HexoSTest.bat node_modules package-lock.json source themes
db.json HexoD.bat HexoS.sh KillBlog.sh package.json scaffolds StartWriting.bat

手动更新

检查更新

1
npm outdated

运行效果:

1
2
3
4
5
6
[root@localhost blog]# npm outdated
Package Current Wanted Latest Location
hexo 4.2.1 4.2.1 5.4.0 hexo-site
hexo-deployer-git 2.1.0 2.1.0 3.0.0 hexo-site
hexo-renderer-stylus 1.1.0 1.1.0 2.0.1 hexo-site
hexo-server 1.0.0 1.0.0 2.0.0 hexo-site

npm outdated命令介绍:https://juejin.cn/post/6844903960784961543
可以看到hexo可以更新到5.4.0版本,hexo-deployer-git可以更新到3.0.0版本等。

更新package.json文件中插件的版本号

修改根目录的package.json文件,将对应插件名称所对应的版本号更改为要更新的版本号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost blog]# cat package.json 
{
......
"hexo": {
"version": "4.2.1"
},
"dependencies": {
"hexo": "^4.2.1",
......
"hexo-deployer-git": "^2.1.0",
......
"hexo-renderer-stylus": "^1.1.0",
"hexo-server": "^1.0.0"
}
}

修改成如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost blog]# cat package.json 
{
......
"hexo": {
"version": "5.4.0"
},
"dependencies": {
"hexo": "^5.4.0",
......
"hexo-deployer-git": "^3.0.0",
......
"hexo-renderer-stylus": "^2.0.1",
"hexo-server": "^2.0.0"
}
}

安装更新

1
npm install --save

回退hexo版本

如果你更新了hexo,网站可能打不开,例如我的hexo从4.2.1更新到5.4.0之后,网站打不开了,然后回退到4.2.1后,才可以正常打开网站。
把上面修改过的hexo版本修改会4.2.1即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost blog]# cat package.json 
{
......
"hexo": {
"version": "4.2.1"
},
"dependencies": {
"hexo": "^4.2.1",
......
"hexo-deployer-git": "^3.0.0",
......
"hexo-renderer-stylus": "^2.0.1",
"hexo-server": "^2.0.0"
}
}

然后安装:

1
npm install --save

也就是说只更新插件,不要更新hexo.

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
[root@localhost blog]# git diff package.json 
diff --git a/package.json b/package.json
index 499cb10..9085013 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"hexo": "^4.2.1",
"hexo-abbrlink": "^2.2.1",
"hexo-auto-category": "^0.2.0",
- "hexo-deployer-git": "^2.1.0",
+ "hexo-deployer-git": "^3.0.0",
"hexo-generator-archive": "^1.0.0",
"hexo-generator-baidu-sitemap": "^0.1.9",
"hexo-generator-category": "^1.0.0",
@@ -25,7 +25,7 @@
"hexo-generator-tag": "^1.0.0",
"hexo-renderer-ejs": "^1.0.0",
"hexo-renderer-kramed": "^0.1.4",
- "hexo-renderer-stylus": "^1.1.0",
- "hexo-server": "^1.0.0"
+ "hexo-renderer-stylus": "^2.0.1",
+ "hexo-server": "^2.0.0"
}
}
[root@localhost blog]#

自动更新

1
npm update

安装npm-check

1
npm install -g npm-check

使用EPEL安装 (yum安装方式)

nodejs CentOS安装介绍

进入Github上的仓库:https://github.com/nodesource/distributions
按下ctrl+f打开搜索,输入centos,找到要centos对应的安装的方式
或者直接点击下方链接进入

Installation instructions
NOTE: If you are using RHEL 6 or CentOS 6, you might want to read about running Node.js on older distros.
The Nodesource RPM package signing key is available here: https://rpm.nodesource.com/pub/el/NODESOURCE-GPG-SIGNING-KEY-EL
Run on RHEL, CentOS, CloudLinux, Amazon Linux or Fedora:
……
Node.js v12.x
As root

1
curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -

No root privileges

1
curl -fsSL https://rpm.nodesource.com/setup_12.x | sudo bash -

……
To compile and install native addons from npm you may also need to install build tools:
yum install gcc-c++ make
or: yum groupinstall ‘Development Tools’

安装方法

root用户,执行命令:

1
curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -

然后根据提示,输入命令:

1
sudo yum install -y nodejs

等待安装完毕即可
验证是否安装成:

1
2
node -v
npm -v

安装成功效果:

1
2
3
4
5
6
7
8
9
10
11
12
  正在安装    : 2:nodejs-12.21.0-1nodesource.aarch64                                                                                                              1/1 
验证中 : 2:nodejs-12.21.0-1nodesource.aarch64 1/1

已安装:
nodejs.aarch64 2:12.21.0-1nodesource

完毕!
[root@localhost ~]# npm -v
6.14.11
[root@localhost ~]# node -v
v12.21.0
[root@localhost ~]#

通过nvm安装

安装NVM

打开网址https://github.com/nvm-sh/nvm#installing-and-updating
复制命令:

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

或者

1
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

命令进行安装NVM.

解决curl无法链接到raw.githubusercontent.com的问题

不知道怎么回事,命令之中无法连接到raw.githubusercontent.com,报错如下:

1
2
3
4
[root@localhost ~]# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed connect to raw.githubusercontent.com:443; 拒绝连接

解决方案1

下载nvm-sh源码压缩包

进入nvm-sh仓库的releases页面:https://github.com/nvm-sh/nvm/releases,手动下载nvm-sh的.tar.gz包:https://github.com/nvm-sh/nvm/archive/v0.37.2.tar.gz

通过Xshell上传到系统中并解压

通过Xshell,将源码包上传到/opt目录下,然后解压:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz nvm-0.37.2.tar.gz tomcat tomcat85
[root@localhost opt]# mkdir nvm
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz nvm nvm-0.37.2.tar.gz tomcat tomcat85
[root@localhost opt]# tar -zxvf nvm-0.37.2.tar.gz -C nvm
nvm-0.37.2/
nvm-0.37.2/.dockerignore
nvm-0.37.2/.editorconfig
......
nvm-0.37.2/test/sourcing/setup
nvm-0.37.2/test/sourcing/teardown
nvm-0.37.2/update_test_mocks.sh
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz nvm nvm-0.37.2.tar.gz tomcat tomcat85

运行nvm解压后目录里面的install.sh脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost opt]# cd nvm
[root@localhost nvm]# ls
nvm-0.37.2
[root@localhost nvm]# cd nvm-0.37.2/
[root@localhost nvm-0.37.2]# ls
bash_completion CONTRIBUTING.md Dockerfile install.sh LICENSE.md Makefile nvm-exec nvm.sh package.json README.md ROADMAP.md test update_test_mocks.sh
[root@localhost nvm-0.37.2]# ./install.sh
=> Downloading nvm from git to '/root/.nvm'
=> 正克隆到 '/root/.nvm'...
remote: Enumerating objects: 333, done.
remote: Counting objects: 100% (333/333), done.
remote: Compressing objects: 100% (283/283), done.
remote: Total 333 (delta 38), reused 150 (delta 25), pack-reused 0
接收对象中: 100% (333/333), 177.15 KiB | 0 bytes/s, done.
处理 delta 中: 100% (38/38), done.
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

使NVM命令立即生效:

1
source ~/.bashrc

解决方案2

使用git克隆仓库,然后再运行install.sh脚本

验证nvm命令

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
[root@localhost nvm-0.37.2]# nvm list-remote
v0.1.14
v0.1.15
v0.1.16
......
v6.15.1 (LTS: Boron)
......
v6.17.1 (Latest LTS: Boron)
v7.0.0
......
v8.17.0 (Latest LTS: Carbon)
v9.0.0
......
v10.12.0
v10.13.0 (LTS: Dubnium)
......
v10.24.0 (Latest LTS: Dubnium)
v11.0.0
.......
v12.13.0 (LTS: Erbium)
......
v12.20.2 (LTS: Erbium)
v12.21.0 (Latest LTS: Erbium)
v13.0.0
......
v14.15.0 (LTS: Fermium)
........
v14.15.5 (LTS: Fermium)
v14.16.0 (Latest LTS: Fermium)
v15.0.0
.......
v15.10.0
v15.11.0
[root@localhost nvm-0.37.2]#

可以看到nvm安装成功了,后面可以通过nvm来更新nodejs

nvm 安装指定版本的nodejs

1
nvm install v8.6.0

安装最新稳定版的nodejs

1
nvm install stable

nvm 切换Node.js版本

1
nvm use v8.6.0

查看当前机器已安装node版本号

1
nvm list

设置默认的node版本

1
nvm alias default v9.5.0

升级npm

1
npm -g

nodejs配置

使用淘宝镜像

1
npm config set registry https://registry.npm.taobao.org

查看设置效果:

1
npm config list

运行效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost nvm-0.37.2]# npm config set registry https://registry.npm.taobao.org
[root@localhost nvm-0.37.2]# npm config list
; cli configs
metrics-registry = "https://registry.npm.taobao.org/"
scope = ""
user-agent = "npm/6.14.11 node/v12.21.0 linux arm64"

; project config /opt/nvm/nvm-0.37.2/.npmrc
package-lock = false

; userconfig /root/.npmrc
registry = "https://registry.npm.taobao.org/"

; node bin location = /usr/bin/node
; cwd = /opt/nvm/nvm-0.37.2
; HOME = /root
; "npm config ls -l" to show all defaults.

[root@localhost nvm-0.37.2]#

参考资料

https://www.cnblogs.com/fps2tao/p/9956139.html
https://github.com/nodesource/distributions

LinuxDeploy CentOS7 设置Git通过SSH连接Github

前言

先安装好Git,并且配置好邮箱和用户名

1
2
3
4
[root@localhost .ssh]# git config --list
user.name=xxx
user.email=xxx@yyy.com
[root@localhost .ssh]#

生成秘钥

输入下面的命令,然后一直按回车键:

1
ssh-keygen -t rsa -C "你的邮箱"

运行效果:

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# ssh-keygen -t rsa -C "xxxxxxx@yyy.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:...... xxx@yyy.com
The key's randomart image is:
......

查看公钥

进入上面命令生成秘钥的路径(Your public key has been saved in /root/.ssh/id_rsa.pub.):

1
cd /root/.ssh
1
2
3
4
5
[root@localhost .ssh]# ls
id_rsa id_rsa.pub
[root@localhost .ssh]# cat id_rsa.pub
ssh-rsa AAAAopuytC1yc2EAAAjkngfBAAABAQC4ABJjwlORTcIjU0mmCjGOSRYiF8MaKbQZLeF8Md46tgD2LhTLjOnlp09mcha/0uK8TpbWOO3Oq7u+5ageggsvcss3JItrKPEQn0OsXxDW9j7Du9PRAfyagagetvdbkIpxvxYmQ3flXdIG5YtZJHSuqmrKGOo+cZgj1PL4t2vnS2xKmbirdV5qndh3whadfgwertvgDAd57zFXzgWFxH09fI0Nq1oNQpk+MSDnIFyFNDO72VEQA/SYsk+92z056dEKvF1gHS92356478gfsM/JSPqmyJ+qwerfgtvdbd7JLLg6hzQ2LUjA0SGAsusBzHtM0SuxCoRTkdAd3vwwn9l xxx@yyy.com
[root@localhost .ssh]#

进入github网站 填写公钥

打开浏览器,登录github网站,然后点击右上角的头像的后面的三角按钮,选择Settings,然后点击SSH and GPG keys,点击SSH keys横栏右侧的New SSH key按钮。输入各个公钥的名称,我这里为CentoSOnLinuxDeploy。然后输入公钥,点击Add SSH key按钮。此时可能会要求输入密码,按提示输入密码即可。

测试是否能够连接

回到Xshell,输入如下命令测试连接,然后输入yes回车。

1
ssh -T git@github.com

ssh连接成功效果:

1
2
3
4
5
6
7
8
[root@localhost .ssh]# ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJjskgjghJhshsuiwoJkARLviKwJuhnb8.
RSA key fingerprint is MD5:23:45:rt:2g:56:31:7u:89:sd:3h:56::eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
[root@localhost .ssh]#

这样就可以使用github的SSH连接了,省去输入密码的麻烦。

参考资料

https://blog.csdn.net/ngl272/article/details/70217107

下载java

上面安装的linux系统是aarch64架构的,所以需要下载aarch64对应的版本:

jdk8官方下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

获得安装包:jdk-8u281-linux-aarch64.tar.gz

下载Tomcat

Tomcat8下载路径:https://tomcat.apache.org/download-80.cgi
下载tar.gz版本的Tomcat

使用Xftp上传到手机中

Xftp如何连接到手机上的linux

启动centos,打开Xshell,连接到手机。然后点击上面窗口菜单,选择传输新建文件菜单项。即可打开Xftp.

Xftp有两个分栏,左边的是电脑的目录树,右边是手机上的linux的目录树,进入linux的/opt目录。然后把电脑上下载好的java和tomcat的压缩包拖动到Xftp上的右边的Linux分栏中。这样就可以上传文件到Linux中了。等待上传完毕即可。

解压缩

解压java的压缩包

切换到Xshell中,进入刚才上传文件的目录(/opt目录),创建一个名为java的目录,然后把java压缩包解压到这个/opt/java目录中

1
2
3
4
5
6
7
8
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz jdk-8u281-linux-aarch64.tar.gz
[root@localhost opt]# tar -zxvf jdk-8u281-linux-aarch64.tar.gz -C java
tar: java:无法 open: 没有那个文件或目录
tar: Error is not recoverable: exiting now
[root@localhost opt]# mkdir java
[root@localhost opt]# tar -zxvf jdk-8u281-linux-aarch64.tar.gz -C java

解压Tomcat的压缩包

创建tomcat目录,然后将tomcat的压缩包解压到这个/opt/tomcat目录中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz
[root@localhost opt]# mkdir tomcat
[root@localhost opt]# tar -zxvf apache-tomcat-8.5.63.tar.gz -C tomcat/
apache-tomcat-8.5.63/conf/
apache-tomcat-8.5.63/conf/catalina.policy
......
apache-tomcat-8.5.63/bin/tool-wrapper.sh
apache-tomcat-8.5.63/bin/version.sh
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz tomcat
[root@localhost opt]# cd tomcat/
[root@localhost tomcat]# ls
apache-tomcat-8.5.63

配置环境

配置java环境

获取JDK绝对路径

进入jdk根目录,获取jdk根目录的绝对路径:

1
2
3
4
5
6
7
8
9
10
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz tomcat
[root@localhost opt]# cd java
[root@localhost java]# ls
jdk1.8.0_281
[root@localhost java]# cd jdk1.8.0_281/
[root@localhost jdk1.8.0_281]# ls
bin COPYRIGHT include jre legal lib LICENSE man README.html release src.zip THIRDPARTYLICENSEREADME.txt
[root@localhost jdk1.8.0_281]# pwd
/opt/java/jdk1.8.0_281

在/etc/profile文件中配置Java环境变量

java环境变量模板

1
2
3
4
5
6
7
# java 环境变量
# JAVA_HOME路径根据你实际安装的路径填写
export JAVA_HOME=JDK目录的绝对地址
# 下面剩下的配置不需要更改
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:JAVA_HOME/lib:JRE_HOME/lib:${CLASSPATH}
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

上一步得到的jdk的绝对路径为:

1
/opt/java/jdk1.8.0_281

所以我的配置为

1
2
3
4
5
6
7
# java 环境变量
# JAVA_HOME路径根据你实际安装的路径填写
export JAVA_HOME=/opt/java/jdk1.8.0_281
# 下面剩下的配置不需要更改
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:JAVA_HOME/lib:JRE_HOME/lib:${CLASSPATH}
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

设置java环境变量

打开/etc/profile文件,在文件末尾填写上面的配置即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost jdk1.8.0_281]# vim /etc/profile
[root@localhost ~]# cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
......
unset i
unset -f pathmunge

# java 环境变量
# JAVA_HOME路径根据你实际安装的路径填写
export JAVA_HOME=/opt/java/jdk1.8.0_281
# 下面剩下的配置不需要更改
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:JAVA_HOME/lib:JRE_HOME/lib:${CLASSPATH}
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]#

使配置生效

1
source /etc/profile

验证java是否配置成功

1
2
3
4
5
[root@localhost ~]# java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
[root@localhost ~]#

配置Tomcat

创建Tomcat安装目录的软链接

由于上面解压出来的Tomcat安装目录的名称太长了,为了后面启动或者关闭tomcat的时候输入命令方便一点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz tomcat
[root@localhost opt]# cd tomcat/
[root@localhost tomcat]# ls
apache-tomcat-8.5.63
[root@localhost tomcat]# cd apache-tomcat-8.5.63/
[root@localhost apache-tomcat-8.5.63]# ls
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work
[root@localhost apache-tomcat-8.5.63]# pwd
/opt/tomcat/apache-tomcat-8.5.63
[root@localhost apache-tomcat-8.5.63]# ln -s /opt/tomcat/apache-tomcat-8.5.63 /opt/tomcat85
[root@localhost apache-tomcat-8.5.63]# cd /opt
[root@localhost opt]# ls
apache-tomcat-8.5.63.tar.gz java jdk-8u281-linux-aarch64.tar.gz tomcat tomcat85

现在使用tomcat85这个软链接就可以替代“/tomcat/apache-tomcat-8.5.63”。

1
2
3
[root@localhost opt]# cd tomcat85
[root@localhost tomcat85]# ls
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work

启动Tomcat

/opt/tomcat85/startup.sh

1
2
3
4
5
6
7
8
9
[root@localhost opt]# /opt/tomcat85/bin/startup.sh 
Using CATALINA_BASE: /opt/tomcat85
Using CATALINA_HOME: /opt/tomcat85
Using CATALINA_TMPDIR: /opt/tomcat85/temp
Using JRE_HOME: /opt/java/jdk1.8.0_281/jre
Using CLASSPATH: /opt/tomcat85/bin/bootstrap.jar:/opt/tomcat85/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@localhost opt]#

在电脑上的浏览器访问Tomcat

确保手机和电脑在同一网络之下

使得电脑和手机在同一个网络之下,有如下几种:
(1) 电脑和手机连接同一个WIFI,并且该wifi没有设置防火墙。
(2) 手机开热点,电脑连接到手机的热点上。
(3) 电脑开热点,手机连接到电脑的热点上。
有的WIFI可能有防火墙,使得同一个WIFI下的电脑和手机不能相互访问。如果发现老是连不上,可以试着通过热点的方式进行连接。

Tomcat默认运行在8080端口,确保电脑和手机在同一个网络之下,然后在浏览器的地址栏中输入手机的IP地址:8080即可访问Tomcat.
LinuxDeploy上方的那四位数字就是IP地址。
此时我的IP地址为192.168.1.6,所以打开http://192.168.1.6:8080/即可访问Tomcat

关闭Tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost opt]# /opt/tomcat85/bin/startup.sh 
Using CATALINA_BASE: /opt/tomcat85
Using CATALINA_HOME: /opt/tomcat85
Using CATALINA_TMPDIR: /opt/tomcat85/temp
Using JRE_HOME: /opt/java/jdk1.8.0_281/jre
Using CLASSPATH: /opt/tomcat85/bin/bootstrap.jar:/opt/tomcat85/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@localhost opt]# /opt/tomcat85/bin/shutdown.sh
Using CATALINA_BASE: /opt/tomcat85
Using CATALINA_HOME: /opt/tomcat85
Using CATALINA_TMPDIR: /opt/tomcat85/temp
Using JRE_HOME: /opt/java/jdk1.8.0_281/jre
Using CLASSPATH: /opt/tomcat85/bin/bootstrap.jar:/opt/tomcat85/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@localhost opt]#

无法访问Tomcat的Manager App和Host Manager页面

解决办法:设置角色,设置Tomcat用户名和密码。
见:https://lanlan2017.github.io/blog/5d0a8795/

参考资料

https://blog.csdn.net/yjl15517377095/article/details/102060442

解析地址

1
2
3
4
140.82.112.4 github.com
199.232.69.194 github.global.ssl.fastly.net
185.199.108.153 assets-cdn.github.com
185.199.108.133 user-images.githubusercontent.com

安装

1
yum install git

查看安装成功

1
git --version
1
2
[root@localhost ~]# git --version
git version 1.8.3.1

配置基本信息

1
2
git config --global user.name "用户名"
git config --global user.email "邮箱"

查看用户名:

1
git config --list

参考链接

https://www.jianshu.com/p/e6ecd86397fb

安装nano

1
sudo yum install nano

查看安装效果:

1
nano --version
1
2
3
4
5
6
7
[root@localhost ~]# nano --version
GNU nano 版本2.3.1 (编译于12:17:13, Apr 28 2015)
(C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.
电子邮件: nano@nano-editor.org 网页: http://www.nano-editor.org/
编译选项: --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8
[root@localhost ~]#

安装wget

1
yum install wget

更换阿里源

1
2
3
4
5
6
7
8
cd /etc/yum.repos.d/
# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cat CentOS-Base.repo
#更换阿里源
wget http://mirrors.aliyun.com/repo/Centos-altarch-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
#查看是否更换成功
cat /etc/yum.repos.d/CentOS-Base.repo

更换成功后清除缓存并重建

1
2
yum clean all
yum makecache

安装vim

1
yum install vim

简介

本文介绍,如何在安卓手机上安装centos,并设置共享文件夹。

本文用到的软硬件

  • 一部root过的手机手机
  • LinuxDeploy软件
  • BusyBox Free软件

root手机

我的旧手机是OPPO R9全网通(OPPO R9plusm A),该手机的Root方法是,回退到系统版本到2016xxx版,然后下载KingRoot这个App,然后在手机上使用KingRoot来获取root权限即可

安装App

下载安装 BusyBox LinuxDeploy

可以在github上的release下载:

BusyBox使用介绍

安装最新版的BusyBox到/system/xbin

LinuxDeploy操作详解

修改配置文件名

把配置文件名改为centos,这部可以省略。

环境设置

勾选 屏幕常亮、锁定WiFi、开启CPU唤醒这三项。

勾选 时间戳、显示图标、联网更新

设置PATH变量为/system/xbin

三点按钮介绍

安装按钮

该按钮的功能类似于重装系统,点击该按钮将会从头开始安装系统,只有在第一次安装系统的时候才点击该按钮。如果你已经安装好系统,并且在系统中做了一些工作,则不要再点击这个安装按钮,否则,重装系统后你之前在系统中做的工作会丢失,你讲得到一个全新的系统。

配置按钮

该按钮的功能类似于系统更新,点击该按钮可以更新设置,更新已经安装的软件。后续如果修改Linux属性,则点击该按钮更新属性。

查看当前手机架构

设置操作系统属性

选择 发行版,选择 架构,选择 发行版GNU/Linux版本,修改 源地址,我这里用的是阿里云的源地址:http://mirrors.aliyun.com/centos-altarch/,你也可以选择其他源地址,我的手机架构是aarch64,可以在 源地址的/7/os/目录下找到aarch64即可:(http://mirrors.aliyun.com/centos-altarch/7/os/aarch64/)。这样的源地址就可以用。

选择安装方式 输入安装路径
我这里选择的是 目录 安装方式,安装路径设置为 /data/centos/。

输入用户名 密码

选择本地化为UTF-8编码的简体中文(zh_CN.UTF-8)

勾选SSH

安装图形化界面

我这里只需要SSH服务即可,为了节约资源,就不安装图形化界面了。

启动Linux

Tomcat无法进入Manager App和Host Manager页面

解决无法进入Manager App页面

进入tomcat安装目录:

1
cd /opt/tomcat/apache-tomcat-8.5.63/

取消访问IP限制

进入manager页面的META-INF目录:

1
cd webapps/manager/META-INF

打开context.xml文件

1
vim context.xml

将最后一个标签中的Value标签注释掉,如下所示:

1
2
3
4
5
6
7
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

添加manager-gui角色以及tomcat用户名以及密码

进入tomcat安装目录下的conf目录:

1
cd /opt/tomcat/apache-tomcat-8.5.63/

进入conf目录:

1
cd conf

打开tomcat-user.xml:

1
vim tomcat-users.xml 

在最后一行的<tomcat-users>标签之中,,添加如下以下两行代码:

1
2
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

添加后的效果如下所示:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!-- ... -->
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!-- ... -->
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

解决无法进入Host Manager页面的问题

取消访问IP限制

打开webapps/host-manager/META-INF/context.xml文件:

1
2
cd /opt/tomcat/apache-tomcat-8.5.63/webapps/host-manager/META-INF
vim context.xml

同样注释掉其中的Value标签:

1
2
3
4
5
6
7
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

添加admin-gui角色,并将该角色授予上面创建的tomcat用户

进入Tomcat安装目录下的conf目录,打开tomcat-users.xml文件:

1
2
cd opt/tomcat/apache-tomcat-8.5.63/conf
vim tomcat-users.xml

添加一个角色admin-gui,然后将该角色授予上面创建好的tomcat用户:

1
2
3
4
5
<!-- ...... -->
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
</tomcat-users>

这样该tomcat用户既可以访问Manager App页面,也可以访问Host Manager页面。
或者为Host Manager重新指定一个用户也可以:

1
2
3
4
5
6
<!-- ...... -->
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="tomcat_host" password="tomcat_host" roles="admin-gui"/>
</tomcat-users>