`
qjoycn
  • 浏览: 1214676 次
文章分类
社区版块
存档分类
最新评论

Shell 基本语法

 
阅读更多

一. Linux基本命令

1.1. cp命令

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

1.2. mv命令

用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。

语法:mv [选项] 源文件或目录 目标文件或目录

1.3. rm命令

用户可以用rm命令删除不需要的文件或者目录。

语法:rm [选项] 文件

如果没有使用- r选项,则rm不会删除目录。

1.4. mkdirrmdir

语法:mkdir [选项] dir-name

语法:rmdir [选项] dir-name

1.5. cd 命令

功能:改变工作目录。

语法:cd [directory]

1.6. ls 命令

ls是英文单词list的简写,其功能为列出目录的内容。该命令类似于DOS下的dir命令。

语法:ls [选项] [目录或是文件]

1.7. su命令

这个命令非常重要。它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。

该命令的一般形式为: su [选项] [使用者帐号]

1.8. ps命令

显示系统中执行的程序。

语法:ps [选项]

1.9. kill命令

删除执行中的程序

语法:kill [选项] PID

1.10. grep命令

搜寻输出的特定文字

语法:grep 字符串

例:

ps aux | grep matlab

kill PID

1.11. echo命令

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

该命令的一般格式为: echo [ -n ] 字符串

1.12. clear命令

clear命令的功能是清除屏幕上的信息,它类似于DOS中的 cls命令。清屏后,提示符移动到屏幕左上角。

二. Shell的基本知识

2.1. shell提示符及其环境

提示符:$

环境:LinuxUnixDos等等

Shell其实就是一个解释执行命令的程序,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行。

同传统的编程语言一样,shell提供了很多特性,这些特性可以使你的shell script编程更为有用,如:数据变量、参数传递、判断、流程控制、数据输入和输出,子程序及以中断处理等。

2.2 如何执行shell程序

Shell程序(***.sh

执行这个命令时

(1) #./***.sh

(2) #chmod u+x ***.sh

#***.sh

(3) #sh ***.sh

2.3 常量

字符串,例如“Hello World!”。

数字,例如70523

2.4 变量

shell编程中它们是没有类型的,简称弱类型编程语言,在这个变量中可以保含一个数字,一个字符串,一个单词等。你并不需要声明这个变量,它会在引用这个变量时创建它。

STR="Hello World!"

echo $STR

  HOME="/home" //注意赋值不要有空格

  a=123

  HOME_LIST=$(ls /home) //把命令的执行结果赋值给变量

  ehco $HOME //$ 符号是获得变量HOME的值

  a=a+1

 

系统变量:

  $0 这个程序的执行名字

  $n  这个程序的第n个参数值,n=1...9

  $*  这个程序的所有参数

  $# 这个程序的参数个数

  $$ 这个程序的PID

  $! 执行上一个背景指令的PID

$? 上一个指令的返回值

2.5 局部变量

局部变量一般是指写在函数中的变量,他的生命力是有限的。局部变量比较好理解,这里就不再多介绍了。

2.6 从键盘输入变量值

使用read命令

read var1 var2 … varn

2.7 注释

Shell编程中的注释以#开头

2.8 数字运算

主要是指整数运算。expr命令可以将字符型变量转换为整数进行操作

语法:expr integer operator integer

其中operator+ - * / %, 但对*的使用要用转义符/,如:

[oracle@localhost ~]$ more dvd.sh

#!/bin/bash

expr 5 /* 5

[oracle@localhost ~]$ sh dvd.sh

25

2.9 逻辑运算

test进行逻辑运算,用[ ]括起来就是test运算

int1 -eq int2 相等?

int1 -ne int2 不等?

int1 -gt int2 int1 > int2 ?

int1 -ge int2 int1 >= int2 ?

int1 -lt int2 int1 < int2 ?

int1 -le int2 int1 <= int2

2.10 双引号及单引号

$echo "$HOME $PATH" -- 显示变量值

/home/hbwork opt/kde/bin:/usr/local/bin:

$echo '$HOME $PATH' -- 显示单引号里的内容

$HOME $PATH

2.11 空格

由于shell对命令中的多余的空格不作任何处理 ,而用引号括起来则可以防止shell去掉这些空格。

$ str1=abcd

$ str2="abcd "

2.12 分支结构

2.12.1 结构一

if [ variable = value ]

then

command

else

if [ variable = value ]

then

command

else

command

fi

2.12.2 结构二

if [ variable = value ]

then

command

elif [ variable = value ]

then

command

fi

if 语句示例:

if [ "22" -lt "33" ] then //注意空格

  echo "22 less than 33"

  else

  echo "no"

fi //if语句的结束

2.13 Case语句

case value in

pattern1)

command;;

pattern2)

command;;

...

patternn)

command;

esac

case 示例:

  echo "enter a number"

  read ans //读取一个变量read

  case $ans in

  1)

  echo "you numer is $ans"

  ;; //注意符号是两个 ;

  2)

  echo "you number is 2"

  ;;

  [3-9])

  echo "you number is $ans"

  ;;

  *) //*通配符

  echo "others"

esac

2.14 And Or

command1 && command2

command1 || command2

2.15 循环语句

2.15.1 For循环

for var in arg1 arg2 ... argn

do

command

....

command

done

For循环示例

int=1

for $int in 1 2 3 4 5

do

sq=`expr $int /* $int`

echo $sq

int=`expr $int + 1`

done

2.15.2 while循环

while command

do

command

command

command

...

Done

While循环的示例

int=1

while [ $int -le 5 ]

do

sq=`expr $int /* $int`

echo $sq

int=`expr $int + 1`

done

2.15.3 until循环结构

until command

do

command

command

....

command

done

Until循环示例

int=1

until [ $int -gt 5 ]

do

sq=`expr $int /* $int`

echo $sq

int=`expr $int + 1`

done

2.16 从循环中退出: breakcontinue命令

break 立即退出循环

continue 忽略本循环中的其他命令,继续下一下循环

2.17 函数 (子过程)

funcname()

{

command

...

command; #分号

}

函数示例

setup ()

{ command list ; }

do_data ()

{ command list ; }

setup

do_data

2.18 shell程序的调试

使用-x进行跟踪执行,执行并显示每一条指令。

2.19 比较运算符

2.19.1 文件比较运算符

  -e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]

  -d filename 如果 filename 为目录,则为真 [ -d /tmp/mydir ]

  -f filename 如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]

  -L filename 如果 filename 为符号链接,则为真 [ -L /usr/bin/grep ]

  -r filename 如果 filename 可读,则为真 [ -r /var/log/syslog ]

  -w filename 如果 filename 可写,则为真 [ -w /var/mytmp.txt ]

  -x filename 如果 filename 可执行,则为真 [ -L /usr/bin/grep ]

  filename1 -nt filename2 如果 filename1 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

  filename1 -ot filename2 如果 filename1 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]

 

2.19.2 字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

  -z string 如果 string 长度为零,则为真 [ -z "$myvar" ]

  -n string 如果 string 长度非零,则为真 [ -n "$myvar" ]

  string1 = string2 如果 string1 string2 相同,则为真 [ "$myvar" = "one two three" ]

  string1 != string2 如果 string1 string2 不同,则为真 [ "$myvar" != "one two three" ]

  

2.19.3 算术比较运算符

  num1 -eq num2 等于 [ 3 -eq $mynum ]

  num1 -ne num2 不等于 [ 3 -ne $mynum ]

  num1 -lt num2 小于 [ 3 -lt $mynum ]

  num1 -le num2 小于或等于 [ 3 -le $mynum ]

  num1 -gt num2 大于 [ 3 -gt $mynum ]

  num1 -ge num2 大于或等于 [ 3 -ge $mynum ]

三. Shell 的一些注意事项

3.1. 基础

  #!/bin/bash //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本

# //shell脚本注释符号

3.2 变量

变量赋值的时候"="两边的内容要紧靠"="

例如:sum=0,写java写的时间长了总喜欢写成sum = 0,但是这样的结果是编辑器不识别

3.3. 在使用ifwhile时,在注意变量与符号之间的分割

例如:if [ `expr $a % 3` -ne 0 ],while [ "$var" != "end" ],尽量分开写,这样也挺好看也便于识别。

3.4. let的意思是让""后面的内容做算术运算,例如:let x=a-b

3.5. 大多数情况下,可以使用测试命令来对条件进行测试,比如可以比较字符串、判断文件是否存在及是否可读等等……通常用" [ ] "来表示条件测试,注意这里的空格很重要,要确保方括号前后的空格。

[ -f "somefile" ] :判断是否是一个文件

[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限

[ -n "$var" ] :判断$var变量是否有值

[ "$a" = "$b" ] :判断$a$b是否相等

3.6 几个简单例子

  for filename in $(ls)

  do

  cat $filename

  done

 

  for((i=0; i<10; i++))

  do

  echo $i

  done

  x=1

  sum=0

  while [ $x -le 10 ] //注意[ ] 两边的空格

  do

  let sum=sum+$x //shell中算术计算使用let

  let x=x+1

  done

  echo $sum

整理自网络

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850 DBA 超级群:63306533;

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

    shell 基本语法

    从网上搜集的shell 基本语法 * 1 合理使用注释 * 2 变量赋值和引用 * 3 Shell里的命令 o 3.1 Unix 命令 o 3.2 概念: 管道, 重定向和 backtick * 4 Shell里的流程控制 o 4.1 if 语句 o 4.2 && 和|| ...

    Shell基本语法

    NULL 博文链接:https://hengdu.iteye.com/blog/2382100

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句...

    shell编程实例解析,shell基础语法详解

    shell脚本 shell编程实例解析,shell基础语法详解

    shell基本语法 (可下载示例代码)

    NULL 博文链接:https://duchengjiu.iteye.com/blog/1748461

    linux shell基本语法经典以及函数简介

    linux下的shell编程,本人从事linux下的工作多年,总结了一些经验,希望能够帮助新童鞋快速学习linux,快速掌握shell脚本,提高工作效率

    lunix命令集(shell基本语法).pdf

    Lunix常用基本命令行;Lunix中Shell编程基本语法汇总,比较全面

    shell编程基本语法

    shell编程基本语法,介绍shell的基本用法,和简单的高级特性,适合入门,。。。。

    shell 脚本基本语法学习

    介绍如何写shell脚本,shell脚本的组成,编写简单的shell脚本

    shell 语言 语法总结

    表格 B-1. 特殊的shell变量 表格 B-2. 测试操作: 二元比较 ... 基本sed操作 .. 表格 C-2. sed操作符举例 . C.2. Awk .. 表格 D-1. "保留的"退出码 Appendix E. I/O和I/O 重定向的详细介绍 Shell调试 ...

    大数据之Linux Shell.docx

    shell基础语法讲解 shell基础语法讲解 shell基础语法讲解 shell基础语法讲解 shell基础语法讲解

    shell脚本基本语法详解.doc

    shell脚本基本语法详解.doc

    shell编程语法

    ppt介绍了shell编程的基本语法,包括环境变量,用户变量,内部变量等

    Bash Shell入门

    Shell基本语法: 1. Shell脚本的第一行中的符号“#!”用来指定解释执行该脚本文件的Shell程序。如果脚 本文件中缺少该行,在执行过程中,会报出错误信息。 2. Shell脚本完成后保存为*.sh,而后增加其可执行权限:...

    bash shell 基础编程语法

    bash shell 的基础语法介绍。 1.bash的环境配置和配置文件介绍 2.bash的通配符,参数,变量,表达式,函数,正则表达式

    【shell】shell脚本语法

    本篇文章会介绍一些基础的shell语法,虽然有点长,但是如果我下面列出的重点你有点模糊的话尽量看一下,我个人觉得写的比较细。话不多说讲什么我会先列出来,如果会了可以忽略本文章,省下时间去学习别的知识~ 条件...

    shell课件编程知识

    运维第一工具-shell编程,包含shell基本语法及常用shell 命令。

    Linux命令&shell;语法.xmind

    Linux的重要命令,包括用户管理、权限管理、免密登录,vim使用、压缩和打包、进程管理。以及基本的shell脚本语言。

    shell学习,第一章

    shell基本语法-注释,变量命名,字符串拼接,删除,

    LinuxShell编程全攻略

    介绍shell编程的相关知识 Shell 基本语法 Shell 定义的环境变量 用户定义的变量 Shell 程序设计的流程控制 运行Shell 程序的方法 bash 的内部命令

Global site tag (gtag.js) - Google Analytics