Linux关于bash的二三事(1)

       在Linux环境下,bash是非常重要的概念,通常使用命令行执行命令的方式,就是通过bash的环境来处理的。bash的内容包括变量的设置和使用、bash操作环境的构建、数据流重定向功能和管道命令。

bash shell和shell

       我们知道计算机所有的操作都是由内核来控制的,我们在计算机中输入的命令必须要通过“shell”来与内核通信,好让内核可以控制硬件来正确无误的工作。操作系统其实是一组软件,由于这组软件在控制整个硬件
不管理系统的活动监测, 如果这组软件能被用户随意的操作,若使用者应用不当,将会使得整个系统崩溃。shell的功能只是提供用户操作系统的一个接口,只要能够操作应用程序的接口都能够称为shell。
       shell的版本很多,每个linux系统支持的shell版本在/etc/shells中可以查到。
- /bin/sh
- /bin/bash(Linux默认的shell)
- /bin/ksh
- /bin/tcsh
- /bin/csh
- /bin/zs
- …
       bash shell是linux中默认的shell版本。

bash shell的功能

  • 命令记忆功能
           默认的命令记忆功能可以到达1000个,在~/.bash_history文件中记录的是前一次登录以前所执行过的命令,这一次登录所执行的命令都被暂存在临时内存中,当注销系统后,该记忆命令才会记录到.bash_history中。
  • 命令与文件不全功能
           [Tab]接在一串命令的第一个字后面为命令补全;[Tab]接在一串命令的第二个字后面为文件补齐。
  • 命令别名设置功能
  • 作业控制、前台、后台控制
  • 程序脚本
  • 通配符

bash shell变量

       变量就是一组文字或符号等,来替代一些设置或者是一串保留的数据。

变量的显示与设置:echo,unset

       可以使用echo命令来显示变量。

echo ${变量名}

       在bash中,当一个变量名没有被设置时,默认的内容是“空”的,而且变量设置时需要遵守相关的规则:
- 变量与变量内容以一个等号“=”来连接;
- 等号两边不能直接接空格符;
- 变量名称只能是英文字母和数字,但是开头符不能是数字;
- 变量内容有空格符可以使用双引号或单引号将变量内容结合起来。双引号内的特殊字符如$等,可以保有原本的特性;单引号内的特殊字符则仅为一般字符(纯文本)。
- 可以使用转移字符“\”将特殊符号变成一般字符;
- 在一串命令中,如果需要通过其他命令提供的信息,可以使用反单引号“命令”或“ 变量名称”或${变量}累加内容;
- 若变量需要在其他子程序中执行,需要以export来使变量变成环境变量;
       可以使用unset来取消变量。

unset 变量名称

变量键盘读取和声明:read, declare

  • read
           read用来读取键盘输入的变量。
read [-pt] variable
参数:
-p:后面可接提示符
-t:后面接等待的秒数,读取变量时不会一直等待用户输入
  • declare
           declare永安里声明变量的类型,如果后面不接任何参数,就会将所有的变量名称与内容调出来。
declare [-aixr] variable
参数:
-a:将后面名为variable的变量定义成为数组类型
-i: 将后面名为variable的变量定义成为整数数字类型
-x: 将后面名为variable变成环境变量
-t:将变量设置为只读类型

变量内容的删除、替代和替换

       变量的删除与替代方式如下表所示:
图1
       变量的替换方式如下表所示:
图2

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

       bash中可以限制用户的某些系统资源,包括可以打开的文件数量,可以使用的CPU时间,可以使用的内存总容量等,相关的设置通过ulimit命令进行。

ulimit [-SHacdfltu] [配额]
参数:
-H:严格的设置,必定不能超过这个值
-S:警告的设置,可以超过这个值,但是会有警告信息
-a:列出所有的限制额度
-c:每个内核文件的最大容量
-f:shell可以创建的最大文件容量,单位为KB
-d:进程可以使用的最大断裂内存容量
-l:可用于锁定的内存容量
-t:可使用最大CPU时间
-u:单一用户可以使用的最大进程数量

环境变量

       可以使用env命令来查看当前的环境变量。一般的环境变量即含义如下:
- HOME:用户的主文件夹。
- SHELL:目前环境使用哪个shell程序。
- HISTSIZE:历史命令的最大记录条数。
- MAIL:使用mail命令读取的邮件信箱文件(mailbox)。
- PATH:执行文件查找的路径,目录与目录之间以冒号分隔。
- LANG:当前环境的语系数据。
- RANDOM:随机数生成器,生成0~32767之间的数字。
- PS1:命令提示符的设置,有以下符号:

\d:显示出“星期月日”的日期格式;
\H:显示完整的主机名;
\h:仅取主机在第一个小数点之前的名字;
\t:显示时间,为24小时格式的“HH:MM:SS”;
\T:显示时间,为12小时格式的“HH:MM:SS”;
\A:显示时间,为24小时格式的“HH:MM”;
\@:显示时间,为12小时格式的“HH:MM”;
\u:显示目前用户的账号名称;
\v:bash的版本信息;
\w:完整的工作目录名称;
\W:工作目录的最后一个目录名;
\#:执行第几个命令;
\$:提示符,root为#,其他为$。
  • $:shell的PID。
  • ?:上一个指令的回传码。
  • OSTYPE,HOSTTYPE,MACHTYPE:主机硬件与内核的等级。

命令别名:alias,unalias

       通过alias设置命令别名,可以简化常用的复杂命令,当alias后面不接任何参数时可以显式当前环境已有的命令别名情况。

alias 简化命令别名=’原命令及参数’

       使用unalias可以删除命令别名的设置。

unalias 命令别名

历史命令:history

       history命令是对历史命令的一些操作。

history [n]
history [-c]
history [-raw] histfiles
参数:
n:整数,表示列出最近n条命令
-c:清楚目前shell中所有的记录
-r:将histfiles中的命令读入shell的记录中
-a:将新增的记录加入到histfiles中
-w:将目前的记录写入到histfiles中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值