Linux系统(五)

shell基础知识

unix    Linux关系:父子关系

1970unix诞生至今,已经出现了各种各样的unix系统,如AIX,Solaris,HPUX,Linux,如今,Linux系统越来越流行,甚至个人笔记本电脑预安装的也是国产linux系统。MAC系统也是unix内核。

虽然我们越来越多的使用unix系统,但是我们想过当我们执行命令时系统是怎样反应的么?

linux 内核:  kernel

什么是Shell

Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系:

kernel  固定的  Linux

封装很多的shell  发行版本


Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。 java c  c++ javascript  scala  python    java   .class 编译执行

一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的

Shell种类

操作系统内核(kernel)与shell是独立的套件,而且都可被替换: 

  • 不同的操作系统使用不同的shell 
  • 同一个kernel之上可以使用不同的shell 

常见的shell分为两大主流: 

sh

  • Bourne shellsh ,Solaris,hpux默认shell
  • Bourne again shellbash ,Linux系统默认shell

csh 

  • C shell(csh)
  • tc shell(tcsh)

查看使用Shell 

echo $SHELL

root用户默认使用/bin/bash


Shell环境定义

当用户登陆shell环境后,常需要定制shell执行环境,如一些应用需要使用的环境变量。用户登陆系统后在命令行上就可以定义环境变量,变量只需直接赋值。使用时在变量名前加一个符号”$”。变量名推荐使用字母、数字或下划线组成。

临时环境变量

所谓临时变量是指在用户在当前登陆环境生效的变量,用户登陆系统后,直接在命令行上定义的环境变量便只能在当前的登陆环境中使用。当退出系统后,环境变量将不能下次登陆时继续使用。


将环境变量永久生效

通过将环境变量定义写入到配置文件中,用户每次登陆时系统自动定义,则无需再到命令行重新定义。定义环境变量的常见配置文件如下:

/etc/profile  针对系统所有用户生效,此文件应用于所有用户每次登陆系统时的环境变量定义

$HOME_userName/.bash_profile 针对特定用户生效,$HOME为用户的宿主目录,当用户登陆系统后,首先继承/etc/profile文件中的定义,再应用$HOME/.bash_profile文件中的定义。

不同的shell,默认文件名可能不同。

系统预定义的环境变量

系统环境变量对所有用户有效,如:$PATH$HOME$SHELL$PWD等等,如下用echo命令打印上述的系统环境变量:


用户环境变量在当前的用户SHELL环境中生效,常写到用户的家目录$HOME/.bash_profile或者/etc/profile中,如:


shell脚本编程

同传统的编程语言一样,shell提供了很多特性,这些特性可以使你的shell脚本编程更为有用。

创建Shell脚本

一个shell脚本通常包含如下部分:

  • 首行

第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下

#!/bin/bash

#!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bashbash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。

  • 注释

注释符号#放在需注释内容的前面,如下:


  • 可执行内容和shell结构

shell脚本主题内容


Shell脚本的权限

一般情况下,默认创建的脚本是没有执行权限的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值