Skip to content

Day 12 ​

Linux 免费开源自由软件,可定制化更强,更加安全,软件开源免费
比windows更加稳定安全,有界面操作和完全的命令行操作 上手比windows门槛高一点点

安装环境 ​

VMware Workstation虚拟化软件,允许用户在一台物理机器上创建和运行多个完整的虚拟机 虚拟机是相互独立的,(宿主机)不会影响主机

虚拟机网络模式 ​

  1. 桥接网络 虚拟机的地址和主机的地址在同一个网段 IP 地址容易冲突,同一个网段内的其他设备也可以直接访问你的虚拟机,不安全

  2. 网络地址转换模式(NAT模式) 虚拟机和主机不在同一个网段 会装一个虚拟网卡(VMnet8),虚拟机和 VMnet8 在同一个网段 自己的主机可以通过 VMnet8 和虚拟机进行交互(虚拟机能上网,但外网访问不到它)

  3. 仅主机模式 虚拟机和 VMnet1 在同一个网段 主机通过远程访问工具(Xshell、FinalShell)操作虚拟机 (通过 IP 来判断操作哪一台虚拟机) 所以得将虚拟机的 IP 固定 只有自己的主机才可以和虚拟机进行交互,虚拟机不能上网

补充整理:三种模式怎么选——

模式虚拟机能上网主机能连虚拟机局域网其他机器能连典型用途
桥接能能能需要让同网段同事访问你的服务
NAT能能不能日常学习首选,最省心
仅主机不能能不能纯内网、断网环境做实验

