现在的位置: 首页 > 综合 > 正文

linux之shell

2013年01月12日 ⁄ 综合 ⁄ 共 1821字 ⁄ 字号 评论关闭

一、shell环境
    首先应该清楚,shell是用户与操作系统交互的一个程序界面。交互的方式可以是用户直接通过
键盘等等键入命令,也可以是从某个文件中读入命令,然后它将读入的命令经过解析为系统可识别的指令
送入系统中执行。简单的说shell就是一个命令解析器。shell脚本是各种命令的组合。
1》bash的主要功能
命令行编辑功能
命令和文件名补全功能(Tab键)    
命令历史功能(history)
命令别名功能(alias)
提供作业控制功能
自定义功能键的功能
灵活的Shell脚本编程
以上功能记住第二个就行了,其它作为了解。
2》shell变量
1)定义:直接赋值,一般变量定义为大写,如 WO=“hao ren”。注意这里字符串中若是有空格,则必须使用“”
括起来,当然为了出现错误,一致使用引号。
2)引用:$变量名        对变量的引用操作需加上$符号
3)查看:echo “$变量名”        
4)删除:unset 变量    
5)显示所有变量:set
6)环境变量:
   对在当前环境下定义的变量,欲在其它shell环境下使用,必须在当前shell下使用export导出,格式:
export 变量        另外使用 env 指令可以查看所有的环境变量,当然可用管道筛选特定变量。
常用环境变量USER PWD SHELL HOME PATHHOSTNAME
其中PATH记录指令或程序所在文件夹,shell会在记录中查找核对指令。例如,当想直接使用程序名运行某个
程序时,须将改程序所在目录添加到PATH变量中,格式为
$PATH=$PATH:/程序所在目录

7)位置变量,见截图

8)预定义变量,见截图

二、管道与重定向
1)<        重定向输入,如    wc < ./home/file    wc为统计输入的字符及行数等信息,将输入
重定向为home下的file文件
2)>        重定向输出,如    ls /home/ > /home/file    重定向ls的输出为file文件中,而不再是终端
3)2>        重定向错误输出,如 ls nofile/ 2> /home/file 重定向输出的错误到file中
4)&>        重定向标准输出及错误输出,及无论上面2)、3)是否正确,均输出到指定文件
5)|        管道符号表示前面的结果作为后面的输入,如 ps -ef | grep bash
三、shell脚本编程
    脚本是一些列指令的集合文件,可在特定环境下直接执行,不需编译。同理,shell脚本在shell下
执行。
1)shell脚本的创建
  vi file.sh        创建一个shell脚本,并编程。
或touch file.sh        只创建,不编程
2)shell脚本的编程
  使用vi(m)编辑,如下格式:
/********************************************\
#!/bin/bash 或#!/bin/sh                此行指定执行环境
#注释行                        注释行以#号开头

命令                        命令行包括系统指令与
...                        shell指令
...
命令
\*********************************************/
3)shell脚本的三种执行方式
*   shell file.sh                    其中shell为该file脚本编程内定义的环境,
可能为bash、sh等等
*   . file.sh                        
*   路径/file.sh                    此条指令的前提为file用户权限为可执行
4)条件判断语句
  条件判断结果为真时,返回0,为假时返回1
*   test 表达式                    
*   [ 表达式 ]                        注意[ ]两端均具有空格    
*   echo $?                        $?为预定义变量,储存上一个进程的结果
5)if then elif else fi

  略,见图

6)for语句

  略,见图

7)until

  略,见图

8)while

  略,见图

9)case

  略,见图

10)函数
函数()
{
    函数体
}
函数被调用时,直接使用函数名即可,参数即位置变量。可以通过  . file.sh  导入函数到shell,从而
可以直接在shell里面使用函数名进行调用函数。

抱歉!评论已关闭.