iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中bash是什么
  • 748
分享到

linux中bash是什么

2023-06-13 04:06:17 748人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关linux中bash是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。只要能够操作应用程序的接口都能称为shell。狭义的shell指的是命令行方面的软件,包括bash。广义

这篇文章将为大家详细讲解有关linux中bash是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

只要能够操作应用程序的接口都能称为shell。狭义的shell指的是命令行方面的软件,包括bash。广义的shell则包括图形界面软件,因为图形界面其实也可以操作各种应用程序来调用内核工作,不过,在这里我们主要指的是bash。

# type [-tpa] command –> 查看命令是否为bash的内置命令或者是外部命令

* 利用$var或者是${var}可获取变量var的值

* bash中的双引号:特殊字符如$等,可以保有原本的特性

* bash中的单引号:所有的字符均为普通的字符,没有其他含义

* 可以用\将特殊字符变成一般字符

* 可用$(其他命令)来在命令中嵌套其他命令的返回值,也就是说:${var}取得变量var的值,$(command)取得命令返回值

* 若变量需要在其他子进程中执行,需要export var 来使变量成为环境变量

* unset var 可取消变量var的定义

====环境变量====

# env –> 查看当前系统的环境变量

$本身也是一个变量,表示本shell的PID号,比如 # echo $$ 输出本shell的PID

?本事也是一个变量,表示上一个执行的命令的返回值,一般如果是0表示执行成功,如果非0表示有问题。

公共的语系编码设置:/etc/sysconfig/i18n

# read  [-pt]  variable –> 键盘读取变量输入值

-p:后面可以跟提示符

-t:后面可以接等待的秒数,不会一直等待用户输入

====变量的声明====

# declare [-aixrp] var

-a:将后面的var定义为数组类型

-i:将后面的var定义为integer整数类型

-x:用法与export一样,就是将后面的var变成环境变量

-r:将变量var设置成readonly状态,该变量不能被更改,也不能重设

-p:单独列出变量的类型

如果把-改成+表示取消操作

====限制用户的计算机资源使用====

# ulimit [-SHacdfltu] [配额]

-H:hardlimit,严格的限制,必定不能超过这个数值

-S:softlimit,可以超过这个值,但有警告信息

-a:后面不接任何参数,列出所有的限制额度

-c:某些进程发生错误的时候,系统会将该进程在内存中的信息写成文件,称为内核文件。限制每个内核文件的最大容量

-f:此shell可创建的最大单一文件容量,单位为KB

-d:进程可以使用的最大内存量

-l:可用于lock的内存量

-t:最大的CPU时间(单位为秒)

-u:单一用户可使用的最大进程(process)数量

====变量内容的删除与替换====

# echo ${path#/*:} –> 删除path变量中最前面的那个以/开头,以:结尾的

# echo ${path##/*:} –> 删除最长的那个,也就是说只保留了最后的一个路径

# –> 符合替换文字的最短的那个

## –> 符合替换文字的最长的那个

如果想从后面开始删,用%替换#即可

接下来讲替换功能:

# echo ${path/sbin/SBIN} –> 将第一个sbin替换成SBIN

# echo ${path//sbin/SBIN} –> 将所有的sbin替换成SBIN

我们将这部分总结说明下一下:

