首页 > 系统相关 >关于Linux shell的简单分享

关于Linux shell的简单分享

时间:2024-10-16 16:47:12浏览次数:9  
标签:... shell .. filename 99 sh Linux txt 分享

背景

前两天看到有人分享说,谷歌程序员至少要会3种语言,这要求倒也不过分。一个强类型、一个弱类型,一个工具型语言,刚好三个。想着随便更新点东西,就写几点关于工具shell语言的经验分享。

在安装、部署、扩容、升级等重要场景中,Bash的方便性不言而喻。但我始终提醒大家,对代码保持敬畏,无论是Rust还是Shell。

请一定记下如下示例,一旦MY_PATH变量未初始化或为初始化空,系统数据可能毁于一旦。

简单的一行代码,破坏力惊人。

MY_PATH=$1
...
rm -rf /$MY_PATH

高级的语言,因为有严格的语法检查和编译器给你把关,因此显得倒也问题不大。反而是越容易的、越解释型的语言,对于编码者本身要求很高。下面就先简单分享几个入门级别的shell的使用经验。

简单实践

1. souce 命令

source+filename 或者 小点+空格+filename,在当前Bash中读取FileName命令并执行

更推荐source,显式指令比小点更醒目

# I
source filename 

# II 中间有空格
. filename

实践中,FileName可以作为简单配置文件,配置公共变量,比如

arch=x86_64
os_distro=Ubuntu
host_addr=192.168.0.1

2. 大括号

需要注意的是大括号内部不可留白

{a..z}   					字母a到z的列表
{1..99}  					数字1到99的列表
{t1,t2,t3}.txt  	        t1.txt,t2.txt,t3.txt
{f{1..3},f6}.sh             f1.sh,f2.sh,f3.sh,f6.sh

3. for命令

空格间隔的选项就可以for循环操作了,十分方便

# I
for f in Appale Banana Cherry; ...

# II
opts="Appale Banana Cherry"
for opt in $opt; ...

其他用法

# 遍历 /opt下文件名
for file in `ls /opt`; ... 

# 遍历 A 到 Z
for char in {A..Z}; ...

# 遍历 1 到 99
for num in {1..99}; ... 

4. 比较大小

不要混淆

== 和 !=  		是用来比较字符的
-lt -eq -gt 	是用来比较数值的  

5. 中括号

推荐更多使用双中括号[[,具体可以去查询用法,就到这了。

标签:...,shell,..,filename,99,sh,Linux,txt,分享
From: https://blog.csdn.net/u013214505/article/details/142986211

相关文章

  • 分享10个教师都会用到的宝藏网站,内容超全,收藏起来!
    1、人民教育出版社人民教育出版社官方网站-培根铸魂启智增慧https://www.pep.com.cn/专门提供人教版中小学教材电子版,包括小学、中学、高中及职业教育教材。不仅提供电子版教材,还附有相应的教学设计供参考,满足教师备课需求。2、国家中小学智慧教育平台国家中小学智慧教育平......
  • Linux多进程通信--管道、消息队列、共享内存
    转载至https://www.cnblogs.com/LUO77/p/5816326.html多进程:首先,先来讲一下fork之后,发生了什么事情。由fork创建的新进程被称为子进程(childprocess)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程id。将子进程id返......
  • linux 为普通用户配置sudo权限
    linux为普通用户配置sudo权限  目录一.关于sudo二.sudo的工作过程三.为普通用户配置sudo权限3.1方法一:把普通用户的附属组更改为wheel,使其具有sudo权限(推荐)3.2方法二:修改/etc/sudoers文件,使普通用户具有sudo权限四./etc/sudoers配置文件详解 一.关于sud......
  • PowerShell 实现删除指定路径X天前文件功能并添加定时JOB实例
    公司的POA服务器的E盘隔三差五就爆满,原因是数据库备份文件越来越大,现在已经大到需要高频清理的地步了十一前出现的这个问题,当时为了不专门在假期里某天特地去清理磁盘,想着一定要搞个定时JOB实现自动清理最后选用了PowerShell脚本实现新建一个txt文件,打开编辑内容如下:#设置要......
  • 基于数据可视化+SpringBoot+Vue的考研备战交流与分享平台设计和实现(源码+论文+部署讲
     博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs......
  • openEuler、Linux操作系统---(7)权限管理与进程管理讲解
    一、引言在Linux操作系统的广袤领域中,权限管理与进程管理犹如两道坚实的壁垒,对系统的安全性、稳定性及运行效率起着至关重要的作用。本次讲解将引领各位深入探索Linux系统的权限机制和进程管理领域,通过对chmod、chown、umask等命令的运用来实现文件权限的修改、文件所有......
  • OS-Lab3-Linux进程相关的系统调用和线程相关的库函数
    实验目的1) 演示/实践:Linux进程控制相关的系统调用(如exec()/exit()等)2) 演示/实践:Linux多进程的条件竞争/RaceCondition的现象观察3) 演示/实践:Linux的线程库pthread的初步和入门(如何创建一个用户态的Linux线程:相关库函数pthread_create()等),以及其条件竞争/RaceCondition的现象......
  • Linux基础篇
    liunx基础篇操作系统OperatingSystem简称OS,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。1、描......
  • OS-Lab2-Linux进程控制相关命令和系统调用(含gcc编程)
    实验目的1) 概念:Linux的gcc编译器2) 演示/实践:gcc编译器的初步和入门(编写一个带printf的while程序)3) 演示/实践:Linux进程控制相关的命令(如ps/pstree/top/kill/等)演示/实践:Linux进程控制相关的系统调用(如fork()/getpid()等)4) 概念:Linux的gdb调试器5) 概念:Linux的make工具及其Makefi......
  • shell脚本自动选择空间最大的目录安装docker
    #!/bin/bash#二进制包安装docker-xy.xy.x-ce#变量unamer=`uname-r|cut-d'.'-f1-2`Max_Space=$(df|grep"^/dev"|sort-rn-k2|head-1|awk'{print$6}')Registry="mirror.eastraycloud.com:8665"#判断当前系统类型Unamer=$(uname-v|......