Linux基础知识、命令完整总结(一)目录、命令、vim

零、计算机知识

1.缓冲和缓存

  • 1.buffer(缓冲):是为了提高 内存和硬盘或其他I/0设备 之间的数据交换的速度而设计的.

    • 当创建buffer对象时, 会先创建一个缓冲区数组. 然后当我们读一个文件时, 先从硬盘中读到缓冲区, 待缓冲区 满后 再进行传送. 这样会大大减少读写次数,这样就可以节省很多时间, 效率会更高.
  • 2.cache(缓存):是为了提高 cpu和内存 之间的数据交换速度而设计.

    • 高速缓冲存储器, 读写速度很快,几乎与CPU一样。由于CPU的运算速度太快,内存的数据存取速度无法跟上CPU的速度,所以在cpu与内存间设置了cache为cpu的数据快取区。
    • 当计算机执行程序时,数据与地址管理部件会 预测可能要用到的数据和指令, 并将这些数据和指令预先从内存中读出送到Cache.
    • 一旦需要时,先检查Cache,若有就从Cache中读取,若无再访问内存,现在的CPU还有一级cache,二级cache。
    • 简单来说,Cache就是用来解决CPU与内存之间速度不匹配的问题,避免内存与辅助内存频繁存取数据,这样就提高了系统的执行效率. 设置缓存的理论基础, 是程序访问的局部性原理. 缓存的功能均由硬件实现,对程序员是透明的.

2.root用户密码忘记

    1. 重启服务器系统,按e进入编辑模式
    1. 移动光标到第二个选项,按e进入编辑界面
    1. 在末尾追加参数1,回车,再按下b键启动操作系统,单用户模式登录
    1. 进入命令行后,使用passwd命令更改密码

一、Linux

1. Linux概述

系统共同点区别
Linux操作系统免费、稳定
Windows操作系统收费、有漏洞

2. Linux发展

组织
Unix贝尔实验室谭宁邦斯托曼托瓦兹
-Mint(mini unix)组织:自由软件基金会FSFLinux内核
--规则、协议:GPL(公共通用许可)-
--要求:1.所有软件开源,可以随意修改
2.改完之后的内容也要开源
-
--项目:GUN项目,开发一个系统-

在这里插入图片描述

3. Linux组成

    (外围应用程序   **软件**
        (命令解释器 shell   **bash命令解释器**
            (系统核心 kernel lib API    **Linux内核**
                (计算机硬件)))

在这里插入图片描述

4. Linux发行版本

  • 发行版本:内核+命令解释器+不同应用程序
主流Linux系统子系统
Debian系列Debian(稳定)、Ubuntu(桌面美观,开发使用)
红帽系列Redhat Enterprise Linux (RHEL)、CentOS(最常用的系统)
国产系列中标麒麟国产Linux(有桌面、有服务器)、红旗Linux
其他Suse

5. Linux版本选型

  • 推荐选择LTS版本或者稳定版
系统版本型号
UbuntuLTS 22.04
CentOS无LTS。CentOS7.x 7.9

6. 命令行格式

在这里插入图片描述

用户名、主机名、当前目录

7. 命令格式

rm -f /tmp/oldbot.txt

命令、选项、参数

格式说明
命令Linux下通过命令控制整个系统
选项option,同一个命令的不同功能
参数命令处理的目标

8. 开机流程

1)开机流程图

在这里插入图片描述

