Linux:shell脚本:基础使用(1)

news2024/12/25 9:33:40


Shell的作用

命令解释器,“翻译官”,介于系统内核与用户之间,负责解释命令行


用户的登录Shell

登录后默认使用的Shell程序,一般为 /bin/bash
不同Shell的内部指令、运行环境等会有所区别

cat /etc/shells


编写第一个Shell脚本 

 格式以*.sh

*是你起的名字,什么名字无所谓,但是结尾必须是sh为结尾的

vim ceshi.sh

里面可以写一些命令,他执行bash命令是依次从上到下执行的

由于是刚刚接触,可以先编写一些简单的语句,这里所谓的语句,就是平时使用的命令

你可以随便写一些,目前这个还是很好理解的


执行脚本的办法

一:./脚本文件路径
二:sh  脚本文件路径
三:source  脚本文件路径

使用第一种要为其设置执行权限         ./脚本文件路径

chmod +x ceshi.sh

第二种和第三种可以不给执行权限   但是他们的结果都是一样的

  

 三种执行方式,都是一样的效果

写入的都是依次执行的


 更完善的脚本构成

为了更完善脚本,向上面那样,也是可以执行的,但是可能会给后来的人添加难度

最好是第一排声明脚本运行的环境

注释信息  以‘#’开头的行为注释行 ,注释行不会执行


重定向 

【类型】【操作符】【用途】

重定向输入 ; < ; 从指定的文件读取数据,而不是从键盘输入

重定向输出; > ;将输出结果保存到指定的文件(覆盖原文件)

重定向输出;>>; 将输出结果追加到指定的文件

标准错误输出;2> ;将错误信息保存到指定的文件(覆盖原文件)

标准错误输出;2>>; 将错误信息追加到指定的文件中

混合输出;&> ; 将标准输出、标准错误的内容保存到同一个文件中

例如下面的

uname -p > kernel.txt

# 将uname 输出的东西写入到 kernel.txt中,并覆盖原有内容

uname -r >> kernel.txt

#将输出内容追加到 kernel.txt ,不会覆盖原文件内容,只是在结尾处新加追加内容

echo "123456" > pass.txt

cat pass.txt

useradd tom

passwd --stdin tom < pass.txt

# 将pass.txt文件内容当成密码,输入到tom的密码里,也就是把tom密码设置为123456


管道操作

将左侧的命令输出结果,作为右侧命令的处理对象 

也就是说,第一次的结果上再次进行第二次处理

例如:

df -hT

 查看磁盘使用情况

df -hT | grep '/$'

  查看磁盘使用情况 ,并检索前面输出内容中以/结尾的

df -hT | grep '/$' | awk '{print $1}

查看磁盘使用情况 ,并检索前面输出内容中以/结尾的,并查看里面的第一个信息 默认是以空格切割开的,$1 就是第一块   $4就是第四块     $1,$3就是看第1块和第三块1的


自定义变量

变量名=变量值

变量名以字母或下划线开头,区分大小写,建议全大写 

如果要查看的话可以使用
echo  $变量名 

变量名=变量值

 

定义了一个变量  为a赋值了,如果要查看

echo  $变量名 

 

 现在我们再赋值一个b值为world

输出多个变量可以使用

echo $变量名 $变量名   (中间有没有空格都可以)

  

变量后面添加别的可以使用 

 echo ${变量名}其他的字符

 

赋值时使用引号的含义

双引号   " 

可以有空格或者其他其他符号  但是写了变量格式,就会输出变量

单引号     ' 

使用变量并不会生效,同时也支持符号


