收藏 分享(赏)

第3、4讲shell.ppt

上传人:Facebook 文档编号:2234558 上传时间:2018-09-06 格式:PPT 页数:78 大小:888.50KB
下载 相关 举报
第3、4讲shell.ppt_第1页
第1页 / 共78页
第3、4讲shell.ppt_第2页
第2页 / 共78页
第3、4讲shell.ppt_第3页
第3页 / 共78页
第3、4讲shell.ppt_第4页
第4页 / 共78页
第3、4讲shell.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、工作场景,Linux的操作习惯同Windows的有很大的区别,它是基于shell命令的。shell命令多达2700多个,但常用的命令不过几十个。只要掌握了这些基本命令,就可以对系统进行基本操作。在日常工作中使用这些基本命令并借助帮助文档就可以管理Linux服务器。,2018年9月6日,第1页,2018年9月6日,第2页,学习目标,了解shell,掌握Linux下一些常用的命令。,2018年9月6日,第3页,学习重点,掌握文件目录操作命令 掌握信息显示命令,主要内容,shell基本概念 shell的种类 Linux的启动过程 shell的基本功能 常用目录及信息显示命令,3.1 shell的基本

2、概念,shell是用户和Linux内核之间的接口程序。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。 shell是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。,3.2 shell的种类,UNIX/Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh或bsh)、Bourne again shell(bash),C shell(csh)、tc shell(tcsh)、Korn shell(ksh)和Z shell(zsh)等

3、。 可查看文件/etc/shells显示系统中的shell类型。 通过echo $SHELL显示当前运行的shell。,3.3 Linux的启动过程,3.4 shell的基本功能,shell具有以下基本功能: 命令解释执行 文件名替换 输入输出重定向 连通管道建立 系统环境设置 shell编程,3.4.1 字符与保留字,1. 字符 除键盘上的普通字符外,shell还使用一些特殊字符。 (1) 白空格 :空格与tab键 (2) 通配符 :用于模式匹配 *:代表从它所在位置开始的任何字符串。 ?:代表它所在位置上的任何单个字符。 :代表一个指定范围的字符。方括号中的字符范围可以由直接给出的字符组成

4、,也可以由表示限定范围的起始字符、终止字符及中间的连字符“-”组成。,通配符举例,(3) 转义字符,(4) Linux系统的特殊键,2. 保留字,任何编程语言或系统都有一定数量的保留字,bashell的部分保留字如下: !,(,),break,continue,cd,echo,eval,exec,exit,export,function,getopts,hash,pwd,read,readonly,return,select,set,shift,test,time,trap,type,ulimit,unset,umask,wait,for,do,done,case,in,esac,if,els

5、e,elif,if,while,until,3.4.2 文件命名及文件类型,1. 文件与文件名 文件是被命名(称为文件名)的存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合。UNIX/Linux的文件均为无结构的字符流形式。 文件名是文件的一种标识,一般情况下,它由字母、数字、下划线和圆点组成的字符串来构成。 Linux支持长文件名,但要求文件名的长度限制在255个字符以内。,3.4.2 文件命名及文件类型,2. 文件类型 UNIX/Linux系统中有三种基本的文件类型: 普通文件 文本文件 二进制文件 目录文件 设备文件,3.4.3 目录结构与路径,1. 目录与目录结构 UNIX/L

