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
相关推荐
Maple_land27 分钟前
Linux进程第八讲——进程状态全景解析(二):从阻塞到消亡的完整生命周期
linux·运维·服务器·c++·centos
嵌入式分享29 分钟前
嵌入式分享#41:RK3576改UART波特率【精简版】
linux·嵌入式硬件·ubuntu·嵌入式
爱吃生蚝的于勒32 分钟前
【Linux】零基础学会Linux之权限
linux·运维·服务器·数据结构·git·算法·github
量子物理学34 分钟前
Eclipse Mosquitto 在小内存下怎么修改配置文件
java·服务器·eclipse
惜.己39 分钟前
linux中jenkins正常启动外部无法访问
linux·servlet·jenkins
Cyan_RA91 小时前
Linux 远程Ubuntu服务器本地部署大模型 EmoLLM 中常见的问题及解决方案 万字详解
linux·运维·服务器·ubuntu·大模型·远程部署·emollm
数字冰雹1 小时前
图观 流渲染打包服务器
服务器·前端·github·数据可视化
minji...1 小时前
Linux相关工具vim/gcc/g++/gdb/cgdb的使用详解
linux·运维·服务器·c++·git·自动化·vim
web安全工具库1 小时前
Linux 高手进阶:Vim 核心模式与分屏操作详解
linux·运维·服务器·前端·数据库
egoist20231 小时前
[linux仓库]信号产生[进程信号·贰]
linux·键盘·系统调用·信号产生·软件条件