Bash ——shell
Bash作为用户与操作系统之间的接口,让用户通过命令行输入各种指令来控制和操作计算机系统。
shell的两种解释:
1.linux命令解释器

Terminal 终端 ——》shell命令 ——》 Linux kernel (内核)

Linux内核的作用:
1.硬件的管理
2.内存的管理
3.文件的管理
4.进程的调度
Linux的基本命令:
1. ls
- ls -l:列出当前目录下的文件和目录,以长格式显示,包含权限、所有者、组、大小、时间戳等信息。
- ls -a:列出当前目录下的所有文件,包括隐藏文件(以.开头的文件)。
- ls -F:在每个文件名后加上一个符号,表明文件类型,如/表示目录,*表示可执行文件。
- ls -h:以人易读的格式显示文件大小,如KB、MB、GB。
2. touch
touch 1.c:创建一个名为1.c的新文件,如果文件已存在,则更新文件的时间戳。
3. rm
- rm -f:强制删除文件,不提示确认。
- rm -r:递归删除目录及其内容。
- rm -i:在删除前询问用户确认。
4. mkdir
•mkdir dir1 dir2:创建一个或多个目录。
5. rmdir
•rmdir 123:删除空目录123。
6. cd
•cd ..:移动到上级目录。
•cd ../../../..:向上移动四级目录。
•cd ~:移动到用户的家目录。
•cd /home/linux/20190214:移动到指定的绝对路径目录。
7. cp
•cp 1 2:将文件1复制为文件2。
•cp -av srcdir tgtdir:递归复制目录srcdir到tgtdir,同时显示详细的进度信息。
8. mv
•mv 1 2:将文件1重命名为2,或者将文件1移动到目录2(如果2是一个目录)。
9.cat
cat filename1:显示filename1文件的内容。
10 操作符:管道 |
管道( | )是Linux中非常强大的一个概念,它允许将一个命令的输出作为另一个命令的输入。这极大地增强了命令的组合能力,使得可以轻松地进行多步数据处理。
•cat /etc/passwd | less:先使用cat命令读取/etc/passwd文件的内容,然后将这些内容传递给less命令,less允许你分页查看文件内容,可以使用键盘箭头键滚动浏览,q键退出。
•cat /etc/passwd | grep new -n:先读取/etc/passwd的内容,然后使用grep命令搜索包含单词new的行,并显示行号(-n选项)。

11. whereis
whereis命令的输出通常分为三部分:
•b(binary):二进制文件的位置。
•m(manual):手册页的位置。
•s(source):源代码文件的位置。

12. grep
在文件中查找内容
grep [OPTIONS] PATTERN [FILE]...
例如,搜索文件example.txt中包含"hello"的行:
grep hello example.txt
bash使用选项-n
-n选项告诉grep在输出中显示匹配行的行号。
grep 'main' ./20170408/sec3/01socket/ser.c -n
重定向
改变命令的输入和输出目的地,通常用于将命令的输出保存到文件中,或者将文件内容作为命令的输入
覆盖重定向 >
将命令的输出写入到指定的文件中,如果文件已经存在,原来的文件内容会被覆盖(清空)。
cat t1 t2 > t3
将t1和t2两个文件的内容合并,然后写入到t3文件中。如果t3文件已经存在,其原有内容会被覆盖。
追加重定向 >>
将命令的输出写入到文件中,但与覆盖重定向不同的是,它会在文件的末尾追加内容,而不是覆盖原有的内容。
压缩和解压命令
解除压缩:
tar -zxvf 文件名.tar.gz
.tar.gz 和 .tgz 打包并gz压缩
压缩(cz打包+压缩):tar czvf FileName.tar.gz DirName
解压(xz解包+解压):tar xzvf FileName.tar.gz
2.shell脚本
解释型语言
边翻译边执行
shell脚本的本质就是一系列shell命令的集合
用途:
•系统维护:定期清理日志、备份数据等。
•环境配置:安装软件包、设置环境变量等。
•数据处理:批量修改文件、分析日志数据等。
•网络监控:定期检查服务器状态、发送警报邮件等。
1.shell脚本编写流程:
1.vim XX.sh #!/bin/bash
2.编写脚本
3.chmod +x XX.sh
4. ./XX.sh

/etc/ 配置文件

