• day01 Linux


    day01 Linux

    第一章 Linux的概述

    第一节 Linux是什么

    Linux 英文解释为 Linux is not Unix

    Linux是Linus Torvolds于1991年开发的一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

    (注:POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准)

    Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE

    第二节 Linux的使用场景

    1. 作为服务器操作系统是目前Linux应用最广泛的领域
    2. 类似Windows作为桌面应用系统,新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平,完全可以作为一种集办公应用、 多媒体应用、网络应用等多方面功能于一体的图形界面操作系统。
    3. 作为各种嵌入式设备的操作系统,例如机顶盒、移动电话、智能家居设备等等,在移动电话领域的第一大操作系统的Android就是基于Linux内核的
    4. 应用在超级计算机中作为操作系统, 在TOP500超级电脑列表采用Linux为操作系统的,占了371组(即74.2%),其中的前十位者,有7组是使用Linux的。

    第三节 怎么下载Linux系统镜像

    centos下载地址:

    网易镜像:

    http://mirrors.163.com/centos/6/isos/

    http://mirrors.163.com/centos/7/isos/x86_64/

    搜狐镜像:

    http://mirrors.sohu.com/centos/6/isos/

    http://mirrors.sohu.com/centos/7/isos/x86_64/

    当然,在我们发的资料中已经有老师给你们下载好的现成的Linux系统的镜像

    第四节 Linux系统的分类

    1. 按照市场需求分
    • 桌面版:类似于Windows的,有图形化界面的操作系统。不成熟
    • 服务器版:没有图形化界面,使用命令行(CLI, Command Line Interface)进行操作的。企业里通常会使用服务器版的
    2. 按照原生程度分
    • 内核版:Linus领导的开发小组,维护的内核版本。
    • 发行版:一些企业、社区在内核的基础上,增加一些功能、软件,然后重新发行的版本

    在这里插入图片描述

    第二章 Liunx的文件和目录结构

    第一节 目录结构预览

    1. 查看目录结构

    在这里插入图片描述

    2. 目录结构列表

    在这里插入图片描述

    第二节 目录结构中各个目录的介绍

    1. “/bin”: bin是Binary的缩写,这个目录存放着最经常使用的命令
    2. “/sbin”: s表示Super User,这里存放的是系统管理员使用的系统管理程序
    3. “/home”: 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    4. “/root”: 该目录为系统管理员,也称作超级权限者的用户主目录。
    5. “/lib”: 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
    6. “/lost+found”: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
    7. “/etc”: 所有的系统管理所需要的配置文件和子目录。
    8. “/usr”: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
    9. “/proc”: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    10. “/srv”: service缩写,该目录存放一些服务启动之后需要提取的数据。
    11. “/sys”: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。(内核)
    12. “/tmp”: 这个目录是用来存放一些临时文件的。
    13. “/dev”: Device(设备)的缩写,类似windows的设备管理器,把所有的硬件用文件的形式存储。
    14. “/media”: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。CentOS6 就在/media下,CentOS7换目录了/run/media/root/media
    15. “/mnt”: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
    16. “/opt”: 这是给主机额外安装软件所摆放的目录。比如你安装JDK、Tomcat则就可以放到这个目录下。默认是空的。
    17. “/usr/local”: 这是另一个给主机额外安装软件所摆放的目录.一般是通过编译源码方式安装的程序。
    18. “/var”: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
    19. “/boot”: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里

    第三章 Liunx常用命令

    第一节 常用基本命令

    1. 帮助文档
    1.1 man (manual 查看帮助手册)

    例如man ls是查看ls相关的文档手册

    1.2 --help (提示使用方法)

    例如ls --help可以提示ls命令的相关使用方法

    2. 日期时间类
    2.1 date: 以不同的格式获取日期时间
    1. date +%Y-%m-%d

    2. date +%Y-%m-%d' '%H:%M:%S

    3. date +%F' '%T

    2.2 cal:查看日历

    cal -y

    3. 清除屏幕
    3.1 命令: clear 或者 reset
    3.2 快捷键: ctrl + L
    4. 查看ip配置

    ifconfig

    5. 查看命令历史

    history命令可以查看所写过的命令历史

    6. 关机重启
    命令作用
    sync将内存数据保存到硬盘上
    poweroff关机
    reboot重启
    7. 下载文件

    wget:
    在这里插入图片描述

    使用 -P 参数可以指定目标目录,例如:(不需要去演示)

    wget -P /root https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz
    
    • 1
    8. 常用快捷键
    按键作用
    Ctrl+l清屏
    Ctrl+c强制终止程序
    Ctrl+Insert复制
    Shift+Insert粘贴
    Ctrl+s锁屏
    Ctrl+q解除锁屏
    tab自动补全

    第二节 文件目录命令

    1 切换目录命令(change directory)
    1. cd ..: 返回上级目录
    2. cd /: 返回到 / 目录
    3. cd ~:返回家目录,如果是root用户则返回/root,如果是普通用户则返回/home/普通用户目录
    4. cd 目录绝对路径: 通过绝对路径切换到指定目录,可以借助tab键提示目录名
    5. cd 目录相对路径: 通过相对路径切换到指定目录
    6. cd -:切换到上一次操作所在的目录
    2 打印当前目录的绝对路径

    pwd命令: 此命令打印当前目录的绝对路径,pwd的全称是:print wroking directory打印工作目录,工作目录就是用户当前所在的目录

    3 列出目录中的文件
    1. ls: 列出录中的文件名列表
      在这里插入图片描述

    2. ls -l可以简写成ll: 列出当前目录中的文件列表,包含文件的详细信息(其中文件大写用字节表示)
      在这里插入图片描述

    3. h参数:ll -h 将文件大小使用kb显示
      在这里插入图片描述

    4. a参数: ll -ah显示目录中的所有文件,包含隐藏文件。注意: a和h都是参数,他俩的顺序可以换

    5. ll 某个目录的绝对路径或者某个目录的相对路径: 列出指定目录下的文件详情列表

    6. R参数: ll -R递归查看某个目录以及其子孙后代目录中的所有文件

    7. ll -ltr: 逆序列出最近修改过的文件

    4 创建和删除目录
    1. mkdir 目录路径:创建新目录,例如mkdir /usr/local/tomcat,表示在/usr/local中创建tomcat目录,但是前提是/root/usr/local目录已存在
    2. mkdir -p 目录路径: 创建新目录,可以创建多级目录,例如mkdir -p /root/aa/bb/cc,表示在/root目录中先创建aa目录,然后在aa目录中创建bb目录,在bb目录中创建cc目录
    3. rmdir 目录路径: 删除一个目录,当然:该命令只能删除一个空目录
    5 创建和删除文件
    1. touch 文件路径: 新创建一个文件
    2. rm 文件路径: 删除指定文件,会询问是否删除
    3. f参数: rm -f 文件路径: 删除文件,不会询问是否删除
    4. r参数:递归删除,rm -rf 非空目录路径:递归删除非空目录
    6 移动文件或目录
    1. mv 要移动的文件或目录路径 目标路径: 将要移动的文件移动到目标路径
    2. mv 旧文件或目录名 新文件或目录名: 对文件进行重命名
    7 复制文件或目录
    1. cp 要复制的文件 目标路径: 将要复制的文件复制到目标路径
    2. r参数: cp -r 要复制的目录 目标路径: 将目录以及目录中的所有内容都复制到目标路径
    3. 强制覆盖的复制: 如果目标目录中已经有了该文件,那么就采用强制覆盖的复制,例如\cp -rf a /test表示将a复制到/test目录中,并且进行覆盖
    8 查看文件
    8.1 cat命令
    1. cat 文件路径:查看轻量级的文本文件
    2. cat 文件1路径 文件2路径: 连接查看多个文件
    3. cat 文件1 > 文件2:将文件1的内容覆盖文件2的内容
    4. cat 文件1 >> 文件2:将在文件2的内容后面追加文件1的内容
    8.2 more命令

    more 文件路径:查看较长的文件,可以使用空格键向下翻页,使用回车键向下翻行,使用q退出查看,使用Ctrl + F向下滚动一屏,使用Ctrl + B返回上一屏

    8.3 less命令

    less 文件路径:查看较长的文件,功能比more强大,可以使用PgUpPgDn向上和向下翻页,可以使用/字符串向下搜索字符串,使用?字符串向上搜索字符串,使用n正向重复前一个搜索(与/和?搜索有关),使用N反向重复前一个搜索

    8.4 tail命令
    1. tail -数字 文件路径: 查看指定文件的末尾多少行
    2. tail -数字 f 文件路径: 查看文件末尾多少行,可进行堵塞,文件有新内容增加到文件中,立刻可以显示,适合查看Tomcat的运行日志
    9 打印信息

    相当于Java中的日志打印,例如echo $path打印path环境变量信息

    10 查找文件或目录

    find命令是用于在某个范围内查找文件或者目录,它的用法是find 查找范围 参数 表达式,例如:
    在这里插入图片描述

    这次查询表示的意思是:
    在这里插入图片描述

    11 基于索引查找文件或者目录
    11.1 什么是索引

    建立索引可以极大提升查询的速度。为什么会有这么显著的效果呢?我们拿查字典来举个例子。

    • 没有索引:从正文第一页开始翻,在每一页中检查有没有自己要找的字。在最差的情况下需要逐页翻到字典的最后一页,这样做速度非常慢。
    • 基于索引:字典正文前的检字表就是正文内容的索引。先从检字表里快速找到那个字,这里没有这个字的详细信息,只有这个字所在的页码。我们根据这个页码就可以直接到正文中直接翻到那一页,这样速度就非常快了。
    11.2 locate命令的原理

    在这里插入图片描述

    系统启动时把每一个目录、每一个文件的完整路径保存到索引库中。使用locate命令搜索关键词时,就使用关键词查询索引库,把匹配的路径字符串返回。

    而新建的文件或目录不会被系统把路径存入索引库,那么使用locate命令就搜索不到。此时使用updatedb命令更新一下索引库就行了。

    11.3 locate命令的使用
    1. locate 关键字:全文搜索与关键字相关的文件或者目录
    2. 新建文件之后使用updatedb更新索引库,然后再搜索
    12 grep
    12.1 管道筛选

    grep配合进行管道筛选,例如ll /etc | grep .cfg表示筛选/etc目录中包含.cfg的文件,对于管道筛选而言|前面的表示数据源(需要从数据源中筛选),| grep后面表示筛选条件

    12.2 在文本文件中根据关键字匹配行
    12.2.1 基本用法

    grep 参数 关键字 被搜索的文件:
    在这里插入图片描述

    上述语句表示在当前目录的content.txt文件中搜索包含Spring的所有行

    12.2.2 参数
    1. n表示在搜索结果中显示行号:
      在这里插入图片描述

    2. v表示返回不匹配关键字的那些行
      在这里插入图片描述

    13 压缩和解压
    13.1 gz格式的压缩文件

    在Linux系统环境中,很多程序安装包都是以tar包的形式提供下载的:
    在这里插入图片描述

    13.1.1 压缩
    • 语法:tar -zcvf 压缩包 文件1 文件2 ...

    • 参数:

      • z:指定压缩算法为gzip(可选)
      • c:压缩后要创建压缩文件(必须)
      • v:在压缩过程中列出文件列表(可选)
      • f:指定压缩包文件名称(必须)。后边跟参数值:压缩包名称

    例如tar -zcvf demo.tar.gz *.txt表示将当前目录中的所有txt文件压缩成demo.tar.gz

    13.1.2 解压
    • 语法:tar -zxvf 压缩包 -C 解压位置
    • 参数:
      • z: 表示使用gzip算法解压(可选)
      • x:extract, 调用解压命令,执行解压操作(必须)
      • v:在解压缩过程中列出文件列表(可选)
      • f:指定要解压的文件名称(必须)。后边跟参数值:压缩包名称
      • C:指定解压的位置(可以不写)
        • 如果写参数C:就需要指定解压的位置,必须是已经存在的文件夹
        • 如果不写参数C:要解压到当前文件夹里

    例如tar -zxvf demo.tar.gz表示将demo.tar.gz文件解压到当前目录;tar -zxvf demo.tar.gz -C /root/app表示将demo.tar.gz解压到/root/app目录中

    13.2 zip格式的压缩文件

    Linux中一般不会使用zip格式的压缩文件,但是如果需要,我们也有命令对zip格式的压缩文件进行解压、以及将文件压缩成zip格式

    13.2.1 压缩

    zip demo.zip *.txt表示将当前目录中的所有txt文件压缩到demo.zip

    13.2.2 解压

    unzip demo.zip表示将demo.zip解压到当前目录

    第三节 文件编辑

    1. Linux的文件编辑器

    vim是Linux中重要的文本编辑器,我们使用vim可以在Linux中编辑文件,vim可以看做是之前vi编辑器的升级版本

    2. 文件编辑过程中的三种模式

    在这里插入图片描述

    一般模式(无法编辑):通过按键控制VIM工作

    编辑模式(可以编辑无法保存):可以自由输入

    指令模式(可以执行保存、查找等操作):通过执行指令完成一些特殊操作

    3. 一般模式下的按键操作

    vim 要编辑的文件路径可以进入到一般模式,此时我们无法自由编辑文件,但是可以进行整行的复制、粘贴、删除

    • yy复制光标所在行
    • p在下方粘贴一行
    • dd删除光标所在行
    • u撤销前一步操作
    • Ctrl + r重做刚刚撤销的操作
    • r 替换光标所在位置的一个字符,第一步:按一下r键,第二步:输入新的字符 (了解)
    • gg将光标移动到第一行的开头
    • G将光标移动到最后一行的开头
    • 行数G将光标移动到指定行的开头
    4. 进入编辑模式

    因为一般模式下我们无法自由编辑内容,所以需要进入编辑模式来进行文件的编辑,进入编辑模式的方式有如下一些:

    按键大小写 说明光标动作
    i小写不动,就在当前位置,开始输入
    I大写移动到行的开头,开始输入
    a小写光标向后移动一格,然后开始输入
    A大写光标移动到行的末尾,然后开始输入
    o小写先在光标所在行的下面插入空行 然后把光标移动到空行的开头,再开始输入

    在编辑模式下我们可以进行自由编辑,如果想回退到普通模式进行操作,则需要按Esc按键,编辑模式下我们无法进行查找、保存等等操作,需要进入指令模式才能完成。而进入指令模式需要从一般模式进入,所以需要先Esc退回一般模式

    5. 指令模式下的操作
    5.1 进入指令模式
    5.1.1 进入特殊指令操作的指令模式

    在一般模式下输入英文的:,其实就是同时按Shift:就可以看到文档最下方出现了一个:,并且光标也出现在了:后面,就表示进入了指令模式,此时我们就可以输入指令进行一些操作

    5.1.2 进入用于全文搜索的指令模式

    在一般模式下输入/,可以进入用于全文搜索的指令模式

    5.2 在全文搜索的指令模式下进行搜索
    5.2.1 搜索的具体步骤
    1. /的光标处输入搜索关键字,然后按回车按钮进行搜索,搜索出来匹配关键字部分的内容,会高亮显示
    2. 遍历匹配内容: 输入n向下遍历查找,输入N向上遍历查找
    3. 取消高亮显示: :noh
    5.3 指令模式下常用的指令操作
    5.3.1 显示行号

    set nu指令可以显示文本的行号

    在这里插入图片描述

    5.3.2 保存已编辑的内容

    w指令可以保存已编辑的内容
    在这里插入图片描述

    5.3.3 退出vim编辑器

    q指令可以退出vim编辑,但是当部分修改还没有保存,那么会看到下面的提示:
    在这里插入图片描述

    当我们想要放弃对文件的修改,不保存直接退出就使用:q! 来代替q进行退出

    5.3.4 保存当前编辑并退出

    wq指令可以先保存当前编辑的内容,然后再退出vim编辑器

    5.3.5 全文替换
    1. 准备文本内容
    TIP
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    Oh,hello tom!Do you think this is a good time for me to say hello to Lily?
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    执行替换:将hello替换成hi:

    先冒号进入指令模式

    %s/hello/hi,替换后的效果是:
    在这里插入图片描述

    这时我们看到每一行只有第一个匹配的内容被替换了,后面的没有被替换。这是因为对正则表达式来说,它是以行为单位查找匹配的内容。每一行只要找到第一个匹配那么就可以判断这一行就是匹配的,没有必要继续向后查找了。如果我们需要将一行中的每一个匹配都替换,可以在指令后加/g

    6. 常见的问题
    6.1 提示存在交换文件
    6.1.1 错误示例

    在这里插入图片描述

    6.1.2 错误原因

    vim在打开一个文件的时候会同时创建一个临时文件,命名方式是“.原文件名.swp”,这就是所谓的交换文件。而当vim正常退出时,这个交换文件会被删除。所以如果正常操作我们是看不到这个提示界面的。****

    而之所以会出现上面的提示,是因为当前的vim命令在创建新的交换文件之前就已经检测到了已存在的交换文件

    再往前推理一步,为什么会有交换文件残留?

    • 可能原因1:其他窗口正在使用vim打开同一个文件
    • 可能原因2:非正常关机等原因导致vim没有正常退出
    6.1.3 解决方法

    先根据最下面的提示输入Q退出,然后检查是否在其他窗口已经用vim打开了这个文件:

    • 是:继续在这个vim中编辑文件。
    • 否:删除交换文件,重新编辑。
    6.2 屏幕被锁

    在Windows环境下大家已经习惯了使用Ctrl+s保存文档,但是在Linux环境下Ctrl+s是锁屏。如果是因为Ctrl+s锁屏那么可以使用Ctrl+q解锁

  • 相关阅读:
    Map和Set(下)
    Python 列表操作指南1
    android12将wifi功能和移动数据功能从一个网络按钮分开
    ArcGIS Pro中的回归分析浅析(加更)关于广义线性回归工具的补充内容
    使用token登录提交到github
    OpenCV-图像基础处理
    手写call(),apply(),bind()方法
    一文详解构造函数和析构函数
    几款常见存储系统的对比分析
    pdf文档转word文档
  • 原文地址:https://blog.csdn.net/Libra_97/article/details/128014710