Linux学习之路

Linux有什么作用

  • 目前互联网90%商业服务器基本是Linux
  • 很多好的开源软件都先支持Linux
  • 大数据分析、机器学习首选Linux
  • 整个互联网的地基都是靠Linux撑起来的

Linux是什么

通过命令对服务器进行操作。(待补充)

Linux能做什么

  • 企业服务器
  • 嵌入式开发

Linux的学习方法

  • 给自己一个Linux环境(给自己电脑装一下Linux操作系统,强制学习)
  • 先自己尝试搜索解决问题(印象深刻)
  • 学会读懂Linux的错误提示
  • 暂时忘掉Windows的所有东西有助于学习,因为Linux系统
  • 没有exe安装程序
  • 大小写要区分
  • 一切皆文件
  • 文件后缀名不是那么重要,只是为了好识别而已

虚拟机是什么

  • 科研解释:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
  • 白话解释:通过软件技术,可以在自己的电脑上安装另一个操作系统,而不影响原系统

安装虚拟机

安装虚拟机需要注意什么

  • 电脑支持虚拟化,windows主机在BIOS开启虚拟化支持

虚拟机软件安装CentOS

云服务器的平台

准备工作

认识SSH

SSH工具

  • SSH config用法详解
  • 免密码登录方案之SSH Key
  • SSH端口安全
  • 个性化脚本一键登录服务器

SSH是什么

  • SSH:Secure Shell 安全外壳协议
  • 建立在应用层基础上的安全协议
  • 可靠,专为远程登录会话和其他网络服务提供安全性的协议
  • 有效防止远程管理工程中的信息泄露问题
  • SSH客户端适用于多种平台
  • SSH服务端几乎支持所有UNIX平台

服务端安装SSH服务

  • 安装SSH:yum install openssh-server
  • 启动SSH:service sshd start
  • 设置开机运行:chkconfig sshd on

客户端安装SSH工具

  • SSH是典型的客户端和服务端的交互模式,客户端广泛的支持各个平台
  • Windows有很多工具可以支持SSH连接功能,例如:Xshell、Putty、secure CRT
  • Linux平台需要安装客户端软件:yum install openssh-clients

SSH config讲解

  • config为了方便我们批量管理多个ssh
  • config存放在~/.ssh/config
  • config配置语法

SSH config 语法关键字

English中文
Host别名
HostName主机名
Port端口
User用户名
IdentityFIle密钥文件的路径

Linux常用命令

以下只列出部分命令,其他命令可自行去官网或者第三方网站自行查找,例如:菜鸟教程

  • 软件操作命令

    1. 软件包管理器:yum
    2. 安装软件:yum install xxx
    3. 卸载软件:yum remove xxx
    4. 搜索软件:yum search xxx
    5. 清理缓存:yum clean packages
    6. 列出已安装:yum list
    7. 软件包信息:yum info xxx
  • 服务器硬件资源和磁盘操作

    1. 内存:free -m(m是以兆的单位展示)
    2. 硬盘:df -h
    3. 负载:w/top
      负载解析图
      当在1分钟处的值到达1的时候,说明CPU现在是满负荷状态,这个时候要进行检查,查明原因。当超过1的时候,超频运行,随时都可能发生宕机。运维的话,一般情况下,0.6,0.7属于正常值,当大于它们的时候,就会进入危险报警。
    4. cpu个数和核数:cat /proc/cpuinfo
    5. 格式化磁盘:fdisk
  • 文件和文件夹操作指令

    1. Linux文件的目录结构
      1. 根目录:/
      2. 家目录:/home
      3. 临时目录:/tmp
      4. 配置目录:/etc
      5. 用户程序目录:/usr
    2. 文件基本操作
    解释
    ls查看目录下的文件
    touch新建文件
    mkdir(-p)新建一个目录(循环创建)
    rmdir(-p)删除一个空目录(循环删除)
    cd进入目录
    rm(-rf)删除文件和目录(强制删除,不提示)
    cp复制
    mv移动
    pwd显示路径
    1. 文本编辑神器Vim
      1. 在服务器上是没有类Windows的操作界面的,所有GUI界面都无法使用
      2. Vim是最出名的Linux文本编辑器,可以对文件修改操作
      3. Vim安装:yum install vim
      4. Vim编辑文件:(小写字母为小写模式下操作,大写字母为大写模式下操作)
        1. 开始编辑:i
        2. 退出编辑:先按Esc,然后顺序按 :wq
        3. 快速切换光标到首行和尾行:首行(gg),尾行(G)
        4. 删除光标当前行:dd(恢复上一次操作:u)
        5. 复制光标当前行:yy
        6. 插入复制的行:p
        7. 显示行数::set number
    2. 文件权限421
      1. r/w/x:r读4、w写2、x可执行1
        文件权限权限图
    3. 文件搜索、查找、读取
    命令解释语法(imooc 为文件名)
    tail从文件尾部开始读tail imooc
    head从文件头部读head imooc
    cat读取整个文件cat imooc
    more分页读取more imooc
    less可控分页less imooc
    grep(-n)搜索关键字(显示当前行)grep -n “关键字” imooc
    find查找文件find . -name “名字” / find . -type f(f是文件,d是文件夹)
    wc统计行数1.cat imooc l wc -l 2.grep “关键字” imooc l wc -l(中间的为竖线(管道),最后面的是小写字母l)
    1. 文件压缩和解压
      1. tar命令
  • 系统用户操作命令

