前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云Linux从零开始环境搭建及学习V1

腾讯云Linux从零开始环境搭建及学习V1

原创
作者头像
杜莱
修改2021-05-18 16:35:13
9740
修改2021-05-18 16:35:13
举报
文章被收录于专栏:Linux系统从零开始

前言

1. 服务器及系统版本

文章基于腾讯云服务器Linux CentOS7.9

Linux命令行参考我的文章Linux常用命令V1

2. 为什么重装系统

腾讯云刚买的时候安全组默认全开,防火墙默认关闭

我操作redis的时候没设置密码就允许外部访问了,很轻易的被入侵了,通过redis修改了authorized_keys文件中实现免密登陆,看了下ip有韩国和美国的

最近虚拟币很猖獗,你知道的不知道的,毫无生产力,毫无意义却浪费大量的资源

看下自己 的服务器/usr/share目录打开config_background.json文件看看有没有被挖矿

他们连我就没得连了,无法登陆远程腾讯云,只能通过VNC方式登录,腾讯云的工程师VNC远程登录也没办法解决,索性直接重装系统

3. 文章版本
  • 5月18日版本V1

搭建一些开发必备的软件,都是亲测有效的

第一章 Linux基础环境搭建

1.1 安装zsh和oh-my-zsh

查看系统有几种shell

代码语言:txt
复制
cat /etc/shells

安装zsh

代码语言:txt
复制
sudo yum install zsh
#默认安装位置
/bin/zsh

为 root 用户设置 zsh 为系统默认 shell:

代码语言:txt
复制
chsh -s /bin/zsh root
sudo chsh -s /bin/zsh

查看默认的shell

代码语言:txt
复制
echo $SHELL

如果你要重新恢复到 bash

代码语言:txt
复制
chsh -s /bin/bash root

安装zsh框架oh-my-zsh

代码语言:txt
复制
#需要安装git才可以,这个域名有时候大陆无法访问
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
#安装位置
/root/.oh-my-zsh
#强大的 d 命令,d 命令会列出我们最近进入的目录历史
d

修改主题

代码语言:txt
复制
# vim .zshrc
#默认主题
ZSH_THEME="robbyrussell"
#设置为”random”每次登陆oh-my-zsh会随机选择一个主题
#[参考文章](https://zhuanlan.zhihu.com/p/63585679)

安装效果

image-20210516214322636
image-20210516214322636
1.2 更新sudo
代码语言:txt
复制
#修复漏洞编号CVE-2021-3156
yum update sudo
1.3 安装 git
代码语言:txt
复制
yum install git
#查看安装位置
find . -name "git" |grep git
#默认安装位置
/usr/bin/git
#[参考文章](https://cloud.tencent.com/developer/article/1640614)
1.4 安装 jdk

方式一:

代码语言:txt
复制
#查看可以安装的jdk版本
yum list | grep java
#默认安装位置为/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/bin/java
yum install -y java-11-openjdk.x86_64

方式二:

代码语言:txt
复制
#解压
tar -zxvf jdk-8u211-linux-x64.tar.gz
#配置环境变量
vim /etc/profile
export JAVA_HOME=/DATA/jdk/jdk1.8.0_211 
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
#刷新环境变量
source /etc/profile 
#查询
java -version
1.5 设置本地电脑免密码登陆

免密登陆方式一:

代码语言:txt
复制
#本地生成 rsa
ssh-keygen
#上传本地公钥至服务器,此处要输入root 密码
ssh-copy-id    -i    ~/.ssh/id_rsa.pub    root@xxx.xxx.xxx.xxx
#免密登录
ssh  root@xxx.xxx.xxx.xxx
#[密钥登录](https://goodgoodstudy.blog.csdn.net/article/details/113694654)

免密登陆方式二:

代码语言:txt
复制
#将本地电脑中~/.ssh目录下id_rsa.pub中内容(即公钥)
#拷贝到云服务器的~/.ssh目录下的authorized_keys文件中

注意:

代码语言:txt
复制
docker和redis如果开放端口且不设置密码,很容易以这种方式被入侵。
1.6 修改hostname
代码语言:txt
复制
# 重新登陆生效
# 1.方法一
vi /etc/hostname
# cloudserver,:wq保存退出
hostname -F /etc/hostname
# 2.方法二
hostname -b cloudserver
1.7 增加连接超时时间
代码语言:txt
复制
vim /etc/ssh/sshd_config
#在此文件中找到以下配置项:
#ClientAliveInterval 0
#ClientAliveCountMax 3
#去掉注释,改成
#这两行的意思分别是
#1、服务端每隔多少秒向客户端发送一个心跳数据
#2、客户端多少次没有相应,服务器自动断掉连接
ClientAliveInterval 30
ClientAliveCountMax 120
#重启sshd服务
service sshd restart
#参考文章
#https://cloud.tencent.com/developer/article/1163845
1.8 流量监控小工具iftop

安装 iftop 工具

代码语言:txt
复制
 yum install iftop -y

安装 lsof。

代码语言:txt
复制
yum install lsof -y

运行 iftop

代码语言:txt
复制
iftop

根据iftop 中消耗流量的 IP查看连接该 IP 的进程

代码语言:txt
复制
lsof -i | grep IP
image-20210517000030498
image-20210517000030498
1.9 配置安全组

配置新的安全规则只开放一些常用的端口

image-20210517002358208
image-20210517002358208
1.10 配置防火墙

查看防火墙状态

代码语言:txt
复制
firewall-cmd --state  

开启防火墙

代码语言:txt
复制
#开启systemctl start firewalld #关闭systemctl stop firewalld 

添加需要开放的端口

代码语言:txt
复制
#在running 状态下,向firewall 添加需要开放的端口#永久的添加该端口。去掉--permanent则表示临时。
firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --zone=public --add-port=3306/tcp --permanent

关闭开放的端口

代码语言:txt
复制
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

加载防火墙配置,使得修改有效

代码语言:txt
复制
firewall-cmd --reload  

查看防火墙某一端口是否开放

代码语言:txt
复制
firewall-cmd --zone=public --query-port=80/tcp
#查看所有开放的端口
firewall-cmd --permanent --zone=public --list-ports
1.11 安装nginx
代码语言:txt
复制
#首先要安装PCREPCRE作用是让Nginx支持Rewrite。
#下载nginx
wget http://nginx.org/download/nginx-1.20.0.tar.gz
#下载pcre
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.bz2
#解压
tar zxvf nginx-1.20.0.tar.gz
tar xvf pcre-8.44.tar.bz2 
#安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
yum install -y gcc-c++
#编译安装pcre
cd pcre-8.44
./configure
make && make install
#生成Makefile
cd ../nginx-1.20.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=../pcre-8.44
# 编译安装
make 
make install
#安装位置
usr/local/nginx
#nginx三个主要的命令
# 启动
/usr/local/nginx/sbin/ ./nginx
# 停止 Nginx
/usr/local/nginx/sbin/ ./nginx -s stop
# 重新载入配置文件
/usr/local/nginx/sbin/ ./nginx -s reload
#[参考文章](https://www.runoob.com/linux/nginx-install-setup.html)
1.12 安装tomcat
代码语言:txt
复制
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
tar zxvf apache-tomcat-9.0.46.tar.gz
1.13 安装mysql
代码语言:txt
复制
#centos7默认没有mysql的yum源下载c7的
#https://dev.mysql.com/downloads/repo/yum/
#下载yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#软件安装需要切换root用户:使用root账户安装yum源
rpm -vih mysql80-community-release-el7-3.noarch.rpm
#检测yum源是否成功安装
yum  repolist  enabled | grep "mysql.*-community.*"
#查看默认安装版本
yum repolist all | grep mysql
#选择安装版本
##禁用8.0版本的
yum-config-manager --disable mysql80-community 
##启用5.7版本的
yum-config-manager --enable mysql57-community
#开始安装
yum install mysql-community-server
#启动mysql
systemctl start mysqld
#查看mysql是否启动
systemctl status mysqld
#重启 mysql
systemctl restart mysqld.service
#查看mysql临时密码
cat /var/log/mysql.log
#或者搜索mysql临时密码
grep 'temporary password' /var/log/mysqld.log
#A temporary password is generated for root@localhost: A&0&cSh_F,AB
#登陆mysql
mysql -uroot -p'A&0&cSh_F,AB'
#不改密码会报错
#You must reset your password
#You have an error in your SQL syntax;
show databases;
#必须修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql5@Root';
flush privileges;
#重新登陆
mysql -uroot -pmysql5$Root

创建授权用户