6、inux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树型结构组织起来即目录。 UNIX/Linux系统中,整个文件系统有一个“根”(root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,也可以长出“叶子”。“根”和“杈”在Linux中被称为“目录”或“文件夹”,而“叶子”则是一个个的文件。 在UNIX/Linux系统中文件系统的根目录用符号“/”表示。 Linux是一个多用户系统,操作系统本身的程序或数据存放在以根目录开始的某些专用目录中,有时被指定为系统目录。,2018年9月6日,第17页,3.4.3 目录结构与路径,

7、典型的Linux系统文件结构,2018年9月6日,第18页,linux系统的主要目录,/ /bin /boot /dev /etc /etc/X11 /etc/opt /home /lib /lib/modules,/mnt /opt /proc /root /sbin /tmp /usr /var,3.4.3 目录结构与路径,2. 工作目录、用户主目录与路径 自从用户登录到系统中之后,每时每刻都“处在”某个目录之中,此目录被称作工作目录或当前目录(Working Directory)。工作目录用“.”表示,且可以随时改变。 用户刚登录到系统中时,其工作目录便是该用户主目录。root用户的主目

8、录为/root,其它用户的主目录是在/home下的与登录名相同的目录。 路径是指从树型目录中的某个目录层次到某个文件或目录路线。 对任一文件在文件系统中的位置可以由相对路径或绝对路径来决定。绝对路径是指从“根”开始的路径;相对路径是从用户工作目录开始的路径。,3.4.4 shell命令解释及执行,命令格式如下:命令名 选项 参数 在Linux系统中默认的分隔符为白空格。 参数是Linux命令操作的对象,而选项则影响命令对对象的操作行为。 选项是由符号“-”引导的字符或字符串,“-”是必须的,Linux用它来区别选项和参数。在Linux系统中选项有两种形式:一种是传统UNIX风格的选项,以“-”

9、开始,紧跟一个字符;另一种是GNU风格的选项,以“-”开始,紧跟着完整的英文单词或由“-”连接的单词组合,来说明选项的意义。,3.4.4 shell命令解释及执行,bash命令行具有命令和文件名扩展特性。 bash也能列出当前目录下部分匹配的文件名来完成文件名扩展。 bash还允许用户对正在输入的命令行进行编辑。 Linux的回车后命令也被保留在历史记录中,通过光标键“”和“”上下翻动历史记录,对出现的当前记录可以进行编辑和使用。 若用户要重新执行某条历史记录的命令可以使用格式:!记录编号 用户还可使用格式:history n用于显示最近的n条记录。,2018年9月6日星期四,Red Hat

10、Enterprise Linux 5基础教程,3.4.5 进入Shell的方法,在进入Linux桌面环境后,我们可以通过选择“K菜单”“系统” “终端”,或者在桌面点击鼠标右键,在弹出的菜单中选择“Konsole”来启动Shell。,2018年9月6日星期四,Red Hat Enterprise Linux 5基础教程,3.4.6 退出Shell的方法,当用户在Shell中完成所有工作后,可以执行exit命令退出Shell。,2018年9月6日星期四,Red Hat Enterprise Linux 5基础教程,3.4.7 Shell的提示符,Shell的提示符可以帮助用户了解当前的状态,如提

11、示符“JohnRHEL5 Tool$”表示的含义如下: “John”表示当前登录的账户名; “RHEL5”表示当前Linux的主机名; “Tool”表示当前目录(如果是波浪线“”则表示当前位于用户的主目录); “$”表明当前登录的是普通用户,如果是管理员root用户则用“#”表示。,2018年9月6日星期四,Red Hat Enterprise Linux 5基础教程,3.4.8 Shell命令基本规则,一般的命令格式如下:命令名 选项 参数 (1)Linux系统的命令以及选项、参数是区分大小写。命令名由小写的英文字母构成,往往是表示相应功能的英文单词或单词的缩写。例如,date表示日期;cp

12、是copy的缩写,表示拷贝文件等。 (2)其中方括号括起来的部分表明该项是可省略的,如直接在提示符后面输入命令date,显示当前的日期和时间。 (3)选项是对命令的特别定义,以“-”开始,多个选项可用一个“-”连起来,如ls -l-a、ls -la。注意“-”一般不能省略,个别命令的选项中的减号可以省略,如tar命令。 (4)参数提供命令运行的信息或者是命令执行过程中所使用的文件名。,2018年9月6日星期四,Red Hat Enterprise Linux 5基础教程,3.4.9 命令自动补全,Shell具有命令自动补全功能,对使用某些记不清楚的命令或输入命令名过长的情况非常有用。对于能惟一

13、确定的命令名,输入该命令名的前几个字母,然后按下键盘的Tab键,就可以自动补齐该命令名的剩余部分。,2018年9月6日星期四,Red Hat Enterprise Linux 5基础教程,3.4.10 历史命令,Shell将用户每次输入的命令都记录在命令历史缓冲区中,以便用户可能用到过去用过的命令。要调出命令历史缓冲区中保存的命令,可使用这样的方法:按向上箭头键可返回到上一条命令,按向下箭头键可返回到下一条命令。 我们还可以使用history命令来显示用户执行过的全部命令。,bash命令行编辑键,3.5 目录基本操作命令,1. 列目录内容(ls) 其用法为:ls 选项 文件 例: 1) 列出当

