Linux如何系统的学习shell方法

简介: Linux如何系统的学习shell方法



 

前言

想系统地学习 Linux 的 shell,以下是一些建议:

  1. 学习基础知识:了解基本的 Linux 概念、命令和文件系统结构。学习常用的 shell 命令,如 ls、cd、mkdir、rm 等,并了解它们的用法和参数。
  2. 实践操作:通过实际操作来加深理解。在你的计算机上安装一个 Linux 发行版,可以选择常用的发行版如 Ubuntu 或者 CentOS,并通过终端来执行各种命令。尝试创建、删除、复制文件和目录等任务,熟悉常见的操作。
  3. 学习脚本编程:Shell 脚本是一种编写在 shell 环境中运行的脚本程序。学习 Shell 脚本编程可以帮助你自动化任务和编写复杂的命令序列。学习脚本语法、变量、条件判断、循环和函数等基本概念,并通过编写简单的脚本来实践。
  4. 阅读文档和书籍:官方文档是学习 Linux shell 的重要资源,可以查阅各种命令的手册页(man page)来了解命令的使用方式和参数。此外,有很多优秀的 Linux shell 编程书籍,可以深入学习和理解。
  5. 参与社区和论坛:加入 Linux 社区和论坛,与其他用户交流和分享经验。这样可以获取更多学习资源、解决问题,还可以从其他人的经验中学习。
  6. 实践项目:尝试通过实践项目来应用所学的 shell 知识。例如,编写一个备份脚本、日志分析脚本或者系统监控脚本等。这样能够锻炼你的技能并深入理解 shell 的应用场景。

记住,学习 Linux shell 需要一定的时间和实践,持续地学习和实践是提高技能的关键。通过不断尝试、探索和解决问题,你将逐渐掌握并熟练运用 Linux 的 shell。

shell的常用命令

  1. ls:显示目录中的文件和文件夹
  2. cd:切换工作目录
  3. mkdir:创建新目录
  4. rm:删除文件或目录
  5. mv:移动或重命名文件或目录
  6. cp:复制文件或目录
  7. pwd:显示当前工作目录
  8. cat:显示文件内容
  9. less:分页显示文件内容
  10. grep:在文件中搜索字符串
  11. find:搜索文件或目录
  12. sort:对文件内容排序
  13. chmod:修改文件或目录权限
  14. exit:退出当前shell

shell常用场景

常用的 shell 在 Linux 系统中可以完成以下任务:

  1. 文件和目录管理:通过 shell 命令可以创建、删除、复制、移动文件和目录,以及查看和修改文件的权限、所有权等。
  2. 系统管理:可以使用 shell 命令来管理用户账户,包括创建、删除和修改用户账户信息,以及设置用户权限和密码。
  3. 网络管理:通过 shell 命令可以配置网络接口、查看网络状态、设置防火墙规则,以及执行网络诊断工具等。
  4. 进程管理:可以使用 shell 命令来查看系统中运行的进程,以及启动、停止和管理进程。
  5. 系统监控:通过 shell 命令可以查看系统资源的使用情况,如 CPU、内存、磁盘等,以及检查系统日志和错误信息。
  6. 脚本编程:shell 脚本是一种通过编写一系列命令来实现自动化任务的脚本程序。可以编写脚本来批量处理文件、执行定时任务、自动化系统配置等。
  7. 数据处理和分析:通过 shell 命令可以处理文本数据,如提取、过滤、排序、统计等操作,也可以借助工具如 Awk 和 Sed 来进行更复杂的文本处理和数据分析。
  8. 软件包管理:在 Linux 系统中,常用的软件包管理工具如 apt、yum、dnf 等可以通过 shell 命令来安装、更新和删除软件包,以及管理软件仓库。

总的来说,Linux 的 shell 提供了丰富的命令和工具,可以用于系统管理、文件操作、网络配置、进程控制、脚本编程和数据处理等各种任务。它是与操作系统进行交互的重要工具,可以大大提高效率和灵活性。