命令解释
useradd添加用户
adduser添加用户
userdel删除用户
passwd设置密码
  • 防火墙相关设置
    1. 作用:保护服务器安全
    2. 设置防火墙规则
      1. 开放80,22端口
    3. 关闭防火墙
    4. 基本命令:
      1. 安装:yum install firewalld
      2. 启动:service firewalld start
      3. 检查状态:service firewalld status
      4. 关闭或禁用防火墙:service firewalld stop/disable
      5. 查看是否安装防火墙:yum list | grep firewall
      6. 查看是否启动防火墙:ps -ef | grep firewall
      7. 查看版本号:firewall-cmd --version
      8. 查看状态:firewall-cmd --state
      9. 查看区域:firewall-cmd --get-zones
      10. 查看默认区域: firewall-cmd --get-default-zone
      11. 查看所有区域:firewall-cmd --list-all-zone
      12. 添加服务:firewall-cmd --add-service=ssh
      13. 删除服务:firewall-cmd --remove-service=ssh
      14. 查询有哪些服务:firewall-cmd --list-services
      15. 查询端口:firewall-cmd --query-port=22/tcp
      16. 添加端口:firewall-cmd --add-port=22/tcp
      17. 删除端口:firewall-cmd --remove-port=22/tcp
  • 提权操作sudo和文件传输操作
    1. 提权:sudo
      1. 输入visudo命令
      2. 根据图片内容操作 提权操作
      3. 注意:在开发过程中不要使用root账号进行操作,不安全。
    2. 文件下载:wget、curl
      1. wget http://www.baidu.com
      2. curl -o baidu.html http://www.baidu.com (baidu.html是保存的文件名)
    3. 文件上传:scp
      1. 将本地文件imooc.txt上传到imooc服务器tmp文件夹下:scp imooc.txt imooc@192.168.0.111:/tmp/
      2. 将服务器上的index.html下载到本地:scp imooc@192.168.0.111:/tmp/index.html ./
    4. yum install lrzsz
    5. 从桌面上传文件到服务器:rz
    6. 从服务器下载文件imooc.txt到桌面:sz imooc.txt

WebServer

Apache基本操作

解释命令
安装yum install httpd(在Ubuntu中叫Apache,在centos中叫httpd)
启动service httpd start
停止service httpd stop

查询进程是否存在:ps -ef | grep httpd
  安装好Apache服务后,启动后,打开网页访问你的主机(我的是192.168.0.111)。如果不能访问的话,这个时候关闭防火墙service firewalld stop,再次访问显示Testing123…页面说明Apache服务已经安装好了/

Apache拓展知识

  • 配置虚拟主机
    1. 进入到/etc/httpd/conf目录下:cd /etc/httpd/conf
    2. 编辑conf目录下的httpd.conf文件:vim httpd.conf
    3. 搜索/virtual,添加如下代码: 虚拟机配置图1
    4. 保存退出后重新启动服务:service httpd restart
    5. 新建/data/www目录:mkdir -p /data/www
    6. 切换到www目录下输入命令:ll /data来查看当前目录所属者,如果是root,则输入命令sudo chown -R imooc:imooc /data 目录所属者
    7. www目录下新建一个index.html,输入一些内容,保存退出。
    8. 找到自己系统的hosts文件位置(自行百度),在文件中加入192.168.0.111 www.imooc.test
      注意:如出现不能保存hosts文件的情况,需要更改文件的权限
      右击hosts文件 →属性→安全→编辑→找到当前使用的用户→在权限下勾选完全控制→确定 权限修改
    9. 编辑conf目录下的httpd.conf文件:vim httpd.conf
      <Directory “/data/www”>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
      </Directory>虚拟机配置图2
    10. 重启服务器: service httpd restart
    11. 打开浏览器访问www.imooc.test 如果没有出现index.html中的内容,输入命令setenforce 0,再次访问应该就可以显示了。(setenforce 0可以设置宽松模式,setenforce 1强制模式,此操作是临时的,重启之后恢复默认为强制模式)
    12. 解决重启后不恢复为默认:
      1. 编辑目录/etc/selinux下的config文件:vim /etc/selinux/config 虚拟主机配置图3
  • 配置伪静态
    1. 编辑目录/etc/httpd/conf下的httpd.conf文件:vim /etc/httpd/conf/httpd.conf
    2. 搜索/LoadModule加入以下代码:
      伪静态配置1
    3. 在之前配置的地方加入一下代码: 伪静态配置2

