zoukankan      html  css  js  c++  java
  • Linux学习

    Linux学习

    一.Linux介绍

    1.1 引言

    1. 开发环境: Win10 / Mac, 开发环境会安装大量软件, 会导致环境的稳定性和安全性降低.

    2. 生产环境: 程序运行的环境, 供用户使用. 有专业的维护人员, 一般人没有权限去操作

    3. 测试环境: 一般是克隆一份生产环境, 会将开发环境中的程序部署到测试环境中, 这个环境的主要目的是对程序进行检测, 收集程序中的各种问题, 交给开发人员进行修改.

    生产环境中, 常用的操作系统: Linux, Win Service, Unix 等

    Linux操作系统, 在生产环境中占据了大量的市场份额, Linux主要以稳定, 可靠, 免费的特点成为主流

    Linux操作系统现在已经成为后台开发人员必备的技能, 后期学习的各种知识都会涉及到Linux操作系统.

    1.2 Linux介绍

    在Linux操作系统出现之前, 还有一个OS, 叫做Minix, Minix操作系统是由Andrew教授研发出来. 最初是为了给学生上课, 参考 Unix, 自己写了一个操作系统, 并且命名为Minix. 同时将Minix开源. 供学校内部的研究和教学. 到2000年, Andrew将Minix操作系统完全对外开源.

    Minix 由于完全对外开源后,在互联网上迅速传播, 但大家在使用时, 发现Minix不是很完美, 内部存在各种问题.用户将问题解决后, 编写了一个补丁, 将补丁以 e-mail发送给Andrew, 但是Andrew教授最初目的只是为了教学和研究.

    与此同时,一位芬兰大学生Linus,在Minix基础上,自己添加了一些补丁和插件, 将其命名为Liunx操作系统, 并且完全对外开源, 并开始了Linux维护.

    Git 也是 Linus 研发的.

    1.3Linux内核版本

    1.Linux的内核版本

    https://www.kernel.org/

    2.Linux的发行版本

    1.4 Linux和Windows区别

    1. Linux是严格区分大小写的, Windows无所谓.

    2. Linux中一切皆是文件.

    3. Linux中文件没有后缀的, 但是他有一些约定俗成的后缀

      1. tar, tar.gz: 压缩包; conf: 配置文件 ....

    4. Windows下的软件一般是无法直接运行在Linux中.

    我们在学习Linux时, 参考Windows下做了什么, 就在Linux中做什么.

    二.Linux安装

    安装Linux, 需要一个虚拟机来搭建

    1.推荐软件: VMware 或 Virtual Box

    2.需要一个Linux镜像文件: Cent OS 7

    3.安装一个连接Linux的图形化界面: Xterm, SSH, XShell (选用: Xterm)

    2.1 安装VMware

    傻瓜式安装

    2.2 安装Xterm

    解压即可使用

    2.3 Vm中安装Linux

    1. 选择新的虚拟机, 典型, 下一步

    1. 选择稍后安装OS

     

    1. 选择Linux, 并且选中 CentOS 7

    1. 自定义虚拟机名称 和 安装位置

    1. 拆分成多个文件存储

    1. 编辑虚拟机设置

    7.开启虚拟机, 开始CentOS 7 的安装,设置语言项

    1. 配置安装位置, 网络和主机名(开启即可)

    1. 开始安装后, 设置ROOT用户的密码

    1. 安装成功, 并成功登录

    2.4 使用Xterm 连接 Linux

    1. 通过 ip a 的命令, 查看当前Linux的ip地址, 通过Xterm连接

    1. 打开Xterm, 选择左上角 Session, 选择 SSH 连接方式, 输入查询到的 Linux 的 ip 地址, 再输入用户名: root[你自己的用户角色], 确定.

    • 输入密码, 敲击回车确认

     

    三.Linux基本操作

    3.1 Linux的目录结构

    Windows的目录结构是带有盘符的. D: C: E:

    在Xtrem中输入 ls / 查看 Linux的顶级目录

    Linux 目录树状图

    1. root: 该目录为系统管理员 HOME 目录

    2. bin: 这个目录下放置着经常使用的命令

    3. boot: 这里存放的是启动Linux时的一些核心文件

    4. etc: 存放系统关系所需要的配置文件和子目录

    5. home: 普通用户的 HOME 目录

    6. usr: 默认安装软件的目录, 类似 Windows 中的 Program Files 目录

    7. opt: 主机额外安装软件摆放的目录

    P.S: Linux 中文件引用, 建议写为相对位置, 方便应用使用, 查找

    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 [-a -l -d] 目录名 ; 多个选项写法: ls -al

    # 目录名不填写, 默认为当前目录

    # -a:列出全部文件, 包括隐藏文件

    # -l:列举出全部的信息

    # -d:仅查看目录本身

    # Linux中的隐藏文件: 是以 .开头, 当前目录用 .表示, 上一级目录用 ..表示

    # 2.切换目录
    cd 具体路径 | 符号
    # 路径可以填写的内容
    符号表达的路径
       
    . 当前目录
    .. 上一级目录
    / 根目录
    ~ 当前登录用户的 HOME 目录
    返回

    # 3.创建目录
    mkdir [-p] 目录名
    # -p:代表创建多级目录时, 使用

    # 4.删除目录
    rmdir 目录名
    # 只能删除空目录
    rm [-rf] 目录名
    # 删除非空目录
    # -r:代表递归删除目录下的全部内容
    # -f:不询问,直接删除

    # 5.复制目录
    cp -r 来源目录 目标目录
    # -r:代表递归复制目录下的全部内容

    # 6.移动、重命名
    重命名: mv 目录名 新目录名
    移动: mv 目录名 路径
    # 如果第二个参数不存在, 就是重命名, 如果第二餐参数的路径存在, 就是移动

     

    4.2 文件的命令

    # 1.创建文件
    touch 文件名
    touch 文件名1 文件名2

    # 2.编辑文件
    vi 文件名 # 查看文件。(查看模式)
    i | a | o  # 进入编辑模式。(编辑模式)
    # i:在当前光标处,进入编辑模式。
    # a: 在当前光标后一格,进入编辑模式。
    # o: 在当前光标下一行,进入编辑模式。

    esc # 推出编辑模式, 回到查看模式
    : # 从查看模式进入到低行命令模式。(底行命令模式)
    # 在底行命令模式下,输入 wq: 保存并退出 ; 输入 q! : 不保存并退出
    # 在查看模式下, 摁ZZ【两下大写的Z】, 可以快速保存并退出

    # 3.在编辑文件时的其他操作
    # 在底行命令模式下, 可以输入的内容
    set nu				 # 查看文件的行号
    to 行号				# 快速跳转到指定行
    set nonu			 # 取消行号
    # 直接在查看模式下输入
    /具体内容			  # 类似 Windows 下的 Ctrl+F 搜索文件中具体内容所在位置, 按下n:next,查看下一个

    # 4.查看文件
    cat 文件名
    # 从第一行看是查看文件内容, 展示全部
    tac 文件名
    # 从最后一行开始展示
    nl 文件名
    # 显示文件的同时,展示行号
    more 文件名
    # 查看大文件时,可以一页一页的向下翻
    # 摁 空格【space】 继续向下查看
    # 摁 字母q 快速退出
    less 文件名
    # 查看大文件时,可以任意的向上或者向下翻
    # 方向键 上,下 :滑动; pgup, pgdn:上一页,下一页
    # 摁 字母q 快速退出
    head 文件名
    # 只查看前几行
    tail 文件名
    # 只查看后几行
    # tail -f 日志文件, 监控日志文件最新的几行

    # 5.移动或重命名文件
    mv 文件名 新文件名
    mv 文件名 目录

    # 6.复制文件
    cp 文件 目录

    # 7.删除文件
    rm [-f] 文件名
    # -f:是否询问

    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【大写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: direct,指定用户的 HOME 目录

    # 2.设置密码
    passwd 用户名

    # 3.切换用户
    su【switch user】 用户名
    
    # [root@localhost ~]#  ---> root用户在本地登录,并且当前在 ~ 目录下, #:代表超级管理员
    # [qf@localhost ~]$ ---> qf 用户在本地登录,并且当前在 ~ 目录下, $:代表是普通用户

    # 4.删除用户
    userdel [-r] 用户名
    # -r: 代表删除用户的同时,删除该用户的 HOME 目录
    P.S: 若出现进程被占用情况,Ctrl+D 或 exit命令 退出用户。

    # 5.修改用户信息
    usermod [-cgd] [选项指定的具体内容] 用户名
    # -c: comment, 给用户添加注释
    # -g: group,修改用户所在分组
    # -d: direct,指定用户的 HOME 目录

     

    4.4.2 用户组操作

    # 1.创建用户组
    groupadd 用户组名
    # 查看用户所在组
    groups 用户名

    # 2.修改用户组
    groupmod [-n] [选项指定的具体内容] 用户组名
    # -n:修改用户组名称

    # 3.删除用户组
    groupdel 用户组名
    # 只能删除 空用户组

     

    4.5 文件权限的修改

    在 Linux 中输入 ls -l 或 ll 查看文件和目录的详细信息

    实例中, a目录的第一个属性用 “d” 标识这个 a是一个目录。

    anaconda-ks.cfg 第一个属性用 “-” 标识它是一个文件

    在 Linux 文件详情的后面属性需要分为 三组【三个 rwx 】 查看

    • rwx:代表文件拥有者的权限

    • rwx:代表文件所属用户组的权限

    • rwx:代表其他用户对当前文件的操作权限

    • r:read,代表 读 的权限

    • w:write,代表 写 的权限

    • x:execute,代表 执行 的权限

    后续的第一个 root: 代表当前文件的拥有者

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

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

    4.5.1 对文件的权限修改

    使用 chmod 对文件的权限进行修改,一种是使用数字,一种是使用符号

    # 1. 数字方式
    chmod [-R] 1~7(写三个数字) 文件|目录
    # rwx 在这三个权限中: 000~111 , r:4,w:2,x:1; rwx一共三组, 所以要写三个数字
    # -R:修改一个目录权限时,可以添加 —R,将目录下的全部内容,都修改权限

    # 2.符号方式
    # user:u, gruop: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 profile

    找到 /etc 下面这么多都和 profile 有关的文件

    五.Linux下安装软件

    5.1 安装JDK

    # 1. 下载JDK的压缩包
    下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
    # 需要登录 Oracle 账户后才可以下载

    # 2.将下载好的jdk压缩包拉取到Linux 操作系统中
    # 通过 Xterm 携带的Sftp 将 jdk 压缩包拖拽到 Linux 操作系统

    # 3.将 jdk 的压缩包解压到 /usr/local
    tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local

    # 4. 将jdk的目录名修改
    cd /usr/local
    重命名jdk:mv jdk1.8.0_261/ jdk/

    # 5.配置环境变量
    # Linux 提供了两种环境变量的文件
    # 第一个是用户级别的环境变量, 存放在:~/.bashrc
    # 第二个是系统级别的环境变量, 存放在: /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存储库
    	wgt https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    	

    # 安装下载好的 rpm 包
    # 安装 rpm 包
    rpm -Uvh rpm包
    	例如: rpm -Uvh mysql80-community-release-el7-3.noarch.rpm 
    
    # 查看 rpm 包
    rpm -qa | grep 内容
    
    # 卸载 rpm
    rpm -e --nodeps rpm名称:
    	例如:rpm -e --nodeps mysql80-community-release-el7-3.noarch

    # 3. 选择发行版本
    # 查看一下默认选择的发行版本
    	yum repolist all | grep mysql
    # 通过编辑 /etc/yum.repos.d/mysql-community.repo 文件, 来修改发行版本
    # 将 80 版本的 enable 更改为 0; 将 57版本的 enable 更改为 1; 保存退出, 再次通过 yum repolist all | grep mysql 查看

    效果如上图,则修改完成


    # 4.安装MySQL 社区版服务
    yum -y install mysql-community-server

    # 5. 	启动 MySQL 服务, 并连接
    # 启动 MySQL 服务
    	systemctl start mysqld.service
    # 查看初始化密码
    	grep 'temporary password' /var/log/mysqld.log
    # 连接 MySQL 服务
    	mysql -u root -p
    	Enter password:随机密码
    # 修改密码
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd';
    # 要求密码,必须携带大写字母,小写字母,数字,特殊符号

    # 6.开启远程连接,并使用图形化界面操作
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'eric' @'%' IDENTIFIED BY 'P@ssw0rd' WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;

     

    5.3安装Tomcat

    # 1. 下载安装 Tomcat的压缩包
    wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz

    # 2. 解压压缩包到 /usr/local
    tar -zxvf apache-tomcat-8.5.57.tar.gz -C /usr/local

    # 3. 启动 Tomcat 并监听日志
    # 跳转到 Tomcat 的 bin 目录
    	cd	/usr/local/apache-tomcat-8.5.57/bin
    # 启动
    	./startup.sh
    # 监控日志
    	cd .. /logs
    	tail -f catalina.out
    # 启动成功如下

     

    六. 部署SSM工程

    部署项目到 Linux 中,需要注意以下内容:

    1. 项目要保证在 Windows 下是没有问题的,再考虑部署到 Linux。
    1. 将开发环境中的内容更改为测试环境。 1. 连接数据库的信息。 2. 存放文件的路径。 3. 日志文件存放的位置。 4. 项目路径问题。

    2. 将Maven项目打包。【war包】

    3. 根据项目路径的不同,将项目部署到 Tomcat 中。

    4. 在部署到Linux操作系统中后, 一定要查看日志。

  • 相关阅读:
    优化webstorm打开项目速度
    组件 -- Button
    组件 --BreadCrumb--面包屑
    组件 -- Badge
    组件 -- Alert
    表格-table 样式
    image 样式设置
    文本和字体样式设置
    bootstrap-网格系统
    c#方法
  • 原文地址:https://www.cnblogs.com/77-is-here/p/13531821.html
Copyright © 2011-2022 走看看