bash这个shell(笔记)

来源:互联网 发布:震惊国外网络购物视频 编辑:程序博客网 时间:2024/05/18 01:45

Shell的功能只是提供用户操作系统的一个接口 因此这个shell需要调用其它软件才好,包括 man , chmod , chown , vi,fdisk , mkfs等命令,这些命令都是独立的应用程序,但可以通过shell(命令行模式)来操作这些应用程序,让这些应用程序调用内核来运行所需的工作;

也就是说,只要能够操作应用程序的接口都能称为shell;

狭义的shell

命令行方面的软件;

广义的shell

 包括图形界面,因为图形界面也能操作各种应用程序来调用内核工作;

Linux使用的shell版本 Bourne AgainSHell (bash) Bourne Shell的增强版本;

 

Shell的历史:

第一个流行的shell是由Steven Bourne发展出来的,为了纪念他就称为 Bourne shell,简称sh

后来另一个广为流传的shell是柏克莱大学Bill Joy设计依附于BSD版的UNIX版中的shell,这个shell的语法类似于c语言,得名 cShell , 简称csh

 

/etc/shells文件下可查看可以使用的shell系统某些服务在运行过程中会去检查用户能够使用的shells , 而这些shell的查询就借助于/etc/shells这个文件;

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bash shall的功能:

Bash GNU计划中重要的工具软件之一,也是Linux distributions的标准shellbash主要用于兼容sh,并且依据一些用户需求而加强的shell版本;

bash的主要优点:

1 . 命令记忆能力(histroy)

命令行中按上下键就可以找到前/后一个输入的命令;这些命令放在当前用户主文件夹内的 .bash_history中;需要注意,~/.bash_history记录的是上一次登录所执行过的命令,这一次登录所执行的命令暂存在内存中,当成功注销后,命令记忆才会记录到 .bash_history中;

2 . 命令与文件补全功能(tab】按键的好处)

 

3 . 命令别名设置功能(alias)

alias lm = 'ls -al'设置命令别名

4 . 作业控制、前台、后台控制(job control , foreground , background)

 使用前后台控制可以让作业进行的更为顺利;

作业控制用途更广,可以随时将工作丢到后台中执行,而不怕不小心使用了 Ctrl+c来中断进程;

此外也可以在单一登录的环境中达到多任务的目的;

5 .程序脚本 (shell script)

Shell script可以将平时管理系统常需要执行的连续命令写成一个文件,该文件并且可以通过交互方式来进行主机的检测工作;

6 .通配符(Wildcard)

除了完整的字符串外,bash还支持许多的通配符来帮助用户查询与命令执行,加快用户操作 eg :查看/usr/bin 下有多少以X开头的文件  ls -l /usr/bin/X*

Dos下需要程序语言才可以写东西,而在Linux下使用简单的shell scripts就可以完成;

 

Bashshell内置命令:type

利用该命令可以查看某个命令是来自外部命令(其它非bash所提供的命令)内置在bash详细用man命令查看;

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Shell的变量功能:

 变量在bash环境占据非常重要的地位!

变量的显示与设置:echo(变量名前要加字符$)unset(取消设置)

 

 

环境变量的功能:

env   (environment)查看环境变量

Home:用户主文件夹,cd ~ cd 命令就是使用这个变量;

Shell:环境使用的shell是哪个程序;默认/bin/bash;

Histsize:历史记录条数;

Mail

Path:执行文件查找路径;

Lang:语系数据,中文通常为 zh_CN.gb2312 zh_CN.UTF-8

Random

 

set     查看所有变量(环境变量和自定义变量)

PS1:提示符设置

$:本shelPID(Process ID)

?:上个执行命令的回传码(如果命令成功地执行,则会回传一个0值;如果执行过程发生错误,会回传“错误代码”)

 

export 自定义变量转换成环境变量

用法:“export变量名”(如果后面没有接变量,功能与env差不多,会把所有环境变量显示出来)

环境变量和自定义变量的区别在于,能否被子进程继续引用;子进程仅会继承父进程的环境变量,而不会继承其自定义变量;

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

bash的登录与欢迎信息

/etc/issue:登录界面显示信息;

 /etc/motd:登录后用户取得的信息;

\d\l\m\n\o\r\t\s\v

日期:终端机:硬件等级:主机名:域名:OS版本(uname -r):时间:OS名:OS版本

 

 

bash的环境配置文件:

loginno-login shell

loginshell:取得bash时需要完整的登录流程,就称为login shell

non-loginshell:取得bash接口的方法不需要重复登录的举动;

两者取得bash的情况中,读取的配置文件数据并不一样;

login shell登录系统会读取两个配置文件

1、整体环境配置文件:/etc/profile,系统整体的设置,最好不要修改(每个用户登录取得bash时一定会读取的配置文件,且会调用其他的配置文件)

2、个人偏好配置文件:

~/.bash_profile

 ~/.bash_login

~/.profile

属于用户个人设置(按顺序读取,如果有第一个文件存在则不会继续向下读取)

0 0
原创粉丝点击