linux基础六 bash

【Linux基础】dash和bash简介 Dash(Debian Almquist Shell)和 Bash(Bourne Again Shell)是 Unix/Linux 系统中的命令行 shell,用于执行命令、管理文件系统、编写脚本等任务的工具。 阅读详情

1) type

查看指令是外部指令还是内建在bash中的指令

type [-tpa] 指令

-t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义: file :表示为外部指令;alias :表示该指令为命令别名所设定的名称;builtin :表示该指令为 bash 内建的指令功能;

-p :如果后面接的 name 为外部指令时,才会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 name 的指令都列出来,包含 alias

2)查看环境变量

env 

3)查看所有变量(环境变量和自定义变量)

set

环境变量(可以)和自定义变量(不能)区别,是否能被子程序引用;

export

子程序仅会继承父程序的环境变量, 子程序不会继 承父程序的自定义变量,export将自定义变量转化为环境变量,供子程序使用

 

shell编程

1)变量设定规则

  1. 变量与变量值以一个等号『=』来连结  如:myname=VBird

  2. 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird Tsai』

  3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误: 『2myname=VBird』

  4. 变量值若有空格符可使用双引号『"』或单引号『'』将变量值结合起来,但双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:『var="lang is $LANG"』则『echo $var』可得『lang is en_US』 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』

  5. 转义字符 \

  6. 在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号『`指令`』或『$(指令)』,如『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

  7. 若该变量为扩增变量内容时,则可用"$变量名称"或${变量}累加内容,如下所示: 『PATH="$PATH":/home/bin』

  8. 若该变量需要在其他子程序执行,则需要以export来使变量变成环境发量: 『export PATH』

  9. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符

  10. 取消变量的方法 unset

几个比较重要的变量

1)PS1

提示字符

2)$

echo $$  输出PID

3) ?

上个执行指令的回传值

执行指令时,这些指令都会回传一个执行后的代码,一般来说,成功执行该指令,回传0。执行过程中发生错误,就会回传错误代码

4)locale 影响显示结果的语系变量

5)变量键盘读取、数组、声明

read [-pt] variable

-p :后面可以接提示字符!
-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!

变量声明

declare [-aixr] variable

-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的variable 变成环境发量;
-r :将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset

declare +x 是对declare -x的逆操作

myname[1]=a

myname[2]=b

echo "${myname[1]}"

注:默认情况下,bash变量类型默认是字符串,bash环境中的数值运算,预设仅能到达整型形态

变量值【内容】的删除与替换

变量赋值

myname=a

变量myname存在,则将myname的值赋给myname1,变量myname不存在则将字符串b赋值给myname1

myname1=${myname-b}

变量myname存在并且不为空,则将myname的值赋给myname1,变量myname不存在则将字符串b赋值给myname1

myname1=${myname:-b}

 

文件系统与程序的限制

ulimit [-SHacdfltu] [配额]

 

历史命令

history

!number

执行第number条指令

!command

由最近的指令向前搜寻『指令串开头为 command』的那个指令, 并执行;

!!

执行上一个指令

 

指令的执行顺序

 

 

login与non-login shell

读取的配置文件数据不一样

login shell只读取一下两个配置文件

1. /etc/profile:这是系统整体的设定,最好不要修改这个档案;

2. ~/.bash_profile或~/.bash_login或~/.profile:(按顺序读取,前边的存在就不会读取后边的了)属于使用者个人设定,要改自己的数据,就写入这里!

 

source :读入环境配置文件的指令

由于/etc/profile 与 ~/.bash_profile都是在取得login shell的时候才会读取的配置文件,所以, 如果 你将自己的偏好设置写入上述的档案后,通常都是得注销再登入后,该设置才会生效。那么,能不能直 接读取配置文件而不注销登入呢? 可以的!那就得要用到 source 这个指令了!

 

non-login shell

当取得non-login shell的时候 该bash配置文件仅会读取 ~/.bashrc

 

bash中的通配符与特殊符号

数据流重导向

垃圾桶黑洞与特殊写法

如果不想显示或存储输出,可以将数据流重导向到/dev/null装置