shell的demo

每30秒输出一下当前时间。

#!/bin/bash
while true; do
    echo "当前时间:$(date)"
    sleep 30
done

将以上代码保存为一个名为 timer.sh 的文件,并给该文件添加执行权限(chmod +x timer.sh)。然后在终端中执行 ./timer.sh,就会每 30 秒打印一次当前时间。

脚本中的 while true; do 表示无限循环,echo "当前时间:$(date)" 打印当前时间,sleep 30 命令使脚本暂停执行 30 秒。

你可以根据需要自定义定时器的间隔时间和输出格式。

效果:

这是一个建议的定时器,如果使用真正的定时器应该是使用:crontab

以下是使用 crontab 命令设置定时任务的示例:

  1. 编辑定时任务: 使用以下命令编辑当前用户的定时任务:
crontab -e
  1. 这会打开一个文本编辑器,在其中可以添加或修改定时任务。
  2. 添加定时任务: 在打开的文本编辑器中,按照以下格式添加定时任务:
* * * * command
  1. 其中,* * * * * 是时间表达式,表示分钟、小时、日期、月份和星期的位置。command 是要定期执行的命令。
    例如,要每天的 9 点运行一个脚本文件 /path/to/script.sh,则可以添加以下行:
0 9 * * * /path/to/script.sh
  1. 保存定时任务: 编辑完定时任务后,保存并关闭文本编辑器。
  2. 查看定时任务: 可以使用以下命令查看当前用户的定时任务列表:
crontab -l
  1. 删除定时任务: 使用以下命令删除当前用户的所有定时任务:
crontab -r

这只是一个简单的示例,你可以根据具体需求设置更多复杂的定时任务。请注意,crontab 的时间表达式支持更高级的语法,例如使用通配符、范围和逗号等。

Shell优势总结

Shell(Shell脚本)是一种解释性的编程语言,具有以下几个优势:

  1. 简单易学:Shell语法简单直观,易于学习和使用。它基于命令行界面,可以通过输入命令来进行交互和操作。
  2. 强大的脚本能力:Shell脚本可以自动化执行一系列操作,例如文件处理、系统管理、任务调度等。它支持条件判断、循环控制、函数定义等高级语法,使得编写复杂的脚本变得简单和方便。
  3. 广泛的平台支持:Shell脚本可以在几乎所有的Unix/Linux系统上运行,包括各种发行版和操作系统。这使得它成为跨平台开发和管理的强大工具。
  4. 系统级访问权限:Shell脚本可以直接访问和操作系统的各种资源和功能。例如,可以管理文件和目录、执行系统命令、管理进程等。这使得Shell脚本在系统管理、自动化部署和系统监控等方面非常有用。
  5. 与其他工具的集成:Shell脚本可以与其他命令行工具和程序进行无缝集成。通过调用其他命令和程序,可以扩展Shell脚本的功能,并利用现有的工具来完成更复杂的任务。
  6. 快速原型开发:Shell脚本是一种快速原型开发的利器,可以快速编写和测试代码,迅速验证想法和解决问题。它不需要编译,直接执行即可,提高了开发效率。

尽管Shell脚本在性能和复杂性方面可能不如其他编程语言,但在系统管理、自动化任务和快速脚本编写方面,它仍然是一种非常有价值的工具。

相关文章
|
8月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
687 3
Linux系统禁用swap
|
8月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1238 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
768 3
Linux系统初始化脚本
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
692 9
|
8月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
700 3
|
9月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
598 18
|
8月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
932 1
|
8月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1285 1
|
Shell C# Windows
C#使用系统的“显示桌面”功能(Shell.Application)
原文 C#使用系统的“显示桌面”功能(Shell.Application) 在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标  ,点击这个图标,就会切换到桌面。这个图标实际是一个 “Windows Explorer Command” ,用记事本打开这个文件,我们看到如下的内容: [Shell] Command=2 IconFile=explorer.
1695 0