【2025版】最新Linux Shell入门到精通,收藏这篇就够了

学习Linux Shell命令是一个循序渐进的过程。初学者可以从基本命令开始,逐渐掌握脚本编写和系统管理。在学习过程中,建议多动手实践,并参考在线文档和社区资源。同时,随着技术的不断发展,Linux也在不断更新,保持学习的热情和对新技术的敏感,将使你在这个领域保持竞争力。



Linux Shell的基本概念及其重要性

在计算机的世界里,Linux以其开源、稳定和强大的功能而闻名。而Shell,作为Linux的命令行界面,是与操作系统交互的桥梁。Shell命令不仅能够让我们高效地管理文件和系统,还能自动化复杂的任务。对于开发者、系统管理员和IT专业人员来说,掌握Shell命令是职业生涯中不可或缺的技能。无论你是刚刚接触Linux的新手,还是经验丰富的老手,Shell命令都是你日常工作中的得力助手。

入门部分:基本命令与环境设置

基本命令

让我们从最基本的命令开始,这些命令是Linux世界的敲门砖。

  • ls

    :列出目录内容。例如,ls -l会以详细列表的形式显示文件和目录。

  • cd

    :改变当前工作目录。比如,cd /home会将你带到/home目录。

  • cp

    :复制文件或目录。使用cp source destination可以将文件从源位置复制到目标位置。

  • mv

    :移动或重命名文件。mv oldname newname可以将文件从旧名称更改为新名称。

  • rm

    :删除文件或目录。慎用rm -rf,因为它会强制删除目录及其内容,且无法恢复。

  • man

  • :查看命令的手册页。例如 man ls ,用来查看每个命令的用途及使用说明

环境设置

在Linux中,环境变量和Shell配置文件(如.bashrc.zshrc)对于定制你的工作环境至关重要。

前文回顾

Bash环境变量加载过程

  • export

    :设置或导出环境变量。例如,export PATH=$PATH:/usr/local/bin会将新路径添加到你的PATH变量中。

  • .bashrc

    .zshrc:这些文件在每次新的Shell会话开始时被读取,是配置Shell环境的理想场所。

常用工具
  • grep

    :搜索文本。grep "pattern" file会在文件中搜索指定的模式。

  • sed

    :流编辑器,用于处理文本。sed 's/old/new/g' file会将文件中的“old”替换为“new”。

  • awk

    :强大的文本处理工具,用于模式扫描和处理语言。

前文回顾

Linux Shell编程入门(二)-grep、sed、awk

Linux Shell编程入门(三)-正则表达式

Linux Shell编程入门(七)-文本处理

深入学习 sed:从入门到精通

深入学习 awk:从基础到高级


进阶部分:脚本编写与调试技巧

脚本编写