反撇符号的使用 `  

例如:

ls -lh `which useradd`

其中的含义和  ls -lh /usr/sbin/useradd  是一样的

他会优先处理 ··  里的内容然后将 ·· 的输出内容添加到前面的命令中

rpm -qc `rpm -qf `which useradd``

例如这个意思上是对的但是输出结果不对,我们还有另外一种写法

rpm -qc $(rpm -qf $(which useradd))

也是依次执行

先执行最里面的


未完待续 ……

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

装饰器模式(Decorator)

装饰器模式是一种结构型设计模式&#xff0c;用来动态地给一个对象增加一些额外的职责。就增加对象功能来说&#xff0c;装饰器模式比生成子类实现更为灵活。装饰器模式的别名为包装器(Wrapper)&#xff0c;与适配器模式的别名相同&#xff0c;但它们适用于不同的场合。 Decor…

P1219 [USACO1.5] 八皇后 Checker Challenge

题目 思路 非常经典的dfs题&#xff0c;需要一点点的剪枝 剪枝①&#xff1a;行、列&#xff0c;对角线的标记 剪枝②&#xff1a;记录每个皇后位置 代码 #include<bits/stdc.h> using namespace std; const int maxn105; int a[maxn];int n,ans; bool vis1[maxn],vis…

如何使用无线通信设备实现室内外精准定位管理?

巡更功能的意义 电子巡更系统的建立&#xff0c;使巡逻安防工作更加科学合理&#xff0c;使安全管理更加规范化、标准化制度化。例如&#xff0c;当管理人员设置巡更线路&#xff0c;在巡更线路上设置巡更点&#xff0c;通过巡更管理系为巡更人员排班在巡更区域内形成了一张防范…

《Java-SE-第二十三章》之单例模式

文章目录 单例模式概述饿汉模式懒汉模式单线程版懒汉单例多线程版枚举实现单例 单例模式概述 单例模式是设计模式中的一种,其作用能保证某个类在程序中只存在唯一一份实例,而不会创建多份实例。单例模式具体的实现方式, 分成 “饿汉” 和 “懒汉” 两种.。饿汉模式中的饿不并不…

R语言【Tidyverse、Tidymodel】的机器学习方法

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”&#xff0c;是发现新规律&#xff0c;总结和分析实验结果的利器。机器学习涉及的理论和方法繁多&#xff0c;编程相当复杂&#xff0c;一直是阻碍机器学习大范围应用的主要困难之一&#xff0c;由此诞生了Python…

深入浅出对话系统——大规模开放域对话模型PLATO

引言 今天主要介绍百度退出的大模型开放领域对话模型PLATO的三篇论文&#xff0c;分别对应三个模型。 PLATO 132M parameters8M samples问题&#xff1a;训练稳定性和效率 PLATO-2 1.6B, 314M and 93M parameters684M samples PLATO-XL 11B parameters811M samples for en1.2…

JavaWeb(8)——前端综合案例2(节流和防抖)

目录 一、节流和防抖概念 二、实例演示 三、需要注意的 一、节流和防抖概念 二、实例演示 Lodash 简介 | Lodash中文文档 | Lodash中文网 (lodashjs.com) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><m…

vivo传便签数据到OPPO新手机上怎么操作

一般来说&#xff0c;一台手机在使用了三年之后&#xff0c;就容易出现各种各样的问题&#xff0c;这时候就需要考虑换手机了。而在更换手机的时候&#xff0c;有相当一部分消费者都会选择更换与旧手机不同品牌的手机使用&#xff0c;例如之前使用的手机是vivo的&#xff0c;现…

【云原生-制品管理】制品管理的优势

制品介绍制品管理-DevOps制品管理优势总结 制品介绍 制品管理指的是存储、版本控制和跟踪在软件开发过程中产生的二进制文件或“制品”的过程。这些制品可以包括编译后的源代码、库和文档&#xff0c;包括操作包、NPM 和 Maven 包&#xff08;或像 Docker 这样的容器镜像&…

Adobe Camera Raw 常用快捷键

戳下方链接&#xff0c;后台回复“230707PS插件”获取相关插件应用 回复“230708PS插件教程”获取教学链接; 回复“230730camera快捷键”获取快捷键链接。 原文链接&#xff1a;https://mp.weixin.qq.com/s/tVNDBPUtKrUtfGmPKJ0Tdw 目标调整工具 作用WindowsmacOS选取目标调整工…

WilliamNing - 电脑办公环境 - 以及个人工作/开发习惯 - Windows/Mac

主要是记录个人的办公环境习惯&#xff0c;方便到新的环境&#xff0c;快速搭建自己熟悉的环境&#xff0c;从而提高工作效率 1. Windows 深圳客友 腾讯外包 家里电脑 TBD 2. Mac SeekAsia[深圳就业网络] Kumu[成都脑海科技] 2.1 桌面软件列表 后调整 -- 加了一些软件 同时…

轻松构建全栈观测,从容应对咖啡产业竞争

1964 年&#xff0c;Tim Hortons 咖啡馆诞生于多伦多的宁静小镇汉密尔顿&#xff0c;由传奇冰球运动员 Tim Horton 先生创立。经过近 60 年的发展&#xff0c;Tim Hortons 已成为全球著名咖啡连锁品牌。在英国权威品牌评估机构 Brand Finance 发布的“全球最有价值的 25 个餐厅…

KVM创建新的虚拟机(图形化)

1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机

C#界面美化小技巧

1.窗体设置为无边框 FormBorderStyle的属性设置为none 2.窗体无边框&#xff0c;可以拖拽 private Point mPoint new Point(); private void Download_MouseDown(object sender, MouseEventArgs e) { mPoint.X e.X; mPoint.Y e.Y; …

Vue3--->组合式API与Pinia

目录 使用create-vue搭建 1、使用create-vue创建项目 2、项目目录和关键文件 组合式API 1、组合式API - setup选项 2、组合式API - reactive和ref函数 3、组合式API - computed 4、组合式API - watch 1、基础使用 - 侦听单个数据 2、基础使用 - 侦听多个数据 3、immediate&…

面向对象学生考试系统实战:用Java构建简单的学生考试系统(附源码)

文章目录 项目简介项目代码实现1. Person类2. Student类3. Teacher类4. Question类5. ExamMachine类6. TestMain类&#xff08;主程序&#xff09; 项目运行 在当今科技高速发展的时代&#xff0c;面向对象编程成为了软件开发的主流范式之一。通过面向对象的方法&#xff0c;我…

【CSDN】

欢迎使用Mark编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#xff0c…

著名开源Linux图形驱动开发者与Valve签约

导读据报道&#xff0c;Valve 最近聘用了著名开源 Linux 图形驱动开发者 Alyssa Rosenzweig&#xff0c;以改进开源 Linux 图形驱动程序堆栈&#xff0c;增强 Linux 游戏生态系统。 据报道&#xff0c;Valve 最近聘用了著名开源 Linux 图形驱动开发者 Alyssa Rosenzweig&#…

国家留学基金委(CSC)|发布2024年创新型人才国际合作培养项目实施办法

2023年7月28日&#xff0c;国家留学基金委&#xff08;CSC&#xff09;发布了《2024年创新型人才国际合作培养项目实施办法》&#xff0c;在此知识人网小编做全文转载。详细信息请参见https://www.csc.edu.cn/chuguo/s/2648。 2024年创新型人才国际合作培养项目实施办法 第一章…

工作中用到的shell命令

工作中用到的shell命令 1、查看自己的系统版本:2、登陆远程服务第一种情况&#xff08;没做端口映射&#xff09;&#xff1a;第二种情况&#xff08;做了端口映射&#xff09;&#xff1a; 3、 ls -l -f4、grep5、scp6、zip 7、标准输入输出8、dirname9、date 1、查看自己的系…