linux的广泛应用
Linux 是一种开源的类 Unix 操作系统,广泛应用于服务器、嵌入式系统和桌面环境
1.基础概念
• 内核(Kernel):Linux 的核心,负责管理硬件资源、进程调度、内存管理等。
• 发行版(Distribution):基于 Linux 内核构建的操作系统版本,如 Ubuntu、CentOS、Fedora 等,它们提供不同的软件包管理工具和预装软件。
• 文件系统(File System):Linux 使用树状结构组织文件和目录,根目录为`/`。
---
2.文件系统
• 目录结构:
• `/`:根目录,所有文件和目录的起点。
• `/bin`:存放用户可执行文件。
• `/sbin`:存放系统管理员可执行文件。
• `/etc`:存放系统配置文件。
• `/home`:普通用户的主目录。
• `/usr`:存放用户程序和文件。
• `/var`:存放系统运行时产生的文件,如日志。
• `/tmp`:临时文件目录。
• 文件权限:
• `r`(读)、`w`(写)、`x`(执行)。
• 使用`chmod`、`chown`和`chgrp`修改权限和所有权。
• 文件类型:
• 普通文件、目录、链接文件、设备文件等。
---
3.命令行工具
• 常用命令:
• `ls`:列出目录内容。
• `cd`:切换目录。
• `pwd`:显示当前工作目录。
• `cp`:复制文件或目录。
• `mv`:移动或重命名文件。
• `rm`:删除文件或目录。
• `mkdir`:创建目录。
• `rmdir`:删除空目录。
• `touch`:创建空文件或更新文件时间戳。
• `cat`、`less`、`more`:查看文件内容。
• `grep`:搜索文本内容。
• `find`:查找文件。
• `ps`、`top`、`htop`:查看进程信息。
• `kill`、`pkill`:终止进程。
• 管道(Pipe)和重定向:
• 使用`|`将一个命令的输出作为另一个命令的输入。
• 使用`>`、`>>`、`<`、`<<`进行输入输出重定向。
---
4.用户和权限管理
• 用户和组:
• 使用`useradd`、`userdel`、`usermod`管理用户。
• 使用`groupadd`、`groupdel`、`groupmod`管理用户组。
• 权限管理:
• 使用`chmod`修改文件权限。
• 使用`chown`和`chgrp`修改文件的所有者和所属组。
• sudo 和 su:
• `sudo`允许普通用户以管理员权限执行命令。
• `su`切换用户身份。
---
5.软件包管理
• 基于 Debian 的系统(如 Ubuntu):
• 使用`apt`或`apt-get`安装、更新和管理软件包。
• 使用`dpkg`直接操作`.deb`文件。
• 基于 Red Hat 的系统(如 CentOS):
• 使用`yum`或`dnf`安装、更新和管理软件包。
• 使用`rpm`直接操作`.rpm`文件。
• 其他工具:
• `snap`、`flatpak`:跨发行版的软件包管理工具。
---
6.网络管理
• 网络配置文件:
• `/etc/network/interfaces`(Debian 系统)。
• `/etc/netplan/*.yaml`(现代 Debian 系统)。
• `/etc/sysconfig/network-scripts/ifcfg-*`(Red Hat 系统)。
• 常用命令:
• `ifconfig`或`ip`:查看和配置网络接口。
• `ping`:测试网络连通性。
• `netstat`或`ss`:查看网络连接状态。
• `iptables`或`firewalld`:配置防火墙规则。
• DNS 配置:
• `/etc/hosts`:本地主机名解析。
• `/etc/resolv.conf`:DNS 服务器配置。
---
7.系统服务管理
• Systemd:
• 使用`systemctl`管理服务(如启动、停止、重启)。
• 使用`journalctl`查看系统日志。
• SysVinit(旧版):
• 使用`service`或`/etc/init.d/`脚本管理服务。
---
8.Shell 脚本编程
• 常用 Shell:
• Bash(`/bin/bash`):最常用的 Shell。
• Sh(`/bin/sh`):兼容性较好的 Shell。
• 基本语法:
• 变量赋值:`var=value`。
• 条件语句:`if`、`case`。
• 循环语句:`for`、`while`。
• 函数定义:`function_name()`。
• 脚本执行:
• 使用`bash script.sh`或`sh script.sh`执行脚本。
• 为脚本添加可执行权限:`chmod +x script.sh`。
---
9.性能监控和调试
• 工具:
• `top`、`htop`:实时显示系统进程和资源使用情况。
• `iostat`:监控磁盘 I/O 性能。
• `vmstat`:监控系统资源(CPU、内存、磁盘、网络)。
• `netstat`或`ss`:监控网络连接。
• 日志文件:
• `/var/log/syslog`:系统日志。
• `/var/log/auth.log`:认证相关日志。
• `/var/log/messages`:通用系统日志。
---
10.安全性
• 用户和权限管理:
• 限制用户权限,避免使用`root`用户。
• 使用`sudo`提供最小权限。
• 防火墙:
• 使用`iptables`或`firewalld`配置防火墙规则。
• SSH 安全:
• 禁用`root`登录。
• 使用密钥认证代替密码登录。
• 文件系统安全:
• 使用`SELinux`或`AppArmor`提供强制访问控制。
---
11.虚拟化和容器
• 虚拟化:
• 使用`KVM`或`VirtualBox`创建机虚拟。
• 容器技术:
• 使用`Docker`创建和管理容器。
• 使用`Podman`作为 Docker 的替代品。
---
12.其他重要工具
• 文本编辑器:
• `vi`/`vim`:功能强大的终端编辑器。
• `nano`:简单易用的终端编辑器。
• 版本控制系统:
• `git`:分布式版本控制系统,广泛用于代码管理。
• 任务调度:
• 使用`cron`定时执行。
任务-使用`at`执行一次性任务。
---