代码语言:txt
复制
create user "lane"@"IP" identified by "Mysql@1234";
#创建用户xsge,密码SQLxsge1.  授权所有权限(all),允许正在任意主机登录(%),任意库任意表(*.*)
grant  all  on  *.*  to  'lane'@'%'  identified  by  'Mysql@1234';    
##修改xsge主机访问权限范围(前提,该用户lane已经存在)
#修改xsge账户访问范围:localhost只能在Linux系统本机访问
 update  mysql.user  set  host='localhost'  where  user='lane';  
#修改权限 
#给lane授权查询,更新,test库中所有表(test.*)
Grant select,update on test.*  to  'lane'@'%';    

禁止MySQL进行更新

代码语言:txt
复制
#将下列代码放到你的/etc/yum.conf文件中
exclude=mysql-community-client,mysql-community-common,mysql-community-libs,mysql-community-server

设置防火墙开放端口

代码语言:txt
复制
####设置防火墙开放端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload

数据库乱码问题

代码语言:txt
复制
#登录MySQL查看编码问题
show variables like 'character_set%';
#修改mysql配置文件/etc/my.cnf
vim  /etc/my.cnf
#修改为utf8
[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8
  

设置免密登陆

代码语言:txt
复制
#/etc/my.cnf添加如下
[client]
  host=localhost
  user='root'
  password='youpassword'
  default-character-set=utf8
[mysql]
default-character-set=utf8

设置开机启动

代码语言:txt
复制
systemctl enable mysqldsystemctl daemon-reload

参考文章

Linux系统安装MySQL(2020最新最详细) - 净重21克 - 博客园 (cnblogs.com)

CentOS7使用yum安装MySQL - 简书 (jianshu.com)

1.14 安装redis
代码语言:txt
复制
#下载
wget https://download.redis.io/releases/redis-6.2.2.tar.gz
#解压
tar zxvf redis-6.2.2.tar.gz 
#跳转
cd redis-6.2.2
#编译
make
#创建文件
mkdir /usr/local/redis
mkdir /usr/local/redis/bin
mkdir /usr/local/redis/conf
#移动文件
mv redis.conf /usr/local/redis/conf
mv src/redis-benchmark /usr/local/redis/bin
mv src/redis-check-aof /usr/local/redis/bin
mv src/redis-check-rdb /usr/local/redis/bin
mv src/redis-cli /usr/local/redis/bin
mv src/redis-sentinel /usr/local/redis/bin
mv src/redis-server /usr/local/redis/bin
mv src/redis-trib.rb /usr/local/redis/bin
#跳转bin文件
cd /usr/local/redis/bin
#不占用窗口启动redis 
./redis-server ../conf/redis.conf  &
./redis-cli 
#测试
set aa aa
get aa
##关闭服务端连接
127.0.0.1:6379> shutdown  
not connected> exit 
#设置密码
vim ./conf/redis.conf
#修改requirepass redispass
#可以删除源文件了  rm -rf redis-6.2.2
1.15 安装docker
代码语言:txt
复制
# 安装
yum -y install docker
# 启动
systemctl start docker.service
# 开机自启动
systemctl enable docker.service
# 验证
docker info
#安装位置
/var/lib/docker
#参考文章(https://cloud.tencent.com/developer/article/1822270)

附录 Linux开始的状态

1. top命令
image-20210516201512827
image-20210516201512827
2. free命令
image-20210516201600858
image-20210516201600858
3. ip连接命令
代码语言:txt
复制
lsof -i | grep IP
image-20210516201811289
image-20210516201811289
4. 初始文件夹
image-20210516202044237
image-20210516202044237

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 1. 服务器及系统版本
      • 2. 为什么重装系统
        • 3. 文章版本
        • 第一章 Linux基础环境搭建
          • 1.1 安装zsh和oh-my-zsh
            • 1.2 更新sudo
              • 1.3 安装 git
                • 1.4 安装 jdk
                  • 1.5 设置本地电脑免密码登陆
                    • 1.6 修改hostname
                      • 1.7 增加连接超时时间
                        • 1.8 流量监控小工具iftop
                          • 1.9 配置安全组
                            • 1.10 配置防火墙
                              • 1.11 安装nginx
                                • 1.12 安装tomcat
                                  • 1.13 安装mysql
                                    • 1.14 安装redis
                                      • 1.15 安装docker
                                      • 附录 Linux开始的状态
                                        • 1. top命令
                                          • 2. free命令
                                            • 3. ip连接命令
                                              • 4. 初始文件夹
                                              相关产品与服务
                                              云服务器
                                              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                                              领券
                                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档