Skip to content

Linux基础

一、Linux操作系统

1. 起源与发展

Linux是一个类似Unix的操作系统,1991年发布第一个版本,开源免费

2. 内核Kernel

Linux操作系统 = Linux Kernel + GNU软件及系统软件 + 必要的应用程序

3. 发行版本

大致分为个人桌面版(Ubuntu)和企业服务器版(Redhat(红帽系列)及其延伸版本(Centos))

二、VMwareWorkstation虚拟机使用

1. VMware虚拟组件

  1. 核心功能:对硬件资源的虚拟,在一台PC上运行其他隔离操作系统
  2. 组件:网卡(2个)、交换机(20个)、网桥、DHCP 、NAT、PC主机虚拟网卡

2. VMware NAT网络模式

NAT模式是VMware软件默认推荐的上网模式

  1. NAT模式使用VMnet8交换机
  2. NAT模式下虚拟机能够上网。是通过NAT设备转发至PC主机网卡实现上网的
  3. NAT模式下PC主机通过主机虚拟网卡VMware Network Adapter VMnet8实现和虚拟机的通信的

3. SSH协议与远程访问Linux

3.1 SSH概述

  1. SSH为Secure Shell的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议
  2. 在Linux中,SSH主要用于:用户加密实现远程登录、服务器之间的免密登录
  3. 默认采用RSA算法实现非对称性加密,需要两个密钥:公开密钥(加密)和私有密钥(解密)
  4. 公钥与私钥是一对,用公钥加密必须用对应的私钥才能解密

三、Linux常用基础命令

1. 文件系统基本概念

1.1 基本概念

  1. 文件系统是操作系统用于明确存储设备(如磁盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法
  2. 文件系统的结构通常叫做目录树结构,从根目录开始
  3. 针对Linux的操作,大多数是在针对Linux文件系统操作

1.2 通用特性

  1. 文件系统都是从根目录开始的,windows文件系统会以盘符来区分不同文件系统
  2. 目录树中节点分为两个种类:目录(directory)、文件(file)
  3. 从根目录开始,路径具有唯一性
  4. 只有在目录下才可以继续创造下一级目录

2. Linux常见操作命令

runoob.con 菜鸟教程

2.1 概述

  1. 命令名 --help 看选项参数

  2. man 命令名 通用

  3. tab键 自动补全和提示

  4. history命令(或方向键) 显示历史执行记录

2.2 文件系统相关命令

  1. ls命令:用于显示指定工作目录下的内容

    -a:显示所有文件及目录(.开头的隐藏文件也会列出)

    -l: 除文件名称外,亦将文件形态、权限、拥有者、文件大小等资讯详细列出。注:ls-l = ll

  2. cd:切换目录

    ~: 为home目录的意思

    . : 表示目前所在目录

    ..: 目前目录位置的上一层目录

    / : 根目录

  3. 创建、删除

    mkdir命令:用于创建目录

    ​ -p 确保父目录名称存在,不存在就建一个

    touch命令:用于创建文件

    rm命令:用于删除一个文件或目录

    ​ -f:强制直接删除,无需用户确认

    ​ -r:将目录及以下所有递归逐一删除

  4. 复制、移动

    cp命令:用于复制文件或目录

    ​ -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件

    mv命令:用来给文件改名、或将文件或目录移入其他目录

  5. 文件内容查看

    cat命令:一次性全部输出,适合小文件

    more命令:一页一页输出,空格翻页,b 回翻,Enter 翻下一行,自动退出(翻到底时)也可按 q 强制退出,适合大文件

    less命令:与more类似,空格翻页,b 回翻,Enter 翻下一行,↑↓ 逐行移动,/关键词 搜索,不会自动退出,按 q 强制退出,适合大文件

    head命令:用于查看文件的开头部分的内容

    ​ -n:用于显示行数,默认为10,即显示10行的内容

    tail命令:用于查看文件的结尾部分的内容

    ​ -n:用于显示行数,默认为10,即显示10行的内容

    ​ -f:用于实时显示文件动态追加的内容

  6. 其他

    | 管道命令:将前一个命令执行结果作为内容交给下一个命令处理

    ​ 示例:命令1|命令2

    echo命令:用于字符串的输出,属于shell命令

    >输出重定向(覆盖)命令

    >>输出重定向(追加)命令

    命令1 && 命令2:命令1执行成功才执行命令2

    命令1 || 命令2:命令1执行失败才执行命令2

    pwd:当前你所在的目录的绝对路径。

2.3 查找相关命令

  1. find 命令:用来在指定目录下查找文件

    bash
    find	路径	-选项		参数
    			  -size
    			  -name		'abc*'*:通配符,表示任意字符)
  2. grep命令:用于查找文件里符合条件的字符串,通常配合|管道对命令执行的结果进行搜索

    bash
    ps -ef | grep ssh
  3. which命令:用于查找文件。会在环境变量$PATH设置的目录里查找符合条件的文件

    bash
    which linux命令名
    作用:查找linux命令所在的目录

