我的Linux学习方法:不会就问AI,动手熟能生巧

发布时间:2026/7/23 16:55:53
我的Linux学习方法:不会就问AI,动手熟能生巧 文章目录我的方法不懂就问熟能生巧Linux学习第一步认识你的系统这个系统几个关键点装好系统先做三件事Linux 学习第二步常用命令动手练课前前提任务 0先把常用工具补齐之前已经执行过了再运行一下看看是否安装成功任务 1认识当前身份与路径任务 2目录查看与切换Linux 最常用任务 3创建、删除、移动、复制文件 文件夹任务 4查看文件内容任务 5学会简单编辑文件nano 新手友好任务 6查看系统资源状态Linux学习第三步用户与权限管理任务 1查看系统已有用户任务 2新建用户、设置密码任务 3切换用户练习任务 4用户相关常用删除 / 修改命令任务 5理解文件权限重中之重任务 6文件夹权限小区别Linux 学习第四步进程、磁盘与压缩解压一、进程是什么任务 1查看进程1. top实时动态查看最常用2. ps 静态查看进程快照3. 查看进程树 pstree4. 根据端口查进程排查端口占用神器任务 2杀死异常进程任务 3前后台任务实操练习二、磁盘管理全套命令1. 整体磁盘分区使用2. 查看当前目录各个文件夹大小3. 挂载 / 卸载U 盘、数据盘必会三、压缩 解压日常打包备份必备1. tar 打包压缩Linux 最主流2. zip / unzip 格式Windows 互通3. 常用解压万能口诀实在无法理解怎么办Linux 学习第五步服务器网络排查与安全加固一、常用网络排查命令排错必备1、查看本机 IP、网卡信息2、测试连通性 ping3、路由查看4、查看监听端口哪些程序对外开放端口5、域名解析 nslookup / dig6、测试端口通不通二、UFW 防火墙实操Ubuntu 默认防火墙1、查看防火墙状态2、放行 SSH必须先开否则开启防火墙会被踢下线通常默认是开的3、开启防火墙常用放行 / 删除规则三、SSH 安全加固防暴力扫描、防入侵编辑 SSH 配置文件核心修改项可选修改 SSH 默认端口示例 2222重启 SSH 生效查看 SSH 状态四、日志查看排查报错万能手段Linux学习第六步服务管理与定时任务了解第一部分 systemctl 系统服务控制软件启停、开机自启通用命令模板实操示例ssh、nginx辅助命令第二部分 Crontab 定时任务服务器自动化核心1. 基础操作命令2. crontab 时间格式重点必须记3. 实战定时例子4. 查看定时任务执行日志Linux学习第七步Shell 脚本入门与实战一、什么是 Shell 脚本二、第一个脚本 hello.sh1. 创建脚本文件2. 给脚本添加执行权限3. 两种运行方式三、变量用法四、if 判断语句最常用判断文件 / 进程 / 端口五、for 循环批量操作文件六、实战小脚本服务器简易巡检脚本七、配合前面学的 crontab 自动化我的方法不懂就问熟能生巧学习 Linux我只有一招遇到不会的指令直接问 AI拿到答案后自己敲一遍在反复实践中熟能生巧。具体就三步问 AI——比如你想要干什么就问这个使用 Linux 这么弄直接截图发给它自己敲——把 AI 给的命令原样敲进终端看输出对不对。举一反三——改改参数、换换条件看看结果有什么不同。就这么简单。命令忘不掉是因为你用过了、改过了、踩过坑了。Linux学习第一步认识你的系统如果是按照我上一篇文章做的话 0基础入门 Linux 系统应该是Ubuntu 24.04.2 LTS代号noble属于Debian 家族。LTS 表示长期支持版当学习服务器或线上业务服务器都很稳。这个系统几个关键点包管理器apt装东西、更新系统全用apt不用旧版apt-getsudoaptupdate# 更新软件源索引sudoaptupgrade-y# 升级系统全部已装软件sudoaptinstallxxx# 安装软件防火墙ufwUbuntu 默认用ufw不是 CentOS 的firewalldsudoufw allow22sudoufwenable服务管理systemctl全 Linux 通用sudosystemctl start/stop/restart/enable 服务名几个 24.04 的小细节默认没有ifconfig查网卡用ip aPython3 预装但没有python命令只有python3安全策略严格默认禁止 root 直接 SSH 远程登录装好系统先做三件事1. 完整更新一遍建议新手自己手敲熟悉一下如果复制粘贴千万不要使用 ctrlvsudoaptupdatesudoaptupgrade-y2. 装常用工具补齐新手命令sudoaptinstallnet-tools treevimnanozipunzip-ynet-tools找回ifconfigtree树形查看目录vim/nano两个编辑器新手先熟悉nano3. 确认当前是谁whoami如果输出不是root后面装软件、改配置前面都得加sudo。先把这几步跑一遍系统就能用了中间遇到不会的直接问 AI。Linux 学习第二步常用命令动手练课前前提你已经登录服务器终端提示符一般类似ubuntulocalhost:~$。所有命令前面带sudo的代表需要管理员权限Ubuntu 24.04 日常不建议用 root 登录新手使用也没事。任务 0先把常用工具补齐之前已经执行过了再运行一下看看是否安装成功复制整条运行sudoaptupdatesudoaptinstallnet-tools treevimnanozipunzip-y作用apt update刷新软件源列表安装net-tools提供旧命令ifconfigtree树形展示文件夹vim、nano两个文本编辑器zip、unzip压缩解压工具任务 1认识当前身份与路径依次逐条输入看懂每条作用whoami查看你当前登录的用户名pwdPrint Working Directory打印你现在所在文件夹路径hostname查看服务器主机名任务 2目录查看与切换Linux 最常用lsls-lls-als列出当前目录文件ls -l显示详细权限、大小、修改时间ls -a显示隐藏文件以.开头的文件cd/etcpwdcd /etc进入系统配置目录再用 pwd 验证位置cd..pwdcd ..退回上一级目录cd~pwdcd ~快速回到你的个人家目录日常存放自己文件的地方任务 3创建、删除、移动、复制文件 文件夹逐条执行练习# 创建空文件touchtest1.txt# 创建文件夹mkdirmydir# 复制 test1.txt 到 mydir 里面cptest1.txt mydir/# 重命名文件mvtest1.txt rename.txt# 移动文件进文件夹mvrename.txt mydir/# 删除单个文件rmmydir/rename.txt# 删除空文件夹rmdirmydir⚠️ 高危命令演示不要乱删系统文件rm -rf 目录名强制删除带内容的文件夹一旦删除无法找回任务 4查看文件内容三种方式# 一次性全部输出cat/etc/os-release# 查看前6行head-n6/etc/passwd# 查看最后8行tail-n8/var/log/syslog任务 5学会简单编辑文件nano 新手友好nanohello.txt随便输入一段文字Hello Ubuntu 24.04 Linux按CtrlO→ 回车确认文件名保存按CtrlX退出编辑器查看刚才写的内容cathello.txt任务 6查看系统资源状态ipa# 或者ifconfig查看服务器网卡、公网内网 IPdf-h查看磁盘分区占用情况free-h查看总内存、已用、空闲内存top实时查看 CPU、内存、进程占用按q退出Linux学习第三步用户与权限管理Ubuntu 默认不让 root 远程登录平时用普通账号干活改系统配置前面加sudo临时获取管理员权限。新手了解这个即可学习使用 root 模式问题不大任务 1查看系统已有用户# 查看当前是谁whoami# 系统所有用户都存在这个文件里cat/etc/passwd随便挑一行举例ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash分段含义用户名密码占位符UID用户 IDGID组 ID备注家目录登录 Shell任务 2新建用户、设置密码我们新建一个练习用户user01sudoadduser user01执行后按提示输入两次密码自己记好后面全名、电话等一路回车跳过最后输入Y确认创建把user01加入管理员组以后可以用 sudosudousermod-aGsudouser01验证是否添加成功iduser01输出里出现sudo组就代表成功。任务 3切换用户练习方式 1临时切换到 user01su- user01输入刚才设置的密码提示符会变化代表切换成功。执行whoami确认身份。切回你原来账号exit任务 4用户相关常用删除 / 修改命令修改已有用户密码自己改自己不用 sudo改别人需要 sudosudopasswduser01删除用户连带家目录一起删干净sudodeluser --remove-home user01现在先别删后面权限练习还要用可以等本节全部做完再删。任务 5理解文件权限重中之重先创建一个测试文件用来观察权限touchtestperm.txtls-ltestperm.txt你会看到类似-rw-r--r-- 1 ubuntu ubuntu 0 Jul 2 xxx testperm.txt拆分权限-rw-r--r--第一位文件类型-普通文件d文件夹l软链接第 2~4 位所有者权限u—— r 读、w 写、x 执行第 5~7 位所属组权限g第 8~10 位其他用户权限o字母对应数字r4w2x1例rw- 426r--4整体就是644修改权限 chmod 两种写法数字写法最常用chmod755testperm.txtls-ltestperm.txt755 含义所有者读写执行组和其他人读 执行字母写法# 给所有人增加执行权限chmodx testperm.txt# 去掉其他用户写权限chmodo-w testperm.txt修改文件归属用户 / 组 chownsudochownuser01:user01 testperm.txtls-ltestperm.txt文件归属就变成 user01 了。任务 6文件夹权限小区别文件夹必须有x权限才能进入浏览内容mkdirpermdirchmod600permdirls-ldpermdir# 尝试进入cdpermdir此时会权限不足修改权限后正常进入chmod700permdircdpermdirLinux 学习第四步进程、磁盘与压缩解压一、进程是什么程序运行起来就是进程。服务器卡顿、端口占用、卡死程序都要靠进程命令排查有的时候服务器CPU满了只能重启服务器所以下载东西之前要先看看服务器能不能带的动任务 1查看进程1. top实时动态查看最常用top按P按 CPU 占比排序按M按内存占比排序按q退出界面2. ps 静态查看进程快照psauxpsaux|grepbash|是管道符把前一个命令的输出传给后面命令做过滤。3. 查看进程树 pstreepstree没装就执行sudoaptinstallpsmisc-y4. 根据端口查进程排查端口占用神器sudolsof-i:80或者sudonetstat-tulnp任务 2杀死异常进程格式kill 进程 PID温和终止kill1234强制杀死程序僵死无响应时用kill-91234任务 3前后台任务实操练习# 放到后台运行sleep300# 查看后台任务jobs# 把后台任务调到前台fg编号# CtrlZ 暂停当前程序放入后台# bg 编号 让暂停任务继续后台运行二、磁盘管理全套命令1. 整体磁盘分区使用df-h-h表示人性化单位GB/MB容易看懂。2. 查看当前目录各个文件夹大小du-sh*-s汇总大小-h友好单位3. 挂载 / 卸载U 盘、数据盘必会先看磁盘列表lsblk示例挂载用法仅练习理解不要乱挂载系统盘sudomkdir/mnt/testdisksudomount/dev/sdb1 /mnt/testdisk# 卸载sudoumount/mnt/testdisk三、压缩 解压日常打包备份必备1. tar 打包压缩Linux 最主流创建测试文件夹用于练习mkdirtar_testtouchtar_test/a.txt tar_test/b.txt打包压缩为 tar.gztar-zcvftest.tar.gz tar_test/参数解释zgzip 压缩c创建包v显示过程f指定包名解压 tar.gztar-zxvftest.tar.gz只打包不压缩tar-cvftest.tar tar_test/tar-xvftest.tar2. zip / unzip 格式Windows 互通# 压缩文件夹zip-rtest.zip tar_test/# 解压unziptest.zip3. 常用解压万能口诀tar.gztar -zxvf xxx.tar.gztar.bz2tar -jxvf xxx.tar.bz2zipunzip xxx.zip实在无法理解怎么办没事多问 AI多敲几次自然就熟了。Linux 学习第五步服务器网络排查与安全加固一、常用网络排查命令排错必备1、查看本机 IP、网卡信息ipa# 老命令需安装net-toolsifconfig可查看内网 IP、网卡状态、公网绑定网卡信息。2、测试连通性 ping# 持续 pingCtrlC 停止pingwww.baidu.com# 发送4个包自动结束ping-c4www.baidu.comping 不通一般判断服务器外网断网 / DNS 异常 / 网关问题3、路由查看route-niproute4、查看监听端口哪些程序对外开放端口# 传统命令sudonetstat-tulnp# 新版更快推荐sudoss-tulnp参数说明ttcp 端口uudp 端口l监听中端口n不解析域名显示纯数字 IPp显示对应进程 PID5、域名解析 nslookup / dignslookupwww.baidu.com# 安装 digsudoaptinstalldnsutils-ydigwww.baidu.com用于排查域名打不开、DNS 解析异常、DNS 污染问题。6、测试端口通不通# curl 测试本机端口curl127.0.0.1:80# telnet 测试端口sudoaptinstalltelnet-ytelnet127.0.0.180二、UFW 防火墙实操Ubuntu 默认防火墙1、查看防火墙状态sudoufw status默认inactive 关闭状态2、放行 SSH必须先开否则开启防火墙会被踢下线通常默认是开的sudoufw allow22/tcp3、开启防火墙sudoufwenable# 验证sudoufw status常用放行 / 删除规则# 放行80网页端口sudoufw allow80/tcp# 放行443 HTTPSsudoufw allow443/tcp# 放行一段端口 3000-4000sudoufw allow3000:4000/tcp# 查看规则编号sudoufw status numbered# 删除第2条规则sudoufw delete2# 关闭防火墙测试用不建议生产关闭sudoufw disable# 重置所有防火墙规则sudoufw reset三、SSH 安全加固防暴力扫描、防入侵编辑 SSH 配置文件sudonano/etc/ssh/sshd_config核心修改项PermitRootLogin no # 禁止 root 远程登录最重要 PasswordAuthentication yes可选修改 SSH 默认端口示例 2222# 先放行新端口sudoufw allow2222/tcp配置文件添加/修改Port 2222保存退出CtrlO → 回车 → CtrlX重启 SSH 生效sudosystemctl restart sshd改端口后连接方式ssh用户名IP-p2222查看 SSH 状态systemctl status sshd四、日志查看排查报错万能手段# 实时查看系统日志tail-f/var/log/syslog# 查看登录认证日志查爆破、登录记录tail-n30/var/log/auth.logLinux学习第六步服务管理与定时任务了解第一部分 systemctl 系统服务控制软件启停、开机自启Linux 所有后台程序Nginx、MySQL、ssh、防火墙都叫服务统一用 systemctl 管理。通用命令模板sudosystemctl start 服务名# 立即启动sudosystemctl stop 服务名# 立即停止sudosystemctl restart 服务名# 重启先停再开sudosystemctl reload 服务名# 重载配置不中断进程sudosystemctlenable服务名# 设置开机自动启动sudosystemctl disable 服务名# 取消开机自启sudosystemctl status 服务名# 查看运行状态、报错日志实操示例ssh、nginx查看 SSH 服务状态systemctl status sshd安装 Nginx 练手sudoaptinstallnginx-y操作 Nginxsudosystemctl start nginxsudosystemctlenablenginx systemctl status nginx浏览器访问服务器IP就能看到 nginx 页面。辅助命令# 列出所有正在运行的服务systemctl list-units--typeservice--staterunning# 查看开机自启的服务systemctl list-unit-files--typeservice|grepenabled第二部分 Crontab 定时任务服务器自动化核心作用定时自动执行脚本、备份、清理日志、拉取数据。1. 基础操作命令crontab-e# 编辑当前用户定时任务第一次选nanocrontab-l# 查看当前已有定时任务crontab-r# 删除当前用户所有定时任务谨慎sudocrontab-e# 编辑root用户定时任务系统级2. crontab 时间格式重点必须记分 时 日 月 周 要执行的命令 * * * * * command字段取值分0-59时0-23日1-31月1-12周0-60 周日符号含义*每单位*/5每 5 分钟1,3,5第 1、3、510-2010 到 20 区间3. 实战定时例子# 1. 每1分钟输出一段文字到日志*/1 * * * *echo定时任务测试~/cron_log.txt# 2. 每天凌晨2点清理nginx日志02* * *sudotruncate-s0/var/log/nginx/access.log# 3. 每周日凌晨3点备份家目录03* *0tar-zcf/home/ubuntu/backup.tar.gz /home/ubuntu4. 查看定时任务执行日志tail-f/var/log/syslog|grepCRONLinux学习第七步Shell 脚本入门与实战一、什么是 Shell 脚本把多条 Linux 命令写到一个.sh文件里一次性批量执行替代手动重复敲命令适合定时备份、批量操作、服务器巡检。二、第一个脚本 hello.sh1. 创建脚本文件nanohello.sh写入以下内容#!/bin/bash# 第一行叫解释器声明固定格式必须写开头# 井号是注释程序不会执行echo 我的第一个Shell脚本 echo当前用户名$USERecho当前路径$PWDecho当前系统时间$(date)保存CtrlO回车退出CtrlX2. 给脚本添加执行权限chmodx hello.sh3. 两种运行方式# 方式1推荐./hello.sh# 方式2bashhello.sh三、变量用法新建var.sh练习nanovar.sh写入#!/bin/bash# 自定义变量等号两边不能有空格nameLinux学习者num666# 输出变量用 $变量名echo$nameecho$num# 命令赋值变量now$(date%Y-%m-%d %H:%M:%S)echo当前时间$now授权执行chmodx var.sh ./var.sh四、if 判断语句最常用判断文件 / 进程 / 端口新建if_test.sh#!/bin/bashfiletest.txt# 判断文件是否存在if[-f$file];thenecho$file文件存在elseecho$file文件不存在自动创建touch$filefi运行测试chmodx if_test.sh ./if_test.sh常用判断参数-f 文件是否是普通文件-d 文件夹是否存在目录-x 文件文件是否有执行权限五、for 循环批量操作文件创建loop.sh批量创建 5 个测试文件#!/bin/bash# 循环1到5foriin{1..5}dotouchfile_$i.txtecho已创建 file_$i.txtdone执行后家目录会多出 file_1 ~ file_5.txt六、实战小脚本服务器简易巡检脚本新建check.sh一键查看内存、磁盘、负载#!/bin/bashecho服务器巡检echo当前时间$(date)echoecho1. 内存使用free-hechoecho2. 磁盘占用df-hechoecho3. 系统负载uptime授权运行chmodx check.sh ./check.sh七、配合前面学的 crontab 自动化需求每 30 分钟自动执行巡检脚本输出日志先获取脚本完整路径pwd# 假设输出 /home/ubuntu编辑定时任务crontab-e添加一行*/30 * * * * /home/ubuntu/check.sh /home/ubuntu/check_log.txt每 30 分钟自动巡检并保存日志完全不用手动操作。到这里你已经算基本入门了Linux了剩下的就是靠你自己在实践中一点一点巩固所谓是熟能生巧