shell基础知识

一.Shell概述
Shell是一个命令行解释器,它接收用户命令,然后调用操作系统内核
二.Shell解析器
cat /etc/shells
echo $SHELL
三.Shell脚本入门
#!/bin/bash
bash helloworld.sh
chmod 777 helloworld.sh
四.Shell中的变量
echo $HOME | $PWD | $SHELL | $USER
set 显示当前Shell中所有变量
变量=值 自定义变量
unset 变量 撤销变量
export 变量名 提升为全局变量
特殊变量:
$n $0代表该脚本名称 $1-9代表1-9的参数
$# 获取输入参数的个数
∗ 与 * 与 @ (把每个参数区分对待) 代表命令行中所有的参数
? 返回最后一个命令的执行状态五 . 运算符 s = ? 返回最后一个命令的执行状态 五.运算符 s= ?返回最后一个命令的执行状态五.运算符s=[(2+3)*4] echo $s
expr 2 + 3
六.条件判断
[ condition ] (注意condition前后要有空格,条件非空即为true)
= 字符串比较
-lt -le | -eq -ne | -gt -ge
-r -w -x
-f -e -d -s -L
七.流程控制
1.if 判断
if [ 条件判断式 ]; then
程序
elif 条件判断式; then
程序
else
程序
fi
2.case语句
case $变量名 in
“值1”)
程序
;;
“值2”)
程序
;;
*)
程序
;;
esac
3.for循环
for((初始值;循环控制条件;变量变化))
do
程序
done

for((初始值;循环控制条件;变量变化));do 程序;done

​ for 变量 in 值1 值2 值3
​ do
​ 程序
​ done
​ 或
​ for 变量 in 1 2 3 ;do 程序;done
​ 4.while循环
​ while [ 条件判断式] | ((表达式))
​ do
​ 程序
​ done
八.read读取控制台输入
​ 基本语法: read (选项) (参数)
​ -p: 提示符
​ -t: 等待时间(秒)

九.函数
1.系统函数
basename [string/pathname] [suffix]
dirname 获取文件的路径
2.自定义函数
function funname[()]
{
Action;
[return int;]
}
funname

十.Shell工具(重点)
1.wc [选项参数] filename
-l 统计行数
-w 统计单词数
-m 统计字符数
-c 统计字节数
2.cut [选项参数] filename 默认分隔符是制表符
-f f为fileds,列号,提取第几列
-d d为Descriptor分隔符,按指定分隔符分割列
3.sed [选项参数] ‘command’ filename
-e 直接在指令列模式上进行sed的动作编辑
a 新增 d 删除 s 查找并替换
4.awk [选项参数] ‘pattern1{action1} pattern2{action2}’ filename
-F 指定输入文件的分隔符
-v 赋值一个用户定义变量
5.sort (选项) (参数)
-n 依照数值的大小排序
-r 以相反的顺序来排序
-t 设置排序 时所用的分隔符,默认使用Tab
-k 指定需要排序的列
-u u为unique的缩写,即如果出现相同的数据,只出现一行

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

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

相关文章

使用GitLab自带的CI/CD功能在K8S集群里部署项目(四)

前置内容: 通过Docker Compose部署GitLab和GitLab Runner(一) 使用GitLab自带的CI/CD功能在本地部署项目(二) 使用GitLab自带的CI/CD功能在远程服务器部署项目(三) 一、K8S集群信息 节点名称…

基于springboot+vue+Mysql的体质测试数据分析及可视化设计

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

JAVA反射示例