变量设定方式说明
${变量#关键字}
${变量##关键字}
若变量內容从头开始的数据符合『关键字』,则将符合的最短数据删除
若变量內容从头开始的数据符合『关键词』,则将符合的最长数据删除
${变量%关键字}
${变量%%关键字}
若变量內容从尾向前的数据符合『关键字』,则将符合的最短资料删除
若变量內容從尾向前的数据符合『关键字』,则将符合的最長资料删除
${变量/旧字串/新字串}
${变量//旧字串/新字串}
若变量內容符合『旧字串』則『第一個旧字串会被新字串取代』
若变量內容符合『旧字串』則『全部的旧字串会被新字串取代』

# username=${username:-root}  –> 如果username非空就取原值,如果没有设置或者为空字符串就设置成root

====bash登录界面与登录成功后的欢迎界面====

tips:最好是单一bash登陆,然后利用job control来切换不同的工作,这样的话shell的history才能完全保存下来

命令的执行搜索路径顺序:先alias,再builtin,再$PATH

bash的登陆界面配置文件:/etc/issue,远处登陆界面配置文件:/etc/issue.net

命令# man mingetty查看issue中各个代码的意义

登陆成功后显示的信息配置文件:/etc/motd

====bash环境变量====

login shell的配置文件:

/etc/profile:系统全局配置文件,最好不要修改这个文件

~/.bash_profile或者~/.bash_login或者~/.profile:用户自定义bash配置文件

~/.bashrc,这个配置文件login shell和non-login shell都会读取

====bash中的通配符和特殊字符====

符号意义
*代表『 0 个到无穷多个』任意字符
?代表『一定有一个』任意字元
[ ]同样代表『一定有一个在括号內』的字元(非任意字元)。例如 [abcd] 代表『一定有一个字元, 可能是 a, b, c, d 这四个任何一个』
[ - ]若有减号在中括号内时,代表『在编码顺序內的所有字元』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
[^ ]若中括号內的第一个字元为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字元,只要是非 a, b, c 的其他字元就接受的意思。

除了通配符之外,bash 環境中的特殊符號有哪些呢?底下我們先汇整一下:

符号內容
#注释符号:这个最常被使用在 script 当中,视为说明#在后的语句均不执行
\跳脱符号:將『特殊字符或万用字符』还原成一般字元
|管道 (pipe):分隔两个管道命令的界定(后两节介紹);
;连续指令下达分隔符:连续性命令的界定 (注意!与管道命令不相同)
~使用者的家目录
$取用变量前置字元:亦即是变量之前需要加的变量取代值
&工作控制 (job control):将指令变成背景下工作
!逻辑运算意义上的『非』 not 的意思!
/目录符号,路径分割符号
>, >>数据流重导向:输出导向,分別是『取代』与『累加』
<, <<数据流重导向:输入导向 (这两个以后说明)
&lsquo; &lsquo;单引号,里面全是普通字符,不具备变量置换功能
” “具有变量置换的功能!
` `两个『 ` 』中间为可以先执行的指令,亦可使用 $( )
( )在中间为子 shell 的起始与结束
{ }在中间为命令区块的組合!

====数据流重导向====

1,标准输入(stdin):代码为0,使用<或者<<

2,标准输出(stdout):代号为1,使用>或者>>

3,标准错误输出(stderr):代号为2,使用2>或者2>>

>表示清空后添加,>>表示累加添加,append的意思。了解?o(╯□╰)o

<表示原本由键盘输入的改由文件输入,而<<则表示遇到后面的字符串的时候结束输入。

/dev/null:超级黑洞,它会吃掉任何导向到它的数据流,很强大的,不是麽。

正确和错误输出到同一个文件的语法格式:

find /home -name .bashrc > list 2>&1

====管道命令====

管道命令需要注意的是:

1,管道命令仅能处理standard output,对于stderr会忽略掉

2,管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行

====选取命令cut和grep====

# cut -d &lsquo;分割字符&rsquo;  -f  fields <== 用于分割字符

# cut -c 字符范围  <== 用于排列整齐的信息

-d:后面接分割字符,与-f一起使用

-f:依据-d的分割字符将一段信息切割成为数段,用-f取出第几段的意思(-f  3,5)

-c:以字符的单位取出固定字符区间 (-c 12-34)

grep以行为单位分析信息,如果该行符合条件,则把该行提出出来

# grep [-acinv] [--color=auto]  &rsquo;查找的字符串&rsquo;  filename

-a:将binary文件以text文件方式查找

-c:计算找到&rsquo;查找的字符串&rsquo;的次数

-i:忽略大小写

-n:顺便输出行号

-v:反向选择,即显示出没有 &lsquo;字符串&rsquo;内容的那些行

&ndash;color=auto : 关键字加上颜色

====排序命令sort,wc,uniq====

# sort  [-fbMnrtuk]  [file  or  stdin]

-f:忽略大小写

-b:忽略最前面的空格

-M:以月份的名字排序

-n:使用数字排序(默认是文字来排序)

-r:反向排序

-u:就是uniq,相同的数据中,仅出现一行代表

-t:分隔符,默认以TAB分割

-k:以那个区间进行排序

# cat /etc/passwd | sort -t “:” -k 3  <== 以第三列进行排序

# last | cut -d &lsquo; &lsquo; -f 1 | sort

# uniq [-ic] <==排序完成后将重复的数据仅列出一个显示

-i:忽略大小写

-c:进行计数

# last | cut -d &lsquo; &lsquo; -f1 | sort | uniq -ic

# wc [-lwm]  <== 行数,字数,字符数统计命令

-l:仅列出行

-w:仅列出多少字(英文单词Word

-m:多少字符(char)

# cat /etc/man.config | wc

====双向重定向tee====

# tee [-a]  file

-a:以累加(append)方式,将数据加入到file中

# ls -l /home | tee -a ~/homefile | more

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

# tr [-ds] SET1 &hellip;

-d:删除信息中的SET1这个字符串;

-s:替换掉重复的字符

# last | tr -s &lsquo;[a-z]&lsquo; &lsquo;[A-Z]&lsquo;

# cat /etc/passwd | tr -d “:”

# col  [-xb]

-x:将tab键转换成对等的空格键

-b:如果在文字内有反斜杠(\),仅保留反斜杠最后接的字符

# join  [-ti12]  file1 file2

-t:join默认以空格符分割数据,并且对比第一个字段的数据,如果相同,合并到一行,且第一个字段放在第一个

-i:忽略大小写

-1:代表第一个文件要用那个字段来分析

-2:代表第二个文件要用哪个字段来分析

# join -t “:” -1 4 /etc/passwd -2 3 /etc/group

# paste [-d] file1 file2 &hellip;

-d:后面可以接分割字符,默认以tab来分割

-:如果-file写成-,则表示来自stdin的数据

# expand [-t] file

-t :后面接数字,表示一个tab键可以转换成几个空格键

# grep &lsquo;^MANPATH&rsquo; /etc/man.config  | head  -n 3 | expand -t 6 &ndash; | cat -A

====切割命令split==== 

# split [-bl] -file PREFIX

-b:后面接欲切割成的文件的大小,可以加单位,如b,k,m,g等

-l:以行数进行切割

PREFIX:前导符,可作为切割文件的前导文字

# split -b 300k /etc/termcap tercap

====参数代换xargs====

# xargs [-0epn] command

-0:如果输入的stdin含有特殊字符,比如`,\,空格键等,这个参数可以将其还原成一般字符

-e:EOF,后面可以接一个字符串,当xargs遇到这个字符串的时候,就停止继续工作

-p:每次执行命令的参数时,询问用户

-n:后面接次数,每次command执行时,要使用几个参数的意思

# cut -d &lsquo;:&rsquo; -f1 /etc/passwd | xargs -p -n 5 finger

使用xargs的原因是:很多命令其实不支持管道命令,因此我们可以通过xargs来提供该命令引用stdin之用。

# find /sbin -perm +7000 | xargs ls -l  <== 找出/sbin下具有特殊权限的文件名

===============END====================

关于“linux中bash是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: linux中bash是什么

本文链接: https://www.lsjlt.com/news/265218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中bash是什么
    这篇文章将为大家详细讲解有关linux中bash是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。只要能够操作应用程序的接口都能称为shell。狭义的shell指的是命令行方面的软件,包括bash。广义...
    99+
    2023-06-13
  • linux中bash指的是什么意思
    这篇文章主要介绍linux中bash指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!linux bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令;Bash还能从文件中读取命令,这...
    99+
    2023-06-25
  • Linux之bash反弹shell原理是什么
    这篇文章将为大家详细讲解有关Linux之bash反弹shell原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于...
    99+
    2023-06-09
  • Linux中Bash提示符有什么用
    这篇文章将为大家详细讲解有关Linux中Bash提示符有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一些能让你自定义 Bash 提示符的黑科技当你在 Linux 环境下打开一个 Shell 终端时...
    99+
    2023-06-09
  • Bash中的Path对象是什么?
    在Bash中,Path对象是一个非常重要的概念。它是用来表示文件系统路径的一种数据类型,可以用于在脚本中操作文件和目录。在本文中,我们将深入探讨Path对象的概念以及如何在Bash中使用它。 什么是Path对象? 在计算机文件系统中,每个...
    99+
    2023-09-21
    path 对象 bash
  • Python在Linux下响应Bash的新特性是什么?
    Python是一种广泛使用的编程语言,它可以在Linux系统中与Bash shell进行交互。Python在Linux下响应Bash的新特性是什么呢?本文将为您详细介绍。 一、Python在Linux下与Bash shell的交互 Pyt...
    99+
    2023-11-05
    linux 响应 bash
  • Linux Bash写入文件的具体方法是什么
    这篇文章给大家介绍Linux Bash写入文件的具体方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用重定向操作符写入文件在Bash中,输出的重定向使您可以从命令捕获输出并将其写入文件。将输出重定向和写入文件...
    99+
    2023-06-28
  • Linux bash wait命令具体使用方法是什么
    Linux bash wait命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。wait命令可以使当前shell进程挂起,等待所指定的由当前shell产生的子...
    99+
    2023-06-28
  • Linux系统中的负载优化:PHP和Bash的秘诀是什么?
    在Linux系统中,负载优化是一个非常重要的问题。特别是对于PHP和Bash这两种常用的编程语言来说,优化负载可以提高系统的性能和稳定性。本文将介绍一些优化负载的秘诀,帮助您更好地管理和使用Linux系统。 一、什么是负载? 在介绍负载优化...
    99+
    2023-06-26
    bash load linux
  • load bash 在 Python 中的作用是什么?
    在Python中,我们可以使用os模块来执行一些基本的系统命令。然而,有时候需要更高级的命令来完成一些任务,比如在Linux系统中使用Bash命令。在这种情况下,我们可以使用subprocess模块来执行Bash命令。 subprocess...
    99+
    2023-11-10
    响应 load bash
  • 数组在Bash中的作用是什么?
    在Bash中,数组是一种非常有用的数据结构。它们可以让我们在脚本中存储和操作多个值,而不是只能处理单个变量。在本文中,我们将探讨数组在Bash中的作用,并且我们将为您提供一些使用数组的实例代码。 首先,让我们来看一下Bash中如何声明一个数...
    99+
    2023-09-30
    数组 bash windows
  • Python、Bash、Linux 响应时间优化的秘诀是什么?
    随着计算机技术的不断发展,人们对计算机的响应时间也提出了越来越高的要求。在软件开发中,常常会使用 Python、Bash 和 Linux 等工具来实现各种功能,如何优化这些工具的响应时间,成为了一项非常重要的任务。 本文将介绍 Pytho...
    99+
    2023-11-08
    bash linux 响应
  • linux中Joomla!是什么
    这篇文章将为大家详细讲解有关linux中Joomla!是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Joomla!是一套在国外相当知名的内容管理系统(Content Management Syste...
    99+
    2023-06-17
  • Linux中GRUB是什么
    这篇文章将为大家详细讲解有关Linux中GRUB是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。GRUB(Grand Unified Bootloader)是GNU项目提供的引导加载程序。引导程序非常...
    99+
    2023-06-27
  • Linux中Cgroup是什么
    这篇文章给大家分享的是有关Linux中Cgroup是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源。也就是能完成一组容器的概念,在这个容器中...
    99+
    2023-06-27
  • linux中yum是什么
    这篇文章主要介绍“linux中yum是什么”,在日常操作中,相信很多人在linux中yum是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中yum是什么”的疑惑...
    99+
    2023-02-13
    linux yum
  • linux中DAISY是什么
    这篇文章将为大家详细讲解有关linux中DAISY是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。DAISY 是什么DAISY 是数字化无障碍信息系统Digital Accessible Inform...
    99+
    2023-06-16
  • linux中platform是什么
    这篇文章主要讲解了“linux中platform是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中platform是什么”吧!在linux中,platform是一个虚拟总线,与...
    99+
    2023-07-02
  • linux中tmp是什么
    本篇内容主要讲解“linux中tmp是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中tmp是什么”吧!在linux中,tmp是临时文件;tmp是temporary的缩写,tmp目...
    99+
    2023-07-02
  • linux中tty是什么
    这篇文章主要介绍“linux中tty是什么”,在日常操作中,相信很多人在linux中tty是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中tty是什么”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作