14、前工作目录下所有名称是s开头的文件,按修改时间倒排序 #ls -ltr s* 2) 递归列/bin目录及其子目录 #ls -lR /bin 3) 列当前目录,在目录名后加/,可执行文件名后加* # ls AF,3.5 目录基本操作命令,2. 建立子目录(mkdir) 用法:mkdir -p -m MODE dirnames -p:如果要创建的目录存在也不报错,必要时可一同创建父目录。 -m,-mode=MODE:按照权限MODE创建子目录。 例: 1) 在工作目录下,建立一个名为temp的子目录 # mkdir temp 2) 一次创建多个目录 # mkdir temp2 temp3 temp

15、4 3) 在子目录temp下创建子目录child,若父目录不存在,则一同创建之 # mkdir p temp5/child 提示:如果需要建立文件,需要使用touch命令。,3.5 目录基本操作命令,3. 目录删除(rmdir) 用法为:rmdir -p dirName 例: 删除子目录temp,若非空则报错 #rmdir temp 4. 改变工作目录(cd) 用法为:cd dirName 例: #cd /tmp #切换到目录/tmp #cd /usr/bin #切换到目录/usr/bin #cd #切换到上级目录 #cd #切换到家目录$HOME 5. 显示当前目录(pwd) 用法为:pwd

16、,3.6 文件操作基本命令,1. 显示文件的内容或合并文件(cat) 其用法为:cat -options filenames,3.6 文件操作基本命令,实例: 1) 显示文件test.txt的内容 # cat test.txt 2) 显示文件test.txt的内容,并为所有行添加行号 # cat -n test.txt 3) 显示所有的*.txt文件 # cat *.txt 4) 将文件test1.txt和test2.txt合并为test.txt # cat test1.txt test2.txt test.txt 5) 从键盘读入内容并将其保存到文件myfile #cat myfile,3.

17、6 文件操作基本命令,2. 分屏显示文件内容(more) 用法为:more -dflpcsu -lines +linenum | +/pattern filenames,3.6 文件操作基本命令,3. 使用less命令浏览文件 less命令和more命令一样都是分页处理命令,但是less命令的功能比more命令更强大。 less命令提供了许多比more命令优秀的功能: 可以使用光标键在文本文件中前后滚屏。 可以用行号或百分比作为书签来浏览文件。 可以实现在多个文件中进行复杂的检索、模式匹配、高亮度显示等操作。 键盘操作与字处理程序如vi兼容。 阅读到文件结束或者标准输入结束的时候less命令不

18、会退出。 屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。,3.6 文件操作基本命令,4. 修改文件存取时间或创建空文件(touch) 用法为: touch -acm -r ref_file -t CCYYMMDDhhmm.ss file touch -acm -t MMDDyy files 例: 1) 将文件的修改时间改为当前时间,若不存在则创建之 #touch myfile 2) 修改文件的存取时间 #touch a t 200601010030 myfile yourfile 3) 修改文件的修改时间 #touch m t 200706050403 myfile #touch m

19、 d ”Feb 2 2006 18:20” /tmp/tmpf,touch,3.6 文件操作基本命令,5. 删除文件(rm) 使用方式为:rm options file .,删除文件(rm),例: 1) 删除文件 #rm myfile hisfile #交互式删除,删除前需要用户确认 2) 删除文件和目录 #rm -r -f myf.c mydir #同时删除文件和目录,3.6 文件操作基本命令,6. 使用mv命令移动文件或给文件改名 用法为: mv options source dest mv options source . Directory 例: #文件更名 #mv file1 fil

20、e2 #若file2存在,在不使用备份时将被覆盖 #mv myfile /tmp/tmpf #将文件myfile移动至/tmp并更名为tmpf #将文件fiel1,file2移动到目录mydir #mv file1 file2 mydir #文件移动备份,3.6 文件操作基本命令,7. 文件和目录复制(cp) 用法为: cp options source dest cp options source . directory,文件和目录复制(cp),例: #文件复制 #cp file1 file2 #将文件file1复制到file2,默认采用交互方式 #cp /tmp/myp.c . #将文件/