public static void main(String[] args) throws Exception {Class pClass Class.forName("jdj.Person");//遍历整个控制器Constructor[] constructorspClass.getDeclaredConstructors();for(Constructor con:constructors) {System.out.println(con);}//通过控制器…

【CCF-CSP】202403-3 化学方程式配平

输入格式: 从标准输入读入数据。 输入的第一行包含一个正整数 n,表示需要判断的化学方程式的个数。 接下来的 n 行,每行描述了一个需要被配平的化学方程式。包含空格分隔的一个正整数和全部涉及物质的化学式。其中,正整数 m 表…

Ubuntu 安装 samba 实现文件共享

1. samba的安装: sudo apt-get install samba sudo apt-get install smbfs2. 创建共享目录 mkdir /home/share sudo chmod -R 777 /home/share3. 创建Samba配置文件: 3.1 保存现有的配置文件 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak3.2 打开现有的文件 sudo…

Docker快速启动清单

以下容器均使用 Docker version 24.0.2 版本测试使用,这里需要注意一下,高版本的Docker不支持镜像V1版本,不知道怎么操作才可以让它支持,所以推荐使用低版本 如果觉得不直观,或者觉得有点乱,可以访问以下网…

第十二章 元数据管理练习

单选题 (每题1分,共23道题) 1、 [单选] 元数据的来源有哪些? A:参考数据库、BI工具 B:数据字典、数据集成工具 C:建模工具和事件消息工具 D:以上都是 正确答案:D 你的答案:D 解析:327~330页,一共15个来源,所以选D,考核知识点,元数据的基本概念,元数据来源相关…

Window如何运行sh文件以及wget指令

Git下载 官网链接如下:https://gitforwindows.org/ 安装就保持一路无脑安装就行,不需要改变安装过程中的任何一个选项。 配置Git 切刀桌面,随便右击屏幕空白处,点open Git Bash here 把这行复制过去,回车&#xff1…

【用文本生成歌声】Learn2Sing 2.0——歌声转换算法及梅尔频谱详解

一. 频谱图与梅尔谱图的介绍 频谱图:频谱图可以理解为一堆垂直堆叠在一起的快速傅里叶变换结果。 1.1 信号 在进入频谱图模块之前,首先我们需要了解信号是什么。 信号就是某一特定量随时间变化,对于音频来说,这个特定的变化量就…

Python图形复刻——绘制母亲节花束

各位小伙伴,好久不见,今天学习用Python绘制花束。 有一种爱,不求回报,有一种情,无私奉献,这就是母爱。祝天下妈妈节日快乐,幸福永远! 图形展示: 代码展示: …

多目标跟踪入门介绍

多目标跟踪算法 我们也可以称之为 Multi-Target-Tracking (MTT)。 那么多目标跟踪是什么? 不难看出,跟踪算法同时会为每个目标分配一个特定的 id 。 由此得出了目标跟踪与目标检测的区别(似乎都是用方框来框出目标捏…

创新案例|搜索新王Perplexity如何构建生成式AI产品开发的新模式

Perplexity AI:生成式搜索的颠覆者 刚刚成立满两年,Perplexity AI已经变成了我日常频繁使用的工具,甚至取代了我对 Google搜索的依赖 —— 而我并非个案。该公司仅凭不到 50 名员工,已经吸引了数千万用户。他们目前的年收入超过 …

数据赋能(81)——数据要素:管理必要性

数据作为现代社会的核心资源,其潜在价值巨大。有效的数据要素管理能够确保数据得到充分的利用,转化为具备潜在利用价值的数据资产,为使用者或所有者带来经济效益。数据要素管理涉及到数据的收集、存储、处理、分析和利用等各个环节&#xff0…

马尔可夫决策过程(Markov Decision Process,简称MDP)

马尔可夫决策过程是一个四元组(S, A, P, R),其中: S是状态集合,表示智能体(Agent)可能处于的所有状态;A是动作集合,表示智能体可以采取的所有动作;P是状态转…

Linux 操作系统线程1

目录 一、线程 1.1线程的基本概念 1.2 线程相关的API函数 1.2.1 线程的创建 1.2.2 线程退出 1.2.3 线程等待函数 1.2.4 获取线程ID 1.2.5 线程取消 1.2.6 线程的清理函数 一、线程 1.1线程的基本概念 线程是属于进程;一个进程可以有多个线程&#xff…

第五十八节 Java设计模式 - 适配器模式

Java设计模式 - 适配器模式 我们在现实生活中使用适配器很多。例如,我们使用存储卡适配器连接存储卡和计算机,因为计算机仅支持一种类型的存储卡,并且我们的卡与计算机不兼容。 适配器是两个不兼容实体之间的转换器。适配器模式是一种结构模…

一文看懂深度学习中的cuda环境配置:cuda,cuda driver,cudnn与pytorch-cuda

深度学习中通常会涉及到cuda环境相关的问题,特别是torch版本,cuda版本等兼容问题。 主要涉及到这四个方向 显卡驱动:cuda driver 。驱动API (driver API)通过nvidia-smi查看,是所有cuda环境的基础CudaTool…

【二叉树】(一)二叉树基础知识及多种遍历方式

二叉树基础知识及多种遍历方式 关于二叉树,该了解这些二叉树的种类存储方式遍历方式节点定义 二叉树的三种递归遍历(深度遍历)递归遍历设计核心思想递归遍历力扣例题解析 二叉树的三种迭代遍历(深度遍历)前后续遍历中序…

数据库开启远程连接

服务器端添加一个允许远程连接的root用户: mysql -u root -p create user root192.168.10.20 identified by admin; //创建一个192.168.10.20地址远程连接的root用户 grant all privileges on *.* to root192.168.10.20; //赋予远程root用户所有的权…

中国地形可调节高度-UE5-UE4

2000坐标系,可进行高度调整。 支持版本4.21-5.4版本 下载位置:https://mbd.pub/o/bread/ZpWZm5Zs