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),类似 "媒婆" 角色,连接用户与内核。

相关推荐
遇见火星2 小时前
服务器HBA卡与RAID卡:到底有什么区别?
运维·服务器·hba卡·raid卡
翼龙云_cloud2 小时前
亚马逊云渠道商:AWS RDS备份恢复实战
服务器·云计算·aws
ajole2 小时前
Linux学习笔记——基本指令
linux·服务器·笔记·学习·centos·bash
嵌入小生0072 小时前
数据结构与算法 | 完全二叉树的实现、哈希表的实现
linux·c语言·数据结构·算法·vim·嵌入式
爱喝水的鱼丶2 小时前
SAP-ABAP:高效开发指南:全局唯一标识符ICF_CREATE_GUID函数的全面解析与实践
运维·服务器·开发语言·数据库·sap·abap·开发交流
软件资深者2 小时前
口袋系统WinToGo(免费)新一代PE:在U盘中还原修复系统,支持Mac苹果设备
运维·服务器
丁劲犇2 小时前
老旧CentOS7服务器JVM加载Jar缓慢排查:竟与NTP服务器有关
服务器·jvm·jar·java8·ntp·加载慢
Swift社区2 小时前
Docker Compose 一键部署前后端分离项目
运维·docker·容器
德迅云安全—珍珍2 小时前
服务器cpu过高是什么情况,造成的原因有哪些?
运维·服务器