Nginx

Nginx基本操作

解释命令
安装yum install nginx
启动service nginx start
停止service nginx stop
重载service nginx reload

Nginx拓展知识

Nginx安装

  • 添加CentOS7 Nginx yum资源库,命令:

  • 虚拟主机配置,多域名、多端口匹配值
    (修改配置文件后用reload重载就可以加载到修改的配置文件)

    • Nginx的目录结构 Nginx目录结构
    • Nginx主页目录:/usr/share/nginx/html/index.html 可以更改
    • 进入到/etc/nginx/conf.d目录下,复制一份文件:cp default.conf imooc.conf
    • 修改配置文件imooc.conf
      Nginx配置多域名、多端口
  • 伪静态配置
    Nginx伪静态配置

  • 日志格式化配置

    • 编辑/etc/nginx/目录下的nginx.conf文件 Nginx日志格式化配置
    • 根据不同的虚拟主机配置不同的日志文件,编辑/etc/nginx/conf.d/目录下的imooc.conf文件。 Nginx日志格式化配置2
  • 反向代理和负载均衡
    反向代理:
    Nginx反向代理配置
    负载均衡:Nginx负载均衡配置

  • 调试技巧
    Nginx调试配置

数据库服务MySQL

MySQL基本操作

解释命令
安装服务端yum install mysql-community-server
启动service mysqld start/restart
停止service mysqld stop

MySQL8.0安装

  1. CentOS7默认安装mariadb数据库,先将mariadb数据库卸载:yum remove mariadb-libs.x86_64
  2. 下载Mysql源:点击跳转到下载页面
    MySQL下载1MySQL下载2
    复制完地址后,在命令窗口进入到/tmp/目录下,进行下载:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm(此处粘贴你复制的链接地址)
  3. 安装源:yum localinstall mysql57-community-release-el7-8.noarch.rpm
  4. 安装MySQL服务:yum install mysql-community-server
  5. 启动MySQL服务:service mysqld start
  6. 查看默认密码:cat /var/log/mysqld.log | grep “password”
  7. 使用密码进行登录Mysql服务:mysql -uroot -prPcy+Qtgx1i2(rPcy+Qtgx1i2为你查看到的密码)
  8. 重置密码
    1. 设置复杂密码,例如abc123@xxx,步骤如下
      1. 编辑文件/etc/my.cnf,在【mysqld】模块添加:skip-grant-tables 保存退出
      2. 重启MySQL服务:service mysqld restart
      3. 登录:mysql -u root -p
      4. 选择数据库mysql:use mysql;
      5. 将密码置空:update user set authentication_string = ‘’ where user = ‘root’;
      6. 退出:quit;
      7. 去掉刚开始加入的skip-grant-tables,然后重启服务,并登录mysql
      8. 执行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘abc123@xxx’;
    2. 设置简单密码,例如123456,需要进行特殊配置,步骤如下
      1. 在上面设置复杂密码的第7步后面执行两条语句:set global validate_password.policy=0;和set global validate_password.length=1;
      2. 再执行 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;

MySQL拓展知识

  1. 远程连接
    1. 登录MySQL:mysql -u root -p 回车输入你的密码
    2. 使用mysql数据库进行操作,查看user表 在这里插入图片描述
    3. 完成以上步骤后执行命令:flush privileges; 或者重启MySQL服务器
    4. 打开windows系统下的Navicat客户端新建连接 Navicat新建连接图
    5. 如果连接时将会出现如下错误:“2059 - authentication plugin ‘caching_sha2_password’ cannot be loaded: 乱码”,此时有如下操作:
      1. ALTER USER ‘root’@’%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;(password为root的密码)
      2. ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;(password为root的密码)
      3. flush privileges; 或者重启MySQL服务器
  2. 开启Cenelog
    1. 作用:查看你当前的操作,可查错
    2. 开启步骤:
      1. 登录MySQL服务,然后设置general.log文件的目录:set global general_log_file="/tmp/general.log";
      2. 设置开启general.log,也可进行关闭:set global general_log=on;
      3. 新开一个终端,登录当前账号,可查看MySQL服务执行的语句:tail -f /tmp/general.log

