杰瑞科技汇

Linux应用基础教程该怎么学?

《Linux应用基础教程》

目录

  1. 第一部分:Linux初识

    • 什么是Linux?
    • Linux vs. Windows
    • Linux发行版简介
    • 为什么学习Linux?
    • 如何安装Linux?(虚拟机方案推荐)
  2. 第二部分:核心概念与入门

    • Linux哲学思想
    • Linux文件系统结构(树状结构)
    • 终端/Shell是什么?
    • 用户与权限
    • 关键快捷键
  3. 第三部分:文件与目录操作(最常用)

    • pwd: 显示当前工作目录
    • ls: 列出文件和目录
    • cd: 切换目录
    • mkdir: 创建新目录
    • touch: 创建空文件
    • cp: 复制文件或目录
    • mv: 移动/重命名文件或目录
    • rm: 删除文件或目录
    • cat: 查看文件内容(小文件)
    • less: 分页查看文件内容(大文件)
    • man: 查看命令手册
    • find: 查找文件
    • grep: 文本搜索
    • echo: 输出文本
  4. 第四部分:软件包管理

    • 什么是软件包管理器?
    • Debian/Ubuntu 系统 (apt)
    • RedHat/CentOS/Fedora 系统 (yum/dnf)
    • 通用方法:源码编译
  5. 第五部分:文本编辑器入门

    • nano: 简单易用的命令行编辑器
    • vim: 强大的编辑器(基础入门)
  6. 第六部分:进程管理与任务调度

    • ps: 查看当前进程
    • top: 动态查看进程和资源占用
    • kill: 终止进程
    • jobs: 查看后台任务
    • bg/fg: 切换后台/前台任务
    • crontab: 定时任务
  7. 第七部分:网络配置与管理

    • ip addr: 查看IP地址
    • ping: 测试网络连通性
    • ss/netstat: 查看网络连接
    • curl/wget: 下载文件
  8. 第八部分:系统信息与帮助

    • uname: 显示系统信息
    • history: 查看命令历史
    • alias: 创建命令别名
    • help: 内置命令帮助
  9. 第九部分:学习路径与资源推荐

    • 进阶学习方向
    • 推荐书籍和网站

第一部分:Linux初识

什么是Linux?

Linux 是一套免费使用和自由传播的类 Unix 操作系统,其内核由林纳斯·托瓦兹(Linus Torvalds)在1991年首次发布,Linux 的最大特点是其开源特性,任何人都可以获取、修改和分发其源代码。

Linux vs. Windows

特性 Linux Windows
内核 内核与GUI分离(如GNOME, KDE) 内核与GUI深度集成
文件系统 树状结构,一切皆文件 驱动器盘符结构 (C:, D:)
命令行 强大、灵活,是主要操作方式 图形界面为主,命令行为辅助
软件安装 主要通过包管理器 (apt, yum) 主要通过 .exe 安装程序
开源与闭源 开源 商业闭源
用户与权限 严格的用户、组、权限模型 相对简单的权限管理
适用场景 服务器、开发、嵌入式、安全 桌面办公、游戏、专业软件

Linux发行版简介

Linux内核本身只是一个核心,为了让用户方便使用,开发者们将内核、系统工具、图形界面、应用软件打包在一起,形成了“发行版”。

  • Ubuntu: 最适合初学者,社区庞大,软件生态好。
  • CentOS / Rocky Linux / AlmaLinux: 企业级服务器首选,稳定可靠。
  • Debian: 非常稳定,是Ubuntu的基础。
  • Fedora: 红帽赞助,技术较新,适合开发者。
  • Arch Linux: 滚动更新,高度可定制,适合喜欢折腾的进阶用户。

为什么学习Linux?

  • 服务器领域霸主: 绝大多数互联网服务器、云计算平台都运行在Linux之上。
  • 开发者的必备技能: 大量开发工具、框架和部署环境都基于Linux。
  • 强大的可定制性: 你可以自由地定制你的操作系统。
  • 安全性高: 开源特性使得漏洞更容易被发现和修复。
  • 完全免费: 无需支付任何许可费用。

如何安装Linux?(虚拟机方案推荐)

对于初学者,强烈建议使用虚拟机来安装和学习Linux,这样不会影响你的现有系统(如Windows)。

  • 软件: 下载并安装 VirtualBox (免费) 或 VMware Workstation Player。
  • 系统: 从Ubuntu官网下载桌面版的ISO镜像文件。
  • 步骤:
    1. 打开VirtualBox,点击“新建”。
    2. 创建一个虚拟机,分配内存(建议2GB以上)和硬盘空间(建议20GB以上)。
    3. 在创建过程中,选择“使用一个虚拟硬盘文件”并选择之前下载的Ubuntu ISO文件作为光盘启动。
    4. 启动虚拟机,按照屏幕提示完成Ubuntu的图形化安装。

第二部分:核心概念与入门

