专栏首页Linux系统从零开始腾讯云Linux从零开始环境搭建及学习V1
原创

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

前言

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

cat /etc/shells

安装zsh

sudo yum install zsh
#默认安装位置
/bin/zsh

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

chsh -s /bin/zsh root
sudo chsh -s /bin/zsh

查看默认的shell

echo $SHELL

如果你要重新恢复到 bash

chsh -s /bin/bash root

安装zsh框架oh-my-zsh

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

修改主题

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

安装效果

image-20210516214322636

1.2 更新sudo

#修复漏洞编号CVE-2021-3156
yum update sudo

1.3 安装 git

yum install git
#查看安装位置
find . -name "git" |grep git
#默认安装位置
/usr/bin/git
#[参考文章](https://cloud.tencent.com/developer/article/1640614)

1.4 安装 jdk

方式一:

#查看可以安装的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

方式二:

#解压
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 设置本地电脑免密码登陆

免密登陆方式一:

#本地生成 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)

免密登陆方式二:

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

注意:

docker和redis如果开放端口且不设置密码,很容易以这种方式被入侵。

1.6 修改hostname

# 重新登陆生效
# 1.方法一
vi /etc/hostname
# cloudserver,:wq保存退出
hostname -F /etc/hostname
# 2.方法二
hostname -b cloudserver

1.7 增加连接超时时间

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 工具

 yum install iftop -y

安装 lsof。

yum install lsof -y

运行 iftop

iftop

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

lsof -i | grep IP
image-20210517000030498

1.9 配置安全组

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

image-20210517002358208

1.10 配置防火墙

查看防火墙状态

firewall-cmd --state  

开启防火墙

#开启systemctl start firewalld #关闭systemctl stop firewalld 

添加需要开放的端口

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

关闭开放的端口

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

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

firewall-cmd --reload  

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

firewall-cmd --zone=public --query-port=80/tcp
#查看所有开放的端口
firewall-cmd --permanent --zone=public --list-ports

1.11 安装nginx

#首先要安装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

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

#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

创建授权用户

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进行更新

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

设置防火墙开放端口

####设置防火墙开放端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload

数据库乱码问题

#登录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
  

设置免密登陆

#/etc/my.cnf添加如下
[client]
  host=localhost
  user='root'
  password='youpassword'
  default-character-set=utf8
[mysql]
default-character-set=utf8

设置开机启动

systemctl enable mysqldsystemctl daemon-reload

参考文章

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

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

1.14 安装redis

#下载
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

# 安装
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

2. free命令

image-20210516201600858

3. ip连接命令

lsof -i | grep IP
image-20210516201811289

4. 初始文件夹

image-20210516202044237

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 来腾讯云开发者实验室 学习.NET Core 2.0

    张善友
  • 来腾讯云开发者实验室 学习.NET Core 2.0

    腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验...

    张善友
  • 来腾讯云开发者实验室 学习.NET Core 2.0

    腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力:

    张善友
  • 来腾讯云开发者实验室学习.NET

    腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验...

    张善友
  • 来腾讯云开发者实验室 学习.NET

    腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验...

    张善友
  • 腾讯云大学「学习路径—云计算、小程序、运维、人工智能」助力开发者轻松上云

    腾讯云大学面向云生态用户的一站式学习成长平台,提供丰富优质的云计算、大数据、人工智能等课程内容,以及权威的腾讯云技术认证体系。

    可可爱爱没有脑袋
  • 【腾讯云的1001种玩法】征文活动获奖名单公布

    腾讯云技术社区「腾云阁」举办【腾讯云的1001种玩法】征文活动吸引了大量程序员们入驻社区。活动期间,一共征集到来自 42 位作者的 83 篇征文。经过评委老师从...

    云加社区
  • 从零开始搭建腾讯云服务器

    腾讯云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。...

    用户6248011
  • 从零开始学习React-开发环境的搭建(一)

    其实16年的时候就已经接触到React,那个时候也只是入门,时隔多年,工作上一直都没有接触到相关的业务,不知不觉,前端的天也开始渐变,看到 了很多招聘要求上都是...

    王小婷
  • 不懂代码的他,如何上云?

    ? 大家好,我叫尹辉煌(青阳),今年27岁,目前在保险行业从事团队管理工作,也是腾讯云轻量应用服务器 Lighthouse 的一名用户。我本身是一个计算机爱好...

    腾讯云计算产品团队
  • Labs Contest 云学院线上代码竞赛 !

    在 Function As A Service,Serverless,PaaS 大行其道的今天,你是否已经忘记了自己动手搭建所需环境的乐趣呢?第一次使用 yum...

    小Q
  • 【腾讯云的1001种玩法】征文活动

    腾讯云技术社区「腾云阁」上线以来得到了广大程序员们的支持,为了吸引更多的开发者入驻,现再次举办【腾讯云的1001种玩法】征文活动。只要是与「腾讯云」相关的干货原...

    云加社区
  • 从零开始搭建腾讯云服务器 (一)

    云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服...

  • 从零开始学TensorFlow【01-搭建环境、HelloWorld篇】

    最近在学习TensorFlow的相关知识,了解了TensorFlow一些基础的知识,现在周末有空了,就写写一些笔记,记录一下自己的成长~

    Java3y
  • 学习Vue3.0,先从搭建环境开始

    这是小编关于Vue3.0系列文章的第二篇,本文将带您从零搭建一个基于Vue3.0与vite的Vue3.0开发环境,通过本文的学习,你将学习到以下内容:

    前端老王
  • 从零开始搭建腾讯云上的SpringBoot容器化应用

    由于最近容器技术的火热,各大云计算厂商都已经提供了独立的容器服务,腾讯云也不例外。腾讯云容器服务的官方文档提供了一个基于Node.js的简单案例供大家上手,考虑...

    李想
  • 教程 | 从零开始搭建『深度学习』GPU开发环境

    为了进行强化学习研究,我最近购置了一台基于 Ubuntu 和英伟达 GPU 的深度学习机器。尽管目前在网络中能找到一些环境部署指南,但目前仍然没有全面的安装说明...

    昱良
  • 腾讯云大学英特尔专区发布升级2.0 ——赋能开发者创无限可能

    英特尔联合腾讯云大学升级课程共建项目,发布2.0版。此次升级面向AI、大数据等核心领域提供了更丰富的资源,同时更加注重强化实践内容,以从通用技术培训到云上实战,...

    可可爱爱没有脑袋
  • 从零开始写项目第四篇【搭建Linux环境】

    使用SSH连接Linux环境 经过十多天的时间,我的网站备案终于完成了…接下来我就收到了阿里云的邮件。它让我在网站首页的尾部添加备案号,貌似还需要去公安网站中再...

    Java3y

扫码关注云+社区

领取腾讯云代金券