远程连接总结:
Mysql远程连接报错:authentication plugin caching_sha2

mysql 8.0 默认使用 caching_sha2_password 身份验证机制,从原来的 mysql_native_password 更改为 caching_sha2_password。

从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。

客户端不支持新的加密方式。

方法之一,修改用户的密码和加密方式

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
mysql8.*的新特性 caching_sha2_password 密码加密方式

以前版本的mysql密码加密使用的是 mysql_native_password,新添加的用户密码默认使用的 caching_sha2_password。
如果在以前mysql基础上升级的 就得用户使用的密码加密使用的是 mysql_native_password。如果使用以前的密码加密方式,就修改文件 /etc/my.cnf

  1. 新建用户和权限操作
    1. 新建用户:create user ‘账号’@’%’ identified by ‘密码’; 在这里因为是新建的用户,加密方式为caching_sha2_password,所以此处参加上面的操作进行密码加密方式的修改。
    2. 权限操作:
      1. 权限授予:grant all privileges on . to ‘账号’@’%’; 授予该账号所有权限。
      2. 权限回收:revoke all privileges on . from ‘账号’@’%’;

下图是privilege特权表你只需要把你想要授权的privleges填入语法权限那里就OJBK了。privileges特权表
5. 忘记root密码怎么办:参照上面的重置密码方式,重新设置密码。

MySQL客户端工具

  • SQLyog
  • Navicat
  • HeidiSQL
  • Sequal Pro
  • phpMyadmin

缓存服务Redis和MEMCACHED

Memcached基本操作

解释命令
安装yum install memcached
启动memcached -d -l -m -p等等,可通过man memcached命令查看
停止kill pid

使用telnet命令可以测试某服务是否能连接:
telnet 127.0.0.1 80
telnet命令详情请点击链接:Linux | telnet命令 菜鸟教程

Redis基本操作

解释命令
安装源码编译安装
启动redis-server start/restart
停止redis-server stop
客户端redis-client

Redis 安装

  1. 首先去Redis官网下载源码包,进入官网,复制下载链接地址。Redis链接地址
  2. 进入到/tmp/目录下执行命令:wget http://download.redis.io/releases/redis-5.0.5.tar.gz 粘贴上你复制的地址。
  3. 下载好后进行解压:tar -xzvf redis-5.0.5.tar.gz
  4. 进入redis-5.0.5目录执行命令:make 根据错误提示安装相应的服务。
  5. 根据错误提示安装gcc,执行命令:yum install gcc
  6. 安装好后执行:make MALLOC=libc
  7. 最后执行命令进行安装:make install

Redis的启动

  1. 进入到/tmp/redis-5.0.5/src/目录下:cd /tmp/redis-5.0.5/src
  2. 执行命令ls查看目录下所有文件及文件夹,常用工具介绍:
命令简介
redis-serverRedis 服务器端启动程序
redis-cliRedis 客户端操作工具,也可以用telnet根据其纯文本协议来操作
redis-benchmarkRedis 性能测试工具
redis-check-aof数据修复工具
redis-check-dump检查导出工具
  1. 在/src/目录下启动Redis:./redis-server
  2. 在/src/目录下打开文本命令行:./redis-cli Redis 相关操作语句请点击链接自行学习:Redis 命令 | 菜鸟教程

Java 运行环境配置

  • Java 安装
    1. 命令:sudo yum -y install java-1.8.0-openjdk*
    2. 检查是否安装成功:java -version
  • Tomcat 安装
    1. 去Tomcat官网复制tomcat下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz
    2. 在命令行执行命令:wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz
    3. 解压缩刚刚下载的压缩文件:tar -xzvf apache-tomcat-9.0.6.tar.gz
    4. 解压完成后进入到bin目录下启动tomcat:sh startup.sh
    5. 打开浏览器访问:192.168.0.111:8080 成功会看到一只猫,没成功的话试着关闭防火墙再访问。
  • Maven 安装
  • Tomcat 和 Nginx 配合
  • 实例访问:java.imooc.test

Git 版本管理工具

Git 常用命令

  • 安装:yum install git
  • git命令自动补全设置

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t &ThinSpace; . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值