热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux教程>Shell开发>

初学shell

来源: 作者: 时间:2007-12-24 Tag: 点击:

今天学习shell第一课,来自 chinaunix  shell 论坛的网中人。
笔记:
shell是计算机内核和我们交换的界面Interface,也可以理解成 kernel+shell+..=operating system.
每次我们log in,都是取得一个互动模式的shell,也称login shell或primary shell。从 process的角度说我们在shell下运行的命令就是一个shell的字shell (sub shell)。
不同的操作系统有不同的kernal,同一个kernal可以有几种不同的shell,比如linux系统的shell可以有:
/etc/shells  2大主流
sh   burne shell (sh) ,burne again shell (bash)
csh  c shell (csh), tc shell ,korn shell (ksh)
bash 是主流的shell,自由软件,功能强大,有gun project 最成功的产品。
IBM AIX的默认shell是  ksh

shell第二课
笔记:
本讲主要讲: shell prompt (PS1)shell提示符 和 Carriage Return (CR)回车
我们把登陆后不断闪烁的光标称为 cursor,提示符 prompt ,$: 普通用户, #:root管理员
注意cursor告诉我们光标在那里,prompt提示我们可以数据字符了,每次输入一个字符cursor后移动一个位置直到读进CR (Carriage Return,由Enter产生)字符为止。CR的意思就是告诉shell可以执行我的命令了。严格来说,所谓的命令行就是在 shell prompt和CR字符之间输入的文字。注意:CR和回车有区别。
格式: command-name options argument
从技术细节上讲,shell会依据IFS Internal Field separator 将command line输入的文件给拆分为字段word然后再针对特殊字符meta先做处理,最后在重组命令行command line。
IFS是shell与设置使用的分割符号,可以由一个及多个如下按键构成:
* 空白建 white space
* 表格键 Tab
* 回车键  Enter
系统可以接受的命令名称可以从如下途径获得:
* 明确路径所指定的外部命令 
* 命令别名 alias
* 自定功能  function
* shell内奸的命令  bulit-in
* $ PATH下的外部命令

第三讲 本讲主要内容是 echo
command_name option argument
echo  将argument输出到标注输出,通常是monitor上输出。
**********************************************
$
$ echo

$
**********************************************
只是您只是会发现一个空白行,然后又回到了shell prompt上了,这是因为echo显示完argument后还会送出一个换行符号(new-line character),但是上面的command并没有任何argument,那么就只剩一个换行符号了
若你要取消这个换行符号可以输入
$ echo -n
$
这种情况下command line只有command_name(echo)及option (-n),并没有任何argument。
练习   echo first line ,  echo -n first line
**********************************************
$ echo hello
hello
$ echo -n hello world
hello world$  # 注意prompt符号并没有换行。
**********************************************
来看echo的其他option
        \a:ALERT / BELL (從系統喇叭送出鈴聲)
        \b:BACKSPACE ,也就是向左刪除鍵
        \c:取消行末之換行符號
        \E:ESCAPE,跳脫鍵
        \f:FORMFEED,換頁字符
        \n:NEWLINE,換行字符
        \r:RETURN,回車鍵
        \t:TAB,表格跳位鍵
        \v:VERTICAL TAB,垂直表格跳位鍵
        \n:ASCII 八進位編碼(以 x 開首為十六進位)
        \\:反斜線本身
练习:
**********************************************
# echo "a\tb\tc\nd\te\tf"  
a       b       c
d       e       f
#
**********************************************
这里用\t来区隔 abc中间加tab, 用\n将def换行

**********************************************
#  echo  "a\tb\tc\nd\te\bf\a"  
a       b       c
d       f
#
**********************************************
因为e后有输出键\b所以字母e没有了。


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册