首页 > 代码库 > 第八周

第八周

9.1 shell概述

每个人在成功登陆linux后,系统会出现不同的提示符号,例如$~#等,然后你就可以开始输入需要的命令,若是命令正确,系统就会依据命令的要求来执行,直到注销系统为止;在登录到注销期间,输入的每个命令都会经过解释及执行。而这个负责的机制就是shell

9.2 shell编程

其实作为命令语言互动式地解释和执行用户输入的命令只是shell功能的一个方面。shell还可以用来进行程序设计。它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中批处理文件,称为shell script,又叫shell程序或shell命令文件

9.3 shell的分类

Shell名称

开发者

命令名称

Bourne

S.R.Bourne

/bin/sh

C

Bill Joy

/bin/csh

Korn

David

/bin/ksh

9.4 shell的使用

命令历史和互动:用上下箭头键可以重复以前所输入的命令

命令完成功能:用tab键能自动完成相关命令,再次按tab可得到清单

[Ctrl]+c 中断当前命令的组合键,

[Ctrl]+d 键盘输入结束,可以用来取代exit的输入.

shell脚本文件:

-         是一个文本文件

-         命令的集合

-         有执行的权限

-         执行方式(./文件名)

用户登录后自动执行的shell脚本文件

-         .bashrc位于主目录下,它之前执行系统的脚本/etc/bashrc主要是基本配置数据

-           配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动

-         .bash_profile位于主目录下,它之前执行系统的脚本/etc/profile主要是配置环境变量

 

export可以临时加入一个系统路径,如export PATH=$PATH:$HOME/bin:/root/test/t1,输出环境PATH,引用原来的值$PATH$HOME表示工作主目录,:是路径分隔符

-         已经定义好的环境变量

-           SHELL:默认shell

-           PATH:路径

-           USER:当前登录用户的用户名

-         显示变量内容

-           echo $SHELL

-           echo $USER

-           echo $PATH

 

变量键盘读取、数组、与声明:readarraydeclare

-         read                                                       格式:read  [-pt]  variable                                                  (鸟哥linux第二版 p213)

-           -p :       后面可以接提示符

-           -t :       后面可以接等待秒数

【案例】read -p “Please keyin your name: ” –t 30 name

-         declare/typeset                                                      格式: declare  [-aixr] variable

-           -a :       将后面的variable定义为数组(array)

-           -i :       将后面的variable定义为整数数字(integer)

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

-           -r :       将一个variable的变量设置成只读,变量不可以更改内容,也不能取消设置

【案例】delare –i sum=100+200+300

-         array                                                                          格式:var[index]=content

-           输入:

-           var[1]=”small min”

-           var[2]=”big min”

-           var[3]=”nice min”

-           读取:  echo “${var[1]}, ${var[2]}, ${var[3]}”

 

shell通配符

-         *代表多个字母或数字

-         ?代表一个字母或数字

【案例】ls a*   ls a?    ls f080[1-6].tif

-         转义字符\

【案例】ls /mnt/win1/My\Documents

 

引号

【案例】export NAME=Michael

                                         echoWelcome $NAME, the date is date    

-         单引号:不处理任何变量和命令

【案例】echo ‘Welcome $NAME, the date is date ’

-         双引号:处理变量但不处理命令

【案例】echo “Welcome $NAME, the date is date “

-         反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理

【案例】echo “Welcome $NAME, the date is `date` “

 

Linux    echo命令。

功能说明:显示文字。

   法:echo [-ne][字符串] echo [--help][--version]

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

   数:-n 不要在最后自动换行

         -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

-         \a 发出警告声;

-         \b 删除前一个字符;

-         \c 最后不加上换行符号;

-         \f 换行但光标仍旧停留在原来的位置;

-         \n 换行且光标移至行首;

-         \r 光标移至行首,但不换行;

-         \t 插入tab

-         \v \f相同;

-         \\ 插入\字符;

-         \nnn 插入nnn(八进制)所代表的ASCII字符;

-         --help 显示帮助

-         --version 显示版本信息

 

别名

-         命令:alias显示系统当前定义的所有alias

【案例】alias cp=’cp -i’

【案例】alias li=’ls –l –color=tty’

补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。

    还有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al‘ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al‘ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用 

 

shell的修改

chsh –s 输入新的shell

查阅历史记录

-         history,查看使用过的命令的历史记录

-         history 5,此项说明会显示最近使用的5个命令

-         !5,此项说明执行历史编号为5的命令

-         !ls,此项说明执行最后一次以“ls”开头的命令

 

环境变量的说明: envset 可以用这两个命令查看一些环境变量的说明,直接输入即可。

提示符的设置:PS1=’[\u@\h \W \]\$’ 

$系统变量

$# :           命令行参数个数

$n :           命令行参数,n为非负整数.

$0 :           表示程序名称

$1 :           表示第一个命令行参数

$? :           前一条命令的返回码

$$ :           本进程的进程ID

$! :            上一进程的进程ID


第八周