1. Linux介绍(了解)

1.1、Linux和Windows的区别

Linux是一款操作系统。正规开发服务器项目部署都是放在Linux操作系统上。

Windows一款操作系统,民用操作系统。娱乐、影音、上网。

1.2、Linux历史及使用场景

Linux诞生90年代,仿制Unix操作系统。

Linux是免费的,开源的

Unix是收费的,封闭的。

Linux使用场景:服务器操作系统,移动设备(安卓手机,平板电脑),路由器(WIFI),交换机,智能家居,Java程序开发

1.3、Linux的版本

Linux的版本分为两种:内核版本(https://www.kernel.org/)和发行版本

Linux内核版本:Linux内核运维开发小组。 源码在一定程度上不是开源的。

Linux发行版本:由各大互联网/软件公司定制。 外围的样式功能的源码完全开源

一个内核版本是有多种多样的发行版本

Ubuntu:以强大的桌面应用为主,吸收不少Windows用户。

  • 因为桌面应用会在一定程度上大量占用系统资源,开发。
  • 服务器部署上,不会优先选择Ubuntu

CentOS:对服务器性能进行了一定程度的优化,性能比较高,比较稳定。

  • 服务器操作系统的优选CentOS

2、Linux安装【重点】

2.1、虚拟机、Linux安装

2.2、CentOS安装jdk、tomcat、mysql

2.3、Linux目录介绍

1538621186769

  • /Linux系统根目录

  • /etc:(etcetera) 系统配置文件存放的目录,不建议在此目录下存放可执行文件。

    重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

    注:/etc/X11存放与 x windows 有关的设置(防火墙文件,网络设置文件,JDK环境配置文件,mysql)

  • home:存放所有普通用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

  • /root系统管理员root(超级用户)的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下

    每一个用户都有家目录,超级管理员root家目录 /root

    Linux命令行模式中相当于Windows的桌面

  • /usr:(unix shared resources):应用程序存放目录,比较重要的目录/usr/local本地系统管理员软件安装目录(安装系统级的应用)

    /usr/bin 存放应用程序

    /usr/share 存放共享数据

    /usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件

    /usr/local:存放软件升级包

    /usr/share/doc: 系统说明文件存放目录

    /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。
    ​ Jdk,tomcat,mysql,redis,nginx

  • /opt额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里

以上建议并不是强制性约束

2.4 网络三种连接方式

2.4.1 桥接模式

桥接模式(Bridged):虚拟机是一台独立的电脑,直接连接到实际的网络上,与宿主机没有任何联系。

1543535328477

2.4.2 仅主机模式

这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。

仅主机模式(host-only):虚拟机可以访问宿主机,宿主机无法访问虚拟机,虚拟机无法上网

1543535410144

2.4.3 NAT 模式

这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。

NAT模式

  • 虚拟机可以访问宿主机,宿主机可以访问虚拟机

  • 此时宿主机相当于路由器,虚拟机可以通过宿主机上网

  • 宿主机可以配置254个虚拟机

1543535431117

3、常用命令【重点】

Linux命令中参数,一般都是无序的。特殊情况下除外

注意:Linux中的命令严格区分大小写的!

3.1、磁盘管理命令

ls 列出目录内容

  1. ls(list)功能:列出目录内容

  2. 格式:

    ls [参数] [文件或目录]
    
    # 参数
    -a或--all   查询所有文件和文件夹,包含隐藏。注意隐藏文件、特殊目录、. 和 ..
    -l           查询详细列表    ls -l-->简写:ll
    -h             友好展示信息    ll -h (d目录,-普通文件, l链接)
    
    -t          用文件和目录的更改时间排序。
    -r             反向排序
    --help       在线帮助
    
  3. 常用:

    ls -l        --> 此命令非常常用,提供简化版命令 ll
    ls -al
    ll /home/    --> 显示指定目录下的内容
    
  4. eg:

    需求:展示某个目录下的内容    ls 目录名
    所在位置:/root
    想要查看:/etc目录下的内容
    命令:ll -h /etc
    

cd 切换目录

  1. cd(change directory) 功能:切换目录

  2. 语法:

    # 格式
    cd [目录]
    
    # 常用
    cd /目录名   ,任意目录切换到指定目录中     /目录名-->Linux的绝对路径
                                           windows绝对路径-->c:/xxxx/xxx.jpg?raw=true
    cd ../      ,向上一层目录
    cd ~        ,切换到当前用户 家目录。root用户家目录 /root
    cd /        ,切换到Linux的 根目录
    cd -          ,切换到上一次访问的目录。   只能两个目录相互切换
    cd ..        ,上一级目录
    cd            ,缺省当前用户目录
    
  • Linux绝对
    • eg:cd /etc/x1 先切换到 /目录,然后在 /目录 中找到子目录 etc,在 etc 中找 子目录x1
    • 特点:在任意目录都可以随意切换
  • Linux相对
    • eg:cd x1/x2 在当前目录中寻找子目录x1, 在x1中寻找子目录x2
    • 特点:必须确定 当前目录 下有子目录x1

pwd 显示当前的所在目录

  • pwd(print working directory) 功能:显示工作目录(当前的所在目录)。返回绝对路径

mkdir 创建目录

  1. mkdir(make directoriy)功能: 创建目录

  2. 语法

    # 格式
    mkdir -p 文件夹名称
    
    # 参数
    -p  父目录不存在情况下先生成父目录 (parents)
    -v    显示命令执行过程中的详细信息
    
  3. 注意:

    使用mkdir创建带后缀的文件时,创建的是目录,不是文件(创建文件使用touch命令)

    1539658915126

    1539659032657

  4. eg:

    # 1
    需要在/root/t1目录下创建一个t2目录
    位置:/root
    命令:相对路径:mkdir t1/t2
    绝对:mkdir /root/t1/t2
    
    # 2
    需要在/root/t3目录下创建一个t4目录
    位置:/root
    条件:t3和t4都不存在
    命令:mkdir -p t3/t4
    

rmdir 删除空目录

  • rmdir(remove directory) 功能:删除空目录

指令快捷键

  1. 历史输入
    使用上、下箭头可以找出上一条指令和下一条指令

  2. Tab代码补全
    使用tab键可以快速输入指令
    比如:我要输入shutdown指令,这时,我们可以只输入shut然后按下tab键,即可自动把shutdown补全

    注意:使用两下Tab补全时,如果匹配的结果有多个,这时候将会把所有匹配的结果展示出来。当结果很多时将会出现以下结果:

    1539654279277

    y之后会列出所有匹配的结果,但因为129个比较多,而在电脑中无法一次全显示出来,所以先显示一部分:(More代表还有更多,这时按回车就可以向下滚动,按下Ctrl+C将会退出)

    1539654354678

3.2、文件浏览(管理)命令

日志文件,XML,properties文件

cat 快捷查看当前文件的内容

  1. cat(catenate)功能:快捷查看当前文件的内容

    cat适合查看少量信息的文件

  2. 语法

    # 格式
    cat 文件名
    

more 分页显示文件内容

  1. more功能:分页显示文件内容,还支持直接跳转行等功能

  2. 语法

    more 文件名
    
  3. 操作:

    Enter    向下n行,需要定义。默认为1行
    空格键    向下滚动一屏 或 Ctrl+F
    B        返回上一屏 或 Ctrl+B
    q        退出more
    

less 分页显示文件内容

  1. less功能:分页显示文件内容,操作更详细

  2. 语法

    # 格式
    less -mN 文件名 
    
    # 参数
    -m  显示类似more命令的百分比
    -N  显示每行的行号
    
  3. 操作:

    Enter    向下n行,需要定义。默认为1行
    空格键    向下滚动一屏 或 Ctrl+F
        B    返回上一屏 或 Ctrl+B
        q    退出more
    
        d    前进半页
        u    后退半页
    回车键    前进一行 或 方向键向下
        y    后退一行    或 方向键向上
        v    进入vim编辑器
    /字符串   向下搜索
    ?字符串   向上搜索
    左右方向键 相当于水平滚动条
    
  4. 特点:

    适用于大量数据的查看

tail 指定文件末尾内容

  1. 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件

  2. 语法

    # 格式
    tail[必要参数][选择参数][文件]
    
    # 参数
    -n<行数>    显示行数
    -f         循环读取
    
  3. eg:

    img

    • & 表示后台运行,否则占用终端
    • ctrl + c 退出

3.3、文件操作命令

文件

  1. 隐藏文件

    Linux中以 点. 开头的是隐藏文件,使用ls命令是查看不到的,需使用ls -a

  2. 目录与文件的区别

    当我们使用ls命令列出目录中的所有子目录和文件时,如何区分哪些是文件哪些是目录?
    可以通过详细信息中第一列的信息来区分:以 d 开头的是目录,以 - 开头的是文件

    1539658318279

touch创建文件

  1. 功能:创建文件

  2. 语法:

    touch 绝对路径/相对路径
    

cp 复制

  1. cp(copy):复制文件或者复制目录

  2. 复制文件

    • 语法

      cp 需要复制的文件 复制的位置
      

      注意:cp可以进行重命名操作:

      • cp demo1.java t1/ddd.java

        当将一个 文件位置 以不同名字复制到当前文件时,意思是复制并重命名;即 将demo1.java复制到t1目录中,并重命名成ddd.java

    • eg:

      需求:把/root/Demo1.java文件 复制到  /root/t1 目录中
      位置:/root
      命令:cp Demo1.java t1
           cp /root/Demo1.java /root/t1
      
      需求:把/root/Demo1.java文件 复制到  /root/t1 目录中,改名为ddd.java
      位置:/root
      命令:cp Demo1.java t1/ddd.java
      
  3. 复制目录

    • 语法

      # 格式
      cp -r 需要复制的目录 复制的位置
      
      # 参数
      -r或--recursive  递归处理,将指定目录下的文件与子目录一并处理 复制目录必须使用-r
      
  • eg:

    需求:把/root/t5目录 复制到  /root/t1目录中
    位置:/root
    命令:cp -r t5 t1
         cp -r /root/t5 /root/t1
    
    cp ./abc ./xxx                #无法复制目录
    cp -r ./abc ./xxx            #复制目录必须使用 -r参数
    

mv 移动、更名

  1. mv(move) 功能: 移动更名 现有的文件或目录

  2. 移动文件

    • 语法

      # 格式
      mv -f 需要移动的文件 移动的位置
      
      # 参数
      -f或--force  若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录,不进行询问
      
    • eg:

      需求:把/root/t5 目录 移动到 /root/t3目录中
      位置:/root
      命令:mv t5 t3
      
      需求:把/root/t5 目录 移动到 /root/t3目录中
              不询问,直接覆盖
      位置:/root
      已知:/root/t3目录中 已经有一个t5目录了
      命令:mv -f t5 t3
      
  3. 文件更名

    • 格式:

      mv 需要移动的文件 新名字
      ## 必须是在同一目录中进行此操作
      
    • eg:

      文件/目录更名操作:
      需求:把/root/Demo1.java  改名为 hehe.java
      位置:/root
      命令:mv Demo1.java hehe.java
      

rm 删除

  1. rm(remove) 功能:删除文件或目录

  2. 删除文件

    • 语法

      rm 文件名
      
  3. 删除目录

    • 语法

      # 格式
      rm -rf 目录名
      
      # 参数
      -f或--force          强制删除文件或目录,不进行询问
      -r或-R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。删除目录必须使用-r
      
  4. 注意

    rm -rf *     删除 当前目录 下所有内容
    rm –rf /*    删除Linux系统 根目录 下所有内容
    
  5. eg:

    需求:删除/root/t5 目录, 
    位置:/root
    已知:t5目录下有子目录或者文件
    命令:rm -rf t5
    

find 查找

  1. find功能:查找文件或目录

  2. 语法

    find 目录名 -name '需要查找的字符串'
    
    -name 指定字符串作为寻找文件或目录的范本样式
    * 表示0~多个任意字符 eg:find t1 -name '*.txt'
    
  3. eg:

    需求:查找/root目录下 所有以ins开头的文件或者目录
    位置:/root
    命令:find /root -name 'ins*'
    

3.4、文档编辑命令

Windows是有记事本
Linux也有类似的记事本功能 VIM编辑器

VI 编辑

  1. 操作:

    • 输入 vi 文件名 进入 “命令(一般)模式”
    • 按下 “i” 从一般模式,进入“插入模式”
    • 按下 “esc” 从“插入模式”退出到“一般模式”
    • 在“一般模式”下,输入 “:wq”,退出编辑

    1538637143785

vim 命令

  1. 操作:

    • 输入 vim 文件名vi 文件名 进入 “一般模式”
    • 按下 “i” 从一般模式,进入“插入模式”
    • 按下 “esc” 从“插入模式”退出到“一般模式”
    • 在“一般模式”下,输入 “:wq”,退出编辑

    1538637143785

    • 一般(命令)模式:
      • 可以浏览文件内容,可以进行文本快捷操作(单行复制,多行复制,单行删除,多行删除…)
      • i/a/o 可以切换到 插入模式
        : 可以切换到 底行模式
    • 插入模式:
      • 可以编辑文件内容。
      • ESC 可以切回 一般模式
    • 底行模式:
      • 可以进行强制退出不保存操作 q!
      • 可以进行保存并退出操作 wq

3.5、grep 、 管道|、重定向输出>>

grep 正则表达式

  1. grep:正则表达式,进行字符串搜索工作

    用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活

  2. 语法

    # 格式
    grep -i 需要搜索的字符串 搜索的文件
    
    # 参数
    -i 忽略大小写查找数据
    

    符合规则,就会返回符合规则的

管道

  1. 管道命令: 可以连接多个Linux命令,其作用是将一个命令的输出用在另一个命令的输入

    1538638149167

  2. 格式:

    命令1 | 命令2 | 命令3……
    
  3. eg:

    需求:查询当前目录中,所有带ins关键字的行数据
    位置:/root
    思考:查询当前目录内容  ll
         查询字符串,返回字符串所在行  grep
    命令:ll | grep ins
    
    需求:分页显示ls的help信息
    命令:ls --help | more
    

重定向输出> >>

  1. 重定向输出

    • >

      定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空

    • >>

      将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响

    1539671830735

  2. 格式:

    注意:

  3. 使用:

    • 将一个文件夹的内容保存到文本文件中去,也就是将ls命令打印出来的内容都写到文本中去可以这样:

      # a.txt文件中就是ls命令打印出来的内容了
      ls -al >> a.txt
      

3.6、压缩、解压命令【重要】

  1. Linux常见压缩包: .tar 打包,大小不会进行压缩
    .tar.gz 打包并压缩文件大小

  2. 压缩:(参数顺序不变)

    # 格式
    tar -zcvf 压缩包名字.tar.gz 需要压缩的内容
    
    # 参数
    -z 是否需要用 gzip 压缩
    -c 建立一个压缩文件的参数指令(create)--压缩
    -v 压缩的过程中显示文件(verbose)
    -f 使用档案名称,在 f 之后要立即接档名(file)
    
    

    eg:

    例如:tar -zcvf hehe.tar.gz *   将当前目录下所有内容进行打包压缩,文件名hehe.tar.gz
    
    
  3. 解压:(参数顺序不变)

    # 解压到当前目录
    tar -zxvf 需要解压的压缩包名称 解压到当前目录
    # 解压到指定目录
    tar -zxvf 需要解压的压缩包名称 -C 指定压缩路径  解压到指定目录中
    
    # 参数
    -z 是否需要用 gzip 压缩
    -x 解开一个压缩文件的参数指令(extract)--解压
    -v 压缩的过程中显示文件(verbose)
    -f 使用档名,在 f 之后要立即接档名(file)
    
    

    eg:

    需求:需要把/root/t5/hehe.tar.gz  压缩包 解压到 指定目录中。指定目录/root/t5/t5
    位置:/root/t5
    命令:tar -zxvf hehe.tar.gz -C /root/t5/t5
    tar -zxvf hehe.tar.gz -C t5
    
    

3.7、系统命令

系统服务

服务,是指常期运行,常驻内存中的进程,比如,apache、mysql、ssh等

服务与端口

每个服务软件一般在运行时都会对应一个端口。
查看监听的端口:

ss –lntp

1539792074690

防火墙及防火墙设置

CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下

查看防火墙状态:

firewall-cmd --state
# running 防火墙处于开启状态
# not running 防火墙处于关闭状态
直接关闭防火墙

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动:

systemctl disable firewalld.service 

查看系统进程:ps -ef

需求:查看进程中 和 vim相关的进程
命令:ps -ef|grep -i vim

-e  此参数的效果和指定"A"参数相同,显示所有程序
-f  显示UID,PPIP,C与STIME栏位

强制杀死某个进程:kill -9 pid号

需求:查看进程 和 vim相关的进程有哪些,并将vim进程杀死
命令:ps -ef|grep -i vim
     Kill -9 pid号

-l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称
kill 9 表示强制终止

  1. 查看网络配置:ifconfig
    • 显示网络设备
  2. 测试和目标的连通性:ping 主机名或ip地址
    • 测试与目标主机的连通性
    • 会持续不断一直测试,直到ctrl+c
  3. Linux centos重启命令:reboot
  4. Linux centos关机命令:halt

3.8、其他命令(了解)

chmod 文件权限

  1. hmod(change mode) 功能:变更文件或目录的权限

  2. 语法:

    # 格式
    chmod [参数] [<权限范围><符号><权限代号>]
    
    # 参数
    -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理
    
    
    • 权限范围的表示法如下:
      • u:User,即文件或目录的拥有者
      • g:Group,即文件或目录的所属群组
      • o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
      • a:All,即全部的用户,包含拥有者,所属群组以及其他用户
    • 符号:
      • ‘+’添加权限
      • ‘-‘取消权限
    • 有关权限代号的部分,列表于下:
      • r:读取权限,数字代号为”4”
      • w:写入权限,数字代号为”2”
      • x:执行或切换权限,数字代号为”1”
      • -:不具任何权限,数字代号为”0”
  3. eg:

    mkdir xxx
    ll | grep xxx
    chmod u-rwx xxx        #取消xxx目录,用户“读写执行”权限
    chmod g-rwx xxx     #取消xxx目录,组“读写执行”权限
    chmod 777 xxx        #给xxx目录添加所有权限
    
    
  4. linux 权限格式:<类型><用户><组><其他用户>

    img

网络配置

  1. VIM命令配置

    • 网卡配置 cat /etc/sysconfig/network-scripts/ifcfg-eth0

    • 概要信息如下:

      DEVICE=eth0                 #网卡名称
      TYPE=Ethernet               #网卡类型
      ONBOOT=yes                  #是否开机启动网卡
      BOOTPROTO=static            #静态获取IP,其他取值:dhcp (如果设置dhcp下面红色不需要)
      IPADDR=192.168.44.100       #ip地址
      GATEWAY=192.168.44.2        #网关
      NETMASK=255.255.255.0       #子网掩码
      
      
  2. setup设置

    1. img

    2. 选择“网络配置”

      img

    3. 选择“设备配置”

      img

    4. 选择“第一块网卡”

      1538642891449

    5. 设置IP地址等详细信息

      img

命令总结 和 帮助

  • 内部命令:属于Shell解析器的一部分 (系统启动直接加载到内存的)

    cd   切换目录(change directory)
    pwd  显示当前工作目录(print working directory)
    help 帮助
    
    
  • 外部命令:独立于Shell解析器之外的文件程序(独立的可执行文件)

    ls    显示文件和目录列表(list)
    mkdir 创建目录(make directoriy)
    cp    复制文件或目录(copy)
    
    
  • 查看帮助文档

    • 内部命令:help + 命令(eg:help cd)

      1538643143565

    • 外部命令:man + 命令(eg:man ls)

      1538643159745

  • 不用特意记忆命令分类,开发中,如果需要查看命令参数,先使用man,如果没有结果,再使用help