2)开机流程

       第一步 :加载BIOS

       第二步 :读取MBR

       第三步 : Boot Loader

       第四步 : 加载内核

       第五步 : 用户层init依据inittab文件来设定运行等级

       第六步 :init进程执行rc.sysinit

       第七步 :启动内核

       第八步 :执行不同运行级别的脚本程序

       第九步 :执行/etc/rc.d/rc.local

       第十步 :执行/bin/login程序,进入登录状态
  1. POST开机自检
    • 加载BIOS(基本输入输出系统),检查计算机是否满足运行的基本要求。(主板、CPU、内存、磁盘、网卡、声卡、显卡、鼠标、键盘、显示器等
  2. 读取MBR
    • 硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,可里面却存放了预启动信息、分区表信息。
    • 可分为两部分:第一部分为引导(PRE-BOOT)区,占了 446个字节;第二部分为分区表(PARTITION PABLE),共有66个字节,记录硬盘的分区信息。
    • 预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。
    • 系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。
  3. 加载Grub菜单(重操作系统引导管理器)
    • 在MBR程序中找到其前446字节的Boot Loader。Boot Loader即为在操作系统内核运行前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的眏射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做准备。
    • Boot Loader的种类很多,其中有Grub、Lilo和spfdisk,常见的是Loader。
    • 系统可以读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
  4. 加载内核
    • 根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
    • 系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。
    • 从全局启动历程start_kernel开始,
    • 内核完成任务主要有:硬件的检测;硬件驱动的初始化,挂载根文件系统(根切换);启动init进程。
    • 内核在系统启动后的功能:进程的调度,内存管理,文件系统的管理,硬件驱动,管理网络等
  5. 运行init进程
    • 内核被加载后,第一个运行的程序便是/sbin/init。给文件会读取/etc/inittab文,并依据该文件进行初始化。
  6. 读取/etc/inittab 设置运行级别
    • 其中 /etc/inittab文件最主要的作用就是设定Linux的运行级别,其设定形式为:“🆔5:initdefault:” ,这就说明Linux需要运行在等级5上。
    • 0:-halt 关机
    • 1:-single user mode单用户模式
    • 2:-Multi-user,without NFS无网络支持的多用户模式
    • 3:-Full multi-user mode:有网络支持的多用户模式
    • 4:-unused保留,未使用
    • 5:-X11有网络支持有X-Window支持的多用户模式
    • 6:-reboot:重新引导系统——重启
  7. 运行初始化脚本rc.sysinit
    • 在设定了运行级别后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作很多,包括设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。
  8. 执行不同运行级别的脚本程序
    • 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应脚本程序,来完成相应的初始化工作和启动相应的服务。
  9. 加载/etc/rc.d/rc.local自启动程序
    • 该文件为一切初始化工作后,Linux留给用户进行个性化设置的地方。用户可以把自己想设置和启动的东西放在这里。
  10. 执行/bin/login程序,进入登录状态

9. shell的类型

在这里插入图片描述

二、搭建虚拟机

1. 虚拟机故障

  • 故障描述:Win10、11蓝屏
  • 原因:
    • 1.需要开启虚拟化支持 vt-x

      在这里插入图片描述

    • 2.hyper-v冲突,关闭

2. 系统版本、内核版本、主机名

在这里插入图片描述

3. ip地址

ip类别说明来源
局域网ip只能在某个范围使用,教师、办公室网络设备分配
公网ip可以在任何有网络的地方使用,数量有限ipv4、ipv6购买获得

4. 远程连接排错

  1. 检查连通性

    ping ip地址或域名

  2. 检查防火墙

    防火墙,安全设备,安全拦截

  3. 检查是否提供服务

    检查端口是否开放
    telnet ip地址 端口号

三、Linux目录

1. Linux目录介绍

在这里插入图片描述

2. 查询帮助

查询方式说明
命令网站cmd.oldboyedu.com
manman 命令 (查询帮助)
–help命令 --help (查询精简的帮助)
infoinfo 命令
helphelp 命令

3. Linux快捷键

类别子类快捷键
移动光标快捷键光标移动到行首ctrl + a
-光标移动到行尾ctrl + e
删除、剪切类快捷键把光标所在位置到行首的内容删除、剪切 <—ctrl + u
-把光标所在位置到行尾的内容删除、剪切 —>ctrl + k
功能性清屏ctrl + l
-取消当前命令ctrl + c

四、Linux核心命令

0. 常见符号

  • ${}

    • 引用变量

      • b=${a}
    • 截取字符串

      • ${parameter:offset}
    • 切片

      • ${parameter:offset:length}
    • 获取字符串长度

      • ${#word}
    • 字符串处理

      • 在这里插入图片描述
    • 变量赋值判断

      • 在这里插入图片描述
  • $()等价于``

    • 解析命令
      • echo $(date +%Y%m%d)
  • $[]等价于$(())

    • 数学运算
      • echo $[1+2]
  • []判断表达式

    • [ $a > 5 ]
  • [[]]

    • [[]]是[]的增强版,其返回值也是0或者非0,并且,在[[ ]]中使用> 、< 等符号不需要转义
    • [[ $a > 5 ]]
  • (())

    • (())除了结合 进行数学运算之外,还可以用于 f o r 或 w h i l e 循环命令中控制循环,类似于 c 语言,当改变变量的值时,且不需要使用 进行数学运算之外,还可以用于for或while循环命令中控制循环,类似于c语言,当改变变量的值时,且不需要使用 进行数学运算之外,还可以用于forwhile循环命令中控制循环,类似于c语言,当改变变量的值时,且不需要使用

      $#  是传给脚本的参数个数
      $0 是脚本本身的名字
      $1 是传递给该shell脚本的第一个参数
      $2 是传递给该shell的脚本的第二个参数
      $@  是传给脚本的所有参数的列表,代表目标文件(target)
      $*  是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
      $$  是脚本运行的当前进程ID号
      $?  是显示最后命令的退出状态,0表示没有错误,其他表示有错误
      @   这个符串通常用在“规则”行中,表示不显示命令本身,而只显示它的结果
      $^ 代表所有的依赖文件(components)
      

1. 关机重启

  • shutdown(关机重启)
    • -r 重启
    • -h 关机
  • halt(关机)
  • poweroff(关机关电)
  • init(切换运行级别)
    • init 0 关机
    • init 6 重启

2. 基础命令

  • cd (进入某个目录)
    • cd /tmp/
  • ls (列表显示目录内容)
    • ls /etc
    • ls -l /etc/ == ll /etc/
    • -l 显示详细信息(时间、大小、所有这)
    • -t 按照修改时间排序
    • -c 文件属性发生改变的时间
    • -a 文件内容被访问的时间
    • -r 逆序排序
    • -a 显示所有文件
    • -d 只显示目录
    • -i 显示inode
    • -h 人性化显示
    • -p 区分文件或目录
  • tree(以树形结构显示目录或文件)
    • -L 数字 指定层数
    • -d 只显示目录
  • pwd (显示自己所在目录)
    • pwd
  • mkdir (创建目录)
    • mkdir -p /a/b/c (-p 递归创建目录)
    • mkdir dira dirb dirc
    • mkdir data{1…3}
  • touch (创建文件)
    • touch oldbot.txt b.txt
    • touch a b c d e f
    • touch data{1…3}/oldboy{1…3}(必须先有目录)
  • mv (移动)
    • 改名: mv a.txt b.txt
    • 移动: mv /oldboy/oldboy.txt /tmp/
  • cp (复制,拷贝)
    • cp /etc/hostname /oldboy/
    • cp -a /etc/ /oldboy (-a 复制所有)
    • -r 递归复制
    • -p 保持属性不变
  • vim (编辑于修改)
  • runlevel(查看运行级别)
  • init 数字 (切换运行级别)
  • hostnamectl set-hostname 名字 (修改主机名)
  • rm (删除)
    • rm /oldboy/oldboy.txt
    • -f 强制删除文件
    • -r 递归删除,删除目录
    • 不要删除文件,替换rm命令
  • echo (输出到屏幕)
    • echo oldboy lidao996
    • echo oldboy lidao996 > /oldboy/oldboy.txt
    • echo {0…10}
    • echo {a…z}
    • echo {01…10}
    • echo {01…100} (自动保持三位,前面补0)
    • echo oldbot{01…10}
    • -e 支持转移字符 echo -e “oldboy\t\toldboy”
  • cat (显示文件内容)
    • cat /etc/password
    • -n 显示行号
  • tr (内容替换)
    • tr ‘string1’ ‘string2’ < filename
  • ps(查看当前系统进程状态)
    • a 显示现行终端机下的所有程序,包括其他用户的程序
    • u 以用户为主的格式来显示程序状况
    • x 显示所有程序,不以终端机来区分。
  • alias(查看系统当前设置的别名列表、设置指令的别名)
    • -p打印已经设置的命令别名
    • alias
    • alias df=‘df -h’
  • unalias(设置指令的别名)
    • -a删除全部已定义的别名
    • unalias df
  • file 查看文件属性
    • file d.txt
  • ln(创建链接)
    • 默认创建硬链接
    • -s 创建软链接
    • ln -s /usr/mengqc/mub1(源) /usr/liu/abc(目标)
  • stat (查看文件属性)
    • 修改时间 modify
    • 修改属性时间 change
    • 内容访问时间 access
  • cut (按列切割)
    • -d 指定分隔符(-d “.”,以.为分隔符)
    • -f 指定列 (-f1,3,取第一列第三列;f1-3,1到3列,通常与-d配合使用)
    • -c 取指定列的值(-c1-6,取第1到6列的字符,按字符分列)
  • watch (监控)
    • -n 间隔
    • -d 高亮显示变化区域
    • watch -n 1 “grep ‘model name’ /proc/cpuinfo | sort | uniq -c”
  • rename

注意:

> 重定向

>>追加重定向

3. 常见命令

expr

五、目录结构深入(文件了解)

1. /etc/

/etc/文件说明企业应用
/etc/hostname主机名配置文件每个Linux主机配置主机名,根据主机名区别不同功能
/etc/hosts主机名和ip的对应关系(本地域名解析文件)在网站中做访问使用
/etc/resolv.confLinux系统 DNS客户端的配置文件DNS
/etc/sysconfig/network-scripts/ifcfg-ens33配置网卡文件物理机要改,云服务器自动
/etc/rc.local开机自启动的文件把需要开机时自动运行的命令、服务放到这个文件中
/etc/fstab开机自动挂载的配置文件配置挂载磁盘
/etc/motd文件的内容会在用户的登录系统后显示eg:温馨提示:佛祖保佑,永不宕机
/etc/issue /etc/issue.net文件的内容会在用户的登录系统前显示eg:这是我的Linux
/etc/profile 或者 /etc/bashrc配置系统的环境变量/别名等的文件,各种配置的永久配置文件环境变量
/etc/sysctl.confLinux内核参数设置文件-
/etc/redhat-release查看系统版本

1) 修改主机名

hostnamectl set-hostname oldboy100
cat /etc/hostname
#oldboy100

2)网卡配置

  • /etc/ 各种配置的目录
  • /etc/sysconfig 系统配置文件
  • /etc/sysconfig/network-scripts 网络配置文件
  • /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置信息

