您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Linux下Shell编程
LinuxLinux下下ShellShell编程简介编程简介2011-8-22西安理工大学计算机科学与工程学院内容安排内容安排综述篇综述篇命令篇命令篇变量篇变量篇条件测试篇条件测试篇控制结构篇控制结构篇函数篇函数篇2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇��ShellShell是什么是什么��怎样写怎样写ShellShell��CygwinCygwin简介简介��LinuxLinux黑洞黑洞2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇————————————————ShellShellShellShellShellShellShellShell是什么是什么是什么是什么是什么是什么是什么是什么��壳壳((ShellShell))保护其内部的核保护其内部的核((KernelKernel))2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇————————————————ShellShellShellShellShellShellShellShell是什么是什么是什么是什么是什么是什么是什么是什么��ShellShell是一种具备特殊功能的程序,是一种具备特殊功能的程序,它是介于使用者和它是介于使用者和UNIX/LinuxUNIX/Linux操作系统之核心程序(操作系统之核心程序(kernelkernel)间的一个接口。)间的一个接口。��为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成为了对用户屏蔽内核的复杂性,也为了保护内核以免用户误操作造成损害,在内核的周围建了一个外壳损害,在内核的周围建了一个外壳((shellshell))。用户向。用户向shellshell提出请求,提出请求,shellshell解释并将请求传给内核。解释并将请求传给内核。��使用较广的使用较广的shellshell有标准的有标准的BourneBourne shellshell ((shsh))、、KornKornShell(kshShell(ksh))、、CC shellshell ((cshcsh))、、BourneAgainBourneAgainShell(bashShell(bash))等等。。��查看当前环境所用查看当前环境所用shellshell::echo$SHELLecho$SHELL��shellshell的另一个重要特性是它自身就是一个解释型的程序设计语言,的另一个重要特性是它自身就是一个解释型的程序设计语言,shellshell程序设计语言支持绝大多数在高级语言中能见到的程序元素,程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。如函数、变量、数组和程序控制结构。shellshell编程语言简单易学,任编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的何在提示符中能键入的命令都能放到一个可执行的shellshell程序中程序中。。��本质上,本质上,shellshell 脚本是命令行命令简单的组合到一个文件里面。脚本是命令行命令简单的组合到一个文件里面。ShellShell基本上是一个命令解释器,类似于基本上是一个命令解释器,类似于DOSDOS下的下的command.comcommand.com。它接。它接收用户命令,然后调用相应的应用程序。收用户命令,然后调用相应的应用程序。2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇————————————————怎样写怎样写怎样写怎样写怎样写怎样写怎样写怎样写ShellShellShellShellShellShellShellShell��利用利用vivi编辑器编辑脚本,将脚本命名为编辑器编辑脚本,将脚本命名为脚本功能脚本功能..shsh��ShellShell脚本不是复杂的程序,它是按行脚本不是复杂的程序,它是按行解释的,脚本第一行总是以 解释的,脚本第一行总是以 #!/bin/#!/bin/shsh开头,它通知系统以下的开头,它通知系统以下的ShellShell程序使用系统上的程序使用系统上的BourneShellBourneShell来解释。来解释。��第二行注释中写入脚本名,第三行注释第二行注释中写入脚本名,第三行注释开始写入脚本功能开始写入脚本功能————习惯。习惯。��以下行进入脚本正式编写以下行进入脚本正式编写��编写完后给脚本添加执行权限:编写完后给脚本添加执行权限:chmodchmodu+xu+xScripNameScripName��运行脚本:运行脚本:ScripNameScripName或或././ScripNameScripName简单脚本示例:简单脚本示例:viviShowHello.shShowHello.sh以下为脚本内容以下为脚本内容:#!/bin/sh#ShowHello.sh#Toshowhellotosomebodyecho-n“EnterYourName:”readNAMEecho“Hello,$NAME!”保存,退出保存,退出vivi编辑器。编辑器。为脚本添加可执行权限:为脚本添加可执行权限:chmodchmodu+xu+xShowHello.shShowHello.sh运行脚本:运行脚本:ShowHello.shShowHello.sh2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇————————————————cygwincygwincygwincygwincygwincygwincygwincygwin简介简介简介简介简介简介简介简介��cygwincygwin————在在windowswindows下开发下开发linuxlinux程序程序!!cygwincygwin是一个在是一个在windowwindowss平台上运行的平台上运行的linuxlinux模拟环境,是模拟环境,是cygnuscygnussolutionssolutions公司开发的自由软件公司开发的自由软件。它。它把把gccgcc、、gdbgdb、、gasgas等开发工具进行了改进,使等开发工具进行了改进,使它们能够生成并解释它们能够生成并解释win32win32的目标文件,开发者的目标文件,开发者基于基于win32win32apiapi写了一个写了一个unixunix系统系统库的模拟层库的模拟层,只要把这些工具的源代码和这个共享库,只要把这些工具的源代码和这个共享库((cygwincygwindlldll))连接到一起,连接到一起,就可以使用就可以使用unixunix主机上的交叉编译器来生成可以在主机上的交叉编译器来生成可以在windowswindows平台上运行的工具集平台上运行的工具集。。软件下载:软件下载:cygwincygwin的官方网站的官方网站::推荐下载:推荐下载: 软件安装: 软件安装:在安装的过程中可选择默认安装路径:在安装的过程中可选择默认安装路径:c:\cygwinc:\cygwin安装完后要修改安装完后要修改cygwincygwin目录下的目录下的cygwin.batcygwin.bat文件文件,,在在@echooff@echooff后面加上后面加上setCYGWIN=titlesetCYGWIN=titlenteantea,这是因为,这是因为CygwinCygwin的的启动批处理启动批处理文件需要启动文件需要启动UnixUnix文件系统模拟。文件系统模拟。2011-8-22西安理工大学计算机科学与工程学院综述篇综述篇综述篇综述篇综述篇综述篇综述篇综述篇————————————————LinuxLinuxLinuxLinuxLinuxLinuxLinuxLinux黑洞黑洞黑洞黑洞黑洞黑洞黑洞黑洞��/dev/null/dev/null是一个虚设的设备,俗称是一个虚设的设备,俗称““LinuxLinux黑洞黑洞””,,任何对任何对//devdev//nullnull的写入都会成功,但数据会消的写入都会成功,但数据会消失得无影无踪,没有任何反馈。失得无影无踪,没有任何反馈。所以经常把不想在屏幕显示的所以经常把不想在屏幕显示的信息全部送到信息全部送到//devdev//nullnull中,中,在在shellshell脚本中用得比较多。脚本中用得比较多。 如:如:lsls––ll/dev/null/dev/null��还可以用来清空文件的内容:还可以用来清空文件的内容:catcat/dev/null/dev/nullFileNameFileName2011-8-22西安理工大学计算机科学与工程学院命令篇命令篇命令篇命令篇命令篇命令篇命令篇命令篇��用户管理用户管理��目录管理目录管理��文件管理文件管理��权限管理权限管理2011-8-22西安理工大学计算机科学与工程学院命令篇命令篇命令篇命令篇命令篇命令篇命令篇命令篇————————————————用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理��新建用户新建用户((useradduseradd))useradduseraddUserNameUserName新建用户后,会在新建用户后,会在/home/home目录下建立一个以目录下建立一个以UserNameUserName命名的命名的文件夹,用户每次登录时自动定位到该文件夹下文件夹,用户每次登录时自动定位到该文件夹下。。��为用户添加密码为用户添加密码((passwpassworordd))passwdpasswdUserNameUserName��删除用户删除用户((useruserdeldeleteete))userdeluserdelUserNameUserName使用使用––pp选项可以删除用户目录下的文件及与用户相关联的其他选项可以删除用户目录下的文件及与用户相关联的其他文件。文件。��新建组群新建组群((groupaddgroupadd))groupaddgroupaddGroupNameGroupName��删除组群删除组群((groupgroupdeldelete)ete)groupdelgroupdelGroupNameGroupName2011-8-22西安理工大学计算机科学与工程学院命令篇命令篇命令篇命令篇命令篇命令篇命令篇命令篇————————————————用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理��用户身份用户身份whoamiwhoami��查看登录用户查看登录用户whowho[[选项选项]]-a-a显示所有用户的所有信息显示所有用户的所有信息-H-H显示列标题显示列标题��查看用户的操作查看用户的操作ww某一时刻用户的行为某一时刻用户的行为��用户间切换用户间切换((ssubstituteubstituteuuser)ser)susuUserNameUserName如:如:susu或或susurootroot切换为根用户切换为根用户susuHaisonHaison切换为名为切换为名为HaisonHaison的用户的用户2011-8-22西安理工大学计算机科学与工程学院命令篇命令篇命令篇命令篇命令篇命令篇命令篇命令篇————————————————目录管理目录管理目录管理目录管理目录管理目录管理目录管理目录管理��创建目录创建目录((mmakeakedirdirectoryectory))mkdirmkdirDirecNameDirecName��删除目录删除目录((rreemmoveovedirdirectoryectory))rm
本文标题:Linux下Shell编程
链接地址:https://www.777doc.com/doc-6012670 .html