还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基础教程Linux欢迎参加基础教程!这门课程将全面介绍操作系统的基础知Linux Linux识,为初学者提供一个清晰的入门指南我们将系统地讲解的核心Linux概念、常用命令以及实际应用场景通过本课程,您将掌握操作系统的基本操作技能,了解文件系统的Linux管理方法,学习用户权限配置,以及熟悉网络服务的基本设置每个知识点都配有实用的命令和实践案例,帮助您更好地理解和应用这些概念无论您是计算机专业的学生、对感兴趣的爱好者,还是需要在工作Linux中使用的专业人士,这门课程都将为您打下坚实的基础让我们一Linux起开始的学习之旅吧!Linux课程概述操作系统基础知识Linux了解的起源、特点和常见发行版,掌握系统架构的核心概念和工作原理Linux核心命令和文件系统学习中的基本命令操作和文件系统管理,理解一切皆文件的设计理念Linux系统管理和配置掌握用户管理、进程控制、服务配置等系统管理技能,了解系统监控的基本方法安全性和网络基础学习系统安全配置、防火墙设置和网络服务管理,保障系统的稳定和安全Linux实际应用案例通过实际项目案例学习在服务器部署、开发环境配置等方面的应用Linux什么是Linux开源操作系统是一个自由开源的操作系统,允许任何人查看、修改和分发其源代Linux码,促进了全球开发者的协作和创新基于设计理念Unix继承了的设计哲学,遵循一切皆文件、小而美的工具设计原则以及Unix模块化的系统架构芬兰程序员创造由于年创建,最初只是个人项目,现已发展成为全Linus Torvalds1991球最重要的操作系统之一广泛应用于服务器在全球服务器市场占有率超过,成为互联网基础设施的核心,同时也70%应用于超级计算机、嵌入式设备和移动设备的历史Linux年诞生1969Unix实验室的和开发了操作系统,奠定了现代操作系统的基础,也为的诞生提供了思想源泉Bell KenThompson DennisRitchie UnixLinux年项目启动1983GNU启动项目,旨在创建一个完全自由的类操作系统,开发了大量后来被采用的关键工具和组件Richard StallmanGNU UnixLinux年内核发布1991Linux芬兰赫尔辛基大学的学生发布了第一个内核版本,最初只是作为个人爱好项目开发Linus TorvaldsLinux年整合1992-1993GNU/Linux内核与工具集成,形成了完整的操作系统,开始吸引全球开发者参与贡献代码Linux GNU年至今发行版兴起1994各种发行版陆续出现,包括、、等,为不同应用场景提供了定制化的解决方案Linux DebianRed HatSUSE Linux的特点Linux开源免费高稳定性和安全资源占用少性遵循许系统架构精简高效,Linux GPL可,源代码公开可系统设计严对硬件资源的需求较Linux见,任何人都可以自谨,安全机制完善,低,能够在性能有限由使用、修改和分服务器可以长时间运的设备上流畅运行,发,无需支付授权费行而不需要重启,安为旧设备赋予新生命用,这极大降低了企全漏洞能够被社区快业和个人的使用成本速发现和修复多用户多任务支持多个用户同时登录系统并执行各自的任务,具有完善的权限隔离机制和资源分配策略发行版介绍LinuxUbuntu基于的用户友好发行版,拥有良好的桌面体验和丰富的软件仓库每六个月发布一个新Debian版本,每两年发布一个长期支持版本因其易用性和完善的社区支持,成为初学者的首LTS选CentOS/RHEL企业级服务器首选,以稳定性和安全性著称是付费版Red HatEnterprise LinuxRHEL本,提供官方支持;是其社区版本,功能相同但免费使用特别适合需要长期稳定运行CentOS的生产环境Debian历史悠久的发行版,以极高的稳定性和对自由软件原则的坚持而闻名采用极其严格的软件测试流程,发布周期较长,是许多其他发行版的基础,广泛应用于服务器环境Arch Linux遵循保持简单的设计理念,提供滚动更新模式,始终使用最新版本的软件包高度可定制,适合有经验的用户,有详尽的文档和活跃的社区支持WikiLinux vsWindows特点特点Linux Windows开源免费,源代码公开商业闭源软件,需付费使用••以命令行为主,图形界面为辅以图形界面为主,操作直观••系统资源占用低,运行高效系统资源占用相对较高••高度可定制,适应不同需求标准化程度高,个性化空间有限••安全性高,病毒和恶意软件较少安全威胁较多,需额外防护••在服务器、超算和嵌入式领域占主导在桌面和游戏领域占主导地位••两种操作系统各有优势,以其开放性、安全性和稳定性在服务器市场占据优势,而凭借易用性和广泛的软件Linux Windows兼容性主导桌面市场选择哪种系统应根据具体应用场景和个人偏好决定系统架构Linux应用层用户程序、系统工具和服务层Shell命令解释器,用户与系统交互接口内核层系统核心,管理硬件和资源硬件层计算机物理设备系统采用分层架构设计,每一层都有明确的职责和功能硬件层包括、内存、存储设备等物理组件;内核层是系统的核心,负责管理硬件资源,提Linux CPU供底层服务;层作为用户与内核的接口,接收并解释用户命令;应用层则包含各种实用程序和应用软件,为用户提供具体功能Shell这种分层设计使系统模块化程度高,各部分可以相对独立地开发和更新,同时保持整体的一致性和稳定性用户与系统的交互主要通过层完成,而不需要Shell直接接触内核,这提高了系统的安全性和可靠性内核Linux进程调度内存管理控制进程的创建、终止和资源分配,负责分配和回收系统内存资源,实现实现多任务并行,保证系统高效运行虚拟内存机制,管理页面缓存和交换空间文件系统实现文件的组织、存储和访问机制,支持多种文件系统类型,提供统一的接口设备驱动网络子系统为硬件设备提供软件接口,使操作系统能够识别和使用各种硬件处理网络协议和网络设备驱动,支持各种网络服务和连接方式介绍Shell什么是常见类型Shell Shell是一个命令行解释器,作为用户与Shell•BashBourne AgainShell Linux内核之间的接口层它接收用户输系统默认,功能丰富Linux Shell入的命令,解释并传递给操作系统执行,增强的替代品,提供更多•Zsh Bash然后将结果返回给用户不仅是一个Shell定制和便利功能命令处理器,还是一种功能强大的脚本语用户友好的交互式,具有•Fish Shell言环境智能自动补全兼容•KshKorn ShellBourne,增加了编程功能Shell功能特点Shell命令历史记录与回溯•命令和文件名自动补全•管道和重定向功能•通配符支持•作业控制能力•脚本编程能力•安装方法Linux物理机安装虚拟机安装云服务器直接在计算机硬件上安装使用、在、阿里云、腾讯云等VMware VirtualBoxAWS系统,可以选择完全替等虚拟化软件在现有操作系统云平台上租用预装的虚Linux Linux代原有系统或创建双启动环上创建虚拟机,然后在虚拟机拟服务器无需管理物理硬境这种方式性能最优,但操中安装优点是安全、件,可按需扩展资源,适合部Linux作复杂度较高,适合作为主要灵活,不影响主系统,缺点是署网站、应用和服务工作系统使用性能损耗较大WSLWindows Subsystemfor允许直接在上Linux Windows运行环境,无需虚拟Linux机集成度高,性能良好,是用户体验的理Windows Linux想选择目录结构Linux根目录/所有目录的起点,文件系统的顶层Linux系统目录/bin,/sbin存放基本命令和系统管理命令配置目录/etc包含系统和应用的配置文件用户目录/home普通用户的个人文件和设置程序目录/usr用户程序、库和文档的目录结构遵循文件系统层次结构标准,采用树形结构组织每个目录都有特定的用途,例如,目录存放经常变化的数据,存放临时文件,包含启LinuxFHS/var/tmp/boot动所需的文件,包含设备文件这种标准化的结构使系统管理员能够轻松找到所需文件,也便于自动化脚本的编写和系统维护/dev终端与控制台终端Terminal终端是用户与计算机交互的输入输出环境,包括物理终端设备和终端模拟器软件在现代系统中,我们通常使用的是图形界面下的终端模拟器程序Linux控制台Console控制台特指直接连接到计算机的物理输入输出设备,如键盘和显示器Linux系统启动时最初显示的就是控制台界面,也称为虚拟控制台伪终端Pseudo Terminal图形界面中的终端窗口、远程连接等都是伪终端,它们模拟了物理终端的SSH行为,但实际上是通过软件实现的虚拟设备常用终端操作在大多数桌面环境中,可以使用快捷键快速打开终端常见Linux Ctrl+Alt+T的终端模拟器包括、、和GNOME TerminalKonsole xtermTerminator等基本命令语法文件系统基础一切皆文件文件类型在中,几乎所有内容都被视为文普通文件包含数据、文本或程序Linux•-:件,包括普通文件、目录、设备、套接目录包含其他文件和目录的引用•d:字等这种统一的接口设计使得系统操链接指向其他文件的引用•l:作更加一致和简洁,用户可以使用相同设备文件提供对硬件设备的访的命令和操作不同类型的资源•b,c:API问套接字进程间通信的接口•s:管道进程间数据传输的通道•p:文件系统特性大小写敏感和被视为不同文件•:file.txt File.txt隐藏文件以点开头的文件默认不显示•:.无扩展名概念扩展名仅用于表明文件类型,系统不强制要求•:路径分隔符使用正斜杠,而非的反斜杠•:/Windows文件管理命令列出目录内容改变目录显示当前目录ls:cd:pwd:显示指定目录中的文件和子目切换当前工作目录返回打印当前工作目录的完整路径cd~录常用选项包括详细信用户主目录,返回上一级这在导航复杂目录结构时非常有-l cd..息、显示隐藏文件、人目录,返回上一个访问的用例如-a-h cd-:pwd类可读大小例如目录例如:ls-lah:cd/home/user/usr/local/bin创建目录文件复制移动mkdir/touch:/cp/mv:/用于创建新目录,用于创建空文件或更复制文件和目录,移动文件或重命名例如mkdir touchcp mv:cp新文件时间戳例如,,:mkdir-p test/subdir-r sourcedest mvoldname newnametouchnewfile.txt文件查看命令基本查看命令高级用法这些命令还有许多实用的选项和组合方式一次性显示整个文件内容cat实时查看文件追加内容,常用于监控日志•tail-f分页查看,只能向下翻页more显示文件前行•head-n2020增强版分页查看,可上下翻显示行号less•cat-n页确定文件类型,不查看内容•file的搜索功能输入关键词可以在文件中搜索•less/显示文件开头部分,默认head10行显示文件结尾部分,默认tail10行在实际工作中,这些命令经常结合使用例如,通过管道组合可以过滤出包含特定关键词的行对于大文cat file.txt|grep keyword件,应避免使用直接查看,而是使用或进行分页浏览,以防止终端被大量输出内容占满cat moreless文件查找按条件搜索文件find最强大的文件查找工具,可以根据名称、大小、时间等多种条件在指定目录中递归查找文件示例find/home-name*.txt-size+1M-mtime-7上述命令查找目录下,名称以结尾、大小超过且在过去天内被修改过的/home.txt1MB7文件快速查找文件名locate基于预先建立的数据库快速查找文件,速度比快得多,但可能不包含最新创建的文find件使用前需要更新数据库sudo updatedb示例locate*.conf在文件内容中查找grep搜索文件内容中的指定模式,支持正则表达式,常用于查找包含特定文本的文件示例grep-r error/var/log/上述命令递归搜索目录下所有文件中包含的行/var/log/error文件权限管理用户与用户组用户普通用户root超级管理员账户,拥有系统最高权限,标准用户账户,通常从开始分UID1000为配,权限受限UID0用户组系统用户用户集合,简化权限管理,分为主组和附为系统服务和进程创建的账户,通常UID加组在之间1-999系统中的每个用户都至少属于一个主组,可以同时属于多个附加组用户信息存储在文件中,包含用户名、、Linux/etc/passwd UID、家目录等信息;密码信息加密后存储在文件中;用户组信息存储在文件中GID/etc/shadow/etc/group这种用户和组的结构使能够精细地控制系统资源访问权限,有效保障系统安全例如,普通用户无法修改系统关键文件,需要通过Linux临时获取提升的权限sudo用户管理命令命令功能常用选项创建新用户创建家目录指定附useradd-m,-G加组删除用户同时删除家目录userdel-r修改用户属性添加到组修改用户usermod-aG,-l名设置或修改密码锁定账户解锁账户passwd-l,-u切换用户同时切换环境变量su-以其他用户身份执行命令指定用户模拟登录sudo-u,-ishell用户管理是系统管理的重要组成部分创建新用户时,通常使用创Linux useradd-m username建账户和家目录,然后用设置密码如需授予用户权限,可以将其添加到passwd usernamesudo组sudo usermod-aG sudousername通过或命令可以查看当前登录的用户信息,包括登录时间、终端和活动情况命令则who wid可以显示当前用户的、和所属组信息UID GID文本编辑器Vim/Vi Nano是的增强版,是最强大的文本编辑器之一,几乎在所有是一个简单直观的编辑器,适合初学者使用它没有复Vim ViNano系统上都默认安装它具有高度的可定制性和丰富的功杂的模式切换,界面底部显示可用的快捷键,操作类似于常见Linux能,支持语法高亮、多文件编辑、宏录制等高级功能的图形界面编辑器有三种主要模式主要优点Vim普通模式默认模式,用于导航和执行命令学习曲线平缓,容易上手••插入模式用于输入和编辑文本常用命令显示在屏幕底部••命令模式用于执行保存、退出等操作无需记忆复杂的命令••适合简单的文本编辑任务•除了和外,还有许多其他文本编辑器,如功能丰富的可编程编辑器、桌面环境的图形编Vim NanoLinux EmacsGeditGNOME辑器、环境的编辑器等选择哪种编辑器主要取决于个人偏好和具体需求,但建议至少掌握一种命令行编辑器,以便KateKDE在无图形界面环境下进行文本编辑基础操作Vim启动与退出打开文件•vim filename保存并退出或•:wq ZZ不保存退出•:q!仅保存•:w模式切换进入插入模式当前位置前插入、当前位置后插入、下面新行•iao返回普通模式键•Esc进入命令模式在普通模式下输入•:光标移动、、、左、下、上、右移动•h jk l向前跳到下一个单词开头•w向后跳到上一个单词开头•b跳到行首,跳到行尾•0$复制粘贴删除复制当前行,复制行•yy nyyn在当前位置后粘贴,在当前位置前粘贴•p P删除当前行,删除行•dd nddn删除当前字符•x进程管理查看进程显示当前进程快照•ps显示所有进程详细信息•ps aux动态显示进程信息•top/htop根据名称查找进程•pgrep ID进程控制发送信号终止进程,如•kill kill-9PID根据名称终止进程•pkill终止所有指定名称的进程•killall调整进程优先级•renice前台后台控制/命令在后台运行命令•暂停当前前台进程•Ctrl+Z将暂停的作业放入后台继续运行•bg将后台作业调至前台•fg显示当前的作业列表•jobs shell进程信息进程标识符•PID父进程•PPID ID进程所有者•USER和内存使用率•%CPU/%MEM CPU进程状态运行、休眠、僵尸等•STAT RS Z服务管理服务管理器命令systemd systemctl现代系统中的主要初始化系统和服务管理器,负责在启动过程中用于控制系统和服务管理器的主要命令常用操作包括启动Linux systemd并行启动系统服务,并在运行时管理这些服务它取代了传统的、停止、重启、启用、禁用SysV startstop restartenable disable系统,提供了更高效的启动过程和更强大的服务管理功能和查看状态例如init statussystemctl startnginx.service命令系统目标service target传统的服务管理方式,在支持的现代系统中通常只是作为中的目标概念取代了传统的运行级别,例systemd systemdtarget runlevel的包装器存在使用方式等同于如相当于和相当systemctl servicenginx startmulti-user.target runlevel3graphical.target于使用可查看默认目标systemctl startnginx.service runlevel5systemctl get-default软件包管理包管理器自动处理软件安装、更新和依赖关系系统Debian和apt dpkgUbuntu,Debian系统Red Hat和yum,dnf rpmRHEL,CentOS,Fedora其他系统pacman Arch,zypper SUSE,portage Gentoo系统中的软件包管理是一种自动化安装、配置、升级和卸载软件的机制不同的发行版采用不同的包管理系统,但核心功能相似包管理器不仅处Linux Linux理单个软件包的安装,还管理软件之间的依赖关系,确保系统中的软件能够协同工作软件包一般分为源码包和二进制包二进制包是预编译好的,可以直接安装使用,而源码包需要在本地编译后再安装大多数用户主要使用二进制包,因为它们更容易安装和管理软件包存储在称为软件仓库的服务器上,包管理器从这些仓库中下载软件包包管理器APT基本命令高级用法APT APT的全称是,是系统包括APT AdvancedPackage ToolDebian更新软件源索引apt update的高级包管理工具除了基本命令外,它还有一些高级用Ubuntu法升级所有可升级的软件包apt upgrade智能处理依赖关系变化的系统升级•apt dist-upgrade安装指定软件包apt install自动移除不再需要的依赖包•apt autoremove移除软件包但保留配置apt remove清理本地缓存的安装包•apt clean/autoclean配置文件和•/etc/apt/sources.list/etc/apt/sources.list.d/移除软件包及其配置apt purge列出已安装的软件包•dpkg-l搜索软件包apt search直接安装本地文件•dpkg-i.deb显示软件包详细信息apt show列出软件包apt list包管理器YUM/DNF安装软件系统更新搜索和信息使用或或用关键词可以搜索相yum installdnf installyum updatednf updateyum search命令安装软件例如于更新系统所有软件包关软件包,包名显示yum yumyum info安装服务器可以检查哪些包包的详细信息,包括版本、大install nginxWeb check-update可以同时安装多个包,还可以使可以更新但不执行更新系统更小、描述等yum list用选项自动确认所有提示新是维护系统安全的重要步骤,列出所有已安装的包,-y installed是的下一代版本,在建议定期执行列出所有可DNF YUMyum listavailable和新版安装的包Fedora RHEL/CentOS中使用移除软件或用yum removednf remove于卸载已安装的软件包yum可以移除不再需要autoremove的依赖包,类似于的apt功能卸载后的配autoremove置文件通常会保留在系统中磁盘管理命令功能示例显示文件系统磁盘空间使用情况以易读方式显示df df-h显示目录或文件大小显示各用户主目录大小du du-sh/home/*分区表操作工具管理第一块磁盘分区fdisk fdisk/dev/sda分区表操作工具支持大于的磁盘gdisk GPTgdisk/dev/sda2TB挂载文件系统将分区挂载到目录mount mount/dev/sda1/mnt卸载文件系统卸载挂载点umount umount/mnt列出块设备信息显示文件系统信息lsblk lsblk-f系统的磁盘管理涉及分区创建、文件系统格式化、挂载和监控等多个方面除了上述基本命令外,还有逻辑卷管理、文件系统检查等高级工具可用于更复杂的磁盘管理任务Linux LVMfsck文件系统类型ext4第四代扩展文件系统,是大多数发行版的默认文件系统它支持大文件和大分区,具有Linux日志功能,可以快速恢复文件系统状态,同时提供良好的性能和可靠性XFS高性能的位日志文件系统,专为处理大文件和大分区而设计它提供优秀的并行性64I/O能,支持在线调整大小(只能增加不能减少),是及更高版本的默认文件RHEL/CentOS7系统Btrfs文件系统,一种新一代的写时复制文件系统,提供高级功能如快照、校验和、B-tree CoW透明压缩、支持等虽然功能丰富,但在某些发行版中尚未被视为生产环境稳定RAIDNTFS/FAT32文件系统,通过驱动提供对的读写支持更为简Windows LinuxNTFS-3G NTFSFAT32单,兼容性好但功能有限这些文件系统主要用于与系统共享数据或访问Windows分区Windows系统监控日志管理常见日志文件系统日志目录1一般信息、安全、messagessecure存放大多数系统和应用日志文件/var/log启动boot.log日志服务日志轮转传统、增强版、syslogrsyslog工具定期压缩和归档旧日志3logrotatejournaldsystemd系统的日志对于故障排查、安全审计和性能分析至关重要现代使用两种主要的日志记录机制传统的系统及其增强版和Linux Linuxsyslogrsyslog systemd的服务生成的日志是二进制格式,需要使用命令查看journald systemd-journald journalctl常用的日志查看命令包括查询日志,如查看服务日志;、、等查看传统文本日志文件,journalctl systemdjournalctl-u nginx.service Nginxcat lesstail特别是可以实时监控系统日志;在日志中搜索特定内容,如工具则负责日志的tail-f/var/log/messages grepgrep error/var/log/syslog logrotate轮转和管理,防止日志文件无限增长网络配置网络接口命令网络连接命令显示和配置网络接口传统命令测试与目标主机的连通性•ifconfig•ping显示地址和接口信息现代命令显示数据包到目标主机的路由路径•ip addrIP•traceroute显示和修改网络接口状态显示网络连接、路由表和接口统计•ip link•netstat/ss更新租约或获取新显示和修改路由表•dhclient DHCPIP•route IP显示或设置主机名查询工具•hostname•nslookup/dig DNS系统的网络配置文件因发行版而异在系统中,主要网络配置文件位于;Linux Debian/Ubuntu/etc/network/interfaces在系统中,各网络接口的配置文件位于目录下;在使用RHEL/CentOS/etc/sysconfig/network-scripts/的系统中,配置文件通常位于目录下NetworkManager/etc/NetworkManager/现代系统越来越多地使用服务来管理网络连接,它提供了命令行工具和图形界面工具Linux NetworkManagernmcli,简化了网络配置和管理过程,特别适合笔记本电脑等需要频繁更换网络环境的设备nmtui网络服务系统支持多种网络服务,使其成为互联网基础设施的核心提供加密的远程登录和文件传输功能,保护数据安Linux SSHSecureShell全;用于文件传输,但由于安全性问题,现在多被取代;服务器如和用于FTPFile TransferProtocol SFTPHTTP/Web ApacheNginx托管网站和应用Web服务器将域名转换为地址,可使用或实现;DNSDomain NameSystem IPBIND PowerDNSDHCPDynamic HostConfiguration服务器自动分配地址和网络配置;允许在网络上共享文件系统;则提供与系Protocol IPNFSNetwork FileSystem SambaWindows统的文件和打印共享服务这些服务可以根据需求配置在服务器上,满足不同的网络功能需求Linux服务SSH客户端命令密钥管理SSH SSH连接到远程主机生成密钥对•ssh user@host•ssh-keygen SSH使用非复制公•ssh-p2222user@host•ssh-copy-id user@host标准端口钥到远程主机复存储授•scp file.txt user@host:/path•~/.ssh/authorized_keys制文件到远程主机权公钥已知主机记录•scp user@host:/path/file.txt.•~/.ssh/known_hosts从远程主机复制文件客户端配置文件•~/.ssh/config启动会话•sftp user@host SFTP服务器配置SSH服务器配置文件•/etc/ssh/sshd_config禁用登录•root PermitRootLoginno更改默认端口•Port2222仅允许密钥认证•PasswordAuthentication no限制允许的用户•AllowUsers user1user2防火墙配置37常用防火墙工具默认区域数量系统中最常用的防火墙工具传统、提供的预定义安全区域数量,包括、Linux iptablesfirewalld public新一代和简化版、、等firewalldufwhome workinternal22常见开放端口常见服务的默认端口数量,如、SSH
22、等HTTP80HTTPS443防火墙是系统安全的重要组成部分,用于控制进出系统的网络流量是传统的防火墙工具,直Linux iptables接操作内核的包过滤系统;是在及以后版本中引入的动态防火墙管理netfilter firewalldRHEL/CentOS7器,提供了更友好的接口;是系统中的简化防火墙工具ufwUncomplicated FirewallUbuntu的一个关键概念是区域,不同区域有不同的信任级别和预设规则常用的命令包firewalldZone firewalld括显示当前区域规则;添firewall-cmd--list-all firewall-cmd--permanent--add-service=http加服务;重新加载规则防火墙配置应遵循最小权限原则,只开放必要的端HTTP firewall-cmd--reload口和服务脚本基础Shell脚本结构每个脚本文件的第一行通常是行,指定使用的解释器,如随Shell shebang#!/bin/bash后可以添加注释、变量定义、函数和主要命令序列脚本文件需要有执行权限,可以通过授予chmod+x script.sh变量与数据类型中的变量无需事先声明,赋值时不使用符号,引用时需要使用符号例如Bash$$定义变量,显示变量值注意等号两边不能有空格特殊name=Linux echo$name变量包括脚本名、位置参数、参数数量、上一命令的返回值等$0$1-$9$#$控制结构支持条件判断、循环和分支选择条件Bash if/else/elif for/while/until case测试可以使用命令或运算符例如成年test[]if[$age-gt18];then echo;未成年循环示例else echo;fi fori in{
1..5};do echo$i;done函数定义函数用于封装可重用的代码块,定义格式为function_name调用函数时直接使用函数名函数可以接收参数,在函数内通{commands;}过、等引用函数可以使用命令返回状态码,或通过输出结果$1$2return echo供调用者捕获脚本示例Shell#!/bin/bash#批量文件备份脚本示例#配置变量SOURCE_DIR=/home/user/documentsBACKUP_DIR=/backupDATE=$date+%Y%m%dBACKUP_FILE=backup_$DATE.tar.gz#检查源目录是否存在if[!-d$SOURCE_DIR];thenecho错误:源目录$SOURCE_DIR不存在!exit1fi#创建备份目录如果不存在mkdir-p$BACKUP_DIR#创建备份文件echo开始备份$SOURCE_DIR到$BACKUP_DIR/$BACKUP_FILEtar-czf$BACKUP_DIR/$BACKUP_FILE$SOURCE_DIR#检查备份是否成功if[$-eq0];thenecho备份完成!echo备份文件:$BACKUP_DIR/$BACKUP_FILEecho文件大小:$du-h$BACKUP_DIR/$BACKUP_FILE|cut-f1elseecho备份失败!exit1fi#删除超过30天的旧备份文件find$BACKUP_DIR-name backup_*.tar.gz-mtime+30-deleteecho已删除30天前的旧备份文件exit0计划任务服务命令表达式cron crontabcron是系统中的定时任务服务,允编辑当前用户的表达式由五个字段组成,分别表示cron Linux•crontab-e cron许用户在指定的时间运行命令或脚本它文件分钟、小时、日期crontab0-590-231-从文件、目、月份、星期几,和/etc/crontab/etc/cron.d/显示当前用户的311-120-707•crontab-l crontab录,以及用户的文件中读取任务配都表示周日例如,表示每天crontab内容02***置守护进程持续运行并检查这些配凌晨点运行;表示每分钟cron2*/5****5删除当前用户的•crontab-r置文件,在指定时间执行相应的任务运行一次;表示工作日09-17**1-5文件crontab上午点至下午点整点运行95编辑指定用户•crontab-u user-e的文件需要权限crontabroot用户环境配置全局配置文件等影响所有用户/etc/profile,/etc/bashrc用户配置文件等个人设置~/.bashrc,~/.bash_profile环境变量设置3等系统和用户变量PATH,HOME,LANG个性化定制4提示符、别名、函数、自启动程序用户环境配置主要通过配置文件完成登录会读取全局配置文件和用户配置文件或;交互式非登录会读Linux ShellShell/etc/profile~/.bash_profile~/.profile Shell取文件通过编辑这些文件,用户可以自定义自己的工作环境~/.bashrc常见的环境配置包括设置变量以添加可执行文件搜索路径,如;创建命令别名以简化频繁使用的命令,如PATH exportPATH=$PATH:/usr/local/bin aliasll=ls-;自定义命令提示符,如通过变量;设置默认编辑器,如;添加自启动命令或脚本等这些配置可以大幅提高用户的工作效率和舒适度la PS1export EDITOR=vim系统启动过程初始化BIOS/UEFI计算机开机后,首先进行硬件自检,然后负责初始化基本硬件并根据启动顺序加载引导程序POST BIOS/UEFI引导加载程序是系统常用的引导加载程序,负责加载内核和初始磁盘,并根据配置文件提供启动选项GRUB2Linux RAMinitramfs内核初始化内核被加载到内存并初始化,执行硬件检测,挂载根文件系统,然后启动第一个用户空间进程Linux初始化systemd在现代系统中,是进程,负责并行启动系统服务,根据依赖关系和目标配置激活系统组件Linux systemdPID1登录管理器如果配置了图形界面,系统会启动显示管理器如、提供登录界面;否则提供命令行登录提示GDM LightDM系统备份与恢复文件级备份使用、等工具进行文件和目录的打包压缩,例如tar ziptar-czvf backup.tar.gz这种方法简单灵活,适合备份用户数据,但不包含文件系统元数据和特殊属/home/user性增量同步备份工具可实现高效的增量文件同步,只传输变化的部分,例如rsync rsync-avz--delete它特别适合定期备份和远程备份,可保留文件权限和属性/source//backup/镜像备份命令可创建完整的磁盘或分区镜像,例如dd ddif=/dev/sda这种方式创建完整克隆,包含所有数据和结构,但需要同等或更of=/path/to/image.img大的存储空间备份策略有效的备份策略通常结合多种备份类型完整备份全量、增量备份只备份变化部分和差异备份自上次完整备份后的所有变化结合定时任务可实现自动化备份计划cron容器技术基础容器虚拟机vs容器技术与传统虚拟机的最大区别在于架构层次容器直接运行在宿主系统的内核上,共享操作系统资源,而虚拟机则包含完整的操作系统副本这使容器更轻量,启动更快,资源利用率更高,但隔离性相对较弱基础命令Docker是最流行的容器平台,其核心命令包括获取镜像、创建并启动容器、列出容器、列出镜像、Docker dockerpulldocker rundocker psdocker imagesdocker在容器中执行命令和使用配置文件编排容器execdocker-compose up其他容器技术除外,还支持其他容器技术是原生容器技术,提供轻量级的虚拟环境;是推出的无守护进程的容器管理工具,兼Docker LinuxLXCLinux ContainersPodman RedHat容命令;则是容器编排平台,用于管理分布式容器集群Docker Kubernetes性能优化基础内存优化优化CPU监控内存使用和交换活动,调整交换设分析使用率和负载情况,调整进程优CPU置,控制应用程序内存分配,管理缓存先级,使用和命令,考虑处理nice renice1器亲和性磁盘优化IO选择适当的文件系统,使用挂noatime3载选项,调整调度器,考虑优化IO SSD设置服务优化网络优化关闭不必要的服务,配置服务优先级,优化服务器和数据库设置4Web调整参数,优化网络缓冲区大TCP/IP小,使用负载均衡,考虑网络队列优化安全强化高级安全防护入侵检测系统、强制访问控制1SELinux/AppArmor访问控制最小权限原则、强密码策略、定期审计网络安全3防火墙配置、端口限制、加固SSH系统基础安全更新管理、服务最小化、文件权限设置系统安全强化应采取多层次防御策略在系统基础层面,应保持系统和软件包的及时更新,只运行必要的服务,正确设置文件和目录权限在网络层面,应配Linux置严格的防火墙规则,关闭不需要的端口,使用密钥认证并禁用密码登录来强化服务SSH访问控制层面应实施最小权限原则,为用户只分配完成工作所需的最小权限,实施强密码策略,定期轮换密码,限制登录尝试次数高级安全工具如或SELinux提供强制访问控制机制,限制程序的行为,即使程序被攻击也能限制其影响范围入侵检测系统如可监控系统文件变化,及早发现可能的入侵AppArmor AIDE常见问题排查Linux78%12%45%问题解决率启动问题性能问题通过系统日志和标准排查流程能够解决的问题百分与系统引导和启动相关的故障在问题中的占与系统性能下降相关的问题在服务器问题中Linux Linux比比的占比系统故障排查是系统管理的重要技能启动问题通常可通过救援模式、紧急模式或单用户模式解决,关键是检查分区和使用Linux GRUB/boot initramfs查看启动日志,查看内核消息有助于诊断启动失败原因journalctl-b dmesg资源耗尽问题可通过监控工具分析,如使用识别和内存占用高的进程,使用查看磁盘瓶颈,使用查看网络连接问题服务故top/htop CPUiostat IOnetstat/ss障可通过检查服务状态,查看相关日志找出原因日志分析是故障排查的核心,主要关注目录下的系统日志、应用systemctl statusservicename/var/log日志,寻找错误和警告信息高级应用Linux随着技术的发展,在企业环境中的应用越来越广泛和深入集群管理技术如和允许多台服务器组成高Linux HeartbeatPacemaker Linux可用集群,通过自动故障转移确保服务不间断;虚拟化技术如、允许在单一物理服务器上运行多个独立的虚拟机,提高硬件利用KVM Xen率云计算领域,是主要的基础设施支持,等开源云平台大多基于构建;工具链中,、、Linux OpenStackLinux DevOpsGit JenkinsAnsible等工具在环境下运行,支持持续集成和持续部署;容器编排如,使管理大规模容器化应用成为可能;分布式文件系统如Linux Kubernetes、则提供了横向扩展的存储解决方案这些高级应用充分展示了的强大和灵活性Ceph GlusterFSLinux学习资源Linux推荐书籍在线资源社区支持《鸟哥的私房菜》是中文官方文档和手册是最加入用户组可以与Linux Linuxman LinuxLUG世界最受欢迎的入门书权威的参考资料;志同道合的爱好者交流;参与开Linux Linux籍,深入浅出地介绍了基的培训材料提供系源项目贡献是实践能力的最好方Linux Foundation础知识;《命令行与统化学习路径;国内外技术社区式;通过频道、邮件列表和Linux shellIRC脚本编程大全》适合进阶学习如、有论坛可以寻求专业帮助;参加线CSDN StackOverflow脚本;《丰富的问答内容;各大平下技术沙龙和会议拓展人脉和视shell TheLinux MOOC》则台如、也提供野Programming InterfaceCoursera Udemy是系统编程的权威参考高质量课程Linux认证途径专业认证包括Linux Linux的认Foundation LFCS/LFCE证、的RedHat RHCSA/RHCE认证、的认证CompTIA Linux+等这些认证在行业受到广泛IT认可,可以证明持有者的Linux技能水平,提升职业竞争力实战案例服务器部署数据库服务器配置文件服务器搭建Web使用在上部署、或使用或协议搭建文件服务器,Linux MySQLPostgreSQL NFSSamba或等数据库服务,需要合理规划存可以为局域网内的各种设备提供集中存储和LAMPLinux+Apache+MySQL+PHP MongoDB栈搭储结构,调整数据库参数以适应工作负载,共享需要规划存储架构,配置用户访问权LEMPLinux+Nginx+MySQL+PHP建服务器是最常见的应用场景之设置定期备份任务,配置主从复制或集群以限,设置适当的安全策略,考虑数据备份和Web Linux一实践中需要安装配置服务器软件、提高可用性,并进行性能监控数据库服务恢复方案文件服务器是企业基础设施的Web IT数据库、运行环境,设置虚拟主机,配器通常要求高性能和稳定性重要组成部分PHP IO置证书确保安全连接,最后进行性能优SSL化和安全加固课程总结基础知识掌握核心技能应用系统架构、命令操作、文件管理、用户权限脚本、系统管理、网络配置、服务部署Shell持续学习更新进阶学习方向关注新技术、参与社区、实践总结、分享交流系统优化、安全加固、容器技术、云计算集成通过本课程,我们系统地学习了操作系统的基础知识和核心技能从的历史和特点入手,了解了系统架构和文件系统结构;掌握了基本命令操作和文件Linux Linux管理技巧;学习了用户管理、进程控制和服务配置;探讨了网络设置、安全策略和性能优化;还接触了脚本编程和容器技术等高级主题Shell学习是一个持续的过程,技术在不断发展,知识需要不断更新实践是最好的学习方法,建议通过搭建个人服务器、参与开源项目等方式加深理解和巩固技Linux能未来可以向系统管理、、云计算、安全等方向深入发展,作为一项核心技能,将在领域持续发挥重要作用感谢大家的参与和学习!DevOps LinuxIT。
个人认证
优秀文档
获得点赞 0