Linux-高级操作

# 1 Linux文件管理

## 1.1 touch命令

    在Windows系统中,我们如果想创建一个文本文档或者word文件的时候,通常的做法是
    鼠标右键---新建---文本文档,这样的话,我们就成功的创建了一个文件,而在Linux中,我们可以通过字符命令的形式进行创建

touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

ls -l 可以显示档案的时间记录

**使用者权限:所有权限用户**

**语法**

    touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

* **参数说明**:
* a 改变档案的读取时间记录。
* m 改变档案的修改时间记录。
* c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
* f 不使用,是为了与其他 unix 系统的相容性而保留。
* r 使用参考档的时间记录,与 --file 的效果一样。
* d 设定时间与日期,可以使用各种不同的格式。
* t 设定档案的时间记录,格式与 date 指令相同。
* --no-create 不会建立新档案。
* --help 列出指令格式。
* --version 列出版本讯息。

**使用 touch 创建一个空文件**

在 Linux 系统上使用 `touch` 命令创建空文件,键入 `touch`,然后输入文件名。如下所示

    touch a.txt

查看

    ls -l a.txt

**使用 touch 创建批量空文件**

在实际的开发过程中可能会出现一些情况,我们必须为某些测试创建大量空文件,这可以使用 `touch` 命令轻松实现

    touch a-{1..10}.txt