Shell脚本是一系列命令的集合,可以自动化执行任务。

  • 脚本的基本结构包括shebang(#!/bin/bash),变量声明,命令和条件语句。

  • 循环和条件语句是脚本中常用的控制结构,如for循环和if语句。

常见问题的解决办法
  • 当脚本不按预期工作时,使用set -x在脚本中启用调试模式,这会显示每条命令执行前的状态。

  • 检查权限问题,确保你有权限执行脚本中的命令。

  • 检查路径问题,确保所有文件和命令的路径都是正确的。

前文回顾

Linux Shell编程入门(一)

调试技巧
  • 使用echo命令在脚本中打印变量和消息,帮助理解脚本的执行流程。

  • 将复杂的命令分解成更小的部分,逐一测试,直到找到问题所在。

前文回顾

Linux Shell编程入门(四)–Shell脚本调试

高级部分:系统管理与自动化任务

系统管理
  • top

    htop:实时监控系统资源使用情况。

  • df

    du:检查磁盘空间使用情况。

  • ps

    kill:查看进程状态和终止进程。

性能监控
  • iostat

    :监控系统输入/输出设备。

  • vmstat

    :报告虚拟内存、进程、I/O等系统状态信息。

前文回顾

你可以需要了解的Linux 性能工具

自动化任务
  • cron

    :定时执行任务。通过编辑crontab文件,可以设置定时任务。

  • at

    :安排一次性任务在未来的某个时间点执行。


通过定时任务cron,你可以实现自动化执行Shell脚本。使用crontab -e命令编辑定时任务,例如每天凌晨2点备份数据:

0 2 * * * /path/to/backup.sh



总结:学习Linux Shell的建议和未来发展

学习Linux Shell是一个持续的过程,随着技术的发展,新的命令和工具不断出现。以下是一些建议:

  • 实践

    :理论知识是基础,但实践是掌握Shell命令的关键。

  • 阅读手册

    man命令是学习每个命令详细用法的宝库。

  • 加入社区

    :Linux社区是学习资源和帮助的宝库,不要害怕提问和分享。

  • 保持好奇心

    :技术在不断进步,保持好奇心,探索新的工具和命令。

随着云计算和容器化技术的发展,Linux Shell命令的重要性只会增加。掌握这些技能,将使你在技术世界中保持竞争力,并为你的职业生涯打开新的大门。

当然,退休可能还很遥远,但掌握Linux Shell命令,将使你的职业生涯更加稳固和有保障。

题外话

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。

目 录 一、Linux基础 5 1.什么是Linux? 5 2.什么是自由软件、GNU和GPL? 5 3.从技术上说,Linux有什么优点? 5 4.我需要学习Linux吗? 5 5.Linux会取代Windows吗? 6 6.Linux与WindowsNT谁更好? 6 7.Linux与UNIX有什么不同? 6 8.Linux能应用在哪些领域呢? 6 9.Linux作系统发展现状和未来如何? 6 10.Linux对软件业有什么影响呢? 6 11.我该如何学习Linux呢? 6 12.网上有哪些Linux资源? 7 13.RedHat Linux 6.5和Linux 2.4哪个本高? 7 14.Linux的发行有哪些? 7 15.RedHat Linux有哪些特点? 7 16.TurboLinux有哪些特点? 7 17.BluePoint、Xterm、RedFlag三种中文Linux谁好? 7 18.哪种Linux适合我? 7 19.如何得到Linux? 8 二、用户和用户组管理 8 ※一、Linux系统用户账号的管理 8 ※1、添加新的用户账号使用useradd命令,其语法如下: 8 ※2、删除帐号 8 ※3、修改帐号 8 ※4、用户口令的管理 9 ※二、Linux系统用户组的管理 9 ※1、增加一个新的用户组使用groupadd命令。其格式如下: 9 ※2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下: 9 ※3、修改用户组的属性使用groupmod命令。其语法如下: 9 ※4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其它用户组的权限。用户可以在登录后,使用命令newgrp切换到其它用户组,这个命令的参数就是目的用户组。 10 ※三、与用户账号有关的系统文件 10 ※1、/etc/passwd文件是用户管理工作涉及的最重要的一个文件。 10 ※2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。 11 ※3、用户组的所有信息都存放在/etc/group文件中。 11 四、赋予普通用户特殊权限 12 三、文件系统结构和基本文件处理 13 ※1.文件类型 13 ※2.文件系统结构 14 ※3.主目录和当前工作目录 14 ※4.路径、绝对路径和相对路径 15 ※5.查看当前目录pwd 15 ※6.浏览文件系统cd 15 ※7.创建和删除文件(touch和rm) 15 ※8.创建和删除目录(mkdir 和 rmdir) 16 ※9.查看目录内容和文件属性ls 17 ※10.确定文件类型file 18 ※11.文件的复制和移动(cp 和 mv) 18 ※12.查看文件内容cat、head、tail、more、less 19 ※13.统计文件大小wc 21 14./etc文件系统 22 15./dev文件系统 22 16./usr文件系统 23 17./var文件系统 23 18./proc文件系统 24 四、高级文件处理 24 ※1.文件比较diff 24 ※2.删除重复行uniq 25 3. 不唯一 26 4. 对特定域进行测试 26 ※5.文件排序sort 26 ※6.文件的查找find 30 ※1、使用name选 31 ※2、用perm选 31 ※3、忽略某个目录 31 ※4、使用user和nouser选 31 ※5、使用group和nogroup选 32 ※6、按照更改时间或访问时间等查找文件 32 ※7、查找比某个文件新或旧的文件 32 ※8、使用type选 32 ※9、使用size选 33 ※10、使用depth选 33 ※11、使用混合查找方式查找文件 33 ※7.搜索文件内容grep 34 ※2. grep正则表达式元字符集(基本集) 34 ※8.cut and paste 35 ※9.文件合并jion 37 ※10.文件分割split 38 ※11.文件的压缩 38 ※1.gzip 、zcat命令 39 ※2.bzip2、bzcat 39 ※3.tar (打包文件或目录) 40 ※12.设备挂载mount 40 ※1.制作ISO文件 40 ※2.挂接移动硬盘 41 ※3.挂接U盘 42 五、文件安全与权限 42 ※1.文件安全策略 42 ※2.文件权限位 42 ※3.文件类型 43 ※4.改变权限chmod 43 ※4.1符号模式 43 ※4.2绝对模式 44 ※目录 44 ※5.chown和chgrp 44 ※6.umask 45 7.Set UID、Set GID、Sticky Bit 46 8.文件隐藏属性 47 9.lsattr(显示文件的隐藏属性) 48 10.SUID和SGID的详细解析 48 11.Linux病毒 49 六、Shell 50 1.内核与Shell 50 ※2.shell的功能 50 3.输入和输出 52 ※3.1 echo 52 ※3.2 read 54 ※3.3 cat 54 ※3.4 Tee 55 ※4.输入输出复位向、管道 55 5.变量 58 5.1.什么是shell变量 58 ※5.2.本地变量 58 ※5.3.环境变量 64 ※5.4.位置变量参数 67 ※七、Linux 进程管理 69 1、程序和进程 69 1.1 进程分类; 69 1.2 进程的属性; 69 1.3 父进程和子进程; 69 2、进程管理; 69 2.1 ps 监视进程工具; 69 2.2 pgrep 71 3、终止进程的工具 kill 、killall、pkill、xkill; 71 4、top 监视系统任务的工具; 73 5、进程的优先级:nice和renice; 73 八、脚本 77 ※1. Linux 脚本编写基础 77 ※1.1 开头 77 ※1.2 注释 77 ※1.3 变量 77 ※1.4 环境变量 77 ※2.条件判断 77 ※test 文件运算符 78 ※字符串比较运算符 80 ※整数比较运算符 81 ※布尔运算符 83 3.流程控制 86 ※3.1 if 86 ※3.2.case 87 ※3.3. selsect 88 ※3.4.loop 89 ※3.5. Here documents 90 ※3.6函数 90 ※4.命令行参数 91 九、shell 十三问 91 二、关于{}和() 91 ※七、 exec 跟 source 差在哪? 这次先让我们从 CU Shell 的一个实例贴子来谈起吧:例中的提问是: 92 八、 ( ) 与 { } 差在哪? 95 ※九、 $(( )) 与 $( ) 还有${ } 差在哪? 97 ※十、 $@ 与 $* 差在哪? 101 ※十一、 && 与 || 差在哪? 103 ※Part-I: Wildcard 112 ※Part-II: Regular Expression 113 ※十、功能最强大的编辑器——vi 117 1.vi的基本状态 117 2.vi的基本操作 117 3.离开vi及存文件 117 4.Command mode功能键列表 117 5.Last line mode下指令简介 118 ※十一、ifconfig 119 十二、write 命令 122 用途: 122 语法: 123 描述: 123 工作站 123 参数 123 标志 124 退出状态 124 示例 124 文件 125 十三、关于 Linux系统中关机命令详细解析 125 1.shutdown 125 2.halt----最简单的关机命令 126 3.reboot 126 4.init 126 十四、软件安装 127 十五、Linux操作系统中备份恢复技术的详解 129 十六、GRUB使用说明 131
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值