Linux shell脚本编程

什么是Shell程序设计?

也就是给计算机发命令,让它帮你做事,你通过shell

的小工具,用键盘输入指令,linux就会根据这些指令去执行任务,就像你法号一个指令一样。

shell的强大之处?

  • 文件处理:让计算机去找文件、压缩文件、删除文件
  • 系统管理:自动备份、清理垃圾文件等
  • 任务自动化:比如你设定定时任务,自动做一些此重复性的工作,解放你的双手。

shell脚本的建立与执行

1.shell脚本的建立:

shell脚本色建立,简单的来所就是给计算机编写任务清单(脚本),这个脚本就像你给计算机的"指令书",告诉他需要做什么。

步骤一:创建有一个脚本文件(与创建普通的文件一样)

复制代码
touch myscript.sh

步骤二:给文件加点"魔法"

使用文本编辑器(比如nano、vim等)

复制代码
nano myscript.sh

然后在文件里写这些内容:

复制代码
#!/bin/bash
# 这是一个简单的脚本
echo "你好,世界!"

其中#!/bin/bash 是告诉计算机这个脚本应该用bash来执行

2.给脚本执行权限:

相当于给文件"通行证",可以随时跑起来了

复制代码
chmod +x myscript.sh

这一步就是给脚本文件加上执行权限

3.执行脚本(3种执行方式)
  • 直接运行:

    ./myscript.sh

  • 通过shell命令运行:

    bash myscript.sh

或者

复制代码
sh myscript.sh

或者

复制代码
. myscript.sh

总结:

  1. ./myscript.sh:直接执行(拍肩膀让它动起来)。
  2. bash myscript.sh 或 sh myscript.sh:让Shell代你执行(给计算机找个帮手)。
  3. source myscript.sh 或 . myscript.sh:在当前环境执行(你自己动手,做得更直接)。

历史命令(history):

它就像一个"记事本",帮你记下了每一次你敲入的命令,,方便之后回顾或重用

1.查看历史命令

你可以用history命令来查看之前执行过的命令列表,类似你翻阅自己做过的笔记。

复制代码
history

它会列出你执行过的命令,按顺序编号,从最早的命令开始,越新的命令越在后面。

输出的格式一般是这样的:

复制代码
1  ls
2  cd /home/user
3  echo "Hello"
4  history
2.重新执行历史命令:

如果你想重复执行某个命令,可以用!加上命令编号。就像你去超市,看到买过的商品,直接拿来再买一遍。

复制代码
!2

这个命令会重新执行编号为2的命令,也就是cd /home/user。

3.执行最近的命令:

如果你只想重复最近执行的命令,可以直接输入!!。就像说:"嘿,刚刚那个命令,你再来一次!"

复制代码
!!

这会重新执行你刚刚执行的命令,超级省事儿。

4.查看历史命令:

如果你记得之前执行过某个命令,但记不清具体是什么,可以使用!加上命令的一部分来搜索。比如,假设你曾经执行过一个git命令,你可以输入:

复制代码
!git

这样就会执行最近一次包含git的命令。就像翻阅日历,找出最相关的日期。

5.清楚历史命令:

如果你不想让别人看到你的命令历史,或者想重置记录,可以用history -c来清除当前的历史命令。就像你想清空"记事本"一样:

复制代码
history -c
6.保存历史命令:

默认情况下,历史命令会保存在~/.bash_history文件中。你可以直接打开这个文件查看或者编辑历史命令记录。

复制代码
nano ~/.bash_history
相关推荐
David猪大卫1 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之avcodec_align_dimensions调用流程与实战(二十九)
服务器·linux音视频·音视频进阶·ffmpeg音视频
飞飞传输2 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
叼烟扛炮2 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农3 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器
布裘4 小时前
【银河麒麟】重启后时区丢失?排查发现 localtime 被业务程序替换成硬链接
linux·运维·网络
zhikouai5 小时前
把外部助手接进聊天软件的架构分层与参数配置
服务器·网络·php
huainingning5 小时前
锐捷10.X路由器版本升级不生效问题排查
运维·网络·智能路由器
荣合技术服务5 小时前
HPC 超算集群故障维修实录:找荣合科算维护后,模拟仿真计算又能跑了
运维·服务器·超算服务器·荣合科算