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)是一种行为设计模式,它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,并且支持请求的排队和撤销操作。在金融业务中,命令模式可以用于实现交易请求、撤销操作等功能。本文将介绍命令模式在金融业务中的使用,并探讨…...
Python农业图像识别精度为何卡在92.3%?揭秘3个被90%开发者忽略的标注陷阱与突破路径
第一章:Python农业图像识别精度为何卡在92.3%?在多个田间部署的玉米病害识别模型中,验证集准确率稳定收敛于92.3%,进一步调参或增加训练轮次均未突破该阈值。深入分析发现,该瓶颈并非源于模型容量不足,而是…...
为什么每次招人,企业HR和管理者心里都没底?招错人会带来哪些严重后果?
这是众多企业面临的招聘痛点。根据行业数据,企业招错一名员工的平均成本高达该员工年薪的30%-150%,不仅造成直接经济损失,更会导致团队效率下降、管理成本增加、项目延期等一系列连锁反应。许多企业陷入"招聘-试用-不合适-再招聘"的…...
OpenClaw 采用分层解耦的架构设计,请详细说明其核心架构分层(至少 4 层)及各层的核心职责,并描述一条自然语言指令从输入到任务完成的完整执行闭环流程。
一、核心架构分层(四层/五层模型) OpenClaw 采用 分层解耦的模块化架构,主流技术文档将其划分为 四层核心架构,部分资料扩展为五层。以下是整合后的完整架构: 层级名称核心职责关键技术组件第一层交互接入层(Interfa…...
SEO_资深从业者的高级SEO策略与实战技巧
前言:SEO的进阶之道 在当今互联网时代,搜索引擎优化(SEO)已经不再是一个简单的任务。对于资深从业者来说,SEO不仅仅是一门技术,更是一门艺术。本文将从多个角度探讨资深从业者的高级SEO策略与实战技巧&…...
Flink CDC实战:如何解决Oracle LogMiner每小时60G日志下的性能瓶颈与延迟问题
Flink CDC实战:突破Oracle LogMiner高负载场景的性能优化全攻略 当Oracle数据库每小时产生60GB归档日志时,传统单线程LogMiner解析方案往往陷入性能泥潭。本文将揭示一套经过生产验证的并发LogMiner解析架构,通过智能SCN切分、动态线程池和Re…...
Z-Image-Turbo行业应用:教育领域课件插图自动化生成
Z-Image-Turbo行业应用:教育领域课件插图自动化生成 1. 教育课件插图的痛点与机遇 老师们每天都要准备各种教学课件,从数学公式图示到历史事件场景,从生物细胞结构到地理地貌展示。传统方式下,要么花费大量时间搜索合适的图片&a…...
深入解析Bluetooth AVDTP协议:音频/视频传输的核心机制
1. 蓝牙AVDTP协议初探:音频视频传输的幕后英雄 每次用蓝牙耳机听音乐或看视频时,你可能没意识到背后有个"隐形交通警察"在指挥数据流动。这个默默工作的角色就是AVDTP协议(Audio/Video Distribution Transport Protocol)…...
PCIe Gen4眼图测试实战:如何用示波器快速定位信号完整性问题(附避坑指南)
PCIe Gen4眼图测试实战:示波器操作与信号完整性诊断全解析 当PCIe Gen4的信号速率突破16GT/s大关时,硬件工程师的工作台上总少不了一台高性能示波器。记得去年参与某企业级SSD项目时,我们团队连续三周被一个诡异的眼图闭合问题困扰——每次系…...
突破组织变革困境:两本不可错过的实战书籍推荐
组织变革大概是最难的一项管理工作之一。为了帮助大家更好地去理解变革管理的全过程,在这里推荐两本组织变革必读的经典书籍,认真读完它们你将能更从容地面对组织变革议题。一、《经理人参阅:变革管理》专门讲组织变革的书籍本来就在少数&…...
SpringBoot集成MinIO实战:从零构建企业级文件存储服务
1. 为什么选择MinIO作为企业级文件存储方案 MinIO这几年在企业级存储领域越来越火,我最早接触它是在2018年做电商项目时遇到的图片存储需求。当时对比了FastDFS、HDFS等方案后,最终选择了MinIO,现在回头看这个决定非常正确。MinIO最吸引人的地…...