21、tmp/myp.c复制到当前目录 #多文件复制到目录 #cp *.c *.txt /tmp #将文件*.c和*.txt复制到目录,保持原文件名 #更名复制 #cp file1 /tmp/file2 #将文件file1复制到/tmp并更名为file2 #目录复制 #cp rp dir1 dir2 #将目录dir1复制到目录dir2,且保持原属性 #cp R file1 file2 dir1 dir2 #将文件file?和dir1复制到目录dir2,3.6 文件操作基本命令,8. 显示文件的开始或结尾部分(head/tail) 用法为: head -num | -n num tail -num |

22、 -n num ,3.7文本文件编辑与操作基本命令,1、字符串过滤命令(grep) 用法为: grep options pattern files grep options -e pattern | -f patternfile files 例: 1) 使用固定表达式在/etc/passwd内搜索root用户 #grep -F root /etc/passwd 2) 多文搜索,使用一般正则表达式在a*、b*和c*中搜索mytext #grep mytext abc* 3) 流搜索,在当前目录内搜索文件名内含有x的文件 #ls | grep -E x+ 4) 反向搜索,在文件/etc/syslo

23、g.conf中搜索非注释行 #grep v ”#” /etc/syslog.conf,3.7文本文件编辑与操作基本命令,2. 使用sort 命令对文件排序 使用方式为: sort -b -d -f -g -i -k POS1,POS2 -M -m -n -o FILE -r -S SIZE -s -T DIR -t -u-z 例: 1) 对文件按字典顺序排序 #sort fieli fileo #将filei排序后输出到fileo 2) 以第二个域为键进行排序 #sort -k 2,2 infile #使用k指定绝对域号 #sort +1 -2 infile #使用相对量定义域号 3) 以第二

24、个域的第一个字符为键进行排序 #sort -k 2, 2.1 infile #sort +1.0 -2.1 infile,3.7文本文件编辑与操作基本命令,3. 使用uniq命令删除文件中重复的行 使用方式为:uniq options. infile outfile,3.7文本文件编辑与操作基本命令,4. 文件内容信息统计(wc) 用法为:wc -c -m -w -l -L files,3.7文本文件编辑与操作基本命令,5.显示文件行的指定部分(cut) 用法:cut OPTION. File . 例: #cut d: -f1 /etc/passwd #显示系统中的所有用户名 #显示以Tab分

25、隔的系统中的组和它包含的组成员 #cut output-delimite=$t -d f1,4 /etc/group 6.测试文件的类型(file),3.8 环境变量与变量,1. 环境变量 shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量。 环境变量可用命令env来查询。 常用的shell环境变量有: HOME:用户家目录的完全路径名。 LOGNAME:登录用户名。 IFS:命令行内部域分割符:空格,tab。 PATH:命令搜索路径。 TERM:终端的类型。 PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。 PS1:主提示符,默

26、认情况下,超级用户的主提示符是#,普通用户主提示符是$。 PS2:辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是“”。,3.8 环境变量与变量,2. 变量 在UNIX/Linux系统中,除了环境变量外,用户还可以定义自己的变量。定义后的变量就像在其它程序设计语言里一样被引用。 变量引用时需要使用“$”作为变量名的前导字符。 变量的定义方法:var_name=var_value 例:rootlocalhost # A=5 /定义A=5 rootlocalhost # echo $A /显示A的值,3.9 标准流与输入输出重定向,当执行一个命令时,shell通常会自动为其打开三个标

27、准文件,即标准输入文件、标准输出和标准错误。,3.9 标准流与输入输出重定向,I/O重定向(也称作改道)是指通过文件的形式实现I/O(输入和输出)。I/O重定向可以通过以下符号实现: :以覆盖方式实现输出重定向。如:#ls dir.out :以追加方式实现输出的重定向。 使用文件号2对标准错误重定向。如:# ls 2 err.out &:标准输出和标准错误同时重定向。如:ls &dir.out,3.10 管道,管道机制是在两个或多个进程之间建立一种连接,使得前一个命令的输出作为后一个命令的输入。 管道机制常用于进程间的通信。 实现管道机制的符号是“|”,其方法为:命令1 | 命令2 | |命令

28、n,3.11 引号机制与命令替换,引号机制在shell中引号分为三种:单引号(),双引号(”)和反单引号()。 (1)由单引号括起来的字符都作为普通字符。即禁用特殊字符。 (2)反单引号的作用是命令替换。 命令替换的另一种形式是:$(cmd)它的作用与cmd相同。 (3)双引号的作用与单引号的功能基本一样,可用来定义变量,所不同的是在双引号内可进行变量和命令替换。因为它不能禁止$、!四个字符的功能。,引号机制示例,例: #string=$PATH #单引号定义string变量 #echo $string #显示变量的值$PATH #显示结果($符号被禁用) #x=pwd #通过命令pwd替换定