2.4 软连接

ln命令:为某一个文件在另外一个位置建立一个同步的链接,可以将连接视为文件的别名连接分为两种:硬链接和软连接

硬链接:一方修改,另一方同步修改(用来动态备份)

软连接:相当于windows的快捷方式

bash
ln -s 目标文件的绝对路径 软连接名(快捷方式)
ln 目标文件的绝对路径 硬连接名

2.5 压缩解压缩

  1. 打包、解包:tar命令:常用于备份文件。

    • -c 或--creat:建立新的备份文件
    • -x或--extract或--get:从备份文件中还原文件
    • -v或--verbose:显示指令执行过程
    • -f <备份文件>或--file=<备份文件> :指定备份文件
  2. 打包压缩、解包解压缩:

    • -z或--gzip或--ungzip:通过gzip指令处理备份文件

      重要搭配:tar -zxvf xxxx.tar.gz

  3. 总结:

    压缩:tar -zxvf 压缩包名.tar.gz 要被压缩的文件

    解压:tar -zxvf 压缩包名.tar.gz -C 解压到的路径

2.6 常用快捷键

bash
ctrl + l				清屏
history					查看历史命令
tab						自动补齐
上下方向键				 向上或向下查找我们之前输出的命令
ctrl + a				把光标移到命令开头位置
ctrl + e				把光标移到命令结尾位置
ctrl + u				清空光标之前所有命令
ctrl + c				取消执行命令

四、vi/vim文本编辑器

vi:系统内置文本编辑器

vim:vi编辑器的增强模式

1. 三种工作模式

  • 命令模式(不能自由进行文本编辑,所敲按键为命令)

    命令模式<-->输入模式

    i:进入到编辑输入模式,定位到当前光标前面

    a:进入到编辑输入模式,定位到当前光标后面

    o:进入到编辑输入模式,在当前行后面添加一行空行

    输入esc退回到命令模式

    命令模式<-->底线命令模式

    输入:进入底线命令模式

    :q 退出

    :q! 强制退出

    :w 保存

    :wq 保存退出

    :wq! 强制保存退出

    注:命令模式下shift+zz也可以实现快速的保存退出

  • 输入模式(编辑模式,自由编辑文件内容)

  • 底线命令模式(以:开始,通常用于文件的保存退出)

2. 新建文件与异常模式处理

2.1 vim/path/file

  • 如果打开的文件不存在,新建文件
  • 如果打开的文件已存在,打开这个文件

2.2 打开时异常处理

根据提示进行打开、编辑、恢复、删除、退出等操作

3. vim基本操作指令

3.1 光标移动

  1. 方向键控制移动
  2. 命令hjkl移动
  3. 翻页 pageup pagedown
  4. 行首(home 0) 行尾(end $)
  5. 跳到文件最后一行 G
  6. 跳到文件第一行 gg

3.2 复制粘贴

  1. 复制

    yy 复制光标当前行内容

    nyy 复制当前行往下n行

  2. 粘贴

    p 当前行的下一行粘贴

3.3 删除、撤销操作

  1. 删除

    dd 删除光标所在当前行内容

    ndd 删除当前行往下n行内容

  2. 撤销反撤销

    ctrl + u 撤销上一步操作

    ctrl + r 反撤销

3.4 搜索替换(命令模式下使用)

  1. 行号

    显示行号:set nu(或set number)

    取消显示行号:set nonu(或set nonumber)

  2. 搜索

    /待搜索的内容

    n跳转到下一个搜索到的内容,N跳转上一个

    :noh 清除搜索匹配之后的高亮显示

  3. 替换

    :2,4s/原内容/替换内容/gc (指定行替换,第二行到第四行)

    没有g时:替换每一行匹配到的第一个。g表示这一行所有匹配到的

    c表示替换前给用户提示

    注:全局替换:

    :%s/原内容/替换内容/gc