Linux 入门指南

Linux 入门指南

一开始接触Linux是因为我所在的前端小组使用Java写了一层BFF,接口报错后,直接找后端同学就不好使了,后端同学会直接说:给我看看你们外网日志...然而,查看错误日志需要去对应的测试、验证服务器查看,因为我也开始使用Tabby、iTerm2等终端工具,连接服务器,查看日志。

就这样我学会了基础的Linux命令,后来开始自学Linux,此文即讲述了我的自学路径,主要面向零基础或刚接触 Linux 的读者,涵盖环境搭建、Linux目录结构、常用命令等入门内容,希望可以给想入门Linux的同学一点帮助。


一、环境准备与连接服务器

本文通过Ubuntu开启Linux的学习之路,至于有哪些Linux操作系统大家自行百度,我就不再介绍啦。

1.1 环境搭建

  • 可以选择购买云服务器,如阿里云/腾讯云等,我当初选择了最省钱的办法,在本机用虚拟机 (如Parallels Desktop)安装一个 Ubuntu 系统,当作"云服务器"使用。
  • 安装完成后,即在虚拟机或宿主机中查到 Ubuntu 的 IP 地址,用于 SSH 连接。

1.2 SSH 直接连接

默认使用 22 端口连接 Linux 服务器:

bash 复制代码
ssh -p 22 用户名@IP地址

例如:ssh -p 22 root@192.168.1.100,如果连接被拒绝需要确认openssh-server是否安装,另外Ubuntu 防火墙是否放行 22 端口等。

1.3 使用 SSH 证书登录

使用密钥对登录,可免输入密码并提高安全性。

第一步:在本地生成 SSH 密钥对

本机终端执行:

bash 复制代码
ssh-keygen

按提示可一路回车(使用默认路径与空口令),或自行设置路径和密码。生成后,在 ~/.ssh/ 下找到 公钥 (如 id_rsa.pub),复制其全部内容。

第二步:在远程 Ubuntu 上准备目录

远程 Ubuntu 上执行:

bash 复制代码
mkdir -p ~/.ssh
cd ~/.ssh

第三步:写入公钥

在远程机的 ~/.ssh 目录下执行(将 复制的公钥 替换为实际公钥内容):

bash 复制代码
echo "复制的公钥" >> authorized_keys

第四步:本地配置 SSH(可选但推荐)

本机~/.ssh 目录下新建或编辑 config 文件,例如:

bash 复制代码
Host *
  ServerAliveInterval 30

Host ubuntu
  Port 22
  HostName 你的服务器IP或域名
  User root
  IdentityFile ~/.ssh/你的私钥文件名
  IdentitiesOnly yes

Host ubuntu 为自定义别名,之后可用 ssh ubuntu 直接连接。

第五步:确认服务端 SSH 允许密钥登录

远程 Ubuntu 上编辑 SSH 服务配置:

bash 复制代码
vi /etc/ssh/sshd_config

确认以下两项已启用(去掉行首 # 或保持为如下内容):

bash 复制代码
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

第六步:重启 SSH 服务

在远程机上执行其一即可:

bash 复制代码
systemctl restart ssh
# 或
service ssh restart

完成后,在本机终端执行 ssh ubuntu(或你配置的别名)即可免密登录并获得 root 权限(若 config 中 User 为 root)。


二、Linux 常见目录结构

目录 说明
/bin 软链接到 /usr/bin/,存放常用命令的二进制文件(如 ll、ls)
/boot 启动 Linux 所需的核心文件(内核、initramfs 等)
/dev 设备文件,如磁盘、终端等,通过文件方式访问硬件
/etc 系统及各类服务的配置文件和子目录
/home 普通用户主目录,用户自己的文件、下载等
/lib 库文件(多为软链接到 /usr/lib 等)
/lost+found 默认为空;非法关机后,文件系统修复时可能将找回的数据放于此
/media 可移动媒体挂载点(如 U 盘、光驱)
/mnt 临时挂载点(如 U 盘、网络盘)
/opt 可选软件安装目录
/proc 虚拟文件系统,反映进程和内核信息
/root root 用户的主目录(~ 在 root 下即指 /root)
/run 运行时数据(如 PID 文件、套接字)
/sbin 系统管理用命令,多需 root 执行
/snap Snap 包安装目录
/srv 服务数据目录(如 Web、FTP 的数据)
/sys 虚拟文件系统,系统与内核信息
/tmp 临时文件,重启后可能被清空
/usr 用户级程序、库、文档等(如 /usr/bin、/usr/lib)
/var 可变数据,如日志、缓存、数据库等,常随运行而增长

三、常用命令

3.1 权限与用户

  • sudo su :获取管理员权限;执行后提示符会变为 root@主机名,表示当前是最高权限用户(root)。
  • 日常操作建议尽量不用 root,需要时再用 sudo 执行单条命令,更安全。

3.2 文件与目录

查看与切换

命令 说明
pwd 显示当前所在路径
ls 列出当前目录内容(默认不显示隐藏文件)
llls -la 列出所有文件(含隐藏),并显示权限等信息
ls -la ~ 查看当前用户主目录(~ 表示当前用户的家目录)
cd 目录 进入指定目录;输入路径时可用 Tab 自动补全
cd .. 返回上一级目录

文件权限含义(十个字符)

执行 ls -la 时,每行开头类似:drwxr-xr-x。第 1 个字符:d = 目录,- = 普通文件。后 9 个字符每 3 个为一组,依次表示拥有者、所属群组、其他用户的 r(read) 读 / w(write) 写 / x(execute) 执行;- 表示无该权限。例如 drwxr-xr-x 表示目录,拥有者可读写执行,群组和其他用户可读执行。

创建与删除

命令 说明
mkdir 目录名 创建目录,如 mkdir nginx
mkdir -p a/b/c 递归创建多级目录
touch 文件名 创建空文件,如 touch test.txt
rm -rf 目录/ 递归、强制删除,无法恢复,慎用!-r 递归,-f 强制)

