13. bash

来源:互联网 发布:淘宝隐形眼镜可以买吗 编辑:程序博客网 时间:2024/05/17 13:09
shell 将我们的输入的命令与内核通信。只要能操作应用程序的接口都可以称为 shell

查看 shell :
这里写图片描述

每个用户默认取得的 shell:
这里写图片描述

我们登录终端机(tty)后,Linux 会根据 /etc/passwd 文件的设置给我们一个shell
优点: 1. 命令记忆能力: /.bash_history 2. 命令与文件补齐功能(Tab) 3. 命令别名设置功能(alias),alias lm='ls -al' 4. 作业控制,前台,后台控制 5. 程序脚本 6. 通配符

这里写图片描述


bash shell 的内置命令

type [-tpa] name    type 不加参数会显示 name 是外部命令还是bash 内置命令    -t : 加入-t时,会将name以下面这些字眼显示出它的意义             file : 表示为外部命令            alias: 表示该命令为命令别买所设置的名称            builtin:该命令为bash内置的命令    -p : 如果后接name为外部命令,才会显示完整文件名    -a : 会由PATH变量定义的路径中,将所有含name的命令都列出来,包括aliastype 后面接的名称如果不能以执行文件的状态被找到,那么该名称是不会被显示出来的。

这里写图片描述


shell 变量功能

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

这里写图片描述

设置变量:不能有空格
这里写图片描述

变量设置规则:     单引号不解析变量;     双引号解析变量;     使用其他命令用 `命令` 包起来: 如`ls`,或者 $(命令),version=$(uname -r)     若为该变量增加内容,则可用 "$变量名称"或者${变量}累加内容,如 "PATH="$PATH":/home/bin"     若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量: export PATH     通常大写为系统默认变量,自行设置的变量使用小写     取消变量,unset,如 unset myname

这里写图片描述

一般情况下,父进程自定义的变量无法在子程序中使用,但是通过export将变量变成环境变量后,就可以使用了。

环境变量的功能

2 个命令来查看环境变量:env : 查看环境变量与常见环境变量说明

这里写图片描述
这里写图片描述

HOME:用户主文件夹SHELL:目前环境适应哪个shellHISTSIZE:历史命令条数MAIL:当我们使用mail这个命令收信时系统会去读取的邮件信箱文件(mailbox)PATH:执行文件查找的路径,目录与目录以 : 分割,由于文件的查找依据PATH内的变量的目录来查询,所以目录顺序也很重要LANG:语系数据RANDOM:随机数
set 查看所以变量(包含环境变量和自定义变量):

这里写图片描述
这里写图片描述
这里写图片描述

PS1(提示符的设置) : - 这是 PS1,这个东西就是我们的"命令提示符"。当我们每次按下回车时去执行某个命令,最后要再次出现提示符,就会主动去读取这个变量值 - \d : 可以显示星期月日的日期格式,如 "Mon Feb 2" - \H : 完整的主机名 - \h : 仅取主机名在第一个小数点之前的名字 - \t : 显示时间,为24小时,"HH:MM:SS" - \T : 显示时间 ,12小时,"HH:MM:SS" - \A : 显示时间,24小时,"HH:MM" - \@ : 显示时间,为"am/pm"格式 - \u : 目前用户的账号名称 - \v : bash 版本信息 - \w : 完整的工作目录名称 - \W : 利用basename 函数获得的工作目录名称 - \# : 执行的第几个命令 - \$ : 提示符,如果是root,为#,否则就是$

$(关于本 shell 的 PID) :     $ 本身也是个变量。这个代表的是目前这个 shell 的线程代号,即所谓的 PID(Process ID),想知道我们shell的PID ,用 "echo $$"

这里写图片描述

?(关于上个执行命令的回传码):    如果我们执行某些命令,这些命令会回传一个执行后的代码。成功返回0

这里写图片描述


export : 自定义变量转成环境变量    两者的区别在于该变量能否被子进程继续引用。    子进程会继承父进程的环境变量,但不会继承父进程的自定义变量。

影响显示结果的语系变量( locale )

locale -a

这里写图片描述


变量键盘读取,数组与声明:read,array,declare

read [-pt] variable    -p : 后接提示符    -t : 后接等待的秒数

这里写图片描述

declare/typeset [-aixr] variable :     -a : 将后面名为 variable 的变量定义为数组类型    -i : 将后面名为 variable 的变量定义为整数类型    -x : 用法与 export 一样,将后面的 variable 定义成环境变量    -r : 将变量设置成 readonly 类型,不能更改

这里写图片描述

变量默认类型为字符串,所以要指定类型

这里写图片描述
这里写图片描述
这里写图片描述

declare +x variable  // 将 环境变量 variable 转换成普遍变量
声明数组:

这里写图片描述


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

ulimit -a // 列出目前身份的限制

这里写图片描述
这里写图片描述

0 0
原创粉丝点击