尚硅谷Linux学习笔记(一)

文件系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/
├── bin (Binary) # 基本用户命令的二进制文件
├── boot (Boot) # 引导加载程序和内核文件
│ ├── grub/ # GRand Unified Bootloader (GRUB) 配置
│ └── vmlinuz # Linux kernel image (VMLINUX)
├── dev (Devices) # 设备文件
├── etc (Et Cetera) # 系统配置文件
│ ├── cron.d/ # CRON job schedules
│ ├── cups/ # Common Unix Printing System (CUPS) 配置文件
│ ├── default/ # 默认配置文件
│ ├── init.d/ # System initialization scripts
│ ├── network/ # 网络配置文件
│ ├── passwd # Password file
│ ├── rc.d/ # Run Command scripts at boot and shutdown
│ ├── resolv.conf # Resolver configuration file
│ └── ssl/ # Secure Sockets Layer (SSL) certificates and keys
├── home (Home) # 用户主目录
│ ├── user1/ # User1's home directory
│ └── user2/ # User2's home directory
├── lib (Library) # 系统库文件
├── lib64 (Library 64-bit) # 64位系统库文件
├── media (Media) # 可移动媒体挂载点
├── mnt (Mount) # 临时文件系统挂载点
├── opt (Optional) # 第三方软件包安装目录
├── proc (Processes) # 虚拟文件系统,包含系统进程和内核信息
├── root (Root) # root用户的主目录
├── run (Run) # 运行时变量数据
├── sbin (System Binary) # 系统管理员命令的二进制文件
├── srv (Service) # 服务数据
├── sys (System) # 虚拟文件系统,提供硬件和内核信息的接口
├── tmp (Temporary) # 临时文件
├── usr (User Resources) # 用户程序和文件
│ ├── bin/ # 大部分用户命令的二进制文件
│ ├── include/ # Standard include files
│ ├── lib/ # 程序库文件
│ ├── local/ # Local hierarchy
│ │ ├── bin/ # Locally installed user commands
│ │ ├── etc/ # Local configuration files
│ │ ├── games/ # Local games
│ │ ├── include/ # Local development header files
│ │ ├── lib/ # Local program libraries
│ │ └── sbin/ # Local system administration commands
│ ├── sbin/ # Non-essential system binaries
│ ├── share/ # Architecture-independent data
│ │ ├── doc/ # System documentation
│ │ ├── man/ # Manual pages
│ │ └── locale/ # Localization and internationalization data
│ └── src/ # Source code
└── var (Variable) # 经常变化的文件
├── cache/ # Application cache data
├── lib/ # State information
├── local/ # Local data
├── lock/ # File locking mechanism
├── log/ # Log files
├── mail/ # 电子邮件
├── opt/ # Third-party application data
├── run/ # Run-time variable data
├── spool/ # Print queues and other spooling data
└── tmp/ # Temporary files (secure version of /tmp)

文本编辑器

vi

vi 是 Vim 的前身,它是 Visual Interface 的缩写,由 Bill Joy 在 1976 年开发,用于 Unix 系统。vi 是一个基于文本的屏幕编辑器,它包含了 Vim 的大多数基本功能,但相比之下,vi 的功能较为简单,没有 Vim 那么多的模式和扩展功能。

模式快捷键描述
普通模式启动后的默认模式。可以执行命令,如移动光标、删除文本等。
插入模式i进入插入模式,可以输入文本。
末行模式:进入末行模式,可以执行保存、退出、搜索替换等命令。

vim

模式快捷键描述
普通模式启动后的默认模式。可以执行命令,如移动光标、删除文本等。
插入模式i进入插入模式,可以输入文本。
可视模式v / V / Ctrl+v进入可视模式,可以选择文本。v 为字符可视模式,V 为行可视模式,Ctrl+v 为块可视模式。
选择模式Shift+v / Shift+V类似于可视模式,但行为略有不同。
命令模式:进入命令模式,可以执行保存、退出、搜索替换等命令。
替换模式R进入替换模式,输入的每个字符都会替换光标所在的字符。
可视块模式Ctrl+v以块的形式选择文本。
操作符等待模式短暂的中间模式,用于执行操作符(如 dyc 等)后的命令。
插入普通模式Ctrl+o在插入模式下临时执行一个正常模式命令。
终端模式Ctrl+z在 Vim 内部打开一个终端。
Ex 模式Q提供更多类似于 Vim 的前身 Ex 编辑器的命令。