3) 开机自启配置文件

#第一次使用时,给/etc/rc.d/rc.local增加权限
chmod +x /etc/rc.d/rc.loacl

补充

/etc/rc.local是/etc/rc.d/rc.local的软链接

2. /var/

/var/经常变化的内容说明应用建议
/var/log/系统及服务的各种日志-
/var/log/secure存放用户登录情日志分析是否有恶意破解情况
/var/log/messages通用各种服务的日志分析服务,系统异常

3. /proc/

/proc/系统、进程信息、内核说明应用建议
/proc/cpuinfocpu信息监控使用,获取cpu指标 (free -m 查看内存)
/proc/meminfo内存信息监控使用,获取内存指标
/proc/loadayg系统负载信息,衡量系统繁忙程度-
/proc/mounts系统挂载信息-

1) cpu信息

  • cpu颗数,cpu核心数
    • cpu颗数,有多少个物理cpu
    • cpu核心数:一颗cpu有多少个核心
# 查看cpu信息,核心数,颗数
lscpu 

六、Linux环境优化

  • 检查是否能联网
ping baidu.com
  • 配置yum源(安装软件的软件仓库)
cp /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect

yum install ysl cowsay

七、vi、vim编辑器详解

1. vi、vim的区别

内容区别
vi系统自带
vim额外安装,vi升级版