29、义变量x。pwd的功能是显示用户工作目录 #y=whoami #通过命令whoami替换定义变量y。whoami的功能是显示用户名 #echo $x $y #显示变量x和y的内容/root root #MyVar=$(whoami) #通过命令whoami替换定义变量MyVar #echo $MyVar $(pwd) #显示变量MyVar和$(pwd)的值root /root,引号机制示例,#myname=whoami #通过命令替换定义变量myname #定义变量myself。注意使用了变量替换和命令替换 #myself=”I am a student my name is $myname

30、and my work dir is pwd.” #定义变量myself1。注意使用了继续行和转义字符 #myself1=”I am a student my name is ”$myname” and my work dir is ”pwd”.” #echo $myself I am a student my name is root and my work dir is /root. #echo myself1 I am a student my uname is “root” and my work dir is “/root”.,3.12 文本编辑器vi,vi是UNIX/Linux系统

31、的默认文本文件的全屏编辑器。 vi有三种工作模式:命令模式、编辑模式和命令项模式。 命令模式:当进入vi时,它处在命令模式。在这种模式下,用户可通过vi的命令对文件的内容进行处理,比如删除、移动、复制等;也可通过命令进入编辑模式。 编辑模式:用户可在命令模式下通过o,O,a,A,i,I等命令使vi进入编辑模式。在编辑模式下,用户能在光标处输入内容,或通过光标键移动光标。也可通过按ESC键返回命令模式。 命令项模式或叫底行模式:也是命令模式的一种,在命令模式下用户输入冒号后光标会跳到底行,输入相关命令后可完成指定操作。 使用方式:vi -options files,vi的命令选项,vi启动的常用

32、方法(处于命令模式),vi的插入模式功能键(进入编辑模式),vi的删除命令(命令模式下),vi的修改与替换命令(命令模式下),vi的搜索与定位命令(命令模式下),vi的搜索与替换命令 (命令项模式下),vi的文件内容的移动、复制、删除和保存(命令项模式下),vi的缓冲区使用命令(命令模式下),vi的退出(命令项模式下),3.13 Linux系统的其它基本命令,3.13.1 时间管理命令 1. 显示或设定系统的日期与时间(date) 用法为:date -d datestr -s datestr -u +form MMDDhhmmCCYY.ss,date显示格式,date显示格式,3.13 Lin

33、ux系统的其它基本命令,2. 使用cal命令显示日历 用法为:cal -smjy13 month year,3.13 Linux系统的其它基本命令,3.13.2 其它操作命令 1. 清屏命令(clear) 用法:clear 2. 字符串或变量输出命令(echo) 用法:echo options string .,echo,例: 1) 显示字符串常量 #echo Please insert diskette Please insert diskette 2) 不处理转义字符 #echo ”My cell phone number is:n13903750000” #echo E ”My cell

34、 phone number is:n13903750000”My cell phone number is:n13903750000 3) 处理转义字符 #echo e ”My cell phone number is:nt13903750000”My cell phone number is:13903750000,3.13 Linux系统的其它基本命令,3. 变量输入命令(read) 用法:read -d delim -n num -p prompt -r -s -t time var1 var2 例:输入变量 #read x y #输入:Hello World #echo “Var x=

35、$xtVar y=$y”Var x=Hello Var y=World 4. 显示当前环境命令(env) 用法: env -|-i -u env_var var=Value cmd env设置或取消的参数只对cmd的运行子环境有用,而不影响当前的环境变量,3.13 Linux系统的其它基本命令,5. 定位可执行程序(which) 用法:which options filenames 例: #which which alias which=alias | /usr/bin/which -tty-only -read-alias -show-dot -show-tilde/usr/bin/which #which ls ll alias ll=ls l -color=tty alias ls=ls -color=tty/bin/ls,学习小结,了解shell的作用,掌握shell的一些基本概念: 命令解释执行 输入/出重定向 管道机制 系统环境设置 Shell编程 掌握常用的shell命令,学会使用系统提供的帮助方法。 掌握vi编辑器的基本使用方法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报