Day 12
Linux 免费开源自由软件,可定制化更强,更加安全,软件开源免费
比windows更加稳定安全,有界面操作和完全的命令行操作 上手比windows门槛高一点点
安装环境
VMware Workstation虚拟化软件,允许用户在一台物理机器上创建和运行多个完整的虚拟机 虚拟机是相互独立的,(宿主机)不会影响主机
虚拟机网络模式
桥接网络 虚拟机的地址和主机的地址在同一个网段 IP 地址容易冲突,同一个网段内的其他设备也可以直接访问你的虚拟机,不安全
网络地址转换模式(NAT模式) 虚拟机和主机不在同一个网段 会装一个虚拟网卡(VMnet8),虚拟机和 VMnet8 在同一个网段 自己的主机可以通过 VMnet8 和虚拟机进行交互(虚拟机能上网,但外网访问不到它)
仅主机模式 虚拟机和 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 没有盘符,一切皆文件 最顶层是一个 / 根目录
文件介绍
- /bin 是 Binary 的缩写,存放最基础的常用命令(ls、cp、cat 等),普通用户也能用
- /sbin 存放管理员使用的系统管理程序(s = super user)
- /home!!! 存放普通用户信息,家目录一个账户一个家目录
- /root!!! 超级管理员(root)的家目录
- /lib 系统共享库(类似 Windows 的 dll)
- /etc!!! 所有系统环境配置文件和子目录(改配置基本都来这里)
- /usr!!! 用户很多应用程序和文件都放在这里(不是 user 的缩写,是 Unix System Resources)
- /boot 存放启动时用到的核心文件(内核、引导程序)
- /opt!!! 安装可选的第三方软件的位置(如手动装的 JDK、IDEA)

补充整理:原稿有 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 软件包管理器
- 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 怎样使用命令
- help 命令
获得shell内建的命令帮助信息
常用快捷键
- Ctrl+L 清屏
- Ctrl+C或Q 停止进程/退出
- TAB键 提示
- 上下键 查看历史
文件目录类
pwd 显示当前工作目录的绝对路径
ls 列出列表内容 -a 全部文件包括隐藏文件 -l 长数据串列出,包含文件属性权限 -R 列出目录下所有子文件目录和文件 注:ll是ls-al的别名,可以使用ll来查看目录下的所有文件 -是表示文件,d文件夹,还有l软连接 接在后面的是权限,后面数字是有几个文件
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 移动文件或目录(剪切)
- mv oldNameFile newNameFile --->剪切变新文件名
- 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有三种模式
一般模式(查看模式) 执行vim指令
编辑模式:编辑内容 在一般模式下输入i即可进入编辑模式,输入Esc及可回退至一般模式
命令模式:选择保存模式及退出模式 在一般模式下输入“:”冒号即可以进入命令模式,同样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。