ls -l /etc/xx 2> /dev/null

将标准输出和标准错误输出都写入output.txt

ls -l / output.txt 2>&1

命令执行的判断依据

; , &&, ||

一次执行多个命令的两种方式,一:写一个脚本,执行多个指令。二:命令行下,分号分割多个执行,例如: sync; sync; shutdown -h now。

管线命令

|

摘取命令

cut、grep

例如:

echo $PATH | cut -d ':' -f 5

echo $PATH | cut -d ':' -f 2,5

echo $PATH | cut -c 12-

echo $PATH | cut -c 12-20

cut 主要的用途在于将『同一行里面的数据进行分解』

cut 是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息, 若当中有我们所 需要的信息,就将该行拿出来

排序命令

sort

统计文档中行数、字数、字符数

wc 

双向重定向

tee

tee 会同时将数据流分送到档案去不屏幕

字符转换命令: tr, col, join, paste, expand

可以用来删除一段讯息当中的文字,获取是进行文字讯息的替换

col

join

paste

expand

分割命令

split

参数替换

xargs

 

 

 

 

 

 

 

ADS负载牵引仿真避坑指南:从零开始搞定Loadpull模板设置 本文是一份针对ADS负载牵引仿真的深度避坑指南,详细解析了Loadpull模板从初始化配置到结果解读的全过程。文章重点阐述了如何根据设计目标灵活设置扫描圆、采样点等关键参数,以解决仿真不收敛、结果不完整等常见问题,并指导读者在功率与效率之间做出理性权衡,最终提取出用于匹配网络设计的最优负载阻抗。 阅读详情

相关推荐

手把手教你用RSoft BPM仿真一个1x2光分束器:从参数设置到结果分析全记录

本文详细介绍了使用RSoft BPM模块设计和仿真1×2光分束器的完整流程,包括参数设置、结构建模、仿真配置和结果分析。通过实战指南,帮助读者掌握光波导器件的仿真技术,实现50:50功率分配的设计目标,适用于光通信和集成光学领域的研究与应用。

weixin_30545945的博客 545

Linux提权之suid篇

Linux提权之suid篇 不知攻,焉知防 一个在安服路上摸索的大三生,记录平时学习笔记 suid前言: 1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义. 2.命令执行者要对该程序文件拥有执行(x)权限. 3.命令执行者在执行该程序时获得该程序文件属主的身份. 4.SUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效 实验环境: kali 靶机账号 :muhammad 密码 : nasef START: 靶机自带提权文件suid

weixin_43995499的博客 2364

Vue3 + OpenLayers 开发指南(一) - 环境搭建与基础配置

本文详细介绍了如何从零开始搭建Vue3与OpenLayers的集成开发环境。通过项目初始化、核心依赖安装、目录结构规划及基础配置,手把手引导开发者创建一个结构清晰、可维护的现代化WebGIS应用骨架,为后续添加地图图层和交互功能奠定坚实基础。

weixin_28049429的博客 340

Linux shell常用功能:查看bash内置命令(type命令),shell下的\换行功能,ctrl快捷键的使用

一、Bash shell的功能 1.概念 bash是Linux默认的shell,主要兼容与sh 2.功能 功能①:历史命令 ~/.bash_history文件:bash记录了你曾经使用过的命令,不同的用户使用过的历史命令也不同,这些历史命令都记录在自己家目录下的.bash_history文件中 ~/.bash_history记录的是你上一次登录系统所执行过的命令,而至于这一次所执行过的命...

董哥的黑板报 4232

K210视觉项目上位机避坑指南:解决C#解析ESP8266 TCP图像流的乱码、卡顿与连接中断

本文详细解析了K210与ESP8266在视觉项目中的上位机开发问题,重点解决TCP图像流解析中的乱码、卡顿与连接中断问题。通过自定义协议、JPEG流重组、TCP连接优化等实战技巧,提升系统稳定性和性能,适用于嵌入式视觉开发者和C#上位机程序员。

weixin_28730131的博客 402

【UE5 C++开发指南】从零配置Visual Studio 2022开发环境

