基础篇
# 1. Linux 入门
读法有十多种,都可以。
最新 Linux 源码下载:The Linux Kernel Archives (opens new window)
Linux 与 Unix 关系图:
# 2. VM 与 Linux 的安装
使用环境:
- VMware 15.5
- CentOS 7.6(主)/ 8.1
# 2.1 VMware 的安装
...
# 2.2 CentOS 的安装
...
# 2.3 虚拟机的使用
# 2.3.1 克隆
如果已经安装了一台 Linux 操作系统,并还想要更多的,这时没必要重新安装,只需要克隆就可以了:
- 方式1:直接拷贝一份安装好的虚拟机文件
- 方式2:使用 VMware 的克隆操作
# 2.3.2 快照
快速恢复到快照时的运行状态。
# 2.3.3 迁移和删除
虚拟系统本质就是文件。迁移只需要文件夹的整体拷贝或剪切到另外位置。删除可以直接删除对应文件夹即可。
# 2.4 网络连接的三种方式
# 1)桥接模式(张三)
在桥接模式下,虚拟机 IP 地址需要与主机在同一个网段,给虚拟系统再分配一个本网段的 IP。虚拟系统可以和外部系统通讯,但这容易造成 IP 冲突。
# 2)NAT 模式(王五)
NAT 模式,就是网络地址转换模式。虚拟系统可以和外部系统通讯,不造成 IP 冲突。
# 3)仅主机模式(李四)
一个独立的系统
# 2.5 vmtools
vmtools 可以让我们在 Windows 下更好的管理虚拟机,比如可以设置 Windows 和 Centos 共享文件。
# 2.5.1 vmtools 的安装
- VMware 上方
虚拟机
->(重新)安装 VM tools
- 桌面上出现一个 VMware tools,打开里面有个 xxx.tar.gz,将其拷贝到 /opt
- 使用解压命令
tar -zxvf xx.tar.gz
得到一个安装文件 - 进入该安装文件夹里面,执行命令
./vmware-install.pl
进行安装,安装过程全部回车默认即可,直到安装完成。
注意点:
- 安装过程需要有 gcc
- 第一步的点击
(重新)安装 VM tools
后可能没有反应,只需要取消一下再重新点一下即可。
# 2.5.2 主机与 VM 共享文件夹
- 安装 VMtools 后,在 VMware 的
设置
->选项
->共享文件夹
- 在这个界面中,先点击
总是启用
,然后在下面文件夹中添加
需要共享的文件夹 - 在虚拟系统中,
/mnt
里可以找到共享的文件夹,对其的修改也会同步到主机中
# 3. 目录结构
# 3.1 基本介绍
Linux 采用层级目录结构,最上层是根目录 /
。
在 Linux 世界里,一切皆文件。
# 3.2 具体的目录结构
目录 | 说明 |
---|---|
/bin | 或 /usr/bin、/usr/local/bin。Binary 的缩写,存放着最经常使用的命令。 |
/sbin | 或 /usr/sbin、/usr/local/sbin。s —— Super User,存放着系统管理员使用的程序。 |
/home | 存放普通用户的主目录,每个用户有一个自己的目录。 |
/root | 系统管理员的主目录 |
/lib | 系统开机所需要的最基本的动态链接共享库。几乎所有应用程序都需要这些库。 |
/lost+found | 一般为空,当系统非法关机时这里就存放了一些文件、 |
/etc | 所有的系统管理所需要的配置文件和子目录。比如安装 mysql 时的 my.conf |
/usr | 用户安装的很多应用程序都放在这个目录下。类似于 Windows 的 program files。 |
/boot | 存放着启动 Linux 时使用的核心文件 |
/proc | 【不能动】。是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息。 |
/srv | 【不能动】。service 的缩写,存放一些服务启动后需要提取的数据 |
/sys | 【不能动】。安装了 2.6 内核中新出现的一个文件系统 sysfs |
/tmp | 存放临时文件 |
/dev | 把所有设备硬件用文件的形式存储 |
/media | Linux 自动识别的一些设备(如 U 盘、光驱)挂载到这个目录下。 |
/mnt | 让用户临时挂载别的文件系统。我们可以将外部存储挂载到 /mnt 下,然后进入里面查看内容 |
/opt | 主机额外安装软件所存放的目录。如安装 Oracle 就可以放到这里面 |
/usr/local | 这是另一个给主机额外安装软件所存放的目录。这里一般是通过编译源码方式安装的程序。 |
/var | 存放着不断扩充着的东西,习惯将经常修改的目录放在这里面,如日志文件。 |
/selinux | Security-Enhanced Linux。SELinux 是一种安全子系统,它能控制程序只能访问特定文件。 |
# 3.3 文件目录的相关指令
# 3.3.1 pwd
显示当前工作目录的绝对路径。
# 3.3.2 ls
ls [选项] [目录或文件]
- -a:显示包括隐藏文件在内的所有文件
- -l:以单列的方式显示详细信息
补充知识点:
- Linux 下,隐藏文件是以
.
开头- 命令的选项可以组合使用,比如 ls 的选项可以组合成
ls -al
。
# 3.3.3 cd 切换到指定目录
cd ~
:回到家目录cd ..
:回到上一级目录cd /usr
:切换到 /usr 目录
# 3.3.4 mkdir 创建目录
mkdir [选项] 要创建的目录
- -p:创建多级目录
案例:
- 创建一个目录:mkdir /home/dog
- 创建多级目录:mkdir -p /home/animal/tiger
# 3.3.5 rmdir 删除目录
rmdir [选项] 要删除的空目录
- rmdir 删除的是空目录,如果目录下有内容时无法删除
- 如果需要删除非空目录,应该使用
rm -rf 要删除的目录
,-r 递归删除,-f 强制删除
# 3.3.6 touch 创建空文件
touch 文件名
# 3.3.7 cp 拷贝
cp [选项] src dst
- -r:递归复制整个文件夹
- 强制覆盖不提示的方法:
\cp
,比如\cp -r /home/src /opt
# 3.3.8 rm 移除文件或目录
rm [选项] 要移除的文件或目录
- -r:递归删除整个文件夹
- -f:强制删除不提示
# 3.3.9 mv 移动(文件/目录)或重命名
mv old new
案例:
- mv cat.txt pig.txt:将 cat.text 重命名为 pig.txt
- mv /home/src /opt/:将 /home/src 移动到 /opt 下面
# 3.3.10 cat 查看文件
由于它不能修改文件,因此比 vim 更安全
cat [选项] 文件名
- -n:显示行号
- 为了浏览方便,一般会带上管道命令
| more
管道命令:将前一个指令的输出作为后一个指令的输入
# 3.3.11 more
more 指令以全屏的方式按页显示文本内容。常见操作:
操作 | 功能 |
---|---|
空白键 | 向下翻页 |
Enter | 向下翻一行 |
q | 离开 more |
Ctrl F | 向下滚动一屏 |
Ctrl B | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
# 3.3.12 less
用来分屏查看文件内容,与 more 指令类似,但更加强大。支持各种终端;显示文本时按需加载文本内容,对大型文件效率较高。
常见操作:
操作 | 功能 |
---|---|
空白键 | 向下翻页 |
[pagedown] | 向下翻页 |
[pageup] | 向上翻页 |
/str | 向下搜索 “str”。n 下一个,N 上一个 |
?str | 向上搜索 “str”。n 下一个,N 上一个 |
q | 离开 less |
# 3.3.13 echo 输出内容到控制台
echo [选项] [输出内容]
案例:
- ⭐️ echo 输出环境变量:
echo $PATH
,其中$
后面接环境变量名。
# 3.3.14 head 显示文件开头部分
head 文件
默认显示文件前 10 行内容。
- -n:指定显示前几行,比如 head -n 5 foo.txt
# 3.3.15 tail 显示文件结尾部分
tail 文件
显示文件最后默认 10 行内容。
- -n:指定行数
- -f:实时追踪该文档的所有更新
# 3.3.16 >
和 >>
重定向
>
输出重定向>>
重定向并追加
案例:
ls -l > foo.txt
:将 ls 的输出覆盖写入 foo.txt 中cat foo.txt > bar.txt
:将 foo.txt 内容覆盖到 bar.txtecho “hello” >> foo.txt
:将 hello 追加到文件后面
# 3.3.17 ln 创建软链接
ln,是 link 的缩写,创建一个软链接(类似 Windows 的快捷方式),主要存放了链接其他文件的路径。
ln -s [原文件或目录] [软链接名]
:给原文件创建一个软链接。
- rm 删除的是软链接,不会删除到原文件
- pwd 查看目录时仍然看到的是软链接所在目录
# 3.3.18 history
history 查看已经执行过的历史命令,也可以执行历史命令
history
:显示所有的历史命令history 10
:显示最近使用过的 10 个指令!5
:指令历史编号为 5 的指令
# 4. 远程登录到 Linux 服务器
我们这里使用 Xshell 6 和 Xftp 6 来作为远程登录客户端。
在虚拟机中使用 ifconfig
查看 IP 地址,在输出的第一部分的 inet
中可以看到 IP。
然后尝试主机与虚拟机能否连通:在主机中用 ping <IP>
测试是否能够成功。
在 Xshell 和 Xftp 中新建会话即可。