普通模式

语法功能描述
yy复制光标当前一行
数字yy复制从当前行开始的指定数量的行
p粘贴复制的行或文本
u撤销上一步操作
dd删除光标当前行
数字dd删除从当前行开始的指定数量的行
x删除光标所在位置的字符
X删除光标前一个位置的字符
yw复制一个词
dw删除一个词
^移动到行首第一个非空白字符
$移动到行尾
gg移动到文件第一行
G移动到文件最后一行
数字G移动到指定行号

编辑模式(插入)

从普通模式到编辑模式

按键功能描述
i在当前光标前进入插入模式
a在当前光标后进入插入模式
o在当前光标行的下一行进入插入模式
I跳到光标所在行最前进入插入模式
A跳到光标所在行最后进入插入模式
O在当前光标行的上一行进入插入模式

命令模式

命令功能描述
:w保存当前文件
:q退出 Vim 编辑器
:!强制执行外壳命令
:/要查找的词查找光标之后的第一个“要查找的词”
n查找下一个匹配项
N查找上一个匹配项
:noh取消搜索的高亮显示
:set nu显示行号
:set nonu关闭行号显示
:%s/old/new/g在整个文件中替换“old”为“new”,全局替换

VMware

网络模式

VMware提供了多种网络模式,以适应不同的虚拟机网络配置需求。以下是三种常见的VMware网络模式:

  1. 桥接模式(Bridged Networking):
    • 在桥接模式下,虚拟机的网络接口直接连接到主机的外部网络接口,就像主机上的另一台物理机器一样。
    • 虚拟机将获得一个与主机网络在同一段IP地址范围内的独立IP地址。
    • 这种模式下,虚拟机可以与其他网络上的设备进行通信,就像主机一样。
  2. NAT模式(Network Address Translation):
    • NAT模式允许虚拟机共享主机系统的IP地址访问外部网络。
    • 虚拟机在内部网络中有一个独立的IP地址,当访问外部网络时,VMware会将其内部IP地址转换为外部网络的IP地址。
    • 这种模式下,虚拟机可以访问外部网络,但外部网络不能直接访问虚拟机。
  3. 主机模式(Host-Only Networking):
    • 主机模式创建一个仅限于主机和其上虚拟机之间通信的私有网络。
    • 虚拟机无法访问外部网络,但可以与主机以及其他在同一主机模式下配置的虚拟机进行通信。
    • 这种模式适用于需要在隔离环境中测试或运行应用程序的情况。

配置命令

固定IP

1
2
3
4
# 查看网络
ifconfig
# 编辑网络配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33

原内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
YPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3e5e7750-8980-484e-9420-1d7d2d14d600"
DEVICE="ens33"
ONBOOT="yes"

修改后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
# IP分配规则
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3e5e7750-8980-484e-9420-1d7d2d14d600"
DEVICE="ens33"
ONBOOT="yes"
# IP地址
IPADDR=192.168.114.142
# 网关
GATEWAY=192.168.114.2
# 域名解析器
DNS1=192.168.114.2
1
2
# 重启网络服务
service network restart

主机名

1
2
3
4
5
6
7
8
# 查看主机名
hostname
# 编辑主机名(需要重启服务器)
vim /etc/hostname
# 编辑主机名(直接更改)
hostnamectl set-hostname <主机名>
# 查看当前的主机名和相关的系统信息
hostnamectl

hosts

1
2
# 编辑hosts文件
vim /etc/hosts

原内容:

1
2
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

修改后(IP可以对应域名或主机名):

1
2
3
4
5
6
7
8
9
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.114.142 CentOS-7-2
192.168.114.143 CentOS-7-3
192.168.114.144 CentOS-7-4
192.168.114.145 CentOS-7-5
192.168.114.146 CentOS-7-6
192.168.114.147 CentOS-7-7