linux 教程(保姆级教程)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

在编程领域,Linux 系统如同一座桥梁,连接着开发者与技术世界的底层逻辑。无论是开发 Web 应用、运维服务器,还是探索人工智能领域,掌握 Linux 技能都是必备的基础。本文将以 linux 教程为核心,通过 linux 教程的视角,为编程初学者和中级开发者提供一份循序渐进的学习指南。从基础命令到实战案例,我们将在代码与逻辑的交织中,逐步揭开 Linux 的神秘面纱。


一、Linux 基础:从命令行到文件系统

1.1 命令行界面(CLI):与计算机对话的“语言”

Linux 系统的核心是命令行界面(Command Line Interface,CLI),它如同程序员的“第二母语”。通过输入特定命令,用户可以直接与操作系统交互。例如,输入 ls 命令可以列出当前目录下的文件,就像打开一个文件夹查看内容一样直观。

形象比喻
想象 CLI 是一个“魔法咒语系统”。每个命令(如 cdmkdir)都是一个咒语,而终端窗口就是施展咒语的舞台。当你输入正确的咒语,系统就会执行相应的操作。

示例代码

ls -l

cd ~

mkdir project

1.2 文件系统:Linux 的“图书馆”结构

Linux 的文件系统采用树状结构,根目录为 /,如同图书馆的入口。每个目录(文件夹)和文件都有其独特的路径,例如 /home/user/project/file.txt。理解路径规则是高效操作文件的关键。

比喻扩展
将文件系统比作一座图书馆:

  • 根目录 /:图书馆的大门。
  • 子目录:不同楼层的书架。
  • 文件:书架上的书籍。

路径案例

  • 绝对路径/home/user/project(从图书馆大门出发的完整路线)。
  • 相对路径project(相对于当前所在楼层的路径)。

二、核心命令详解:掌握 Linux 的“基本咒语”

2.1 文件与目录操作命令

ls:查看文件列表

ls -l          # 以长格式显示文件详细信息
ls -a          # 显示隐藏文件
ls /etc        # 查看 /etc 目录下的内容

cd:切换目录

cd ..          # 返回上一级目录
cd /var/log    # 进入系统日志目录

mkdirrmdir:创建与删除目录

mkdir docs     # 创建名为 docs 的目录
rmdir docs     # 删除空目录 docs

2.2 文件内容操作命令

cat:查看或合并文件

cat file.txt   # 显示文件内容
cat file1.txt file2.txt > combined.txt  # 合并两个文件

nano:简单文本编辑器

nano config.txt  # 打开文本编辑器修改配置文件

grep:文本搜索神器

grep "error" log.txt  # 在 log.txt 中搜索包含 "error" 的行

2.3 进程管理命令

ps:查看进程状态

ps aux        # 显示所有进程的详细信息
ps -ef | grep python  # 查找与 Python 相关的进程

kill:终止进程

kill 1234     # 终止进程 ID 为 1234 的进程

三、Shell 脚本:自动化任务的“魔法书”

3.1 Shell 脚本基础

Shell 脚本是 Linux 系统中用于自动化任务的编程语言。通过编写脚本,开发者可以将重复性命令串联起来,节省时间。

示例脚本
创建名为 backup.sh 的脚本,用于备份文件:

#!/bin/bash
cp /home/user/project/* /backup/  # 复制项目文件到备份目录
echo "Backup completed at $(date)"  # 显示备份完成时间

执行脚本的步骤

chmod +x backup.sh  # 赋予脚本执行权限
./backup.sh         # 运行脚本

3.2 变量与条件判断

变量定义

NAME="Linux Tutorial"  # 定义变量 NAME
echo "Welcome to $NAME!"  # 输出变量内容

条件判断(if-else)

if [ -d "/backup" ]; then
  echo "Backup directory exists."
else
  mkdir /backup
  echo "Backup directory created."
fi

3.3 循环结构

for 循环遍历文件

for file in /home/user/*.txt; do
  echo "Processing $file"
  # 添加处理逻辑,如压缩文件
done

四、网络配置:Linux 作为“通信枢纽”

4.1 网络诊断命令

ping:测试网络连通性

ping -c 4 google.com  # 向 google.com 发送 4 次 ping 请求

ifconfigip:查看网络接口

ip addr show        # 显示所有网络接口信息

4.2 配置静态 IP 地址

通过修改 /etc/netplan/ 目录下的配置文件,可以设置静态 IP。例如,编辑 01-netcfg.yaml

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

保存后执行 sudo netplan apply 应用配置。


五、进阶技巧:优化你的 Linux 工作流

5.1 管道符(|):命令的“接力赛”

管道符将一个命令的输出作为另一个命令的输入,实现复杂操作。例如:

ps aux | grep python | awk '{print $2}'  # 获取所有 Python 进程的 PID

5.2 别名(Alias):自定义快捷指令

~/.bashrc 文件中添加别名,简化常用命令:

alias ll='ls -l'
alias gac='git add . && git commit -m'

5.3 日志管理:排查问题的“黑匣子”

系统日志通常位于 /var/log/ 目录中,常用命令包括:

tail -f /var/log/syslog  # 实时查看系统日志
journalctl -u nginx      # 查看 Nginx 服务日志

结论:持续学习,解锁 Linux 的无限可能

通过本文的 linux 教程,我们从基础命令到 Shell 脚本,再到网络配置和进阶技巧,逐步构建了对 Linux 系统的全面理解。但学习 Linux 并非终点——它更像是一个不断扩展的知识体系。建议读者通过以下方式深化技能:

  1. 实践优先:在虚拟机或云服务器上动手操作。
  2. 参与社区:加入 Stack Overflow 或 Reddit 的 Linux 论坛。
  3. 阅读手册:善用 man 命令查阅命令详解,例如 man grep

Linux 的强大之处在于其开源精神与灵活性。掌握它,不仅意味着获得一项技术能力,更意味着打开了一个充满可能性的世界。无论是开发、运维还是数据分析,Linux 都将成为你技术旅程中不可或缺的伙伴。


希望这篇 linux 教程 能为你提供清晰的指引,祝你在 Linux 的世界中探索愉快!

最新发布