Linux 基础入门:从历史到核心指令全解析

在服务器运维、嵌入式开发、云计算等多个技术领域,Linux 操作系统都占据着不可或缺的重要地位。它凭借开源、稳定、高效的特性,成为技术从业者必须掌握的技能之一。本文将从 Linux 的发展背景、核心特性出发,详细梳理常用基础指令、权限管理等关键知识,帮助新手快速入门 Linux。

一、Linux 起源与核心特性

1. 发展历程

Linux 的诞生与 UNIX 系统有着深厚的渊源。1968 年,Multics 操作系统的研发为后续系统奠定了多任务、多用户的基础理念。1969-1970 年,贝尔实验室的 Ken Tompson 和 Dennis Ritchie 基于 Multics 的核心思想开发出 UNIX 系统,随后经过多年发展,衍生出 BSD、System V 等多个分支。

1991 年,赫尔辛基大学的研究生 Linus Benedict Torvalds 发布了类似 UNIX 的操作系统内核,命名为 Linux。该系统受 Minix 启发,最初仅作为高级爱好者的实验项目,经过全球开发者的共同完善,1994 年正式发布 1.0 版本,逐步成长为如今影响深远的操作系统。

2. 核心特性

  • 开源自由:遵循 GNU GPL 协议,任何人可自由使用、修改和分发源代码,这也是 Linux 快速发展的核心动力。
  • 多用户多任务:支持同时多个用户登录,且能并行执行多个任务,适合服务器场景。
  • 良好的可移植性:可运行于 x86、ARM 等多种硬件架构,广泛应用于服务器、嵌入式设备、移动终端等。
  • 稳定高效:在高负载场景下仍能保持稳定运行,资源占用率低,是服务器操作系统的首选。

3. 主要发行版本

Linux 的发行版本众多,适配不同使用场景:

  • Ubuntu:基于 Debian 衍生,界面友好、生态丰富,适合桌面用户和新手。
  • CentOS:源自红帽企业级 Linux(RHEL)的开源版本,稳定可靠,常用于服务器领域。
  • Red Hat Enterprise Linux(RHEL):商业发行版,提供专业技术支持,广泛应用于企业级场景。
  • Kali Linux:专注于渗透测试和安全审计,预装大量安全工具,是安全从业者的常用系统。
  • Fedora:红帽的测试平台,包含最新技术特性,适合追求前沿功能的用户。

二、Linux 基础操作:从连接到目录导航

1. 远程连接 Linux

在实际工作中,Linux 服务器通常通过远程终端管理,常用工具为 XShell:

  1. 下载安装 XShell(家庭 / 学校版免费),官网地址:https://www.netsarang.com/products/xsh_overview.html
  2. 查看 Linux 主机 IP:执行ifconfig指令获取 IP 地址
  3. 远程登录:在 XShell 中输入ssh [IP地址],按提示输入用户名和密码即可连接
  4. 复制粘贴技巧:复制Ctrl+Insert,粘贴Shift+InsertCtrl+C/Ctrl+V不生效)

2. 目录结构与路径

