Java技术八股学习Day27

Linux基础知识

初探 Linux

(1)核心定义与本质

Linux 是自由开源的类 Unix 操作系统,核心是 Linux 内核(由 Linus Torvalds 发起开源项目),单独内核无法构成完整系统,需搭配软件、文档及管理工具形成发行版本。其核心设计理念源自 Unix 的 "一切皆文件",将硬件设备、网络接口等资源均抽象为文件,通过统一接口管理。

(2)诞生与发展

1991 年 Linus Torvalds 开源 Linux 内核,灵感源自教学用的 Minix 系统。发行版本分为两类:商业公司维护(如 Red Hat Enterprise Linux)、社区维护(如基于 RHEL 的 CentOS、基于 Debian 的 Ubuntu)。初学者推荐 CentOS,因其免费开源、安全稳定,与 RHEL 功能高度一致。

Linux 文件系统

(1)核心概念:inode 与 block
  • inode(索引节点):存储文件元信息(权限、大小、修改时间、数据块指针等),每个文件对应唯一 inode,通过 stat 命令可查看。inode 数量固定,用尽后无法创建新文件,即便磁盘有剩余空间。
  • block:存储文件实际数据,由多个扇区组成(常见 4KB),一个文件可占用多个 block,一个 block 仅存放一个文件。
(2)硬链接与软链接
对比维度 硬链接 软链接(符号链接)
inode 关联 与源文件共享同一 inode 拥有独立 inode,指向源文件路径
源文件删除影响 无影响(需删除所有硬链接才彻底删除文件) 链接失效(指向无效路径)
适用对象 仅文件,不可跨文件系统 文件和目录,可跨文件系统
创建命令 ln 源文件 链接文件 ln -s 源文件 链接文件
核心限制 不能对目录、不存在文件创建 无此限制
(3)文件类型

Linux 支持多种文件类型,通过 ls 命令首字符标识:

  • 普通文件(-):存储数据(文档、源码、音视频等);
  • 目录文件(d):管理文件和子目录;
  • 符号链接(l):指向文件路径的快捷方式;
  • 设备文件(b/c):块设备(硬盘)/ 字符设备(键盘);
  • 管道文件(p):进程间通信;
  • 套接字文件(s):进程间网络 / 本地通信。
(4)目录树结构

以根目录(/)为起点,呈层次化组织,关键目录功能:

  • /bin:存放常用二进制命令(ls、cat 等);
  • /etc:系统配置文件(如网络、用户配置);
  • /home:普通用户主目录(如 /home/user);
  • /root:超级用户(root)主目录;
  • /usr:系统应用程序安装目录;
  • /opt:可选应用程序(如 Tomcat)安装目录;
  • /dev:设备文件(如硬盘、键盘);
  • /var:动态数据(日志、缓存等);
  • /tmp:临时文件存储目录。

Linux 常用命令(核心分类)

(1)目录操作
  • 切换:cd(切换目录)、cd ..(返回上一级)、cd /(根目录)、cd ~(用户主目录);
  • 查看:ls(列目录)、llls -l 别名,详细信息)、pwd(显示当前路径);
  • 创建 / 删除:mkdir(创建目录)、rmdir(删除空目录)、rm -r(递归删除目录 / 文件);
  • 复制 / 移动:cp(复制文件 / 目录)、mv(移动 / 重命名)。
(2)文件操作
  • 创建 / 修改:touch(创建文件)、vim(编辑文件,含命令模式、编辑模式、底行模式);
  • 查看:cat(读取文件)、more/less(分页查看)、tail -f(动态监控文件,如日志);
  • 搜索:find(搜索文件 / 目录,如 find /home -name "*.txt")、grep(文本搜索,如 grep "error" log.txt)。
(3)压缩与传输
  • 压缩 / 解压:tar -zcvf(打包压缩为 .tar.gz)、tar -xvf(解压);
  • 文件传输:scp(SSH 安全传输文件 / 目录)、rsync(增量复制,节省带宽)、ftp(FTP 服务器传输)。
(4)权限管理
  • 权限标识:r(读,4)、w(写,2)、x(执行,1),分属所有者(u)、所属组(g)、其他用户(o);
  • 修改权限:chmod(如 chmod 755 file.txtchmod u=rwx,g=rx,o=rx file.txt);
  • 修改所有者 / 所属组:chown(改所有者)、chgrp(改所属组)。
(5)用户与组管理
  • 用户操作:useradd(创建用户)、userdel(删除用户)、passwd(修改密码)、su(切换用户);
  • 组操作:groupadd(创建组)、groupdel(删除组)、groupmod(修改组属性)。
(6)系统与网络状态
  • 系统监控:top/htop(实时进程与资源)、free(内存使用)、df(磁盘空间)、ps(进程信息,如 ps -ef | grep java);
  • 网络命令:ping(测试连通性)、ifconfig/ip(网络接口信息)、netstat/ss(网络连接状态)、nload(实时网络流量监控);
  • 系统控制:shutdown(关机)、reboot(重启)、kill -9 <pid>(强制终止进程)。

Linux 环境变量

(1)分类
  • 按作用域:用户级(~/.bashrc~/.bash_profile,仅当前用户生效)、系统级(/etc/profile/etc/environment,所有用户生效);
  • 按生命周期:临时(export 命令设置,关闭终端失效)、永久(修改配置文件,长期生效)。
(2)读取与修改
  • 读取命令:export -p(列出所有环境变量)、env(列出环境变量)、echo $PATH(查看指定变量值);
  • 修改方式:
    1. 临时修改:export 变量名=值(如 export CLASSPATH=./lib);
    2. 永久修改:编辑对应配置文件(用户级 / 系统级),修改后执行 source 配置文件 生效。
(3)配置文件执行顺序

/etc/environment/etc/profile/etc/profile.d~/.bash_profile/etc/bashrc~/.bashrc

相关推荐
Re_zero2 小时前
线上日志被清空?这段仅10行的 IO 代码里竟然藏着3个毒瘤
java·后端
洋洋技术笔记2 小时前
Spring Boot条件注解详解
java·spring boot
程序员清风20 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林55121 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊1 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing1 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠2 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840822 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide2 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家2 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java