2. vi、vim的基本使用

在这里插入图片描述

1) vim打开文件

vim使用选项说明
vim + filename打开文件,并将光标置于最后一行的首部
vi +n filename打开文件,并将光标置于第 n 行的首部
vi +/pattern filename打幵文件,并将光标置于第一个与 pattern 匹配的位置

2) 命令模式

快捷键功能
jkhl上下左右移动光标
gg光标移动到文档首行
G光标移动到文档尾行
v进行字符选中
V进行行选中
y复制已选中的文本到剪贴板
数字+yy复制光标所在行,此命令前可以加数字,可复制多行
dd剪切光标所在行
p黏贴
数字+dd此命令前可以加数字,向下剪切指定行数
x删除光标所在位置的字符
:数字a,数字bd删除从a 行b 行的文本内容
u撤销
U撤销所有编辑

3) 底行模式(查找、替换、查询帮助、保持退出) : ? /

快捷键功能
:w filename另存到 filename
/abc从光标所在位置向前查找字符串 abc
?abc从光标所在位置向后查找字符串 abc
:%s/a1/a2/g或者 :%s#world#oldgirl#g替换所有行中,所有符合条件的内容 (s是替换 g表示全局)
:n1,n2 s/a1/a2/g将文件中 n1 到 n2 行中第一处 a1 都用 a2 替换
:set nu行号显示
:set nonu行号显示
:100定位到100行

4) 编辑模式 i

快捷键功能
i在当前光标所在位置插入,光标后的文本相应向右移动

5) 可视模式 shift+v

#1.批量删除某部分内容
ctrl + v 进入可是模式
移动光标,选择区域
d,删除

#2.批量写入内容
ctrl + v 进入可是模式
移动光标,选择区域
shift+i 进入编辑模式
写入内容

原因

  1. vim编辑文件时,会生成临时文件
  2. 通过保存退出,隐藏文件会消失
  3. 异常断电、同时编辑文件,会有提示

解决

  1. 删除临时文件,即可
  2. 恢复未保存数据 R
    bc
    ?abc|从光标所在位置向后查找字符串 abc
    :%s/a1/a2/g或者 :%s#world#oldgirl#g|替换所有行中,所有符合条件的内容 (s是替换 g表示全局)
    :n1,n2 s/a1/a2/g|将文件中 n1 到 n2 行中第一处 a1 都用 a2 替换
    :set nu|行号显示
    :set nonu|行号显示
    :100|定位到100行

4) 编辑模式 i

快捷键功能
i在当前光标所在位置插入,光标后的文本相应向右移动

5) 可视模式 shift+v

#1.批量删除某部分内容
ctrl + v 进入可是模式
移动光标,选择区域
d,删除

#2.批量写入内容
ctrl + v 进入可是模式
移动光标,选择区域
shift+i 进入编辑模式
写入内容

原因

  1. vim编辑文件时,会生成临时文件
  2. 通过保存退出,隐藏文件会消失
  3. 异常断电、同时编辑文件,会有提示

解决

  1. 删除临时文件,即可
  2. 恢复未保存数据 R
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值