linux进阶

目录

变量

shell变量

环境变量

预定义变量

位置变量

其他

管道与重定向

管道

重定向

shell脚本

分支结构

循环结构

 数组

脚本实例


变量

shell变量

shell变量:shell程序在内存中存储数据的容器

shell变量的设置:color=red

将命令的结果赋值给shell变量

  • 变量名=$(命令)  
  • 变量名=`命令`  

shell变量的引用echo $color,echo ${color}

环境变量

env/export命令查看环境变量

export <变量名>:命令用于设置环境变量,使得这些变量可以在当前 shell 以及由这个 shell 启动的子 shell 和进程中被访问。

系统环境变量

/etc/profile、/etc/profile.d/*.sh、/etc/bashrc

PS1:存储命令行提示符

PS2:存储命令行换行符

PATH变量:存储系统命令所在的路径 

PATH变量的设置:PATH=/home/bin:$PATH

用户自定义环境变量

~/.bash_profile、~/.bashrc

预定义变量

用来存储shell程序运行过程中的状态信息,$$进程号,$0进程名或者程序名称,$?上一个命令的返回值信息,$!最后一个后台进程的进程号

位置变量

$1,shift

$# 总共有几个参数

$*对应的是所有位置的参数值

管道与重定向

标准设备文件文件目录文件描述符
标准输入/dev/stdin0
标准输出/dev/stdout1
标准错误/dev/stderr2

管道

管道是命令间传递信息的设备,将前一个命令程序的输出传递给后一命令

|grep -v 表示反向筛选

标准错误不能通过管道传递,意味着标准错误信息不会被筛选

重定向

重定向是指将设备文件的信息保存到磁盘中

标准输出重定向:>覆盖 >>追加 或者 1>,1>>

标准出错重定向:2>覆盖,2>>追加

标准输入重定向:<

标准输入重定向之here document:eg:cat <<EOF

合并输出重定向:&>、&>>

shell脚本

./test.sh 真实执行,要求有权限

bash test.sh bash解释器直接运行

sh test.sh sh是bash的别名命令,可以加一些参数

. test.sh 当前shell执行test.sh文件内的命令

source test.sh source等效于.

分支结构

&& 前面的命令执行成功才会执行后面的命令

|| 前面的命令执行失败才会执行后面的命令

!对测试预计取反,注意要写在整个测试语句的前面

简单示例

#! /bin/bashtest -x testaaa.sh && echo "OK" || echo "fail"

&&多条件示例

#! /bin/bashcount=0
while [ -x $1 ] && [ $count -le 5 ]doecho 'running'let count++
done 

if else

#! /bin/bashif [ -x $1 ]
thenecho "Ok"
elif [ -x $2 ];thenecho "$2 is executable"
elseecho "fail"
fi

case

#! /bin/bashVALUE=$1
case $VALUE ina)echo "A";;b)echo "B";;*)echo "C";;
esac

循环结构

while

#! /bin/bashcount=0
while [ -x $1 ]do[ $count -ge 5 ] && breakecho "Running"let count++
done 

until

#! /bin/bashcount=0
until [ -x $1 ]do[ $count -ge 5 ] && breakecho "Running"let count++
done

for in

#! /bin/bashfor item in aa bb cc dddoecho $item
done

 数组

定义数组

myarr=(1 2 3)

myarr=("abc" "edf" "sss")

获取数组长度

${#myarr[*]}或${#myarr[@]}均可

读取某个下标的值

myarr_index2=${myarr[2]}

输出整个数组

echo ${myarr[*]}

脚本实例

输入一个整数,从这个整数开始,输出可以被3整除的数

#! /bin/bashread -p "please input number" startNum
count=0
while [ $count -lt 10 ]
dolet Num2=$startNum%3if [ $Num2 -eq 0 ]thenecho $startNumlet count++filet startNum++
done

$(cd "$(dirname $0)" && pwd) 获取当前执行文件的路径

dirname: 获取指定路径所在的目录 ,如 dirname /home/xu 结果为 /home

Linux:-e、-d、-f、-L、-r、-w、-x、-s、-h、 - 木东木容 - 博客园-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filicon-default.png?t=O83Ahttps://www.cnblogs.com/xwb583312435/p/9012946.html

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

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

相关文章

“TypeScript版:数据结构与算法-初识算法“

引言 在算法与编程的广阔世界里&#xff0c;总有一些作品以其独特的魅力和卓越的设计脱颖而出&#xff0c;成为我们学习和研究的典范。今天&#xff0c;我非常荣幸地向大家分享一个令人印象深刻的算法——Hello算法。 Hello算法不仅展现了作者深厚的编程功底&#xff0c;更以…

【复盘】2024年终总结

工作 重构风控系统 今年上半年其实就是整体重构系统&#xff0c;经历了多次加班的&#xff0c;其中的辛酸苦辣只有自己知道&#xff0c;现在来看的话&#xff0c;其实对自己还有一定的成长&#xff0c;从这件事情上也明白 绩效能不能拿到A&#xff0c;在分配的任务的时候就决…

RedisDesktopManager新版本不再支持SSH连接远程redis后

背景 RedisDesktopManager(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。这几天从新下载RedisDesktopManager最新版本&#xff0c;结果发现新版本开始不支持SSH连接远程redis了。 解决方案 第一种 根据网上有效的信息&#xff0c;可以回退版…

[卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析

目录 [卫星遥感] 解密卫星目标跟踪&#xff1a;挑战与突破的深度剖析 1. 卫星目标跟踪的核心挑战 1.1 目标的高速与不确定性 1.2 卫星传感器的局限性 1.3 数据处理与融合问题 1.4 大尺度与实时性要求 2. 当前卫星目标跟踪的主流技术 2.1 卡尔曼滤波&#xff08;Kalman …

OpenCV-Python实战(9)——滤波降噪

一、均值滤波器 cv2.blur() img cv2.blur(src*,ksize*,anchor*,borderType*)img&#xff1a;目标图像。 src&#xff1a;原始图像。 ksize&#xff1a;滤波核大小&#xff0c;&#xff08;width&#xff0c;height&#xff09;。 anchor&#xff1a;滤波核锚点&#xff0c…

【查询函数】.NET开源ORM框架 SqlSugar 系列

目录 一、基本用法 &#x1f48e; 二、C#函数 &#x1f50e; 三、逻辑函数 &#x1f3a1; 3.1 case when 3.2 IsNulll 四、时间函数 &#x1f570;️ 4.1 是否是同一天 4.2 是否是同一月 4.3 是否是同一年 4.4 是否是同一时间 4.5 在当前时间加一定时间 4.6 在当前…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…

Elasticsearch VS Easysearch 性能测试

压测环境 虚拟机配置 使用阿里云上规格&#xff1a;ecs.u1-c1m4.4xlarge&#xff0c;PL2: 单盘 IOPS 性能上限 10 万 (适用的云盘容量范围&#xff1a;461GiB - 64TiB) vCPU内存 (GiB)磁盘(GB)带宽&#xff08;Gbit/s&#xff09;数量1664500500024 Easysearch 配置 7 节点…

Echarts+vue电商平台数据可视化——webSocket改造项目

websocket的基本使用&#xff0c;用于测试前端能否正常获取到后台数据 后台代码编写&#xff1a; const path require("path"); const fileUtils require("../utils/file_utils"); const WebSocket require("ws"); // 创建WebSocket服务端的…

jenkins修改端口以及开机自启

修改Jenkins端口 方式一&#xff1a;通过配置文件修改&#xff08;以CentOS为例&#xff09; 找到配置文件&#xff1a;在CentOS系统中&#xff0c;通常可以在/etc/sysconfig/jenkins文件中修改Jenkins的配置。如果没有这个文件&#xff0c;也可以查看/etc/default/jenkins&…

《Vue3实战教程》34:Vue3状态管理

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 状态管理​ 什么是状态管理&#xff1f;​ 理论上来说&#xff0c;每一个 Vue 组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例&#xff1a; vue <script setup> import { r…

简单使用linux

1.1 Linux的组成 Linux 内核&#xff1a;内核是系统的核心&#xff0c;是运行程序和管理 像磁盘和打印机等硬件设备的核心程序。 文件系统 : 文件存放在磁盘等存储设备上的组织方法。 Linux 能支持多种目前浒的文件系统&#xff0c;如 ext4 、 FAT 、 VFAT 、 ISO9660 、 NF…

微服务のGeteWay

目录 概念&#xff1a; 三大核心&#xff1a; 工作流程&#xff1a; 9527网关如何做路由映射&#xff1a; GetWay高级特性&#xff1a; 按服务名动态路由服务&#xff1a; 断言Route Predicate Factories &#xff1a; 获取当前时区时间&#xff1a; After Route &…

idea 的 springboot项目spring-boot-devtools 自动编译 配置热部署

1&#xff0c;设置一 2&#xff0c;设置二 设置二&#xff08;旧版本&#xff09; CtrlShiftAlt/ 点击弹出框中Registry... 引入&#xff08;如果报错&#xff0c;换不同的版本&#xff09; <dependency><groupId>org.springframework.boot</groupId><a…

GitHub CLI 安装指南

GitHub CLI 是 GitHub 官方提供的命令行工具&#xff0c;可以帮助开发者方便地与 GitHub 平台进行交互&#xff0c;例如克隆仓库、提交代码、创建 Pull Request 等。 相比传统的 HTTPS 下载和操作&#xff0c;GitHub CLI 提供了以下显著的优势和特殊功能&#xff1a; GitHub …

建立一个Macos载入image的实例含界面

前言 为了方便ios程序的开发&#xff0c;有时候需要先用的Macos平台进行一些功能性的程序开发。 作为对比和参考。 1、创建一个MacOS的App 2、主界面控件的增加 添加的控件方法与ios相同&#xff0c;也是再用commandshiftL&#xff08;CtrlShiftL&#xff09;,就会弹出控件…

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示 参考文章源码下载地址一、SDL2的创建、初始化、退出二、系统基本Tick、彩屏刷新、按键事件三、彩屏获取与设置颜色四、彩屏填充颜色及清屏五、彩屏显示中文和英文字符串六、彩屏显示数字七、彩屏初始化八、主函数测…

基于Springboot + vue实现的校园周边美食探索及分享平台

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

LeetCode - 初级算法 数组(删除排序数组中的重复项)

免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 删除排序数组中的重复项 这篇文章讨论如何从一个非严格递增的数组 nums 中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然…

MVCC实现原理以及解决脏读、不可重复读、幻读问题

MVCC实现原理以及解决脏读、不可重复读、幻读问题 MVCC是什么&#xff1f;有什么作用&#xff1f;MVCC的实现原理行隐藏的字段undo log日志版本链Read View MVCC在RC下避免脏读MVCC在RC造成不可重复读、丢失修改MVCC在RR下解决不可重复读问题RR下仍然存在幻读的问题 MVCC是什么…