zoukankan      html  css  js  c++  java
  • 1_Linux

    一. Linux介绍

    1.1 引言

    • 在学习Linux之前, 大家先了解开发环境,生产,测试环境
      1. 开发环境: 平时大家大多是在Windows或者Mac操作系统下去编写代码进行开发,在开发环境中安装大量的软件 这样会导致环境的稳定性和安全性降低
      2. 生产环境: 是将程序运行在此环境中, 供用户去使用, 这个环境是有专业的人员去维护的, 一般人没有权限去操作生产环境
      3. 测试环境: 一般克隆一份生产环境, 会将开发环境中的程序部署到测试环境中. 这个环境的主要目的是去程序进程检测, 收集程序中的各种问题, 并交给开发人员进行修改
    • 生产环境中, 常用的操作系统比如有Windows 2003 service, Linux, Unix等等
    • Linux操作系统, 在生产环境中占据了大量的市场份额, Linux主要以稳定 , 可靠, 免费的特点成为全球使用最多的服务器操作系统
    • Linux操作系统现在已经成为后台开发人员必备的技能

    1.2 Linux介绍

    • 在Linux操作系统出现之前, 还有一个操作系统叫做Minix, Minix操作系统是由Andrew的大学教授研发出来的, 当时大学教授是为了给学生上课, 买了一套Unix操作系统, 参考Unix自己写了一个操作系统, 并且命名为Minix, 同时将Minix开源, 供学校内部的研究和教学, 到了2000年, Andrew将Minix操作系统完全对外开源
    • Minix由于完全对外开源之后, 在互联网上迅速的传播, 但是大家在使用时, 发展Minix不是很完美, 内部存在各种各样问题, 用户将问题解决后, 编写了一个补丁, 将补丁以邮件的方式发给Andrew, 但是Andrew教授最初的目的只是为了教学和研究
    • 与此同时, 一位芬兰的大学生Linus Torvalds出现了, 在Minix操作系统基础上, 自己添加了一些补丁和插件, 并将其命名为Linux操作系统, 并且完全对外开源, 而且开始维护Linux操作系统
    • 我们学习的Git也是Linus研发的

    1.3 Linux的版本

    1. Linux的发内核版本
    2. Linux的发行版本
      • 咱们要学习的发行版本就是CentOS

    1.4 Linux和Windows区别

    1. Linux是严格区分大小写的, Windows无所谓
    2. Linux中一切皆是文件
    3. Linux中文件是没有后缀的, 但是它有一些约定俗成的后缀
    4. Windows下的软件一般是无法直接运行在Linux中
    • 我们在学习Linux时, 参考Windows下做了什么, 就在Linux中做什么

    二. Linux安装

    1. 安装Linux, 我们需要一个虚拟机, 为了安装虚拟环境: VMware或者Virtual Box (这里我们使用VMware)
    2. 为了安装Linux, 需要一个Linux的镜像文件: CentOS7版本
    3. 安装一个连接Linux的图形化界面: Xterm, SSH, XShell (我们这里使用Xterm)

    2.1 安装VMware

    • 傻瓜式安装

    2.2 安装Xterm

    • 解压即可使用

    2.3 在VMware中安装Linux

    1. 打开VMware, 可以试用30天, 也可以使用密钥永久使用
      • ZF3R0-FHED2-M80TY-8QYGC-NPKYF
        YF390-0HF8P-M81RQ-2DXQE-M2UT6
        ZF71R-DMX85-08DQY-8YMNC-PPHV8
      • 上面三个密钥挑选一个使用
    2. 创建新的虚拟机
      1. 典型[推荐]
      2. 稍后安装操作系统
      3. 客户机操作系统选择Linux,版本选择CentOS 7 64位
      4. 虚拟机名称和位置可以自定义
      5. 指定磁盘容量这个界面不用动,直接下一步
      6. 完成
    3. 编辑虚拟机设置
      1. 内存设置为2GB
      2. 处理器: 每个处理器的内核数量设置为2
      3. 网络适配器: 设置为桥接模式, 勾选复制物理网络连接状态(如果自己的电脑连接的不是wifi,是手机热点,请选择NAT模式)
      4. CD/DVD(IDE): 使用ISO映像文件
        • 选择我们之前下载好的CentOS7镜像文件
    4. 开启此虚拟机
      1. 用鼠标点进去, 然后使用键盘的上下方向键选中第一个直接安装
      2. Ctrl+ALt可以返回我们的计算机,就可以正常使用鼠标了
      3. 选择中文,简体中文(中国),然后点击继续
      4. 点击系统下的安装位置, 最上方有个完成按钮,我们点击此完成按钮
      5. 点击系统下的网络和主机名,打开以太网连接, 连接上以后点击最上方的完成按钮
      6. 开始安装
      7. Root密码设置, 可以设置为root,比较好记,但是密码较短时需要点击两次完成
      8. 最后等待安装完成后点击重启按钮进入登陆界面
      9. login后先输入root, 密码再输入root(密文输入,我们是看不到的,密码输入root后enter回车), 显示[root@localhost ~]#代表登陆成功
      10. 输入ip a或者ip addr show ens33查询ip地址: 192.168.59.128

    2.4 使用Xterm连接Linux

    • 使用ip a的命令查看当前Linux的ip地址, 通过Xterm连接
    • 打开Xterm, 选择左上角的Session, 再选择SSH, 并且输入Linux操作系统的ip地址, 再输入用户名root,点击ok
    • 输入密码后就连接上了Linux操作系统了

    三. Linux基本操作

    3.1 Linux的目录结构

    • Windows的目录结构是带有盘符的: C:,D:,E:
    • 在Xterm中输入ls / 查看Linux的顶级目录
    • 选中要复制的内容,按住Shift+鼠标右键在Xterm中进行复制
    [root@localhost ~]# ls /
    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
    boot  etc  lib   media  opt  root  sbin  sys  usr
    
    1. root: 该目录为系统管理员的HOME目录
    2. bin: 这个目录下存放着经常使用的命令
    3. boot: 这里存放的是启动Linux时的一些核心文件
    4. etc: 存放系统管理所需要的配置文件和子目录
    5. home: 普通用户的HOME目录
    6. usr: 默认安装软件的目录, 类似Windows中的Program Files目录
    7. opt: 是主机额外安装软件摆放的目录

    3.2 获取Linux中的信息

    #1. 我是谁
    who am i
    
    #2. 我在哪
    pwd
    
    #3. 查看ip地址
    ip a | ip address
    
    #4. 清屏
    clear
    
    #5. ping 域名|ip
    ping 地址
    
    #6. 强制停止
    Ctrl + C
    

    四. Linux命令

    • Linux中命令的基本格式: 命令 [选项] [参数]
    • 需要注意, 个别命令是不遵循这个格式的
    • 当命令中有多个选项时, 是可以写在一起的, 并且选项也是有简写方式的, 命令 -选项A选项B

    4.1 目录的命令

    #1. 列出目录
    ls [-ald] [目录名]
    #目录名可不填写 默认为当前目录
    #-a: 列出全部的文件,包括隐藏文件
    #-l: 列出全部的信息
    #-d: 仅查看目录本身
    
    • Linux中的隐藏文件是以.开头的, 当前目录使用.表示, 上一级目录使用..表示
    #2. 切换目录
    cd 路径 | 符号
    #路径可以填写的内容
    #.: 当前目录
    #..: 上级目录
    #/: 根目录
    #~: 当前登陆用户的HOME目录
    #-: 返回
    #cd: /user是从根目录下查找user
    #cd: user是从当前目录下查找user
    
    #3. 创建目录
    mkdir [-p] 目录名
    #-p: 代表创建多级目录时使用
    
    #4. 删除目录
    rmdir 目录名
    #只能删除空目录
    rm [-rf] 目录名
    #删除非空目录
    #-r: 代表递归删除目录下的全部内容
    #-f: 不询问, 直接删除,不加-f会询问是否删除,y确定删除,g退出
    
    #5. 复制目录
    cp -r 来源目录 目标目录
    #-r: 递归复制全部内容
    
    #6. 移动, 重命名目录
    mv 目录名 新目录名
    mv 目录名 路径
    #假如当前目录下不存在b目录
    #mv a b 表示把a目录重命名为b目录
    #假如当前目录下存在b目录
    #mv a b 表示把a目录移动到b目录下
    #假如当前目录下存在b目录,且b目录下存在c目录
    #mv a b/c 表示把a目录移动到b目录下的c目录下
    #假如当前目录下存在b目录,但b目录下不存在c目录
    #mv a b/c 表示把a目录移动到b目录下并重命名为c目录
    
    #总结
    #如果第二个参数不存在,就代表重命名
    #如果第二个参数存在,就代表移动
    #如果第二个参数存在, 但是参数末尾的名称不存在,代表移动并重命名
    

    4.2 文件的命令

    #1. 创建文件
    touch 文件名
    touch 文件名1 文件名2
    
    #2. 编辑文件
    vi 文件名		#查看文件 (查看模式)
    i | a | o	  #进入编辑模式 (编辑模式)
    #i: 在当前光标处, 进入编辑模式
    #a: 在当前光标后一格, 进入编辑模式
    #o: 在当前光标下一行, 进入编辑模式
    #Shift+g跳到最后一行
    #再按Shift+4跳到最后一个字符
    esc			  #退出编辑模式,回到查看模式
    :			  #从查看模式进入到底行命令模式 (底行命令模式)
    #在底行命令模式下, 输入wq: 保存并退出, 输入q!: 不保存退出
    #在查看模式下, 按Shift+zz(也就是按两下大写字母Z), 可以快速保存并退出
    
    #3. 在编辑文件时的其他操作
    #在底行命令模式下,可以输入的内容
    set nu		#查看文件的行号
    to 行号	   #快速的跳转到指定行
    set nonu	#取消行号
    #直接在查看模式下输入
    /具体内容	 #类似Windows中的Ctrl+F搜索文件中的具体内容所在位置(按n查找下一个)
    
    #4. 查看文件
    cat 文件名
    #从第一行开始查看文件内容, 展示全部
    tac 文件名
    #从最后一行开始展示
    nl 文件名
    #展示文件的同时, 展示行号
    more 文件名
    #查看大文件时, 可以一页一页的向下翻(按空格向下翻页,按q退出)
    less 文件名
    #查看大文件时, 可以任意的向上或向下翻(PageUp和PageDn向上或下翻页,上下方向键一行一行查看, 按q可快速退出)
    head 文件名
    #只查看前几行
    tail 文件名
    #只查看后几行
    #tail -f 日志 监控日志
    
    #5. 移动,重命名文件
    mv 文件名 新文件名
    mv 文件名 目录
    #和之前的移动目录方式一样
    
    #6. 复制文件
    cp 文件 目录
    
    #7. 删除文件
    rm [-f] 文件名
    #-f: 不询问, 直接删除,如果不加-f就会询问是否删除,y确定删除,g退出
    

    4.3 针对压缩包的操作

    • Linux中常用的压缩包, 后缀大多数是.tar, .tar.gz, .tgz
    • 但是Linux不仅仅针对tar类型的压缩包, 也支持zip, rar这种Windows下的压缩包
    4.3.1 针对tar压缩包的命令
    #针对tar类型的压缩包操作
    #1. 解压压缩包
    tar [-zxvf] 压缩包名称 [-C 路径]
    #-z: 代表压缩包后缀是.gz的
    #-x: 代表解压
    #-v: 解压时,打印详细信息
    #-f: -f选项必须放在所有选项的最后, 因为它代表指定文件的名称
    #-C 路径: 可写可不写,不写就是默认解压到当前目录下, 写了就代表解压到指定目录下
    
    #2. 打包压缩包
    tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2...
    #-c: 代表打包
    
    4.3.2 针对zip压缩包的命令
    • Linux默认是不支持zip压缩包格式的
    • 需要安装两个软件
      • zip, unzip
    • yum -y install zip
    • yum -y install unzip
    #解压
    unzip 压缩包名称
    #打包
    zip 压缩包名称 文件1 文件2 目录1 目录2...
    

    4.4 用户&用户组的操作

    • Linux是一个多用户的操作系统, 任何一个用户想要操作Linux操作系统, 必须向系统管理员申请一个账号才可以使用, 以这个账号的身份去操作Linux
    • 用户的账号一方面可以帮助系统管理员追踪当前用户的操作, 另一方面可以控制当前用户对系统资源访问
    4.4.1 用户的操作
    #1. 创建用户
    useradd [-cgd] [选项指定的具体内容] 用户名
    #-c: 代表comment, 给用户添加一段注释
    #-g: 代表group, 可以修改用户的所在组
    #-d: 代表指定用户的HOME目录
    
    #2. 设置密码
    passwd 用户名
    
    #3. 切换用户
    su 用户名
    #[root@localhost ~]#	代表root用户在本地登录,并且当前在~目录下,#代表是超级管理员
    #[dz@localhost ~]$		代表用户dz在本地登录,并且当前在~目录下,$代表是普通用户
    
    #4. 删除用户
    userdel -r 用户名
    #-r: 代表删除用户的同时, 删除该用户的HOME目录
    #从普通用户切换到到root超级管理员有两种方式, 一是可以用exit退出,二是用su root切换到root
    
    #5. 修改用户(了解)
    usermod [-cgd] [选项指定的具体内容] 用户名
    #-c: 代表comment, 给用户添加一段注释
    #-g: 代表group, 可以修改用户的所在组
    #-d: 代表指定用户的HOME目录
    #usermod -g dz dz1 表示把用户dz1所在的组修改为dz,用户在后, 组名在前
    
    4.4.2 用户组的操作
    #1. 创建用户组
    groupadd 用户组名
    
    #2. 修改用户组
    groupmod [-n] [选项指定的具体内容] 用户组名
    #-n: 修改用户组名称
    #groupmod -n dzdz dz 表示把dz组改名为dzdz, 原组名在后, 新组名在前
    
    #3. 删除用户组
    groupdel 用户组名
    #只能删除不存在用户的用户组
    

    4.5 文件权限的修改

    • 在Linux中输入ls -l 或者ll查看文件和目录的详细信息
    [root@localhost ~]# ll
    总用量 16
    -rw-r--r--. 1 root root   21 6月   3 21:00 aaa
    -rw-------. 1 root root 1241 6月   3 18:45 anaconda-ks.cfg
    drwxr-xr-x. 2 root root    6 6月   3 22:00 b
    -rw-r--r--. 1 root root  227 6月   3 22:12 base.tar.gz
    -rw-r--r--. 1 root root  712 6月   3 22:31 base.zip
    drwxr-xr-x. 2 root root    6 6月   3 20:42 bbb
    -rw-r--r--. 1 root root    0 6月   3 20:47 yyy
    -rw-r--r--. 1 root root    0 6月   3 20:47 zzz
    
    
    • 实例中, b目录的第一个属性用"d"标识, 代表这个b是一个目录

    • anaconda-ks.cfg第一个属性用"-"标识, 代表它是一个文件

    • 在Linux文件详情的后面属性需要分为三组查看

      • rwx: 代表文件拥有者的权限
      • rwx: 代表文件所属组用户的权限
      • rwx: 代表其他用户对当前文件的操作权限
      • r: 代表read,读的权限
      • w: 代表write, 写的权限
      • x: 代表execute, 执行的权限
    • 后续的第一个root: 代表当前文件的拥有者

    • 后续的第二个root: 代表当前文件的所属组

    • 后续分别为: 文件的大小和最后修改时间

    4.5.1 对文件的权限修改
    • 使用chmod对文件的权限进行修改, 一种使用数字, 一种使用符号
    #1. 数字方式
    chmod [-R] 777 文件|目录
    #rwx在这三个权限中r:4, w:2, x:1
    #777代表拥有所有权限
    #-R: 当修改一个目录权限时, 可以添加-R, 代表将目录下的全部内容, 都修改权限
    
    #2. 符号方式
    #user: u, group: g, other: o, all: a
    #read: r, write: w, execute: x
    #赋予权限的方式 添加: +,减掉:-,设定:=
    chmod [-R] a=rw 文件|目录
    
    4.5.2 对文件的拥有者和所属组修改
    #修改文件的拥有者和所属组
    chown [-R] 拥有者:所属组 文件|目录
    #修改文件的拥有者
    chown [-R] 拥有者 文件|目录
    #修改文件的所属组
    chgrp [-R] 所属组 文件|目录
    

    4.6 Linux的其他操作

    #1. 进程的操作
    ps -ef
    #查看全部正在运行的进程
    ps -ef | grep 搜索的内容
    
    #杀死进程
    kill -9 pid
    
    #2. 服务的操作
    #针对服务的启动,停止,重启,开机自动启动,禁止开机自动启动,查看服务状态
    systemctl start|stop|restart|enable|disable|status 服务名称
    
    #3. 查看端口号占用情况
    #想使用指定的命令需要下载netstat
    yum -y install net-tools
    #查看端口号占用情况
    netstat -naop | grep 端口号
    
    #4. 访问地址
    curl 访问地址
    
    #5. 查找文件
    find 路径 -type f | grep 搜索的内容
    #-type: 类型 f: 代表文件
    

    五. Linux下安装软件

    5.1 安装JDK

    #1. 下载JDK的压缩包
    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
    #需要登陆才能下载
    
    #2. 将下载好的JDK压缩包拉取到Linux操作系统中
    #通过Xterm携带的Sftp将JDK压缩包拖拽到Linux操作系统中
    
    #3. 将JDK压缩包解压到/usr/local
    tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/local
    
    #4. 修改jdk的目录名
    cd /usr/local
    mv jdk1.8.0_291 jdk
    
    #5. 配置环境变量
    #Linux提供了两种环境变量的文件
    #第一个是用户级别的环境变量,存放在: ~/.bash
    #第二个是系统级别的环境变量,存放在: /etc/profile
    #如果想运行当前目录下的可执行文件,需要输入: ./可执行文件名
    #在环境变量文件中, 添加如下内容
    export JAVA_HOME=/usr/local/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    #设置好之后,要重新加载环境变量文件
    source /etc/profile
    #最终测试
    java -version
    #如果正确显示java版本信息则证明成功了
    

    5.2 安装MySQL

    #1. 安装MySQL的yum存储库
    #首先通过yum下载wget命令
    yum -y install wget
    #再通过wget下载MySQL的yum存储库
    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    
    #2. 安装下载好的rpm包
    #安装rpm包
    rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
    #查看rpm包
    rpm -qa | grep mysql
    #卸载rpm包
    rpm -e --nodeps mysql80-community-release-el7-3.noarch
    
    #3. 选择发行版本
    #先查看一下默认的发行版本
    yum repolist all | grep mysql
    #通过手动编辑/etc/yum.repos.d/mysql-community.repo 文件, 去修改发行版本
    vi /etc/yum.repos.d/mysql-community.repo
    #进入文件后,按i,a,o都可进入编辑模式
    #将8.0的enable更改为0, 5.7的enabled更改为1,保存(:wq)
    #然后再次通过yum repolist all | grep mysql查看一下当前的发行版本是不是5.7
    yum repolist all | grep mysql
    
    #效果如下
    mysql57-community/x86_64            MySQL 5.7 Community Server      启用:    504
    mysql57-community-source            MySQL 5.7 Community Server - So 禁用
    mysql80-community/x86_64            MySQL 8.0 Community Server      禁用
    mysql80-community-source            MySQL 8.0 Community Server - So 禁用
    
    #4. 安装MySQL社区版服务
    yum install mysql-community-server
    
    #5. 启动MySQL服务,并连接
    #启动MySQL服务
    systemctl start mysqld
    #查看初始化密码
    grep 'temporary password' /var/log/mysqld.log
    #连接MySQL服务
    mysql -u root -p
    Enter password:刚才查到的密码
    #进入MySQL后修改密码
    #密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符
    musql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root8031.';
    
    #开启远程连接, 并使用图形化界面操作
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'doublez'@'%' IDENTIFIED BY 'Root8031.' WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    #然后使用Navicat或者SQLyog进行连接
    #ip地址: 192.168.59.128(看自己虚拟机的ip是多少)
    #用户名: doublez
    #密码: Root8031.
    #端口号: 3306
    #注意: 如果没连上, 可能是因为虚拟机中防火墙的问题,我们可以把防火墙关掉
    #先查看一下防火墙服务
    ps -ef | grep firewalld
    #临时关闭防火墙服务
    systemctl stop firewalld
    #禁止开机启动
    systemctl dsiable firewalld
    

    5.3 安装Tomcat

    #1. 下载Tomcat压缩包
    wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.66/bin/apache-tomcat-8.5.66.tar.gz
    
    #2. 解压压缩包到/usr/local
    tar -zxvf apache-tomcat-8.5.66.tar.gz -C /usr/local
    
    #3. 启动Tomcat并监听日志
    #跳转到tomcat下的bin目录中
    cd /usr/local/apache-tomcat-8.5.66/bin
    #启动
    ./startup.sh
    #监听日志
    cd ../logs
    tail -f catalina.out
    
    #当看到下面这一行的时候,证明Tomcat启动成功了
    04-Jun-2021 05:15:25.093 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1121 ms
    #然后就可以去浏览器输入http://192.168.59.128:8080/, 最终确定是否成功启动Tomcat
    #关闭Tomcat
    ./shutdown.sh
    

    六. 部署SSM工程

    • 部署项目到Linux中需要注意以下内容
      1. 项目要保证在Windows下是没有问题的, 再考虑部署到Linux
      2. 将开发环境中的内容更改为测试环境
        • 连接数据库的信息(要修改ip地址,用户名,密码)
        • 存放文件的路径(只要是写成某某盘符下的,都要修改, 例如String pic = req.getContextPath() + "/static/images/" + newName)
        • 日志文件存放的位置(修改为: /usr/local/logs, 同时日志输出级别从DEBUG改为ERROR)
        • 项目路径问题(在各个跳转路径的前面加上${pageContext.request.contextPath}, 就没问题了,路径不要写死)
      3. 将Maven项目打包
      4. 根据项目路径的不同, 将项目部署到Tomcat中(先把Tomcat服务器打开)
        • 将war包扔进Xterm中的Sftp中,也就是root目录下
        • 再将war包复制到 /usr/local/apache-tomcat-8.5.66/webapps/
      5. 在部署到Linux操作系统中后, 一定要查看日志
        • cd ../logs
        • tail -f catalina.out
  • 相关阅读:
    Atitti  css   transition Animation differ区别
    Atitit 游戏引擎物理系统(1)爆炸效果
    Atitit.rsa密钥生成器的attilax总结
    新特性AAtitti css3 新特性attilax总结titti css
    Atitit 异常的实现原理 与用户业务异常
    Atitit.uke 团队建设的组织与运营之道attilax总结
    atitit 业务 触发器原理. 与事件原理 docx
    Atitit 基于dom的游戏引擎
    Atitit 团队建设的知识管理
    Javascript判断页面刷新或关闭的方法(转)
  • 原文地址:https://www.cnblogs.com/MRASdoubleZ/p/14851285.html
Copyright © 2011-2022 走看看