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(列目录)、ll(ls -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.txt或chmod 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(查看指定变量值); - 修改方式:
- 临时修改:
export 变量名=值(如export CLASSPATH=./lib); - 永久修改:编辑对应配置文件(用户级 / 系统级),修改后执行
source 配置文件生效。
- 临时修改:
(3)配置文件执行顺序
/etc/environment → /etc/profile → /etc/profile.d → ~/.bash_profile → /etc/bashrc → ~/.bashrc。