实践建议:学习阶段一律用 NAT + 固定 IP,既方便主机 SSH 连接, 又不会因为网段变化导致 IP 漂移。固定 IP 要改 /etc/netplan/*.yaml(Ubuntu 18.04+)或 /etc/sysconfig/network-scripts/ifcfg-*(CentOS)。


DNS(域名解析服务),把网址翻译成 IP 地址

补充整理:连不上网时排错顺序—— ping 127.0.0.1(本机协议栈)→ ping 网关(到路由器)→ ping 8.8.8.8(到外网)→ ping www.baidu.com(DNS 是否正常)。 前三步通、最后一步不通,就是 DNS 的问题,改 /etc/resolv.conf 换 DNS 即可。

Linux文件和目录结构 ​

Linux 没有盘符,一切皆文件 最顶层是一个 / 根目录

文件介绍 ​

  1. /bin 是 Binary 的缩写,存放最基础的常用命令(ls、cp、cat 等),普通用户也能用
  2. /sbin 存放管理员使用的系统管理程序(s = super user)
  3. /home!!! 存放普通用户信息,家目录一个账户一个家目录
  4. /root!!! 超级管理员(root)的家目录
  5. /lib 系统共享库(类似 Windows 的 dll)
  6. /etc!!! 所有系统环境配置文件和子目录(改配置基本都来这里)
  7. /usr!!! 用户很多应用程序和文件都放在这里(不是 user 的缩写,是 Unix System Resources)
  8. /boot 存放启动时用到的核心文件(内核、引导程序)
  9. /opt!!! 安装可选的第三方软件的位置(如手动装的 JDK、IDEA)

ls 与 ls -la 查看 /usr 目录的实际输出

补充整理:原稿有 4 处笔误需要修正—— 「一切解释文件」应为「一切皆文件」(Linux 的核心设计思想:设备、进程、Socket 都以文件形式呈现); 「/user」应为 /usr;「/etc 所以系统环境配置文件」应为「所有系统环境配置文件」; 「/opt 安装可选或」句子残缺,完整说法是「安装可选软件包的目录」。

另外补上几个同样常用、原稿没列的目录:

目录用途
/var经常变化的文件:日志 /var/log、网页 /var/www、邮件队列等
/tmp临时文件,任何用户都可写,重启通常会被清空
/dev设备文件(/dev/null 黑洞、 /dev/sda 磁盘)
/proc虚拟文件系统,内核与进程的运行时信息(top、free 都读它)
/mnt、/media挂载点,插 U 盘、挂磁盘用

记忆口诀:配置在 etc,软件在 usr,日志在 var,临时在 tmp,设备是 dev。

APT 软件包管理器 ​

  1. apt常用命令: apt search 搜索软件包概述
    apt show 显示软件包细节
    apt install 安装软件包
    apt remove 移除软件包
    apt update 更新可用软件包列表(只是刷新索引,不升级软件)

补充整理:还有两个常用的原稿没列—— apt upgrade:真正把已装软件升级到最新版(要先 update 再 upgrade); apt autoremove:清理不再被依赖的残留包。 换国内源(阿里云/清华)能显著提速,改 /etc/apt/sources.list 后记得 apt update。

帮助命令 ​

man man 查看手册页文档说明
man - 系统参考手册接口
man[页编号][命令或配置文件]
name 命令的名称和单行描述
synopsis 怎样使用命令

  1. help 命令
    获得shell内建的命令帮助信息

常用快捷键 ​

  1. Ctrl+L 清屏
  2. Ctrl+C或Q 停止进程/退出
  3. TAB键 提示
  4. 上下键 查看历史

文件目录类 ​

  1. pwd 显示当前工作目录的绝对路径

  2. ls 列出列表内容 -a 全部文件包括隐藏文件 -l 长数据串列出,包含文件属性权限 -R 列出目录下所有子文件目录和文件 注:ll是ls-al的别名,可以使用ll来查看目录下的所有文件 -是表示文件,d文件夹,还有l软连接 接在后面的是权限,后面数字是有几个文件

  3. cd 切换目录 cd:切换路径
    cd 绝对路径->从根目录/ 开始
    cd 相对路径
    cd~或者cd 回到自己的家目录
    cd- 回到上次所在的目录
    cd.. 回到上一个目录
    cd -P 跳转到实际物理路径,而非快捷方式路径

mkdir 创建目录 ​

-p 创建多级目录(小写 p,原稿写成大写 -P 是错的)
sudo mkdir mytest/a 在已有的 mytest 下创建 a
sudo mkdir -p mytest2/b 在当前目录创建 mytest2 及其子目录 b

touch ​

创建文件 sudo touch {a..z}.txt 若用 mkdir 创建 a.txt,得到的仍然是文件夹 Linux 是通过指令来判断你要创建什么,不靠扩展名

cp 复制文件和目录 ​

cp a.txt a2.txt 在当前目录下复制一个a.txt成b.txt (cp只能复制文件不能复制目录) cp -r 才可以复制目录

mv 移动文件或目录(剪切) ​

  1. mv oldNameFile newNameFile --->剪切变新文件名
  2. mv/XXX/movefile/targetFolder --->把文件移到目标目录中,文件名不变

rm删除文件或目录 ​

-r 删除目录和其中的文件 -f 强制执行删除(不询问) -v 显示指令的详细执行过程 rm -rf *.txt 匹配当前目录下所有后缀为.txt 的文件

补充整理:rm -rf 是 Linux 里最危险的命令之一,务必注意——

  • 千万别写成 rm -rf / (根目录),加了 sudo 更是直接报废系统
  • 变量拼接要留神:rm -rf $DIR/* 当 $DIR 为空时会变成 rm -rf * 甚至更糟, 写成 rm -rf "${DIR:?}/"*(变量为空就报错退出)
  • 删除前先 ls 确认匹配范围:ls *.txt 看对不对,再换成 rm
  • 想「删除后还能找回」,用 mv 文件 /tmp/ 代替 rm,等确认没问题再清 /tmp

cat 查看文件内容 ​

-n 显示所有行的行号

tail 输出文件尾部内容 ​

默认查看后十行
-n 数字,显示倒数数字行数的内容
-f 实时查看文件最新追加的内容

echo 输出内容到控制台 ​

\\输出本身
\n 换行符号
\t 制表符
注意:要加-e "",不然就原样输出

>和 >>输出重定向 ​

>  覆盖写入
>> 接着写入 

ln 软连接 ​

删除时候最后加了斜杠就是删文件 不加斜杠是删软连接

history ​

查看历史指令

VI/VIM编辑器 ​

vim有三种模式

  1. 一般模式(查看模式) 执行vim指令

  2. 编辑模式:编辑内容 在一般模式下输入i即可进入编辑模式,输入Esc及可回退至一般模式

  3. 命令模式:选择保存模式及退出模式 在一般模式下输入“:”冒号即可以进入命令模式,同样Esc回到一般模式

补充整理:刚装好的系统里 vim 最难的其实不是编辑,是不知道怎么退出。 记住这几个就够用了:

命令模式(先按 Esc,再输入 :)

命令作用
:w保存
:q退出(没修改时)
:q!强制退出不保存(改乱了用它跑路)
:wq / :x保存并退出
:set nu显示行号(排查报错必备)
/关键字向下搜索,按 n 找下一个

一般模式(直接按键)

按键作用
i光标处进入编辑
o下一行插入新行并编辑
dd删除当前行
yy / p复制当前行 / 粘贴
u撤销
gg / G跳到文件首行 / 末行
100G跳到第 100 行(配合报错行号定位)

改服务器配置时最常见的场景就是:vim xxx.conf → i 改 → Esc → :wq。