Linux哲学思想

  • 一切皆文件: 硬件设备、配置信息、进程等在系统中都以文件的形式存在。
  • 小而专的工具: 每个命令只做一件事,但做得非常出色,通过管道将多个命令组合起来完成复杂任务。
  • 避免“惊喜”: 程序的输出应该是清晰、可预测的。
  • 配置文本化: 系统的配置通常存储在人类可读的文本文件中。

Linux文件系统结构(树状结构)

所有文件和目录都从根目录 开始。

  • /bin: 基本命令(如 ls, cp
  • /etc: 系统配置文件
  • /home: 普通用户的家目录
  • /usr: 用户安装的软件和程序
  • /var: 经常变化的文件,如日志 (/var/log)、缓存
  • /tmp: 临时文件
  • /boot: 启动相关的文件
  • /dev: 设备文件

终端/Shell是什么?

  • 终端: 是一个硬件或软件,它提供了一个文本界面让你与系统交互,你可以把它想象成Linux的“命令提示符”窗口。
  • Shell: 是一个程序,它接收你在终端输入的命令,解释这些命令,并让操作系统执行,最常用的Shell是 Bash (Bourne Again Shell)

用户与权限

Linux是一个多用户系统,通过用户和权限来保证安全。

  • 用户: 每个用户都有一个唯一的身份。
  • : 将用户分组,方便权限管理。
  • 权限: 分为读、写、执行,针对文件所有者、所属组和其他用户。
    • r (read): 读取
    • w (write): 写入
    • x (execute): 执行

关键快捷键

  • Ctrl + C: 终止当前正在运行的命令。
  • Ctrl + D: 输入文件结束符,等效于 exit,退出当前Shell。
  • Ctrl + L: 清屏。
  • Tab: 自动补全命令或文件名。

第三部分:文件与目录操作(最常用)

这部分是Linux操作的基石,请务必熟练掌握。

命令 全称 作用 示例
pwd Print Working Directory 显示你当前所在的目录。 pwd
ls List 列出当前目录下的文件和目录。 ls (简单列表)
ls -l (详细列表,显示权限、大小等)
ls -a (显示所有文件,包括隐藏文件,以开头)
cd Change Directory 切换目录。 cd /home (切换到 /home 目录)
cd .. (切换到上一级目录)
cd ~ (切换到当前用户的家目录)
cd - (切换到上一个目录)
mkdir Make Directory 创建一个新目录。 mkdir my_folder
mkdir -p parent/child (递归创建多级目录)
touch Touch 创建一个空文件,或更新文件的时间戳。 touch new_file.txt
cp Copy 复制文件或目录。 cp file1.txt file2.txt (复制文件)
cp -r dir1/ dir2/ (递归复制目录)
mv Move 移动文件/目录,或重命名。 mv old_name.txt new_name.txt (重命名)
mv file.txt /home/user/ (移动文件)
rm Remove 删除文件或目录。 rm file.txt (删除文件)
rm -r dir/ (递归删除目录)
rm -f file.txt (强制删除,不提示)
cat Concatenate 查看文件内容(适合小文件)。 cat file.txt
less Less 分页查看文件内容(适合大文件)。 less large_file.log (按 q 退出)
man Manual 查看命令的详细使用手册。 man ls (按 q 退出)
find Find 在指定目录下查找文件。 find /home -name "*.txt" (在 /home 目录下查找所有 .txt 文件)
grep Global Regular Expression Print 在文件中搜索匹配的文本行。 grep "error" /var/log/syslog (在syslog中搜索包含"error"的行)
echo Echo 将文本输出到终端或文件。 echo "Hello, Linux!"
echo "Hello" > file.txt (覆盖写入)
echo "World" >> file.txt (追加写入)

第四部分:软件包管理

安装软件是基本需求,不同发行版使用不同的工具。

Debian/Ubuntu 系统 (apt)

apt (Advanced Package Tool) 是 Debian 及其衍生版(如 Ubuntu)的包管理器。

  • 更新软件列表: sudo apt update
  • 升级已安装的包: sudo apt upgrade
  • 安装软件: sudo apt install <软件名>
  • 卸载软件: sudo apt remove <软件名>
  • 搜索软件: apt search <关键词>

示例: 安装 git

sudo apt update
sudo apt install git

RedHat/CentOS/Fedora 系统 (yum/dnf)

yum (Yellowdog Updater, Modified) 用于旧版 CentOS/RHEL,dnf (Dandified Yum) 是其新版,用于 Fedora 和新版 CentOS/RHEL。

  • 更新软件列表: sudo yum check-update (yum) 或 sudo dnf check-update (dnf)
  • 升级已安装的包: sudo yum update (yum) 或 sudo dnf upgrade (dnf)
  • 安装软件: sudo yum install <软件名> (yum) 或 sudo dnf install <软件名> (dnf)
  • 卸载软件: sudo yum remove <软件名> (yum) 或 sudo dnf remove <软件名> (dnf)

示例: 安装 nginx (使用dnf)

sudo dnf install nginx

第五部分:文本编辑器入门

在Linux中,配置文件通常是纯文本,需要用编辑器修改。

nano: 简单易用

nano 是一个对新手非常友好的编辑器。

  • 打开文件: nano my_config.conf
  • 操作:
    • 使用方向键移动光标。
    • Ctrl + O: 保存文件 (会提示确认文件名)。
    • Ctrl + X: 退出编辑器,如果文件有修改,会提示是否保存。

vim: 强大但需学习

vim (Vi IMproved) 是一个极其强大和高效的编辑器,但学习曲线较陡峭。

  • 打开文件: vim my_script.sh
  • 三种模式:
    1. 普通模式: 默认模式,用于导航和执行命令,按 i 进入插入模式。
    2. 插入模式: 用于输入文本,按 Esc 返回普通模式。
    3. 命令行模式: 用于保存、退出等操作,在普通模式下按 进入。

基本操作流程:

  1. vim file.txt (打开文件,进入普通模式)
  2. i (进入插入模式,开始输入文本)
  3. Esc (返回普通模式)
  4. 按 (进入命令行模式)
  5. 输入 wq (保存并退出) 或 q! (不保存强制退出)

第六部分:进程管理与任务调度

ps: 查看当前进程

ps (Process Status) 用于显示当前运行的进程。

  • ps aux: 显示所有用户的详细信息 (a=all, u=user format, x=include processes not attached to a terminal)。

top: 动态查看进程和资源占用

top 会实时更新进程列表,并显示CPU、内存等资源占用情况,按 q 退出。

kill: 终止进程

当你需要强制结束一个程序时使用。

  • ps aux 找到要终止进程的 PID (Process ID)
  • kill <PID>: 发送一个正常的终止信号。
  • kill -9 <PID>: 强制杀死进程(不推荐轻易使用)。

jobs, bg, fg: 管理后台任务

  • ping www.google.com &: & 符号让命令在后台运行。
  • jobs: 查看当前终端的后台任务列表。
  • fg %1: 将任务1带到前台运行。
  • bg %1: 让任务1在后台继续运行。

crontab: 定时任务

crontab 可以让你设置周期性执行的任务。

  • crontab -e: 编辑当前用户的定时任务列表。
  • 格式: 分钟 小时 日 月 星期 命令
  • 示例: 0 2 * * * /usr/bin/backup.sh (每天凌晨2点执行 /usr/bin/backup.sh 脚本)。

第七部分:网络配置与管理

ip addr: 查看IP地址

现代Linux系统推荐使用 ip 命令。

  • ip addr show: 显示所有网络接口的IP地址信息。

ping: 测试网络连通性

  • ping www.baidu.com: 测试与百度服务器的网络是否通畅。

ss/netstat: 查看网络连接

  • ss -tuln: 显示所有监听的TCP (t) 和UDP (u) 端口,不显示域名 (n)。
  • netstat -tuln: ss 的替代品,功能类似。

curl/wget: 下载文件

  • curl -O [URL]: 从URL下载文件并保持原文件名。
  • wget [URL]: 从URL下载文件。

第八部分:系统信息与帮助

uname: 显示系统信息

  • uname -a: 显示所有可用信息(内核版本、主机名等)。

history: 查看命令历史

  • history: 显示你之前输入过的命令列表。
  • !数字: 执行历史列表中对应编号的命令。!10 执行第10条命令。

alias: 创建命令别名

为长命令创建简短的别名。

  • alias ll='ls -alF': 创建一个 ll 命令,效果等同于 ls -alF
  • alias grep='grep --color=auto': 让 grep 的输出高亮显示。
  • 注意: alias 只在当前终端会话有效,要永久保存,请将其写入 ~/.bashrc~/.bash_profile 文件。

help: 内置命令帮助

有些命令是Shell内置的,没有 man 手册,可以使用 help

  • help cd: 查看 cd 命令的帮助信息。

第九部分:学习路径与资源推荐

进阶学习方向

  • Shell脚本: 学习如何编写 .sh 脚本,实现自动化任务。
  • 用户与权限管理: 深入学习 useradd, groupadd, chmod, chown 等。
  • 软件编译: 学习使用 gcc/g++ 编译C/C++程序,使用 makeMakefile 管理项目。
  • 服务管理: 学习使用 systemd (systemctl) 来管理后台服务。
  • Linux内核与网络: 深入理解内核原理、TCP/IP协议栈等。

推荐资源

  • 在线教程:
  • 实践平台:
    • OverTheWire: 通过游戏化的方式学习Linux安全基础。
  • 社区:
    • Stack Overflow: 提问和寻找答案的最佳去处。
    • 各大Linux发行版的官方论坛和社区。

也是最重要的一点:多动手,多实践! 不要害怕犯错,Linux的命令行环境非常安全,大胆地尝试你学到的每一个命令,这是掌握Linux最快的方式,祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