Linux基础学习

Linux基础学习

  • 一、Linux目录结构
    • [1. 挂载点](#1. 挂载点)
    • [2. 目录说明](#2. 目录说明)
  • 二、VI/VIM编辑器
    • [1. 什么是VI/VIM](#1. 什么是VI/VIM)
    • 2.VI/VIM的三种模式
      • [2.1 一般模式](#2.1 一般模式)
      • [2.2 编辑模式](#2.2 编辑模式)
      • [2.3 指令模式](#2.3 指令模式)
    • [3. VI/VIM命令总结图](#3. VI/VIM命令总结图)
  • 三、网络配置
    • [1. 静态ip修改](#1. 静态ip修改)
    • [2. 主机名修改](#2. 主机名修改)
    • [3. 远程登录](#3. 远程登录)
    • [4. 远程上传下载文件](#4. 远程上传下载文件)
  • 四、系统管理
    • [1. Linux中的进程和服务](#1. Linux中的进程和服务)
    • [2. 服务管理](#2. 服务管理)
      • [2.1 Centos6](#2.1 Centos6)
      • [2.2 Centos7](#2.2 Centos7)
    • [3. 系统运行级别](#3. 系统运行级别)
      • [3.1 Centos6中的运行级别](#3.1 Centos6中的运行级别)
      • [3.2 Centos7中的运行级别](#3.2 Centos7中的运行级别)
    • [4. 开机启动服务的配置](#4. 开机启动服务的配置)
      • [4.1 图形化界面配置开机启动服务](#4.1 图形化界面配置开机启动服务)
      • [4.2 命令行配置开机启动服务](#4.2 命令行配置开机启动服务)
        • [4.2.1 Centos6](#4.2.1 Centos6)
        • [4.2.1 Centos7](#4.2.1 Centos7)
    • [5. 关机重启](#5. 关机重启)
      • [5.1 基本命令](#5.1 基本命令)
      • [5.2 shutdown介绍](#5.2 shutdown介绍)

一、Linux目录结构

Linux系统中,一切皆文件,从整体来看,Linux系统的目录结构如下图所示:

1. 挂载点

  • 在Linux中,挂载点是指将一个文件系统与特定的目录关联起来的过程。通过挂载,可以将存储设备(如硬盘分区、移动存储介质等)上的文件系统连接到Linux文件系统的目录结构中,使得文件系统中的文件和目录能够在指定的目录下访问和操作。

  • 在Linux系统中,会将硬盘分为两个区即根区和引导区(实际上是三个区,还有一个swap区,这里暂时忽略),根区挂载在根目录/下,引导区挂载在/boot目录下。同时我们也可将硬盘分为更多的分区,并将对应分区挂载到想要挂载的目录下。由此可见,Linux系统的目录只是一个虚拟目录,目录中两个文件夹的距离与在这两个文件夹在硬盘中存放的位置的距离无关。

2. 目录说明

  1. /bin: Binary的缩写。存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行。该目录实际上是一个链接,会连接到usr目录下的bin目录。
  2. /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  3. /dev: Device的缩写。该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
  4. /etc: Etcetera的缩写。这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  5. /home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  6. /lib: Library的缩写。这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。该目录实际上是一个链接,会连接到usr目录下的lib目录。
  7. /lib64: 64位相关的库会放在这。该目录实际上是一个链接,会连接到usr目录下的lib64目录。
  8. /media: Linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  9. /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt 上,然后进入该目录就可以查看光驱里的内容了。
  10. /opt: optional的缩写。这是给主机额外安装软件所摆放的目录。
  11. /proc: Processes的缩写。/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,是进程目录。它是系统内存的映射,存放现有硬件和当前系统进程的信息,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里。
  12. /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
  13. /run: 运行目录,存放当前系统运行以来的所有实时信息,系统重启后会被清除。
  14. /sbin: s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。该目录实际上是一个链接,会连接到usr目录下的sbin目录。
  15. /srv: 该目录存放一些服务启动之后需要提取的数据。
  16. /sys: 虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息。
  17. /tmp: temporary的缩写这个目录是用来存放一些临时文件的。
  18. /usr: unix system resources缩写。用于存储系统软件资源。
  19. /var: 用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。

二、VI/VIM编辑器

1. 什么是VI/VIM

  1. VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器
  2. VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器,可以主动地以字体颜色辨别愈发的正确性,方便程序设计,VIM与VI编辑器完全兼容。

2.VI/VIM的三种模式

2.1 一般模式

以VIM打开一个文档就会直接进入一般模式(默认模式)。在该模式中,可以使用上下左右按键来移动光标;可以使用删除字符或删除整行来处理档案内容;也可以是用复制黏贴来处理文件数据。一般模式下常用的命令如下:

语法 功能描述
yy 复制光标所在一行数据
数字+yy 复制从当前光标所在行往后指定数字行的数据
y^ 复制从当前光标到本行起始的所有内容
y$ 复制从当前光标到本行结束的所有内容
yw 复制从当前光标到本词结束,包括后面的空格
p 在光标所在处黏贴复制的内容
dd 删除光标所在一行数据
数字+dd 删除从当前光标所在行往后指定数字行的数据
d^ 删除从当前光标到本行起始的所有内容
d$ 删除从当前光标到本行结束的所有内容
dw 删除从当前光标到本词结束,包括后面的空格
u 撤销上一步操作
x 剪切当前光标所在的字符,相当于del
X 剪切当前光标的前一个字符,相当于退格
r 输入一个字符替换当前光标所在字符
R 输入一个字符串替换当前光标开始的一段字符串
^ 移动光标到当前行的行头
$ 移动光标到当前行的行尾
w 移动光标到下一个词的词头位置
e 移动光标到当前词的词尾位置
b 移动光标到上一个词的词头
H(或gg) 移动到当前文档开头
G(或L) 移动到当前文档的最后一行开头
数字+G 移动光标到当前文档指定数字的行的开头

2.2 编辑模式

在一般模式下,通过按下指定的案件可以切换到编辑模式中,从而对文档进行数据的修改(通常是追加数据)。在编辑模式中,可以通过按下ESC键返回到一般模式。从一般模式切入到编辑模式的按键如下:

按键 用法
i 当前光标前开始插入数据
a 当前光标后开始插入数据
o 当前光标的下一行开始插入数据
I 当前光标所在行最前开始插入数据
A 当前光标所在行最后开始插入数据
O 当前光标所在行的上一行开始插入数据

2.3 指令模式

在一般模式中,输入按键【:/?】可以切换到指令模式,在该模式当中,可以对文档的数据进行保存、搜寻、替换等操作。在指令模式中,可以通过按下ESC键返回到一般模式。从一般模式切换到指令模式的相关语法及含义如下表所示:

命令 功能
:w 保存
:q 退出
:wq 保存并退出
:q! 不保存并退出
:wq 保存并强制退出,可以修改某个只读文件权限的账户在修改该只读文件内容时常用到此命令
:noh 取消高亮显示
:set nu 显示行号
:set nonu 关闭行号
/查找的词 n查找下一次词,N查找上一个词
😒/old/new 替换当前行中匹配到的第一个old为new
😒/old/new/g 替换当前行中匹配到的所有old为new
:%s/old/new 替换当前文档每行中匹配到的第一个old为new
:%s/old/new/g 替换当前文档中匹配到的所有old为new

3. VI/VIM命令总结图

三、网络配置

1. 静态ip修改

  1. vim /etc/sysconfig/network-scripts/ifcfg-局域网名
  2. 修改BOOTPROTO="static",表示由动态分配ip修改为静态ip
  3. 末尾添加:①IPADDR=静态ip地址 GATEWAT=网关IP地址DNS1=域名解析器IP地址
  4. 进行网络重启:终端中执行service network restart重启网络

2. 主机名修改

  1. 查看本机主机名:输入hostnamehostnamectl
  2. 修改本机主机名(重启生效):vim /etc/hostname
  3. 修改本机主机名(立刻生效):hostnamectl set-hostname 新主机名
  4. 设置主机名和ip的映射关系(一般设置本机要访问的其他主机的主机名和ip地址的映射关系,此外还可以是设置域名和ip地址的映射关系,两者格式相同):输入vim /etc/hosts并添加ip地址 主机名

3. 远程登录

  1. 命令格式:ssh [选项] [用户名]@[IP地址]
  2. 常用参数含义:p:指定远程连接的端口;i:指定用于身份验证的私钥文件;

4. 远程上传下载文件

  1. 命令格式:scp [参数] [源文件] [目标地址]
  2. 常用参数含义:-r:递归复制整个目录;-P:指定端口号;-i:指定私钥文件进行身份验证;-v:显示详细的调试信息
  3. 举例:将远程主机remotehost上的/path/to/directory目录及其内容递归地复制到当前目录,scp -r user@remotehost:/path/to/directory .

四、系统管理

1. Linux中的进程和服务

  1. 进程:计算机中一个正在执行的程序和命令,被叫做进程(process)
  2. 服务:启动之后一直存在、常驻内存的进程,被叫做服务(service)
  3. 守护进程(daemon):系统启动时就会启用,系统关闭时才会终止的服务被称为系统服务,支撑系统服务的进程就是守护进程。本质上,系统服务和守护进程是一个东西。Linux系统中,很多以d结尾的进程就是系统服务即守护进程,d即daemon

2. 服务管理

2.1 Centos6

  1. 基本语法:service 服务名 start | stop | restart | status
  2. 服务位置:/etc/init.d/

2.2 Centos7

  1. 基本语法:systemctl start | stop | restart | status 服务名
  2. 服务位置:/usr/lib/systemd/system/

3. 系统运行级别

3.1 Centos6中的运行级别

  1. Linux开机启动后的步骤:① 开机 ② 进入BIOS的自检和启动过程 ③ 去boot引导分区获取引导文件和Linux内核中的内容进行系统初始化 ④ 启动init进程(用户级别主动启动的第一个进程)⑤ 根据当前运行级别,由init进程启动相应的服务
  2. 运行级别:
  3. 查看运行级别:vim /etc/inittab
  4. 命令行更改运行级别:init 运行级别
  5. 快捷键更改运行级别:①图形化界面-->终端:ctrl + alt + F2 ②终端-->图形化界面:ctrl + alt + F1

3.2 Centos7中的运行级别

  1. Linux开机启动后的步骤:大体与Centos6相同,不过④⑤变成了启动systemd进程来根据运行级别启动服务。此外,systemd是多线程的,而init是单线程的,所以systemd效率更高。
  2. 运行级别:① multi-user.target:等价于Centos6运行级别3 ②graphical.target:等价于Centos6的运行级别5
  3. 查看运行级别:systemctl get-default
  4. 修改运行级别:systemctl set-default 运行级别

4. 开机启动服务的配置

4.1 图形化界面配置开机启动服务

  1. 在终端中输入setup即可进入配置开机启动的服务的配置界面
  2. 进入系统服务,通过按下空格即可设置某个服务是否开机自启,有*代表启动,否则代表不启动

4.2 命令行配置开机启动服务

4.2.1 Centos6
  1. 查看开机启动服务:chkconfig --list
  2. 开启相应运行级别开机启动服务:chkconfig 服务名 on
  3. 关闭所有运行级别开机启动服务:chkconfig 服务名 off
  4. 开启指定运行级别开机启动服务:chkconfig --level 级别 服务名 on
  5. 关闭指定运行级别开机启动服务:chkconfig --level 级别 服务名 off
4.2.1 Centos7
  1. 查看为开机启动服务:systemctl list-unit-files,disabled即为关闭,enabled即为开启,static为随机应变
  2. 开启开机启动服务:systemctl enable 服务名
  3. 关闭开机启动服务:systemctl disable 服务名

5. 关机重启

5.1 基本命令

命令 功能
sync 将数据由内存同步到硬盘中
halt 停机,关闭系统,但并不断电(内存内容不一定会丢失),等同于shutdown -H
poweroff 关机,断电,等同于shutdown now
reboot 重启,等同于shutdown -r now
shutdown [选项] [时间] 根据设置关闭电脑

5.2 shutdown介绍

  1. 常用选项:① -H:相当于--halt,停机;② -r:相当于reboot,重启
  2. 时间设置:① 数字:在分钟后关机,默认为1分钟;② xx:xx:在xx:xx时关机 ③now:立刻关机
相关推荐
m0_7482347110 分钟前
Jo-im开发:用于WebRTC的ICE中继服务器Coturn搭建
运维·服务器·webrtc
学Linux的语莫27 分钟前
linux中,redis分布式集群搭建
linux·redis·分布式·mysql
MaiTube&Maipdf35 分钟前
对外发PDF设置打开次数
运维·服务器·网络
ppo_wu42 分钟前
Ubuntu 24.04.1 LTS 配置静态固定IP地址
linux·tcp/ip·ubuntu·运维开发
真想骂*1 小时前
如何在Linux上配置SSH密钥以实现免密登录
linux·运维·ssh
webmote1 小时前
Fabric.js 入门教程:扩展自定义对象的完整实践(V6)
运维·javascript·canvas·fabric·绘图
lory代码搬运工1 小时前
解决PDF.js部署到IIS服务器上后报错mjs,.ftl 404 (Not Found)
运维·服务器·pdf
享受 生活1 小时前
【docker】docker desktop 在windows上支持 host模式
运维·docker·容器
小安运维日记1 小时前
CKA认证 | Day8 K8s安全
运维·云原生·容器·kubernetes·云计算
WTT00112 小时前
CTFshow-SSRF&文件上传
大数据·运维·网络·安全·web安全·ctf