Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198167
  • 博文数量: 78
  • 博客积分: 1580
  • 博客等级: 上尉
  • 技术积分: 635
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 11:06
文章分类

全部博文(78)

文章存档

2007年(6)

2006年(72)

我的朋友
最近访客

分类: LINUX

2006-08-14 12:42:45

Shell命令


${变量名}引用变量的值,变量只有在声明、赋值、unsetexport或表示signal时不用$作前缀

本地变量(P131

变量名=变量值

设置变量

readonly 变量名

设置这个变量为只读

echo $变量名

$引用变量的值,并用echo显示

unset 变量名

清除变量定义

set|more

分页查看所有的变量

变量=${参数变量:-word}

若设置了参数变量,则用参数变量的值设置变量的值,否则用word置换

变量=${参数变量:=word}

若设置了参数变量,则用参数变量的值设置变量的值,否则把变量设置成word,然后再用word替换参数的值

变量=${参数变量:?word}

若设置了参数变量,则用参数变量的值设置变量的值,否则显示word并从shell中退出,若省略word则显示标准信息,常用于出错指示

变量=${参数变量:+word}

若设置了参数变量,则用word设置变量,否则清空

环境变量(P132

变量名=变量值

export 变量名

环境变量的设置等同于本地变量,但必须使用export命令导出

常用环境变量

HOME

用于保存注册目录的完全路径名

PATH

用于保存用“:”分隔的目录路径名

TERM

终端的类型

UID

当前用户标识符,由数字构成的字符串

PWD

当前工作目录的绝对路径名

PS1

主提示符,特权用户#,普通用户$

PS2

辅助提示符>

export (不带参数)

显示所有的环境变量

位置参数变量(P133

$0$9

$0程序本身$1第一个位置的参数…

shift

参数列表向前移动一位

预定义变量(P134):它的值由shell根据环境的变化自动赋值,不能手工更改的值。由$和另一个符号组成

$#

传递脚本的参数数量

$*

以一个单字符串显示传递脚本所有参数内容

$?

命令执行后返回状态,0成功,其它错误

$$

当前进程的进程号

$!

后台运行的最后一个进程号

$0 (数字0

当前执行的进程名

shell环境变量配置文件(P135

/etc/profile

/etc/profile.d/*

用户登录系统时,bash首先执行profile配置文件和profile.d/目录下的配置文件,对系统的所有用户都有效

用户主目录下的    .bash_profile.bashrc

然后会执行登录用户主目录下的这两个配置文件,通过这两个配置文件设置用户个性化的环境变量

bash可以识别的转义字符(P137

a

ASCII响铃字符(也可以键入07

d

Wed Sep 06格式的日期

e

ASCII转义字符(也可以键入33

h

主机名的第一部分

H

主机的全称

j

在此shell中通过按^Z挂起的进程数

l

shell的终端设备名

n

换行符

r

回车符

s

shell的名称(如bash

t

24小时制时间

T

12小时制时间

@

带有am/pm12小时制时间

u

用户名

v

bash的版本(如2.04

V

bash的版本(包括补丁级别)

w

当前工作目录(如/home/ch

W

当前工作目录的基名(如ch

当前命令在历史缓冲区中的位置

#

命令编号(每次提示时累加)

$

root则显示#,否则显示$

xxx

插入用三位数表示的ASCII字符0代替未使用的数字(如:007

\

反斜杠

[

这个序列出现在不移动光标的字符序列(如颜色转义序列)之前,使bash能正确计算自动换行

]

这个序列应该出现在非打印字符序列之后

命令历史与命令重复(P141

history|more

分页查看全部的历史命令清单

!!

重复执行前一个命令

!n

执行第n条历史命令

!字符串

执行最后一个以字符串开头的命令

!!:p

显示前一个命令内容

!$

重复前一个命令的最后的参数;可以使用Command !$的方式来使用


 


管道与重定向(P143

标准输入输出(P143

固定的0号文件描述符被分配给标准输入文件通常对应终端键盘

1号文件描述符分配给标准输出文件通常对应终端的屏幕

2号文件描述符分配给标准错误输出文件也对应终端的屏幕

输入输出重定向及管道(P144

命令<文件名

从一个文件输入重定向

命令<

从标准输入读入数据,直到遇到delimiter停止

命令>文件名

输出重定向到一个文件中

命令>>文件名

输出追加重定向到一个文件中

2>文件名

标准错误输出重定向到一个文件中

&>文件名

将标准输出和错误输出同时重定向到同一文件中

命令1|命令2

管道

脚本执行的4种方式(P148

./脚本名 [参数]

 

bash 脚本名 [参数]

必须是bash脚本,不一定设为可执行

exec脚本名 [参数]

此脚本将被执行命令所取代,命令执行完毕之后,这个脚本也会随之结束

. 脚本名 [参数]

只在当前环境执行,不会产生新的进程

基本脚本编程(P148

test 条件表达式

条件测试(01-255假)

[  条件表达式  ]

条件测试(条件表达式两边有空格)

-a

逻辑与

-o

逻辑或

-!

逻辑非

-e 文件名

如果文件存在,则为真

-d 文件名

如果文件为目录,则为真

-f 文件名

如果文件为常规文件,则为真

-L 文件名

如果文件为符号链接,则为真

-r 文件名

如果文件可读,则为真

-w 文件名

如果文件可写,则为真

-x文件名

如果文件可执行,则为真

文件1 -nt 文件2

如果文件1比文件2新,则为真

文件1 -ot 文件2

如果文件1比文件2旧,则为真

-z 字符串

如果字符串长度为零,则为真

-n 字符串

如果字符串长度非零,则为真

字符串1 字符串2

如果字符串1与字符串2相同,则为真

字符串1 ! 字符串2

如果字符串1与字符串2不同,则为真

数值1 -eq 数值2

如果数值1等于数值2,则为真

数值1 -ne 数值2

如果数值1不等于数值2,则为真

数值1 -lt 数值2

如果数值1小于数值2,则为真

数值1 -le 数值2

如果数值1小于或等于数值2,则为真

数值1 -gt 数值2

如果数值1大于数值2,则为真

数值1 -ge 数值2

如果数值1大于或等于数值2,则为真

流程控制(P150

if then else 语句

if  条件语句1  ; then 命令语句1

elif 条件语句2  ; then 命令语句2

else 命令语句3

fi

for循环

for 变量名in 列表

do 命令

done

until循环

until 条件

do 命令

done

while循环

while 条件

do 命令

done

case 语句

case in

模式1  命令1;;

模式2  命令2;;

esac

break

直接跳出循环

continue

中断本次循环,跑到循环开始部分

函数(P153

函数名()

command

……;

 

 

 

 

 

 

 

 

 

 

 

 


 

阅读(2761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~