Permission denied 权限不足
解决办法 :chmod 修改文件的权限
如何运行Shell脚本
1. 赋予执行权限:使用chmod命令给脚本添加执行权限。
chmod +x scriptname.sh
2. 执行脚本:
•直接执行(推荐):
./scriptname.sh
bash
•通过解释器执行: bash scriptname.sh
2.shell变量
1.环境变量: env
PATH:保存当前工作的默认路径
PWD:当前所在的工作路径
HOME:当前登录用户的家目录
...
2.main(int argc,char* argv[])
argc:代表“argument count”(参数计数),是一个整型变量,表示传递给程序的命令行参数的数量。这包括程序本身的名称,也就是argv[0]。
argv:代表“argument values”(参数值),是一个指向字符指针数组的指针,其中每个元素指向一个字符串,这些字符串就是命令行参数。argv[0]通常包含程序的名称,argv[1]是第一个参数,依此类推。每个字符串都以空字符'\0'结尾。

在很多编程语言中,包括C、C++和Shell脚本中,函数返回0通常表示成功,返回非0值通常表示某种形式的错误或异常情况。
3.位置参数
位置参数是指在脚本调用时通过命令行传递给脚本的参数。这些参数可以通过特殊的变量$0到$9来访问:
•$0:脚本文件名。这可以用来引用脚本本身的名字。
•$1:第一个参数。
•$2:第二个参数。
•…
•$9:第九个参数。
注意,位置参数的个数实际上可以超过9个,但需要使用${10}这样的语法来访问第十个及以后的参数。
4.内置变量
内置变量,用于获取脚本执行过程中的特定信息:
•$#:传入参数的个数。这可以帮助脚本确定有多少参数被传递进来。
•$?:上一条命令的退出状态。这可以用来检查上一个命令是否成功执行(0表示成功,非0表示失败)。
•$$:当前Shell的PID(进程ID)。这可以用于与其他进程通信或在日志中标识脚本实例。
#!/bin/bash# 输出脚本文件名和传入的参数
echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"# 输出参数个数
echo "Number of arguments: $#"# 检查上一句命令的执行结果
echo "Exit status of last command: $?"# 输出当前Shell的PID
echo "Current Shell PID: $$"# 拷贝文件
cp /etc/456 ./# 读取输入并输出
read -p "Enter a number: " a
echo "You entered: $a"# 算术运算
b=456
c=$((a + b))
echo "The sum is: $c"
./3.sh /etc/passwd 123
Script name: ./3.sh
First argument: /etc/passwd
Second argument: 123
Number of arguments: 3
Exit status of last command: 0
Current Shell PID: 12345
Enter a number: 123
You entered: 123
The sum is: 579
相关文章:
Bash ——shell
Bash作为用户与操作系统之间的接口,让用户通过命令行输入各种指令来控制和操作计算机系统。 shell的两种解释: 1.linux命令解释器 Terminal 终端 ——》shell命令 ——》 Linux kernel (内核) Linux内核的作用: 1.…...
PyTorch复现PointNet——模型训练+可视化测试显示
因为项目涉及到3D点云项目,故学习下PointNet这个用来处理点云的神经网络 论文的话,大致都看了下,网络结构有了一定的了解,本博文主要为了下载调试PointNet网络源码,训练和测试调通而已。 我是在Anaconda下创建一个新的…...
分享五款软件,成为高效生活的好助手
给大家分享一些优秀的软件工具,是一件让人很愉悦的事情,今天继续带来5款优质软件。 1.图片放大——Bigjpg Bigjpg是一款图片放大软件,采用先进的AI算法,能够在不损失图片质量的前提下,将低分辨率图片放大至所需尺寸。无论…...
代码随想录算法训练营DAY58|101.孤岛的总面积、102.沉没孤岛、103. 水流问题、104.建造最大岛屿
忙。。。写了好久。。。。慢慢补吧。 101.孤岛的总面积 先把周边的岛屿变成水dfs def dfs(x, y, graph, s):if x<0 or x>len(graph) or y<0 or y>len(graph[0]) or graph[x][y]0:return sgraph[x][y]0s1s dfs(x1, y, graph, s)s dfs(x-1, y, graph, s)s dfs(…...
韦尔股份:深蹲起跳?
利润大增7倍,是反转信号还是回光返照? 今天我们聊聊光学半导体龙头——韦尔股份。 上周末,韦尔股份发布半年业绩预告,预计上半年净利润13至14亿,同比增幅高达 754%至 819%。 然而,回首 2023 年它的净利仅 …...
docs | 使用 sphinx 转化rst文件为html文档
1. 效果图 book 风格。 优点: 极简风格右边有标题导航左侧是文件导航,可隐藏 2. 使用方式 reST 格式,比markdown格式更复杂。 推荐使用 book 风格。 文档构建工具是 sphinx,是一个python包。 $ pip3 list | grep -i Sphinx …...
【ChatGPT 消费者偏好】第二弹:ChatGPT在日常生活中的使用—推文分享—2024-07-10
今天的推文主题还是【ChatGPT & 消费者偏好】 第一篇:哪些动机因素和技术特征的组合能够导致ChatGPT用户中高和低的持续使用意图。第二篇:用户对ChatGPT的互动性、性能期望、努力期望以及社会影响如何影响他们继续使用这些大型语言模型的意向&#x…...
Webpack配置及工作流程
Webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler)。当Webpack处理应用程序时,它会在内部构建一个依赖图(dependency graph),该图会映射项目所需的每个模块,并生成一个或多…...
华为ensp实现防火墙的区域管理与用户认证
实验环境 基于该总公司内网,实现图片所在要求 后文配置请以本图为准 接口配置与网卡配置 1、创建vlan 2、防火墙g0/0/0与云页面登录 登录admin,密码Admin123,自行更改新密码 更改g0/0/0口ip,敲下命令service-manage all permit 网卡配置…...
深入解析 Laravel 策略路由:提高应用安全性与灵活性的利器
引言 Laravel 是一个功能强大的 PHP Web 应用框架,以其优雅和简洁的语法而受到开发者的喜爱。在 Laravel 中,路由是应用中非常重要的一部分,它负责将用户的请求映射到相应的控制器方法上。Laravel 提供了多种路由方式,其中策略路…...
Java | Leetcode Java题解之第228题汇总区间
题目: 题解: class Solution {public List<String> summaryRanges(int[] nums) {List<String> ans new ArrayList<>();for (int i 0, j, n nums.length; i < n; i j 1) {j i;while (j 1 < n && nums[j 1] num…...
使用Simulink基于模型设计(三):建模并验证系统
可以对系统结构中的每个组件进行建模,以表示该组件的物理行为或功能行为。通过使用测试数据对组件进行仿真,以验证它们的基本行为。 打开系统布局 对各个组件进行建模时,需要从大局上把握整个系统布局。首先加载布局模型。这里以simulink自…...
基于go 1.19的站点模板爬虫
好像就三步: 1 建立http连接 2 解析html内容 3 递归遍历 创建一个基于 Go 1.19 的网站模板爬虫主要涉及几个步骤,包括设置 HTTP 客户端来获取网页内容、解析 HTML 来提取所需的数据,以及处理可能的并发和错误。下面我会给出一个简单的例子来说明如何…...
0基础学会在亚马逊云科技AWS上搭建生成式AI云原生Serverless问答QA机器人(含代码和步骤)
小李哥今天带大家继续学习在国际主流云计算平台亚马逊云科技AWS上开发生成式AI软件应用方案。上一篇文章我们为大家介绍了,如何在亚马逊云科技上利用Amazon SageMaker搭建、部署和测试开源模型Llama 7B。下面我将会带大家探索如何搭建高扩展性、高可用的完全托管云原…...
[PaddlePaddle飞桨] PaddleOCR图像小模型部署
PaddleOCR的GitHub项目地址 推荐环境: PaddlePaddle > 2.1.2 Python > 3.7 CUDA > 10.1 CUDNN > 7.6pip下载指令: python -m pip install paddlepaddle-gpu2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddleocr2.7…...
C语言 | Leetcode C语言题解之第227题基本计算题II
题目: 题解: int calculate(char* s) {int n strlen(s);int stk[n], top 0;char preSign ;int num 0;for (int i 0; i < n; i) {if (isdigit(s[i])) {num num * 10 (int)(s[i] - 0);}if (!isdigit(s[i]) && s[i] ! || i n - 1) {s…...
kafka.common.KafkaException: Socket server failed to bind to xx:9092
部署分布式集群的时候遇到的错误。 解决方案: 修改config下的server.properties,添加 listenersPLAINTEXT://:9092 advertised.listenersPLAINTEXT://自己的服务器ip:9092 然后重新启动,检查进程是否存在ps -aux | grep kafka。 成功启动。...
【JS+H5+CSS实现烟花特效】
话不多说直接上代码 注意:背景图路径是picture/star.jpg,自己在同级目录先创键picture目录再下载一张图片命名为star.jpg HTML: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vi…...
uniapp小程序使用webview 嵌套 vue 项目
uniapp小程序使用webview 嵌套 vue 项目 小程序中发送 <web-view :src"urlSrc" message"handleMessage"></web-view>export default {data() {return {urlSrc: "",};},onLoad(options) {// 我需要的参数比较多 所以比较臃肿// 获取…...
命令模式在金融业务中的应用及其框架实现
引言 命令模式(Command Pattern)是一种行为设计模式,它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,并且支持请求的排队和撤销操作。在金融业务中,命令模式可以用于实现交易请求、撤销操作等功能。本文将介绍命令模式在金融业务中的使用,并探讨…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