移动、复制与重命名

命令 说明
mv 源 目标 移动文件或目录;目标为新名字时即为重命名
mv nginx/ /tmp nginx 移动到 /tmp
mv /tmp/nginx/ /tmp/nginx1 重命名为 nginx1
cp -r 源目录 目标路径 递归复制目录

3.3 文件查看与编辑

  • cat 文件名:一次性输出整个文件,适合小文件。
  • more 文件名 :分页查看,空格翻页,Ctrl+F / Ctrl+B 前后翻页。

vim / vi 编辑器vim 文件名 打开;按 i 进入插入模式,Esc 退出;:wq 保存退出,:q! 不保存退出;Ctrl+F / Ctrl+B 翻页。

3.4 查找与管道

  • |(管道符):前一个命令的输出作为后一个的输入。
  • grep 关键字:筛选包含关键字的行并高亮。
bash 复制代码
ls | grep te          # 列出名称包含 "te" 的项
ip addr | grep 10.211 # 在 IP 信息中筛选
find / -name "test.txt"   # 按文件名查找
find --help                # 查看 find 用法

3.5 系统信息

命令 说明
uname -a 完整内核及系统信息
uname -r 内核版本(简短)
cat /proc/version 内核详细信息

3.6 软件包安装(Debian/Ubuntu)

bash 复制代码
apt-get update              # 更新软件源索引
apt-get install 包名 -y     # 安装软件包,-y 自动确认,如:apt-get install unzip -y

3.7 磁盘管理

查看磁盘与分区df -Th 查看挂载与使用情况;fdisk -l 列出物理磁盘与分区;fdisk + 磁盘路径 分区,修改后用 partprobe 使内核识别。

逻辑卷(LVM)pvs / lvs / lvdisplay 查看物理卷、逻辑卷及详情;vgextend 扩展卷组;lvextend -L 大小 逻辑卷路径lvextend -L +100%FREE 逻辑卷路径 扩展逻辑卷;扩展后执行 /sbin/resize2fs 逻辑卷路径(ext4)使文件系统生效。

格式化mkfs -V -t ext4 -c 分区设备路径-V 详细信息,-t ext4 类型,-c 检查坏块)。


四、小结与参考

  • 入门阶段重点掌握:用户与权限文件与目录命令vim 基本操作管道与 grep
  • 做磁盘、分区、LVM 操作前,务必先备份重要数据,并在测试环境多练几遍。
  • rm -rf 慎用,删除前建议用 lspwd 再确认路径。

最后,学习参考链接分享给大家,Linux命令掌握常用的,其余的即查即用即可:

相关推荐
Y1rong1 小时前
linux之信号量
linux
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][tty]sysrq
linux·笔记·学习
c++逐梦人2 小时前
Linux基础IO
linux·操作系统·io
blueSatchel2 小时前
U-Boot载入到DDR过程的代码分析
linux·开发语言·u-boot
专注VB编程开发20年2 小时前
vb.net datatable新增数据时改用数组缓存
java·linux·windows
石去皿2 小时前
【嵌入式就业10】Linux内核深度解析:从启动流程到驱动框架的工业级实践
linux·运维·服务器
954L2 小时前
CentOs7执行yum update出现链接404问题
linux·centos·yum·vault
Trouvaille ~2 小时前
【Linux】应用层协议设计实战(二):Jsoncpp序列化与完整实现
linux·运维·服务器·网络·c++·json·应用层
EmbedLinX3 小时前
嵌入式之协议解析
linux·网络·c++·笔记·学习