初识 Linux 操作系统
前言
呃,想要租个服务器,部署个 Easytier 节点服务器。但总不能啥也不懂就租个服务器吧,于是决定先在 VMware Workstation 中部署个虚拟的 Ubuntu Server 来实验一下先。
下载 VMware Workstation
自己找地方下。曾经上课老师给过安装包,但当时觉得 VMware Workstation 没啥用,就随手丢一个不知名文件夹里了。博主翻了半天才翻出来的。推荐下 17,因为曾经下过其他版本的安装程序有启动不了的情况。
各版本的激活密钥 (不保证都能用,但 17 是能用的,至少写这篇文章时能用)
版本17:
1 | JU090-6039P-08409-8J0QH-2YR7F |
版本16:
1 | ZF3R0-FHED2-M80TY-8QYGC-NPKYF |
版本15:
1 | FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6 |
版本12:
1 | ZC3TK-63GE6-481JY-WWW5T-Z7ATA |
版本10:
1 | 1Z0G9-67285-FZG78-ZL3Q2-234JG |
下载 Ubuntu Server 操作系统
进入 MSDN 我告诉你,找到 Ubuntu Server 操作系统的 .iso 文件并下载。
Ubuntu Server 操作系统只有命令行,没有图形化界面,适合用作服务器的操作系统。
创建虚拟机
进入 VMware WorkStation,然后点击创建虚拟机。
选择自定义,然后点击下一步,然后再点下一步。
接下来会进入选择 .iso 光盘映像文件的界面,选择刚刚下好的 Ubuntu Server 的 .iso 映像文件。
剩下的选项根据自己的需求更改即可,大部分保持默认就行了。
为了模拟服务器环境,博主 CPU 只选了 1 个、2 核心。其他图形化操作系统要分配多一些核心。
启动 Ubuntu Server
虚拟机创建完成后就可以进行启动了,然后会进入操作系统安装的流程,大部分都默认就行了,中间会有设置用户名称和用户密码的环节。
各个默认文件夹的作用
在 Ubuntu Server 中,运行 ls -la / 命令会列出根目录下的所有文件夹,这里记录每个文件夹的大致作用。
/bin存放基本的二进制可执行文件(如ls、cp、mv等常用命令),所有用户(包括普通用户)都可执行。/boot存放系统启动所需的文件,包括Linux内核(如vmlinuz)、引导加载程序(如GRUB)和初始化内存盘(initramfs),系统启动时必须依赖这些文件。/cdrom传统上用于挂载CD/DVD设备的目录(如光驱)。/dev存放设备文件,Linux中所有硬件(如硬盘、终端、打印机)都以文件形式存在,例如:/dev/sda:第一个SATA硬盘。/dev/tty:终端设备。
/etc存放系统配置文件,是Linux的核心配置目录,包含网络配置(/etc/network/)、用户账户(/etc/passwd)、服务配置(/etc/nginx/)等。/home普通用户的 Home 目录,每个用户有自己的子目录(如/home/user1),用于存放个人文件(文档、配置、数据等)。/lib存放系统共享库(如C语言库libc.so),供/bin和/sbin中的程序调用,支持系统基本功能。/lib6464位系统的共享库目录,与/lib功能类似,但针对64位架构(如/lib64/libc.so.6)。/lost+foundext3/ext4文件系统的恢复目录,文件系统检查(fsck)时,损坏的文件会被恢复到这里,通常为空(除非文件系统损坏)。/media用于自动挂载可移动设备(如U盘、光驱、移动硬盘),系统会自动在此创建挂载点(如/media/usb)。/mnt手动挂载文件系统的目录,用户可临时挂载硬盘分区、网络文件系统等(如mount /dev/sdb1 /mnt)。/opt存放可选的第三方软件包(如Google Chrome、VS Code),通常安装在此目录,便于管理。/proc虚拟文件系统,存放内核和进程信息(如/proc/cpuinfo显示CPU信息,/proc/meminfo显示内存信息),数据存于内存,非实际磁盘文件。/rootroot用户的家目录(不同于/home/root),是root用户登录后的默认工作目录。/run存放运行时数据(如系统启动后生成的临时文件),重启后会清空,替代旧版/var/run。/sbin存放系统管理员使用的二进制可执行文件(如fdisk、ifconfig、reboot),需root权限执行。/snap存放Snap包(Ubuntu的包管理格式),Snap应用安装后,文件和依赖会存放在此目录。/srv存放服务数据,如Web服务器的网站文件(/srv/www)、FTP服务的文件(/srv/ftp)等。/swap.img交换文件,用于虚拟内存(当物理内存不足时,系统将部分内存数据交换到此文件,缓解内存压力)。/sys虚拟文件系统,存放硬件信息和内核参数(如/sys/class/net/eth0显示网卡信息),提供内核与硬件的交互接口。/tmp存放临时文件,所有用户可读写,系统重启时会清空(适合临时存储小文件)。/usr存放用户程序和文件,包含大部分用户可用的程序(/usr/bin)、库(/usr/lib)、共享数据(/usr/share)等,是系统的“用户程序仓库”。/var存放可变数据,如日志文件(/var/log)、邮件(/var/mail)、缓存(/var/cache)等,数据会随系统运行动态变化。
以上内容由 AI 生成。有些目录会在一些下载后的应用中碰到,作用都差不多。
Linux 权限相关
设置 root 用户密码
在刚安装的 Ubuntu Server 中,root 用户默认是禁用状态(密码未设置,且通常不允许直接登录),需通过以下步骤启用并登录:
首先登录 user 用户 (在安装系统时创建的用户)
执行以下命令设置 root 密码
1 | sudo passwd root |
- 输入当前用户的密码(sudo 权限验证)
- 输入新 root 密码并确认(密码不会显示,正常)
- 切换到 root 用户
- 方法 1 :
1 | su - root |
(输入刚设置的 root 密码)
- 方法 2 :
1 | sudo -i |
(直接以 root 身份执行命令,无需密码,因 sudo 已配置)
方法二例子: 创建一个文件夹
1 | sudo mkdir [file] |
将用户添加到 sudo 组
在 Ubuntu Server 中,给普通用户授予基本权限(如执行 sudo 命令的权限)通常通过将其添加到 sudo 组实现
查看用户是否在 sudo 组
1 | groups [user] |
若输出包含 sudo(如 [user] : [user] sudo),则无需操作;若不含,继续下一步。
将用户添加到 sudo 组
1 | # 方法1:usermod(推荐) |
-aG 表示“追加(append)”用户到指定组(G 是组的缩写)。
使组生效,添加用户到组后,需重新登录或执行 newgrp 命令使更改立即生效
1 | newgrp sudo |
测试权限,用户执行 sudo 命令(如查看 /root 目录,需 root 权限)
1 | sudo ls /root |
输入当前用户的密码(非 root 密码),若命令成功执行,说明权限已生效。
常用命令行
这里只记录博主用过的
查看文件夹
使用长格式显示文件夹内容
1 | ls -la |
创建文件夹
运行以下命令创建文件夹
1 | mkdir [file] |
移动文件位置
运行以下命令移动文件位置
1 | mv [file.txt] /home/user/docs/ |
运行以下命令将整个文件夹内的文件移动至父目录
1 | mv * ../ |
system 相关
运行以下指令启动一个服务 ([file].service 为服务的配置文件)
1 | systemctl start [file].service |
运行以下命令查看服务状态
1 | systemctl status [file].service |
运行以下命令停止服务
1 | systemctl stop [file].service |
运行以下命令重启服务
1 | systemctl restart [file].service |
在写完配置文件后需要运行以下命令重新加载配置
1 | systemctl daemon-reload |
运行以下命令创建开机自启任务
1 | systemctl enable [file].service |
运行以下命查看服务日志
1 | journalctl -u [file].service -f |
定位当前工作目录
输入以下命令输出当前工作目录的绝对路径
1 | pwd |
下载命令
运行以下命令从网址下载软件
1 | wget https://... |
解压命令
运行以下命令从网址解压压缩包
1 | unzip [file].zip |
查看本机 IP 地址
输入以下命令查看相关信息
1 | ip addr |
查看端口占用情况
需要下载
netools工具集
1 | sudo apt update # 更新包列表(可选,确保获取最新包信息) |
安装完成过后运行以下命令查看端口占用情况
1 | sudo netstat -tuln | grep [port] |
若是被占用,可进一步运行以下命令排查占用该端口的进程
1 | sudo lsof -i :[port] |
关机指令
运行以下命令进行关机
1 | shutdown [time]/now |
shutdown 指令后可以跟时间参数,代表延迟 [time] 后关机,若是 now 参数的话表示即刻关机
或者运行以下命令立即关机 (与 shutdown now 相似)
1 | poweroff |
常用快捷键
这里列出 Linux 中的常用快捷键
历史命令与补全
历史命令与补全相关快捷键
Tab: 自动补全命令、路径或文件名(按两次显示所有匹配项)up/down: 浏览历史命令(按方向键切换)ctrl + R: 反向搜索历史命令(输入关键词快速定位)Alt + .: 粘贴上一个命令的最后一个参数(如 cp file1.txt dir/ 后,Alt + . 可粘贴 dir/)
光标移动
光标相关快捷键
ctrl + A: 光标移至行首ctrl + E: 光标移至行尾ctrl + F: 光标后移一个字符ctrl + B: 光标后移一个字符Alt + F: 光标前移一个单词Alt + B: 光标后移一个单词
文本操作
文本操作快捷键
ctrl + U: 删除光标到行首的内容ctrl + K: 删除光标到行尾的内容ctrl + W: 删除光标前的一个单词ctrl + Y: 粘贴(恢复)删除的内容(配合 Ctrl + U/K/W 使用)ctrl + L: 清屏(等同于 clear 命令)
系统/终端控制
系统/终端相关快捷键
- 进程管理
ctrl + C: 终止当前正在运行的命令(发送 SIGINT 信号)ctrl + Z: 暂停当前命令(放入后台,可通过 fg 恢复)ctrl + \: 强制终止(发送 SIGQUIT 信号,比 Ctrl + C 更“暴力”)
- 终端操作
ctrl + D:退出当前终端(或结束输入,如 cat 命令中按 Ctrl + D 结束输入)ctrl + S: 暂停屏幕输出(防止输出过快,按 Ctrl + Q 恢复)
文本编辑器 (以Vim为例)
文本编辑时才会用到的按键
i: 进入插入模式(编辑文本)Esc: 返回普通模式(退出插入模式):w: 保存文件(普通模式下):q: 退出编辑器(普通模式下):wq: 保存并退出(普通模式下)
复制粘贴
饺子醋
Ctrl + Shift + C: 复制Ctrl + Shift + V: 粘贴
结语
大致内容就这些,之后可能会更新常用命令行。关于为什么不上图片:因为博主很懒,而且图片上多了会增长博客文章加载时间。要将图片压缩才能缓解,因此懒得加了,过程也并不是很难理解。