Linux 的文件系统采用树状结构,核心目录功能如下:

  • /bin:存放系统基础可执行命令(如lspwd
  • /etc:系统配置文件目录(如网络配置、用户配置)
  • /home:普通用户的家目录,每个用户对应独立子目录
  • /root:超级用户(root)的家目录
  • /var:存放经常变化的文件(如日志、缓存)
  • /mnt:外部设备挂载目录(如 U 盘、光驱)

路径分为两种类型:

  • 绝对路径 :从根目录/开始,如/home/whb/test,定位唯一且不受当前目录影响
  • 相对路径 :相对于当前工作目录,如../temp(上级目录下的 temp 文件夹),使用更便捷

3. 目录导航核心指令

指令 功能 常用示例
pwd 显示当前工作目录 pwd → 输出/home/whb/test
cd 切换工作目录 cd /home/whb(绝对路径切换)、cd ..(返回上级目录)、cd ~(进入家目录)、cd -(返回上一次目录)
ls 列出目录内容 ls -a(显示隐藏文件)、ls -l(详细信息)、ls -al(组合选项,显示所有文件详细信息)

三、文件与目录操作指令

1. 文件操作

  • 创建文件touch 文件名,示例:touch newFile.txt(创建空文件),touch -a 文件名(仅修改访问时间),touch -m 文件名(仅修改修改时间)
  • 查看文件内容
    • cat 文件名:一次性显示全部内容,示例:cat temp.txtcat -n 文件名(显示行号)
    • more 文件名:分页显示,more -10 文件名(指定显示 10 行),按q退出
    • less 文件名:支持前后翻页,less -N 文件名(显示行号),/字符串(向下搜索),?字符串(向上搜索)
    • head/tail 文件名head -5 文件名(显示前 5 行),tail -3 文件名(显示后 3 行),tail -f 文件名(实时监控文件更新,适合查看日志)
  • 复制文件cp [选项] 源文件 目标文件,示例:cp myfile.txt backup.txt(复制文件),cp -i 源文件 目标文件(覆盖前询问),cp *.txt dir(复制所有 txt 文件到 dir 目录)
  • 移动 / 重命名文件mv [选项] 源文件 目标文件,示例:mv myfile.txt yourfile.txt(重命名),mv myfile.txt ../dir(移动文件到上级目录的 dir 文件夹)
  • 删除文件rm [选项] 文件名,示例:rm file.txt(删除文件),rm -i 文件名(删除前询问),rm -f 文件名(强制删除只读文件)

2. 目录操作

  • 创建目录mkdir 目录名,示例:mkdir mydir(创建空目录),mkdir -p path1/path2/path3(递归创建多级目录)
  • 删除目录
    • rmdir 目录名:仅删除空目录,rmdir -p path1/path2(递归删除空目录)
    • rm -r 目录名:删除目录及所有内容,rm -rf 目录名(强制递归删除,慎用!)

四、权限管理:Linux 安全核心

1. 权限基础概念

Linux 通过权限控制文件 / 目录的访问,涉及三个维度:

  • 访问者分类
    • u(User):文件所有者
    • g(Group):所有者所属组的用户
    • o(Others):其他用户
  • 文件类型
    • d:目录,-:普通文件,l:软链接,b:块设备(如硬盘),c:字符设备(如屏幕)
  • 基本权限 (对应八进制数值):
    • r(读,4):文件可读取内容,目录可查看列表
    • w(写,2):文件可修改内容,目录可创建 / 删除文件
    • x(执行,1):文件可运行,目录可进入(cd
    • -:无对应权限

权限表示示例:drwxrwxr-x,拆解为:

  • 第一位d:目录类型
  • 第 2-4 位rwx:所有者权限(读 + 写 + 执行)
  • 第 5-7 位rwx:所属组权限(读 + 写 + 执行)
  • 第 8-10 位r-x:其他用户权限(读 + 执行)

2. 权限修改指令

  • chmod :修改文件 / 目录权限,两种用法:

    1. 符号格式:chmod [用户][±=][权限] 文件名,示例:chmod u+w file.txt(给所有者添加写权限),chmod o-x dir(给其他用户取消执行权限),chmod a=r file.txt(给所有用户赋予读权限)
    2. 八进制格式:chmod 数值 文件名,示例:chmod 664 file.txt(所有者 / 组:读 + 写,其他:读),chmod 755 dir(所有者:读 + 写 + 执行,组 / 其他:读 + 执行)
    • 递归修改目录权限:chmod -R 755 dir(修改 dir 及子目录所有文件权限)
  • chown :修改文件所有者,示例:chown user1 file.txt(将 file.txt 所有者改为 user1),chown -R user1 dir(递归修改目录所有者)

  • chgrp :修改文件所属组,示例:chgrp users file.txt(将文件所属组改为 users)

3. 粘滞位(特殊权限)

默认情况下,具有目录写权限的用户可删除目录内任意文件,这存在安全隐患。粘滞位可解决该问题:

  • 设置粘滞位:chmod +t 目录名,示例:chmod +t /home
  • 效果:设置后,目录下的文件仅能被 3 类用户删除:超级管理员、目录所有者、文件所有者
  • 验证:设置后目录权限显示为drwxrwxrwt(末尾t表示粘滞位)

五、实用工具与扩展指令

1. 压缩与解压

  • zip/unzip
    • 压缩:zip -r test.zip test/(递归压缩 test 目录)
    • 解压:unzip test.zip -d /tmp(解压到 /tmp 目录)
  • tar (重要):支持多种压缩格式,核心参数:
    • -c:创建压缩包,-x:解压,-z:gzip 压缩,-j:bzip2 压缩,-v:显示过程,-f:指定文件名
    • 示例:
      • 打包压缩:tar -zcvf etc.tar.gz /etc(gzip 格式压缩 /etc 目录)
      • 解压:tar -zxvf etc.tar.gz -C /usr/local/src(解压到指定目录)
      • 查看压缩包内容:tar -ztvf etc.tar.gz

2. 搜索与查找

  • find :在文件树中查找文件,示例:find ~ -name "test.c"(在用户家目录查找 test.c 文件)
  • grep :在文件中搜索字符串,示例:grep "abcd" temp.txt(查找包含 abcd 的行),grep -i "abcd" temp.txt(忽略大小写),grep -n "abcd" temp.txt(显示行号),grep -v "abcd" temp.txt(反向查找,显示不包含 abcd 的行)
  • which/whereis :查找命令位置,which ls(显示 ls 命令路径),whereis ls(显示命令及手册位置)

3. 系统信息与时间

  • date:查看 / 设置系统时间,示例:date +%Y-%m-%d(显示年月日),date +%H:%M:%S(显示时分秒),date -s "2024-05-20 14:30:00"(设置时间,需 root 权限)
  • cal:查看日历,cal(当前月日历),cal 2024(2024 年全年日历),cal -3(显示前一月、当前月、后一月)
  • uname -a:查看系统详细信息(内核版本、硬件架构等)
  • top:实时监控系统进程资源占用,top -d 1 -n 5(1 秒刷新一次,共刷新 5 次),按q退出

4. 帮助指令

  • man 命令:查看命令手册,示例:man ls(查看 ls 命令用法),man 2 fork(查看系统调用 fork 的手册)
  • 手册章节说明:1(普通命令)、2(系统调用)、3(库函数)、5(文件格式)、8(系统管理命令)

六、Linux 权限与 shell 运行原理

1. 用户切换

Linux 分为超级用户(root,提示符#)和普通用户(提示符$):

  • 切换用户:su [用户名],示例:su root(普通用户切换到 root,需输入 root 密码),su whb(root 切换到普通用户 whb,无需密码)

2. shell 运行原理

Linux 内核(kernel)是操作系统核心,用户无法直接操作,需通过 shell(命令行解释器)作为中间层:

  1. 用户输入命令(如ls
  2. shell 解析命令并传递给内核
  3. 内核执行命令并返回结果
  4. shell 将结果展示给用户

常用 shell 为 bash(Bourne Again Shell),类似 "媒婆" 角色,连接用户与内核。

相关推荐
acaad4 小时前
访问信创系统的服务器报错Received fatal alert: handshake_failure
运维·服务器
大树884 小时前
【无标题】
大数据·运维·服务器·人工智能
南境十里·墨染春水4 小时前
linux学习进展 基础命令 vi基础命令
linux·运维·服务器·笔记·学习
Deitymoon4 小时前
linux——读写锁
linux
赵民勇4 小时前
locales包详解
linux
江畔何人初4 小时前
GTID的作用
linux·运维·服务器·mysql·云原生·kubernetes
今天又在写代码4 小时前
数据智能分析平台部署服务器
android·服务器·adb
茉莉玫瑰花茶4 小时前
mmap 文件映射 [系统加餐]
服务器
橘子编程4 小时前
编译原理:从理论到实战全解析
java·linux·python·ubuntu
Qt程序员4 小时前
Linux 内核 SPI 驱动
linux·linux内核·嵌入式开发·spi