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.shsh 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
相关推荐
YC运维26 分钟前
Ansible模块
java·服务器·前端
博语小屋33 分钟前
程序(进程)地址空间(1)
linux
yunyi33 分钟前
使用acme.sh来实现自动化申请和续订TLS证书
linux·nginx·docker
包达叔1 小时前
docker国内镜像源
运维·docker·容器
未来可期LJ1 小时前
【Linux 小实战】自定义 Shell 的编写
linux·服务器
wanhengidc2 小时前
云手机的未来发展怎么样?
运维·安全·游戏·智能手机
_君落羽_2 小时前
Linux操作系统——TCP服务端并发模型
linux·服务器·c++
望获linux4 小时前
【Linux基础知识系列】第一百一十篇 - 使用Nmap进行网络安全扫描
java·linux·开发语言·前端·数据库·信息可视化·php
花小璇学linux10 小时前
imx6ull-驱动开发篇42——Linux I2C 驱动框架简介
linux·驱动开发·嵌入式软件
凌肖战10 小时前
编写Linux下设备驱动时两种方案:内核态驱动开发和用户态驱动开发
linux·驱动开发