本文详细指导如何从零开始为UE5 C++开发配置Visual Studio 2022环境。文章强调了VS2022与UE5的深度兼容性,并逐步讲解了社区版下载、核心工作负载(如“使用C++的游戏开发”)与组件安装、界面优化、专属工具设置以及首个C++项目的创建与验证流程,帮助开发者高效搭建专业开发环境。

weixin_29016865的博客 395

Linux系统Bash的常用功能

有时候我们想给系统下达命令,我们必须通过Shell与内核进行通信,好让内核可以正确无误的进行工作,其实Shell的功能只是提供用户操作系统的一个接口,因此这个Shell程序需要可以调用其他软件才好,我们在前面提到过的很多命令,包括 man, chmod, chown, vi, fdisk, mkfs 等,这些命令都是独立的应用程序,但是我们可以通过Shell程序(就是命令行模式)来操作这些应用程序,让这些应用程序调用内核,来运行所需的工作.你或许会有个疑问,命令被记录到哪里了呢?

微软技术分享 2万+

实战指南:基于ELK与Grafana构建天融信防火墙日志可视化看板

本文详细介绍了如何基于ELK与Grafana构建天融信防火墙日志可视化看板,包括环境准备、日志收集与解析配置、Elasticsearch存储优化、Grafana看板设计等关键步骤。通过实战案例和优化技巧,帮助用户高效处理天融信防火墙日志,实现安全态势的可视化监控与分析。

weixin_34246529的博客 226

Linux的BASH操作环境和设置

管理整个计算机硬件的其实是操作系统的核心 (kernel),我们一般使用者就只能通过 shell 来跟核心沟通,以让核心达到我们所想要达到的工作。

2301_77673652的博客 2393

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 218

基于表面肌电信号sEMG的手势识别——以Ninapro DB1数据集使用CNN网络识别为例

本文实验采用公共数据集Ninapro。该数据集数据量大,采集的动作丰富,每个单位数据集里面包括表面肌电信号、加速度计、手部运动学和动态数据等,记录了67名完整受试者和11名进行了至少50 次手部运动的截肢者的数据。NinaproDB1数据集包括27名完整的受试者(7 名女性和20名男性,其中2个左手和25 个右手) 的肌电信号。信号采集频率为100Hz。

树下一朵云的博客 2296

Shell基础——Bash的运算符

Bash的运算符 1. declare declare:声明变量类型 格式:declare [+/-][选项] 变量名 选项: -: 给变量设定类型属性 +: 取消变量的类型属性 -i: 将变量声明为整数型(integer) -x: 将变量声明为环境变量 -p: 显示指定变量的被声明的类型 2. 数值运算 方法1: aa=11 bb=22 # 给变量aa和bb赋值 declare -i cc=$a...

刘伟佳的博客 773

国科大学习资料--人工智能原理与算法-2021年期末考试题解析(学长整理)

国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 国科大学习资料–人工智能原理与算法-2021年期末考试题解析(学长整理) 根据学弟的反馈,该年的期末题只有5道,且均是作业题(所以大家一定要积极完成作业,考前多做几遍!!!!) 下面解析: 3.25 由于该题,我没有做过,所以只能给你英文版的答案。答案如下,其他的题目答案都是中文版。 5.9 8.10 12.20 15.13 ...

无名何许人的博客 3980

六、Linux shell基础 bash基本功能

echo -e [输出] -e支持特殊符号 echo -e "hello word\!" echo -e "\e[1;31m abcd \e[0m" 根据颜色输出字符 abcd为红色 31m表示红色 第一个脚本: vi hello.sh //////第一个脚本的内容////// #!/bin/bash

风知我意否的博客 463

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux的基本学习(六)vim与BASH

前言: 前几部分的磁盘刻录什么什么的真实让人头疼,现在好了,我们进入到了shell与shell script的学习阶段。 承接前面的部分接着来学习Linux操作系统 vim程序编辑器 在Linux的世界中,绝大部分的配置文件都是以ASCII的纯文本文件形式存在,因此利用简单的文字编辑软件就能够处理设置了。 为什么要学vim: VIM 有哪些特点呢 ? 所有的 Uni...