在上面的例子中,我们创建了 10 个名为a-1.txt` 到 `a-10.txt` 的空文件,你可以根据需要更改名称和数字

执行查看命令

    ls -l

我们\可以使用stat命令进行查看文件详情,如下:

    stat a.txt 

**关于stat命令:**

**stat命令用于显示inode内容。**

stat以文字的格式来显示inode的内容。

**语法**

    stat [文件或目录]

**文件上传和下载**

    1 先安装 yum -y install lrzsz
    2 要上传的文件直接拖入即可
    3 下载文件 sz 文件类名

## 1.2 vi与vim命令

### 1.2.1 vi/vim介绍

    使用vi/vim其实就相当于我们在Windows系统中创建文件、打开文件、编辑文件、保存文件操作.
    切记:日志文件不要这样打开,太大的文件容易到日服务器卡顿。

**1、vi介绍**

vi是 `visual interface`的简称, 是linux中**最经典**的文本编辑器。

* vi的特点
  * 只能是编辑 **文本内容**, 不能对 字体 段落进行排版
  * **不支持鼠标操作**
  * **没有菜单**
  * **只有命令**
* vi编辑器在 **系统管理 服务器管理** 编辑文件时, **其功能永远不是图形界面的编辑器能比拟的**

**2、vim介绍**

**vim**:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

vim 则可以说是程序开发者的一项很好用的工具。

### 1.2.2 vi/vim模式

vi/vim模式主要分为以下三种:

**命令模式**:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。**编辑模式:**在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。**末行模式:**在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
        三种模式简单总结下就是:

> 1、vim 开始进入时是命令模式

> 2、按下I的时候会进入编辑模式

> 3、按下ESC然后在按下:的时候是末行模式

### 1.2.3 打开和新建文件

    使用vim不但可以打开一个现存的文件;也可以生成(vim后的文件不存在的情况下)一个文件;有点类似于我们在Windows中输入notepad命令一样,我们输入notepad后就会打开一个文本文档,然后进行编辑--另存为。

**使用者权限:当前文件的权限用户**

* 在终端中输入vim在后面跟上 文件名 即可

    vim txtfile.txt

* 如果文件已经存在, 会直接打开该文件
* 如果文件不存在, 保存且退出时 就会新建一个文件

> 注意

> 我们通过下面的三种模式切换详细阐述vim的用法

### 1.2.4 三种模式切换

**1、进入命令模式**

上接上面的例子,我们执行下面的命令其实就是进入了命令模式

    vim txtfile.txt

**2、进入编辑模式**

上接上面的例子,按i进入插入模式

* 在 vi 中除了常用 `i` 进入**编辑模式** 外, 还提供了一下命令同样可以进入编辑模式

| 命令  | 英文  | 功能  | 常用  |
| --- | --- | --- | --- |
| i   | insert | 在当前字符前插入文本 | 常用  |
| I   | insert | 在行首插入文本 | 较常用 |
| a   | append | 在当前字符后添加文本 |     |
| A   | append | 在行末添加文本 | 较常用 |
| o   |     | 在当前行后面插入一空行 | 常用  |
| O   |     | 在当前行前面插入一空行 | 常用  |

由输入后我们看到【插入】(英文版为INSERT),说明我们进入了编辑模式

我们在里面插入数据,如下图

因为我们是一个空文件,所以使用【I】或者【i】都可以

如果里面的文本很多,要使用【A】进入编辑模式,即在行末添加文本

**3、进入末行模式**

编辑模式不能保存文件必须先推到命令模式先按Esc键退出到命令模式然后按小写的**:wq 正常保存退出**

进入末行模式—》按符号: 鼠标跑到屏幕的最后一行,执行效果如下图

然后按小写的**:wq 正常保存退出**

退出后显示【已写入】

**以下为其他的退出模式:**

:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出

:q! 当vim进入文件对文件内容有操作但不想保存退出

:wq 正常保存退出

:wq! 强行保存退出,只针对与root用户或文件所有人

> 总结

> 三种模式的切换,其实就完成了文件创建、编辑、保存、退出四个步骤

> 那么接下来,我们学习下一个命令

> 查看刚才新创建的文件

### 1.2.5 文件查看

    比如查看一个txt文档,在windows中,我们通常是打开一个文件,通过鼠标滚动查看文件不同节选的内容,而在Linux中,通过下面的命令,可以减少在Windows中手工查找的步骤,在Linux中通过命令+参数的形式进行定位查看、搜索查看
    需要安装工具  命令是:yum -y install lrzsz

以下5个为文件查看命令,**我们只讲4个常用的命令,head不在赘述**

| 序号  | 命令  | 对应英文 | 作用  |
| --- | --- | --- | --- |
| 01  | cat 文件名 | concatenate | 查看小文件内容 |
| 02  | less -N 文件名 | less | **分频** 显示大文件内容 |
| 03  | head -n 文件名 |     | 查看文件的**前一**部分 |
| 04  | tail -n 文件名 |     | 查看文件的**最后**部分 |
| 05  | grep 关键字 文件名 | grep | 根据**关键词**, 搜索文本文件内容 |

> 总结:

> 以上5个命令都可以查询文件的内容,他们的功能如下

> 通过 `cat` 会一次显示所有的内容, 适合 **查看内容较少** 的文本文件

> `less` 命令适合查看 **内容较多** 的文本文件

> 通过 `head` 命令查看文档的前几行内容

> 通过 `tail -10f 文件` 命令 查看文档(日志)的后几行内容

> 通过 `grep` 命令 搜索存在 **关键字** 的行

#### **1) cat命令**

    使用cat命令类似于我们在Windows中查看小型(太大的时候打开会卡死)的文件,cat常用的功能其实就等价于Windows中的
    txt---打开--查看

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt

**使用者权限:当前文件的权限用户**

**语法格式**

    cat [-AbeEnstTuv] [--help] [--version] fileName

**查看文件名为txtfile.txt的内容**

    cat txtfile.txt

**查看文件名为txtfile.txt的内容(加入行号)**

    cat -n txtfile.txt

#### 2) grep命令

    grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找
    grep除了能对文件操作为还可以查看我们的进程信息,类似于我们在Windows系统的任务管理器(任务栏--右键---启动任务管理器--进程)下的进程

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

grep 命令用于查找文件里符合条件的字符串,语法如下:

    grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

**使用者权限:当前文件的权限用户**

    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

1、搜索 **存在关键字【eeee】** 的行的文件

    grep eeee txtfile.txt 

2、搜索 **存在关键字【eeee】** 的行 且 **显示行号**

    grep -n eeee txtfile.txt 

3、**忽略大小写** 搜索 **存在关键字** 的行

    grep -i EEEE txtfile.txt 

4、搜索 **不存在关键字** 的行

    grep -v 中国 txtfile.txt 

**5、查找指定的进程信息(包含grep进程)**

    ps -ef | grep  sshd

> 说明

> 除最后一条记录外,其他的都是查找出的进程;最后一条记录结果是grep进程本身,并非真正要找的进程

**6、查找指定的进程信息(不包含grep进程)**

    ps aux | grep sshd | grep -v "grep"

     ps -ef|grep -c sshd

#### 3) tail命令

    tail命令类似于我们在windows中通过鼠标手工查找,比如查看文件最后10行,从第2行一直查看到文件末尾,或者只查看文件末尾的一些信息,这些windows中都是通过人为干预的方式进行查找,在Linux中我们可以通过tail命令实现

tail 命令可用于查看文件的内容,有一个常用的参数 **-f** 常用于查阅正在改变的日志文件。

**tail -f filename** 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

**使用者权限:当前文件的权限用户**

**命令格式:**

    tail [参数] [文件]  

**1、要显示 txtfile.txt 文件的最后 3 行,请输入以下命令:**

    tail -3 txtfile.txt 

**2、动态显示文档的最后内容,一般用来查看日志,请输入以下命令:**

    tail -f txtfile.txt

**3、显示文件txtfile.txt 的内容,从第 2 行至文件末尾**

    tail  -n +2  txtfile.txt

> 总结

> 在tail使用的过程中,我们使用最多的就是查看文件末尾多多少行

> 使用tail -nf txtfile.txt

> 通常都是在查看日志信息(报错调试时使用)

#### 4)less命令

    less命令也是查看文件的,只不过它适合查看 内容较多的文本文件,它也可以用于分屏显示文件内容,  每次只显示一页内容,有点类似我们做分页查询

less用于查看文件,但是less 在查看之前不会加载整个文件。

**使用者权限:当前文件的权限用户**

**语法**

    less [参数] 文件 ;

1、查看txtfile.txt文件

    less txtfile.txt

2、查看命令历史使用记录并通过less分页显示

    [itcast@localhost ~]$  history | less
        1  ifconfig
        2  reboot
        3  ifconfig
        4  reboot
        5  ifconfig
        6  su root
        7  ifconfig
        8  ping  www.baidu.com
        9  \
       10  ifconfig
       11  date
       12  hwclock --systohc
       13  su root
    
       ......略

我们输入【j】可以前进行

​ 输入【k】可以后退行

​ 输入【G】可以 移动到最后一行

​ 输入【g】可以移动到第一行

​ 输入【ctrl + F】 向前移动一屏(类似于我们在浏览器中的数据分页的下一页)

​ 输入【ctrl + B】 向后移动一屏(类似于我们在浏览器中的数据分页的上一页)

**其他命令**

1.全屏导航

* ctrl + F - 向前移动一屏
* ctrl + B - 向后移动一屏
* ctrl + D - 向前移动半屏
* ctrl + U - 向后移动半屏

2.单行导航

* j - 向前移动一行
* k - 向后移动一行

3.其它导航

* G - 移动到最后一行
* g - 移动到第一行
* q / ZZ - 退出 less 命令

### 1.2.6 vim定位行

    在日常工作中,有可能会遇到打开一个文件,并定位到指定行的情况
    例如: 在开发时, 知道某一行代码有错误,可以快速定位到出错误代码的位置
    这个时候,可以使用以下命令打开文件

由于我们这里还没有学到上传文件的命令,所以我们这里还是使用上面的txtfile.txt例子,我们打开文件定位到第6行,如下:

    vim txtfile.txt +6

### **1.2.7 异常处理**

* 如果 vim异常退出, 在磁盘上可能会保存有 交换文件
* 下次再使用 vim 编辑文件时, 会看到以下屏幕信息,

解决方案:

将后缀名为.swp的文件删除即可恢复

再次编辑文件不在出现提示警告!

### 1.2.8 操作扩展

要熟练使用vi/vim, 首先应该学会怎么在 命令模式下 快速移动光标编辑操作命令 能够和移动命令一起使用

**1) 上 下 左 右**

| 命令  | 功能  | 手指  |
| --- | --- | --- |
| h   | 向左  | 食指  |
| j   | 向下  | 食指  |
| k   | 向上  | 中指  |
| l   | 向右  | 无名指 |

也可以使用键盘上的上下左右箭头,这个更有方向感。

**2) 行内移动**

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| w   | word | 向后移动一个单词 |
| b   | back | 向前移动一个单词 |
| 0   |     | 行首  |
| ^   |     | 行首, 第一个不是空白字符的位置 |
| $   |     | 行尾  |

**3) 行数移动**

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| gg  | go  | 文件顶部 |
| G   | go  | 文件末尾 |
| 数字gg | go  | 移动到 数字 对应行数 |
| 数字G | go  | 移动到 数字 对应行数 |
| : 数字 |     | 移动到数字对应的 行数 |

**4) 屏幕移动**

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| Ctrl + b | back | 向上翻页 |
| Ctrl + f | forward | 向下翻页 |
| H   | Head | 屏幕顶部 |
| M   | Middle | 屏幕中间 |
| L   | Low | 屏幕底部 |

**5) 选中文本(可视模式)**

* 学习 复制 命令前, 应该先学会 **怎么样选中 要复制的代码**
* 在 vi/vim 中要选择文本, 需要显示 visual 命令切换到 **可视模式**
* vi/vim 中提供了 **三种** 可视模式, 可以方便程序员的选择 **选中文本的方式**
* 按 ESC 可以放弃选中, 返回到 **命令模式**

| 命令  | 模式  | 功能  |
| --- | --- | --- |
| v   | 可视模式 | 从光标位置开始按照正常模式选择文本 |
| V   | 可视化模式 | 选中光标经过的完整行 |
| Ctrl + v | 可是块模式 | 垂直方向选中文本 |

**6) 撤销和恢复撤销(保命指令)**

在学习编辑命令之前,先要知道怎样撤销之前一次 错误的 编辑操作

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| u   | undo | 撤销上次的命令(ctrl + z) |
| Ctrl + r | uredo | 恢复撤销的命令 |

**7) 删除文本**

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| x   | cut | 删除光标所在的字符,或者选中的文字 |
| d(移动命令) | delete | 删除移动命令对应的内容 |
| dd  | delete | 删除光标所在行, 可以删除多行 |
| D   | delete | 删除至行尾 |

提示: 如果使用 可视模式 已经选中了一段文本, 那么无论使用 d 还是 x, 都可以删除选中文本

删除命令可以和移动命令连用, 以下是常见的组合命令(扩展):

| 命令  | 作用  |
| --- | --- |
| dw  | 从光标位置删除到单词末尾 |
| d}  | 从光标位置删除到段落末尾 |
| ndd | 从光标位置向下连续删除 n 行 |

**8) 复制和剪切**

* vi/vim 中提供有一个 被复制文本的缓冲区
  * 复制 命令会将选中的文字保存在缓冲区
  * 删除 命令删除的文字会被保存在缓冲区
  * 在需要的位置, 使用 粘贴 命令可以将缓冲对的文字插入到光标所在的位置

| 命令  | 英文  | 功能  |
| --- | --- | --- |
| yy  | copy | 复制行 |
| d(剪切命令) | delete | 剪切  |
| dd(剪切) | delete | 剪切一行, 可以 ndd 剪切n行 |
| p   | paste | 粘贴  |

提示:

* 命令 d 、x 类似于图形界面的 **剪切操作** -- ctrl + x
* 命令 y 类似于 图形界面的 **复制操作** -- Ctrl +
* 命令 p 类似于图形界面的 **粘贴操作** -- Ctrl + v
* vi中的文本缓冲区只有一个,如果后续做过 复制、剪切操作, 之前缓冲区中的内容会被替换.

注意

* vi中的 **文本缓冲区** 和 系统的 **剪切板** 不是同一个
* 所以在其他软件中使用 `Ctrl + C` 复制的内容, 不能再 `vi` 中通过 `p` 命令粘贴
* 可以在 **编辑模式** 下使用 **鼠标右键粘贴**

**9) 替换**

| 命令  | 英文  | 功能  | 工作模式 |
| --- | --- | --- | --- |
| r   | replace | 替换当前字符 | 命令模式 |
| R   | replace | 替换当前行光标后的字符 | 替换模式 |

* `R` 命令可以进入 **替换模式**, 替换完成后, 按下`ESC` , 按下 `ESC` 可以回到 **命令模式**
* **替换命令** 的作用就是不用进入 **编辑模式**, 对文件进行 **轻量级的修改**

**10) 缩排和重复执行**

| 命令  | 功能  |
| --- | --- |
| >>  | 向右增加缩进 |
| <<  | 向左减少缩进 |
| .   | 重复上次命令 |

* **缩进命令** 在开发程序时, **统一增加代码的缩进** 比较有用!
  * 一次性 **在选中代码前增加 4 个空格,** 就叫做 **增加缩进**
  * 一次性 **在选中代码前删除 4 个空格**, 就叫做 **较少缩进**
* 在 **可视模式** 下, 缩排命令 主需要使用 一个 `>` 或者 `<`

在程序中, **缩进** 通常用来表示代码的归属关系

* **前面空格越少, 代码的级别越高**
* **前面空格越多, 代码的级别越低**

**11) 查找**

常规查找

| 命令  | 功能  |
| --- | --- |
| /str | 查找str |

* 查找到指定内容之后, 使用 `Next` 查找下一个出现的位置
  
  * `n` : 查找下一个
  * `N` : 查找上一个
* 如果不想看到高亮显示, 可以随便查找一个文件中不存在的内容即可
  
* 单词快速匹配
  

| 命令  | 功能  |
| --- | --- |
| *   | 向后查找当前光标所在单词 |
| #   | 向前查找当前光标所在单词 |

* 在开发中, 通过单词快速匹配, 可以快速看到这个单词在其他位置使用过

**12) 查找并替换**

* 在 `vi/vim` 中查找和替换命令需要在 **末行模式** 下执行
* 记忆命令格式

    :%s///g

1. 全局替换

* 一次向 替换文件中的 所有出现的旧文本
  
* 命令格式如下
  
      :%s/旧文本/新文本/g
  

2. 可视区域替换

* **先选中** 要替换文字的 **范围**
* 命令格式如下

    :s/旧文本/新文本/g

3. 确认替换:

c confirm 确认

* 如果把末尾的 `g` 改成 `gc` 在替换的时候, 会有提示! 推荐使用
  
* 命令格式如下
  
      :%s/旧文本/新文本/gc
  

1. `y` - `yes` 替换
2. `n` - `no` 不替换
3. `a` - `all` 替换所有
4. `q` -`quit` 退出替换
5. `l` - `last` 最后一个, 并把光标移动到行首
6. `^E` 向下滚屏
7. `^Y` 向上滚屏

## 1.6 find查找

**find概念**

find命令用来在指定目录下查找文件。

任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

**语法**

    find <指定目录> <指定条件> <指定内容>

**1、将目前目录及其子目录下所有延伸档名是 gz 的文件查询出来**

    find . -name "*.gz"

2、全局搜索 /

/代表是全盘搜索,也可以指定目录搜索

     find / -name  "java"

# 2 Linux备份压缩

    在Windows中我们对于一个大文件进行压缩的时候,通常会使用第三方工具,比如360压缩、快压等工具,把一个文件压缩成.zip格式的压缩文件;而在Linux中我们也可以通过各种命令实现压缩的功能。

## 2.1 tar命令

    tar的主要功能是打包、压缩和解压文件。
    
    tar本身不具有压缩功能。他是调用压缩功能实现的 。

**使用者权限:所有用户**

**语法**

    tar[必要参数][选择参数][文件] 

**1、将 txtfile.txt文件打包(仅打包,不压缩)**

txtfile.txt文件为上面章节的例子

    tar -cvf txt.tar txtfile.txt 

**2、将 txtfile.txt文件打包压缩(打包压缩(gzip))**

    tar -zcvf txt.tar.gz txtfile.txt 

> 总结

> 参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包

**3、查看tar中有哪些文件**

    tar -ztvf txt.tar.gz

压缩包中的文件有txtfile.txt

**4、将tar 包解压缩**

    1.新建目录
     mkdir ysFiles
    2.复制
     cp txt.tar.gz ./ysFiles/
    3.解压缩
     tar -zxvf /home/itcast/ysFiles/txt.tar.gz

## 2.2 unzip命令

    引子
    unzip命令就完全的相当于在Windows下面选中文件右键进行解压缩了

**yum install -y unzip zip**

Linux unzip命令用于解压缩zip文件

unzip为.zip压缩文件的解压缩程序

**使用者权限:所有用户**

**语法**

    unzip[必要参数][选择参数][文件] 

**参数**:

上接上面的zip的例子

**1、查看压缩文件中包含的文件:**

     unzip -l zFiles.zip

包含了压缩文件里面文件的详细信息

文件大小 日期 时间 文件名称

总数量和总大小

**2、如果要把文件解压到指定的目录下,需要用到-d参数**

    1.新建目录
    unFiles
    2.解压缩
    unzip -d ./unFiles zFiles.zip

# 3 网络与磁盘管理

> Tips:

> 重点讲解内容

## **3.1 网络命令**

### 3.1.1 ifconfig命令

    引子:
    
    ifconfig命令有点类似于Windows的ipconfig命令

ifconfig是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuring

ifconfig命令用于显示或设置网络设备。

ifconfig可设置网络设备的状态,或是显示目前的设置。

**使用者权限:所有(设置级别的需要管理员)用户**

需要命令安装网络工具 yum -y install net-tools

**语法**

    ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

**1、显示激活的网卡信息**

    ifconfig

### 3.1.2 ping命令

    等价于Windows的ping命令

ping命令用于检测主机。

执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

**使用者权限:所有用户**

**语法**

    ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

**1、检测是否与主机连通**

     ping www.baidu.com    

icmp_seq:ping序列,从1开始

ttl:IP生存时间值

time: 响应时间,数值越小,连通速度越快

**2、指定接收包的次数**

和上面不同的是:收到两次包后,自动退出

    ping -c 2 www.baidu.com

> 总结:

> ping命令也是我们在开发过程中常用到的命令

> 通常使用 ping xxx.xxx.xxx.xxx命令进行检测本地与目标机器是否连通

### 3.1.3 netstat命令

    利用netstat指令可让你得知整个Linux系统的网络情况

需要命令安装网络工具 yum -y install net-tools

netstat命令用于显示网络状态。

**使用者权限:所有用户**

**语法**

    netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

**1、显示详细的连接状况**

    netstat -a

执行效果如下

比如上面的【0 0.0.0.0:ssh】它是远程终端连接Linux的ssh服务,默认使用了22端口,它的状态【State】是处于监听状态,属于正常。

**2、显示网卡列表**

    netstat -i

## 3.2 查看内存和硬盘容量

1 查看硬盘容量

2 查看内存使用

# 4 linux文件目录

    # 目录结构    
        bin  (binaries)存放二进制可执行文件                                                                                                     [重点]
        sbin  (super user binaries)存放二进制可执行文件,只有root才能访问
        etc (etcetera)存放系统配置文件                                                                                                            [重点]
        usr  (unix shared resources)用于存放共享的系统资源                                                                      [重点]
        home 存放用户文件的根目录                                                                                                                         [重点]
        root  超级用户目录                                                                                                                               [重点]
        dev (devices)用于存放设备文件
        lib  (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
        mnt  (mount)系统管理员安装临时文件系统的安装点
        boot 存放用于系统引导时使用的各种文件
        tmp  (temporary)用于存放各种临时文件                                                                                               

# 5 linux 安装jdk

1 下载jdk

https://www.oracle.com/technetwork/java/javase/downloads/index.html

2 安装

    # 1.将JDK解压缩到指定目录
        tar -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/
        注意:-C参数是将JDK解压之后文件放入usr目录中
    
    # 2.进入jdk解压缩目录查看
        cd /usr/local/jdk1.8.0_152/
    
    # 3.查看详细信息
        [root@localhost jdk1.8.0_152]# ls
            bin        db       javafx-src.zip  lib      man          release  THIRDPARTYLICENSEREADME-JAVAFX.txt
            COPYRIGHT  include  jre             LICENSE  README.html  src.zip  THIRDPARTYLICENSEREADME.txt
    
    # 4.配置环境变量
         vi /etc/profile     
    # 5.在文件末尾加入如下配置
        export JAVA_HOME=/usr/local/jdk1.8.0_152/
        export PATH=$PATH:$JAVA_HOME/bin
    
    # 6.加载配置生效
        source /etc/profile    加载配置生效
    
    # 7.测试环境变量
        java -version

# 6 安装tomcat

    # 0.下载tomcat
        https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/
    
    # 1.通过工具上传到Linux系统中
    
    # 2.解压缩到/usr目录中
        [root@localhost ~]# tar -zxvf apache-tomcat-8.5.70.tar.gz -C /usr/
        -C 用来指定解压缩的位置
    
    # 3.查看解压内容
        cd /usr/apache-tomcat-8.5.70
        [root@localhost apache-tomcat-8.5.46]# ls -l
        总用量 124
        drwxr-x---. 2 root root  4096 10月 13 12:27 bin
        -rw-r-----. 1 root root 19318 9月  17 02:19 BUILDING.txt
        drwx------. 2 root root   238 9月  17 02:19 conf
        -rw-r-----. 1 root root  5407 9月  17 02:19 CONTRIBUTING.md
        drwxr-x---. 2 root root  4096 10月 13 12:27 lib
        -rw-r-----. 1 root root 57011 9月  17 02:19 LICENSE
        drwxr-x---. 2 root root     6 9月  17 02:17 logs
        -rw-r-----. 1 root root  1726 9月  17 02:19 NOTICE
        -rw-r-----. 1 root root  3255 9月  17 02:19 README.md
        -rw-r-----. 1 root root  7139 9月  17 02:19 RELEASE-NOTES
        -rw-r-----. 1 root root 16262 9月  17 02:19 RUNNING.txt
        drwxr-x---. 2 root root    30 10月 13 12:27 temp
        drwxr-x---. 7 root root    81 9月  17 02:17 webapps
        drwxr-x---. 2 root root     6 9月  17 02:17 work
    
    # 4.启动tomcat
        [root@localhost apache-tomcat-8.5.46]# ./bin/startup.sh 
    
    # 5.关闭网络防火墙
        systemctl stop firewalld       关闭网络防火墙
        systemctl disable firewalld  关闭开机自启动(永久关闭)
    
    # 6.在windows中访问tomcat
        http://10.15.0.8:8080/    填写虚拟机IP地址
    
    # 7.显示tomcat实时控制台信息
        进入tomcat的logs目录中使用tail -f catalina.out 命令实时查看控制台信息 
    
    # 8.关闭tomcat
        在tomcat的bin目录下面使用 ./shutdown.sh

![image20210913221024260](/E:\欣知学习资料\后端教材\MySql+Linux\Linux02-高级操作\linux文档/Linux-v10-02%E5%A4%A9-%E6%8E%88%E8%AF%BE.assets/image-20210913221024260.png)

# 7 安装mysql

1 环境准备

    # 1.卸载mariadb,否则安装mysql会出现冲突
    # 2.执行命令rpm -qa | grep mariadb
    # 3.列出所有被安装的mariadb rpm 包;
    # 4.执行命令rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

2 在线安装

    # 1.添加官方的yum源创建并编辑mysql-community.repo文件
        vi /etc/yum.repos.d/mysql-community.repo
    # 2.粘贴以下内容到源文件中
        [mysql56-community]
        name=MySQL 5.6 Community Server
        baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
        enabled=1
        gpgcheck=0
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
        注意:如果需要安装mysql5.7只需要将baseurl修改即可 
            baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
    # 3.安装mysql(时间偏长)
        sudo yum install -y mysql-community-server

3 设置root密码

    # 1.检查数据库是否已经启动
        ps -ef | grep -i mysql
        如果启动则要关闭
        service mysqld stop
    
    # 2.修改配置文件 vi /etc/my.cnf
        [mysqld]标签下添加
        skip-grant-tables
    
    # 3.重启mysql
        service mysqld start   
    # 4 登录数据库
        mysql -u root
    # 5 修改密码
        use mysql;
        update user set password=password("root") where user='root';
        flush privileges;

4 开启远程访问

    1.安装完成mysql时,发现mysql数据库,不允许我们远程连接需要修改设置
    2.登录mysql,并选择使用mysql数据库
    3.执行授权命令
        grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
        下面是允许所有连接
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    4.刷新权限
        flush privileges;
    5 删除[mysqld]标签下的代码
        skip-grant-tables
    6 .重启服务
        systemctl restart mysqld

# 8 项目部署

1 材料,我们学到springboot就知道怎么做了

2 将这些文件复制到文件夹下 如 cd /home/han/mall

3 解压文件mall-0.0.1-SNAPSHOT-bin.zip

unzip -oq mall-0.0.1-SNAPSHOT-bin.zip

4 修改run.sh文件中的名称,改成 ***.jar的文件名

5 修改执行权限

chmod -R 777 run.sh

6 启动服务

./run.sh start

7 查看日志

tail -200f logs/info/info-2021-09-13.log

8 查看服务进程

ps -ef | grep mall

9 结束进程

kill -9 11996

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值