#的博客 1308

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux 学习之路(六):bash脚本编写

bash脚本编程:整数测试及特殊变量 exit:退出脚本 exit # 如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出状态码。 bash中常用的条件测试有三种: 测试方法: 命令测试法 [ expression ] 关键字测试法 [[ expression ]] test expression 整数测试: ​ -gt,-le,-ne,-eq,-ge,-lt INT1...

nicezheng_1995 788

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux Bash Shell学习(六) 设置环境参数

Linux Bash Shell学习(六) 设置环境参数

skdhfdfc的博客 604

linux 运维 bash脚本,Linux初级运维(六)——bash脚本编程(条件判断)

标签:一、bash中如何实现条件判断1、条件测试类型整数测试字符测试文件测试2、条件测试的表达式[expression][[expression]]test expression3、整数比较:-eq:测试两个整数是否相等:比如 $A -eq $B-ne :测试两个整数是否不等,不等,为真,相等为假-gt :测试一个数是否大于另一个数:大于为真,否则为假-lt:测试一个数是否小于另一个数:小于为真,...

weixin_39687786的博客 375

Linux Bash Shell学习(六):设置环境参数

续Linux Bash学习(五):特殊文件、别名、选项和参数   本文也即《Learning the bash Shell》3rd Edition的第三章Customizing Your Environment之读书笔记二,但我们将不限于此。设置一个好的用户环境,对我们开发是非常关键的。在这一章节中,从四个方面进行介绍:特别的文件,别名,选项,参数。上回学习到参数设定的部分。继续…

愷风(Wei)的专栏 1万+

linux下Bash编程组合测试及编写脚本(六)

linux下Bash编程组合测试及编写综合脚本(六)1.Bash编程组合测试条件-a: 与关系-o: 或关系 !: 非关系表示方法1:[ $# -gt 100 -a $# -le 500 ]表示方法2:[ $# -gt 100 ] && [ $# -le 500 ]2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是--...

weixin_33852020的博客 98

Linux基础(十四)——BASH

在 Linux 中,Bash(Bourne Again Shell)是一种 Unix Shell,也是 Linux 系统的默认命令行解释器。Bash 是 GNU 项目开发的自由软件,旨在兼容传统的 Bourne Shell(/bin/sh),同时加入了更多高级功能和增强特性。Bash 提供了一个交互式环境,用户可以在其中执行命令、脚本和管理系统。硬件、核心与shell的关系:内核就是一套软件,为了内核的安全不能直接修改操作内核,所以shell就是内核与应用程序之间的桥梁。Fle。

qq_46146657的博客 4107

Linux基础——Bash

BashBash是什么?查看Linux中的Shell三级目录 Bash是什么? Bash 全称为Bourne Again SHell,是Shell程序的一种,提供一个界面,可让用户通过调用各种命令来操作系统 查看Linux中的Shell Linux默认使用bash 三级目录 ...

松仔Log的博客 7977

Linux 基础 - BASH

Bash(Bourne Again Shell)是 Linux 和其他类 Unix 系统上最常用的命令行解释器和脚本语言。以下是 Bash 的一些基础知识和常用技巧,帮助你高效地使用和编写 Bash 脚本。

qq_33240556的博客 1187

【Linux】Linux Bash Shell 教程

Linux bash(Bourne-Again SHell)是一种为GNU操作系统编写的命令行解释器,它是大多数Linux发行版中最常用的shell。Bash提供了一种强大的方式来控制和管理操作系统,支持命令历史记录、别名、管道、重定向、变量、条件判断、循环以及自定义脚本编写等功能,使得用户能够通过简单的命令行指令执行复杂的任务,是系统管理员和开发人员日常工作中的得力工具。

Young_Pro的博客 2503

linux基础学习--学习bash

本文介绍了BASH Shell的基础知识和变量功能。

2302_80755459的博客 1387

Linux基础(三)——Bash基础

Linux的Bash基本介绍,Bash命令使用功能,Bash基本特性

liuhuayeyu的博客 1971
上一篇: linux基础五 vim
下一篇: linux基础六 正则
wiscourper_
博客等级 码龄17年 1641粉丝 272原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值