实验五Shell简单命令
- 格式:docx
- 大小:1.03 MB
- 文档页数:16
操作系统实验课程设计(二)(参照实验五)学院:计算机科学与工程专业:信息管理工作与信息系统学号:2008142118 姓名:丁建东一、实验题目:设计一个Shell解释器二、实验目的:本设计的主要目的在于学会如何在Unix系统下创建进程和管理进程。
三、实验内容:实现一个简单的shell(命令行解释器),类似于bash, csh等。
要求实现的shell支持以下内部命令:1.cd <目录>更改当前的工作目录到另一个<目录>。
如果<目录>未指定,输出当前工作目录。
如果<目录>不存在,要求有适当的错误信息提示。
改命令应能够改变PWD的环境变量。
2.echo <内容>显示echo后的内容且换行。
3.help简短概要地输出你的shell的使用方法和基本功能。
4.jobs输出shell当前的一系列子进程,要求提供子进程的命名和PID号。
5.quit, exit, bye退出shell。
所有的内部命令应当优于在$PATH中同名的程序。
任何非内部命令必须请求shell创建一个新进程,且该子进程执行指定的程序。
这个新进程必须继承shell的环境变量和指定的命令行参数。
要求实现的shell支持以下内部命令:Batch Processing 如果shell启动带有一个文件名作为参数,打开该文件并执行文件里所有命令。
待所有进程全部结束退出shell。
四、实验思路:1.所用到的系统函数(1)打开目录void cd()API调用:int chdir(dir);getcwd(dir,dir_max);实现:改变当前目录,并判断目录是否存在。
(2)回应void echo()实现:用户输入字符串,以回车结束输入。
char echo_string[echo_len][echo_max];//用户输入命令,以空格符隔开,存为字符串数组按顺序输出用户输入的字符串。
(3)输出当前子进程Void jobs()API调用:shmget(),shmat()实现:开辟一个共享内存区,一旦创建一个子进程,就把该进程的进程ID和名字记字共享区里,在子进程结束的时候消除该记录。
shell脚本常⽤命令shell基本命令1.#!/bin/sh是指此脚本使⽤/bin/sh来解释执⾏。
解释:#! 是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell。
2.echo 命令⽤于向窗⼝输出⽂本。
举例:echo "Hello World !"3.your_name="qinjx"赋值变量echo ${your_name}打印变量;使⽤变量的时候加括号和美元符4.chmod +x ./test.sh #使脚本具有执⾏权限./test.sh #执⾏脚本chmod 777 /tmp -R 意思是把tmp⽂件夹及其⼦bai⽂件夹的权限全部修改为777解释语句⼀:ping -c 5 > /dev/null 2>&11. ping -c 5 -c<完成次数>:设置完成要求回应的次数;2. >/dev/null这条命令的作⽤是将标准输出1重定向到/dev/null中。
/dev/null代表linux的空设备⽂件,所有往这个⽂件⾥⾯写⼊的内容都会丢失,俗称“⿊洞”。
那么执⾏了>/dev/null之后,标准输出就会不再存在,没有任何地⽅能够找到输出的内容。
3. 2>&1这条命令⽤到了重定向绑定,采⽤&可以将两个输出绑定在⼀起。
这条命令的作⽤是错误输出将和标准输出同⽤⼀个⽂件描述符,说⼈话就是错误输出将会和标准输出输出到同⼀个地⽅。
linux在执⾏shell命令之前,就会确定好所有的输⼊输出位置,并且从左到右依次执⾏重定向的命令,所以>/dev/null 2>&1的作⽤就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重⽤了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。
执⾏了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到⽂件中。
常用shell脚本命令1、显示包含文字aaa的下一行的内容:sed -n '/aaa/{n;p;}' filename2、删除当前行与下一行的内容:sed -i '/aaa/{N;d;}' filename3、删除当前行与下两行的内容:sed -i '/aaa/{N;N;d;}' filename依次类推,删除三行,则为{N;N;N;d;},分析知:N为next4、得出以空格为分割的字符串中单词的个数,即统计个数:awk ' { print NF } '如显示字符串VALUE中的单词个数,其中VALUE为:aaa bbb ccc ddd ee f则执行 echo $VALUE | awk ' { print NF } ' 后的结果为65、在linux中建立一个文件与另一文件的链接,即符号链接ln -s /var/named/chroot/etc/named.conf named.conf这要就建立了当前目录的文件named.conf对/var/named/chroot/etc/named.conf 的符号链接。
即操作named.conf就意味着操作实际文件/var/named/chroot/etc/named.conf ,这时用ll命令查看的结果如:lrwxrwxrwx 1 root root 32 Mar 22 12:29 named.conf ->/var/named/chroot/etc/named.conf注意:当用sed来通过named.conf来删除一部分信息时,会将符号链接的关系丢掉,即会将named.conf变成一个实际文件。
所以需对实际文件进行删除操作。
6、显示指定字符范围内的内容:如:显示文件test.txt中字符#test begin与#test end之间所有的字符sed -n "/#test begin/,/#test end/p" test.txt或 awk "/#test begin/,/#test end/" test.txt在日常系统管理工作中,需要编写脚本来完成特定的功能,编写shell脚本是一个基本功了!在编写的过程中,掌握一些常用的技巧和语法就可以完成大部分功能了,也就是2/8原则.1. 单引号和双引号的区别单引号与双引号的最大不同在于双引号仍然可以引用变量的内容,但单引号内仅是普通字符,不会作变量的引用,直接输出字符窜。
shell的基础语法Shell是一种命令行解释器,它允许用户与操作系统进行交互并执行各种操作。
Shell的基础语法包括以下几个方面:1. 命令执行,在Shell中,用户可以直接输入命令来执行各种操作,例如`ls`命令用于列出当前目录下的文件和文件夹,`mkdir`命令用于创建新的目录等。
2. 变量,在Shell中,可以使用变量来存储数据并在需要的时候进行引用。
变量的赋值和引用使用类似于`variable_name=value`和`$variable_name`的语法。
3. 控制结构,Shell支持基本的控制结构,如条件判断和循环。
条件判断使用`if-then-else-fi`语法,而循环则可以使用`for`、`while`等关键字来实现。
4. 函数,Shell中可以定义和调用函数,使用`function_name() { ... }`的语法来定义函数,使用`function_name`来调用函数。
5. 管道和重定向,Shell支持管道和重定向操作,允许用户将一个命令的输出作为另一个命令的输入,或者将命令的输入/输出重定向到文件或其他设备。
6. 通配符,Shell支持通配符来匹配文件名,例如``用于匹配任意字符,`?`用于匹配单个字符等。
7. 注释,在Shell脚本中,可以使用`#`符号来添加注释,注释部分将被解释器忽略。
总的来说,Shell的基础语法包括了命令执行、变量、控制结构、函数、管道和重定向、通配符以及注释等内容。
掌握这些基础语法对于编写Shell脚本和在命令行下进行操作都是非常重要的。
希望这些信息能够帮助你更好地理解Shell的基础语法。
Shell编程实验一、实验目的了解 Shell 的作用和主要分类。
了解 Bash的一般语法规则。
练习编写简单的shell程序。
二、实验内容1.Shell变量的定义及其使用。
2.位置参数和环境变量。
3.Shell中的特殊字符。
4.条件判断结构与循环结构5.函数的定义和使用三、预备知识1、LINUX环境下常用命令和VI编辑器的操作。
2、了解Shell作用和主要分类等基础知识。
四、实验设备及工具软件:PC机操作系统REDHAT ELAS4环境五、实验原理及说明Shell是Linux系统中一个重要的层次,它是用户与系统交互作用的界面。
在介绍Linux命令时,Shell都作为命令解释程序出现:它接收用户打入的命令,进行分析,创建子进程实现命令所规定的功能,等子进程终止工作后,发出提示符。
这是Shell最常见的使用方式。
Shell 除了作为命令解释程序以外,还是一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if, case, while, for 等语句,有自己的语法结构。
利用Shell程序设计语言可以编写出功能很强、但代码简单的程序,特别是它把相关的Linux命令有机地组合在一起,可大大提高编程的效率,充分利用Linux系统的开放性能,设计出适合自己要求的命令。
六、实验步骤1.语法练习(1)Shell变量Shell有两种变量:环境变量和临时变量。
在Shell脚本中临时变量又分为两类:用户定义的变量和位置参数。
用户定义的变量用户定义的变量是最普遍的Shell变量,变量名是以字母或下化线打头的字母、数字和下线符序列,并且大小写字母意义不同。
变量名的长度不受限制。
定义变量并赋值的一般形式是:变量名=字符串例如,MYFILE=/usr/meng/ff/m1.ca.定义并显示变量的值在程序中使用变量的值时,要在变量名前面加上一个符号“$”。
这个符号告诉Shell,要读取该变量的值。
作为交互式输入手段,可以利用read命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。
实验五用户与组群管理实验环境:Linux操作系统实验目的:(1)熟练掌握手工启动前后台作业的方法。
(2)熟练掌握进程与作业管理的相关 Shell 命令。
(3)掌握 at 调度和 cron 调度的设置方法。
(4)了解进行系统性能监视的基本方法。
实验内容及步骤:1.桌面环境下管理用户与组群操作要求1:新建两个用户帐号,其用户名为 xuser1 和 xuser2,口令为“e12ut59er”和“wfu1t28er”。
操作步骤及结果截图:(1)以超级用户身份登录X Window 图形化用户界面,依次单击「系统」菜单=>「管理」=>「用户和组群」,启动「用户管理者」窗口。
(2)单击工具栏上的「添加用户」按钮,出现「创建新用户」窗口。
在「用户名」文本框中输入用户名“xuser1”,在「口令」文本框中输入口令“e12ut59er”,在「确认口令」文本框中再次输入口令“e12ut59er”,如图5-2 所示,然后单击「确定」按钮,返回「用户管理者」窗口。
(3)用同样的方法新建用户xuser2。
(4)依次单击顶部面板的「应用程序」=>「附件」=>「文本编辑器」,启动 gedit 文本编辑器,打开/etc/passwd 和/etc/shadow 文件将发现文件的末尾出现表示 xuser1 和xuser2用户帐号的信息。
打开/etc/group 和/etc/gshadow 文件将发现文件末尾出现表示xuser1和 xuser2 私人组群的信息。
(5)按下CTRL+ALT+F2 组合键切换到第2 个虚拟终端,输入用户名xuser2 和相应的口令可登录Linux 系统,说明新建用户操作已成功。
(6)输入“pwd”命令,屏幕显示用户登录后进入用户主目录“/home/xuser2”。
(7)输入“exit”命令,xuser2 用户退出登录。
(8)按下ALT+F7 组合键返回GNOME 桌面环境。
操作要求2:锁定xuser2 用户帐号操作步骤及结果截图:(1)在「用户管理者」窗口选中xuser2 用户帐号,单击工具栏上的「属性」按钮,打开「用户属性」窗口。
shell命令总结实验报告shell 命令总结第⼀章实验思路1 运⾏环境VMware软件、CentOS 7、MobaXterm第⼆章实验⽬的1 掌握Linux的使⽤。
2 掌握shell常⽤命令。
3 掌握MobaXterm软件的使⽤第三章实验步骤Shell:多任务多⽤户系统3.1 终端物理终端:直接连接到的是键盘、⿏标 /dev/console虚拟终端:(/dev/tty)基于物理终端,以软件形式实现的登录⽅式,以ctrl+alt+Fn[1-6],centos 7模拟终端:(/dev/pts/)基于物理终端,以软件形式实现的登陆⽅式,通过ssh、telent远程登录的、(可以有很多个,⽆穷多个),在图形界⾯打开的命令⾏3.1.1 终端交互式接⼝GUI:图形界⾯,GNOME,KDE, XFCECLI: 命令⾏,shell3.2 shell 应⽤程序/bin/sh/bin/bash ⽐较常⽤shell,跟随⽤户启动的独⽴程序/usr/bin/sh/usr/bin/bash/bin/tcsh/bin/csh3.3 命令提⽰符#:管理员使⽤的命令提⽰符$: 普通⽤户使⽤的命令提⽰符3.4 命令3.4.1 shell 内嵌命令,执⾏效率⾼,常驻内存shell外部命令,根据需要执⾏which whereis 查找外部命令的位置3.4.2 帮助⽂档help,主要针对内嵌man(manual),主要针对外部命令3.4.3 主要命令1. echo $SHELL 查看当前使⽤的shell程序,当系统登录shell时默认使⽤的是/bin/bash2. exit 退出当前shell3. cat /etc/shells查看设备安装的所有shell程序4. pstree 查看进程树5. tty 查看登录⽅式 TTY查看登陆⽅式,tty1说明是在终端上登陆的。
pts说明是远程登陆的,0说明为从Window上登陆的。
6. type 查看是内部命令还是外部命令如下,查看cd 和ls命令7.enable -a 查看所有内嵌命令8. which 查看外部命令位置(以及帮助信息)9. whereis 查看外部命令位置10. man 查看外部命令使⽤说明,如man ls(ls 为外部命令)11. help 查看内部命令的使⽤说明,如help cd( cd 为内部命令),当⽤help查看ls这个外部命令时,是查询不出来的12. whatis 查看和更新数据库信息(帮助⽂档)1. ctrl+c 终⽌shell命令第四章问题解决没有注意到⼀些路径的设置,然后出现了些错误或者命令没执⾏成功。
shell脚本介绍以及常⽤命令Shell脚本Shell Script,Shell与Windows/Dos下的相似,也就是⽤各类命令预先放⼊到⼀个⽂件中,⽅便⼀次性执⾏的⼀个,主要是⽅便进⾏设置或者管理⽤的。
但是它⽐Windows下的批处理更强⼤,⽐⽤其他编程的程序效率更⾼,毕竟它使⽤了Linux/Unix下的命令。
换⼀种说法也就是,shell script是利⽤shell的功能所写的⼀个程序,这个程序是使⽤,将⼀些shell的语法与指令写在⾥⾯,然后⽤正规表⽰法,管线命令以及数据流重导向等功能,以达到我们所想要的处理⽬的shell和shell脚本的区别:shell是什么呢?确切⼀点说,Shell就是⼀个,它的作⽤就是遵循⼀定的语法将输⼊的命令加以解释并传给系统。
它为⽤户提供了⼀个向Linux发送请求以便运⾏程序的接⼝系统级程序,⽤户可以⽤Shell来启动、挂起、停⽌甚3⾄是编写⼀些程序。
Shell本⾝是⼀个⽤C语⾔编写的程序,它是⽤户使⽤Linux的桥梁。
Shell既是⼀种命令语⾔,⼜是⼀种(就是你所说的shell脚本)。
作为命令语⾔,它互动式地解释和执⾏⽤户输⼊的命令;作为程序设计语⾔,它定义了各种和参数,并提供了许多在⾼阶语⾔中才具有的控制结构,包括循环和分⽀。
它虽然不是 Linux系统的⼀部分,但它调⽤了系统内核的⼤部分功能来执⾏程序、创建⽂档并以并⾏的⽅式协调各个程序的运⾏。
交互式shell和⾮交互式shell 交互式模式就是shell等待你的输⼊,并且执⾏你提交的命令。
这种模式被称作交互式是因为shell与⽤户进⾏交互。
这种模式也是⼤多数⽤户⾮常熟悉的:登录、执⾏⼀些命令、签退。
当你签退后,shell也终⽌了。
shell也可以运⾏在另外⼀种模式:⾮交互式模式。
在这种模式下,shell不与你进⾏交互,⽽是读取存放在⽂件中的命令,并且执⾏它们。
当它读到⽂件的结尾,shell也就终⽌了。
简述shell命令的基本格式(原创实用版2篇)目录(篇1)一、Shell 命令的基本概念二、Shell 命令的基本格式三、Shell 命令的选项与操作对象四、总结正文(篇1)一、Shell 命令的基本概念在 Linux 系统中,Shell 是一个命令解释器,它充当着用户与 Linux 内核的桥梁,负责完成用户与内核之间的交互。
当用户需要与内核交互时,将命令传递至 Shell,再由 Shell 将命令解析成内核所能理解的指令,然后操作系统做出响应对硬件进行控制,最后再将结果通过 Shell 返回给用户。
经过多年的发展,由不同的机构、针对不同的目的,开发出许多不同类型的 Shell 程序。
目前流行的 Shell 主要有几种,如 Bourne Shell、C Shell、Korn Shell 等。
二、Shell 命令的基本格式Shell 命令的基本格式为:command[,选项],[对象]。
其中,command 表示命令的名称;选项是可选的,表示命令的附加属性,如-a、-r 等;对象表示命令的操作对象,可以是文件、目录、用户和进程等。
三、Shell 命令的选项与操作对象Shell 命令的选项有多种,如-r、-p、-a 等,它们分别表示复制目录及其内容、保持文件或目录属性、相当于同时使用参数-d,-p,-r 等。
操作对象可以是文件、目录、用户和进程等。
例如,cp 命令用于复制文件或目录,其基本语法格式为:cp [OPTION]...[-T] SOURCE DEST,其中,-T 表示创建硬链接,-d 表示复制目录内容,-p 表示保持文件或目录属性,-a 表示相当于同时使用参数-d,-p,-r 等。
四、总结总之,Shell 命令是 Linux 系统中用户与内核之间交互的重要工具,其基本格式为 command[,选项],[对象],用户可以根据需要选择不同的选项和操作对象来实现不同的操作。
目录(篇2)1.Shell 命令的基本概念2.Shell 命令的基本格式3.Shell 命令的执行方式4.Shell 命令的示例正文(篇2)【1.Shell 命令的基本概念】Shell 命令是操作系统中用于执行任务和操作文件的命令。
sh常用指令
sh是一种常见的Shell,也是许多其他Shell的基础。
常用的sh指令有:
- `-c`:执行命令字符串,例如`sh -c "echo Hello World"`。
- `-f`:从脚本文件中读取命令并执行,例如`sh -f script.sh`。
- `-i`:在执行脚本之前进入交互式模式,例如`sh -i script.sh`。
- `-l`:使Shell能够以登录Shell方式启动,例如`sh -l`。
- `-n`:不执行命令,只检查语法错误,例如`sh -n script.sh`。
- `-t`:设置Shell在执行命令之前会输出调试信息,例如`sh -t script.sh`。
- `-v`:在Shell执行命令时输出额外的详细信息,例如`sh -v script.sh`。
- `-x`:打印出Shell将要执行的每个命令和其参数,以便进行调试,例如`sh -x script.sh`。
这些指令可以组合使用,以满足不同的需求。
在使用sh命令时,可以根据具体情况选择合适的参数,以获得更好的效果。
linux基本shell语法1. 执行命令:输入命令后按下回车键即可执行。
2. 变量赋值:使用等号(=)将值赋给变量,例如:`variable_name=value`3. 输出变量:使用`echo`命令输出变量的值,例如:`echo variable_name`4. 注释:使用井号(#)来添加注释,注释会被解释器忽略。
5. 重定向输入输出:使用重定向符号来将命令的输入输出重定向到文件中,例如:`command > output_file` (将命令的输出重定向到文件)或 `command < input_file` (将文件内容作为命令的输入)6. 管道:使用竖线(|)将前一个命令的输出作为后一个命令的输入,例如:`command1 | command2` (将command1的输出作为command2的输入)7. 执行前一个命令的退出状态码:使用美元符号和问号(?)获取前一个命令的退出状态码(0表示命令成功执行),例如:`echo ?`8. 条件判断:使用`if`语句进行条件判断,例如:```if conditionthencommand1elsecommand2fi```9. 循环:使用`for`和`while`循环进行迭代操作,例如:```for item in listdocommanddone``````while conditiondocommanddone```10. 函数定义和调用:使用`function`关键字定义函数,例如:```function function_name {command1command2return value}``````function_name```以上是一些基本的Linux shell语法,还有更多高级用法可以进一步学习和探索。
linux shell 实验报告Linux Shell 实验报告一、引言Linux Shell 是一种命令行解释器,它允许用户与操作系统进行交互。
作为一个开源的操作系统,Linux 提供了多种 Shell,如 Bash、Zsh、Ksh 等,每种 Shell 都有其特点和用途。
本实验旨在通过实际操作,深入了解 Linux Shell 的使用和功能。
二、实验目的1. 熟悉 Linux Shell 的基本概念和操作;2. 掌握 Shell 的常用命令和参数;3. 理解 Shell 脚本的编写和执行过程。
三、实验环境本次实验使用的实验环境为 Ubuntu 20.04 LTS 操作系统,使用默认的 Bash Shell。
四、实验内容1. Shell 基本操作在 Linux 系统中,打开终端即可进入 Shell 环境。
Shell 提供了丰富的命令用于文件操作、系统管理等。
以下是一些常用的 Shell 命令示例:- ls:列出当前目录下的文件和子目录;- cd:切换当前工作目录;- mkdir:创建新目录;- rm:删除文件或目录;- cp:复制文件或目录;- mv:移动文件或目录。
2. Shell 变量和环境变量Shell 变量用于存储数据,可以通过赋值和引用来操作变量。
环境变量是一种特殊的 Shell 变量,用于存储系统环境的信息。
以下是一些常用的变量和环境变量示例:- 变量赋值:name="John";- 变量引用:echo $name;- 环境变量:$HOME、$PATH、$USER。
3. Shell 脚本编写与执行Shell 脚本是一种批处理文件,由一系列命令组成,可以实现自动化操作。
以下是一个简单的 Shell 脚本示例:```shell#!/bin/bashname="John"echo "Hello, $name!"```将上述脚本保存为 `hello.sh`,通过 `chmod +x hello.sh` 命令给予执行权限,然后通过 `./hello.sh` 执行脚本。
shell编程实验总结Shell编程实验总结Shell编程是一种在Linux系统中常用的脚本语言,它可以通过编写一些简单的脚本来完成一些复杂的任务。
在学习Shell编程的过程中,我通过实验掌握了一些基本的语法和技巧,现在将它们按照类别进行总结。
一、变量在Shell编程中,变量是非常重要的概念。
我们可以通过定义变量来存储一些数据,然后在程序中使用这些数据。
定义变量的语法如下:```variable_name=value```其中,`variable_name`是变量名,`value`是变量的值。
在使用变量时,需要在变量名前加上`$`符号。
例如:```name="Tom"echo "My name is $name"```这段代码会输出"My name is Tom"。
二、条件语句条件语句是Shell编程中常用的语句之一。
它可以根据条件的真假来执行不同的代码块。
条件语句的语法如下:```if conditionthencommand1command2...elsecommand3command4...fi```其中,`condition`是一个条件表达式,如果它的值为真,则执行`then`后面的代码块;否则执行`else`后面的代码块。
例如:```if [ $name = "Tom" ]thenecho "Hello, Tom!"elseecho "Who are you?"fi```这段代码会根据变量`name`的值输出不同的问候语。
三、循环语句循环语句是Shell编程中另一个常用的语句。
它可以重复执行一段代码块,直到满足某个条件为止。
Shell编程中有两种循环语句:`for`循环和`while`循环。
`for`循环的语法如下:```for variable in listdocommand1command2...done```其中,`variable`是一个变量名,`list`是一个列表,`command1`、`command2`等是要执行的命令。
常用的shell指令常用的Shell指令Shell指令是操作系统中的命令解释器,它用于执行用户输入的命令并与操作系统进行交互。
在Linux和Unix系统中,Shell指令是用户与操作系统交互的主要方式。
下面将介绍一些常用的Shell指令,包括文件和目录操作、系统管理、进程管理等。
一、文件和目录操作1. ls:列出目录中的文件和子目录。
可以使用不同的选项来控制所显示的信息,如-l选项可以显示详细的文件信息。
2. cd:改变当前工作目录。
可以使用相对路径或绝对路径来指定目标目录。
3. pwd:显示当前工作目录的路径。
4. mkdir:创建一个新的目录。
可以使用-p选项来创建多级目录。
5. cp:复制文件或目录。
可以使用-r选项来复制目录及其子目录。
6. mv:移动文件或目录,也可以用来重命名文件或目录。
7. rm:删除文件或目录。
可以使用-r选项来删除目录及其子目录。
8. touch:创建一个空文件或更新文件的访问和修改时间。
9. cat:将文件的内容输出到终端。
二、系统管理1. ps:显示当前运行的进程列表。
2. top:实时显示系统的资源使用情况和进程信息。
3. df:显示磁盘分区的使用情况。
4. du:计算文件或目录的磁盘使用情况。
5. uname:显示操作系统的信息。
6. ifconfig:显示和配置网络接口的信息。
7. ping:向指定的主机发送ICMP回应请求。
8. netstat:显示网络连接、路由表和网络接口统计信息。
9. ssh:远程登录到其他计算机。
10. scp:在本地和远程计算机之间复制文件。
三、进程管理1. kill:向进程发送指定的信号。
2. ps:显示当前运行的进程列表。
3. top:实时显示系统的资源使用情况和进程信息。
4. nice:改变进程的优先级。
5. renice:修改正在运行的进程的优先级。
6. bg:将进程置于后台运行。
7. fg:将后台运行的进程切换到前台。
使用shell的基本操作命令使用Shell的基本操作命令Shell是一种命令行解释器,它是连接用户与操作系统内核的桥梁,可以通过输入不同的命令来操作计算机系统。
本文将介绍一些常用的Shell基本操作命令,并对其功能进行详细说明。
1. cd命令cd(Change Directory)命令用于切换当前目录。
通过输入cd命令,后面跟随要切换到的目录路径,即可切换到指定目录。
例如,输入cd /home,即可切换到/home目录下。
2. ls命令ls(List)命令用于列出当前目录下的文件和子目录。
通过输入ls命令,即可显示当前目录下的所有文件和子目录的名称。
例如,输入ls,即可显示当前目录下的所有内容。
3. pwd命令pwd(Print Working Directory)命令用于显示当前所在的目录路径。
通过输入pwd命令,即可显示当前所在的目录路径。
例如,输入pwd,即可显示当前目录的路径。
4. mkdir命令mkdir(Make Directory)命令用于创建新的目录。
通过输入mkdir命令,后面跟随要创建的目录名称,即可在当前目录下创建新的目录。
例如,输入mkdir test,即可在当前目录下创建名为test的目录。
5. touch命令touch命令用于创建新的空文件。
通过输入touch命令,后面跟随要创建的文件名称,即可在当前目录下创建新的空文件。
例如,输入touch test.txt,即可在当前目录下创建名为test.txt的空文件。
6. cp命令cp(Copy)命令用于复制文件或目录。
通过输入cp命令,后面跟随要复制的文件或目录路径,以及目标路径,即可将文件或目录复制到指定位置。
例如,输入cp file.txt /home,即可将当前目录下的file.txt文件复制到/home目录下。
7. mv命令mv(Move)命令用于移动文件或目录,也可以用于文件或目录的重命名。
通过输入mv命令,后面跟随要移动或重命名的文件或目录路径,以及目标路径或新的名称,即可将文件或目录移动到指定位置或重命名。
Shell命令参数是Shell脚本编程中非常重要的一部分,它们为脚本提供了外部输入和动态行为的能力。
以下是Shell命令参数的详细介绍:1. 位置参数:- $0:脚本名称。
- $1 - $9:脚本的第一到第九个参数。
- $#:传递给脚本的参数个数。
- $*:所有位置参数的单个字符串。
- $@:所有位置参数的单独引用字符串。
2. 特殊参数:- $?:最后一条命令的退出状态。
- $!:最后一个后台命令的进程ID。
3. 环境变量:- $HOME:用户主目录。
- $PATH:执行命令时要搜索的目录列表。
- $PWD:当前工作目录。
- $USER:当前登录的用户名。
4. 逻辑运算符:--a:逻辑与。
--o:逻辑或。
- !:逻辑非。
5. 条件测试命令:- test:用于测试条件。
- [ ]:与test命令功能相同,用于测试条件。
--n:字符串不为空。
--z:字符串为空。
--eq:等于。
--ne:不等于。
--gt:大于。
--lt:小于。
--ge:大于等于。
--le:小于等于。
6. 文件测试命令:--f:测试文件是否存在且为普通文件。
--d:测试文件是否存在且为目录。
--r:测试文件是否存在且可读。
--w:测试文件是否存在且可写。
--x:测试文件是否存在且可执行。
7. 其他测试命令:--t:测试文件描述符是否指向终端。
--s:测试文件大小是否为0。
--c:测试文件是否为字符设备文件。
--b:测试文件是否为块设备文件。
这些参数和测试命令为Shell脚本提供了丰富的功能和灵活性,使得Shell脚本能够根据不同的输入和条件执行不同的操作。
实验五目录和文件管理实验目的(1)熟练掌握目录和文件管理的相关方法;(2)掌握修改文件权限的方法。
实验内容1、字符界面下的文件管理[操作要求1]创建两个新目录dir1和dir2,然后将dir2移动到dir1中,最后删除dir2目录[操作步骤](1)普通用户jkx登录到字符界面,当前目录为用户主目录/home/jkx;(2)输入命令“ls -al”,查看当前目录中所有文件的详细信息;该命令将列出每个文件的类型(-表示普通文件;1表示符号链接文件;b、c分别代表块设备文件及字符设备文件)、权限、所有者等信息;(给出命令执行的界面截图)(2)使用命令“mkdir dir{1,2}”同时创建两个目录;(3)再次输入命令“ls -l”确认创建操作成功;(4)输入命令“mv dir2 dir1”移动目录dir2;(5)通过命令“cd dir1”进入目录dir1,通过ls命令查看该目录包含的信息;(7)输入命令“rm –rf dir2”删除dir2目录,删除目录时当前目录不能为被删除的目录或其子目录;(8)通过命令“cd ~”返回主目录。
[操作要求2]查找文件名为profile的所有文件[操作步骤](1)由于普通用户只对部分目录具有权限,应先通过“su -”命令切换到超级用户的字符界面;(2)使用命令“find / -name profile”进行查找,其中最重要的是/etc/profile;(给出命令执行的界面截图)[操作要求3]查找文件/etc/profile中包含“HOSTNAME”的所有行,并将保存为f4文件[操作步骤](1)输入命令“grep –n “HOSTNAME” /etc/profile > f4”实现查找并保存结果;(给出命令执行的界面截图)(2)(2)使用命令“cat f4”查看查找操作的结果;(3)输入命令“ls -l”,特别注意文件f4三类用户的操作权限;(4)使用chmod命令修改f4的文件权限,使得所有用户都具有读写权限:chmod 666 f4或chmod o+w f4(其中o代表其他用户)。
Linux基础与Shell编程实验指导书
实验一Linux指令系统
实验学时:2学时
实验类型:验证性
一.实验目的
使用命令,查看目录,对目录下的文件进行操作,查找过滤,压缩打包操作
二.实验内容
●使用Linux指令,查看目录,修改目录。
●使用Linux指令,创建文件,修改文件属性。
●使用cat和find命令查找。
●使用tar命令进行文件的解压缩。
三.实验要求
按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。
四.实验步骤
1.使用cd命令,查看/tmp目录。
2.创建myDir文件,查看属性。
3.修改目录的拥有者和工作组。
4.使用myDir下的所有文件和子目录都自动拥有工作组xz
5.在myDir目录下创建文件,测试上面的操作是否成功。
6.查看/tmp目录下的内容及属性。
7.创建newfile文件。
设置newfile文件权限模式。
8.把newfile备份到/tmp/myDir目录下,并改名为newfile.bak。
9.在/root目录下为该文件创建1个符号链接。
10.使用find命令查找系统中是否存在文件grub.conf.
11.查找系统中所有空文件,并记录到/tmp/myDir/zerofile.log.
12.搜索/etc/grup.conf文件中含有root字符串的行。
13.过滤显示/etc下文件名中包含init字符串的文件或目录名称。
14.把/tmp目录打包成tmp.tar,放在/root目录下.
15.把/tmp目录压缩打包成tmp.tar.gz,放在/root目录下.
16.比较tmp.tar与tmp.tar.gz的大小。
17.不解包只查看压缩包tmp.tar.gz中的内容。
18.解压tmp.tar.gz的内容到/tmp/myDir目录。
实验二Linux进程操作
实验学时:2学时
实验类型:验证性
一.实验目的
使用命令,查看系统中的进程。
二.实验内容
●使用Linux指令,查看系统中消耗CPU资源最多的几个进程。
●查看系统中所有进程。
●查找ssh服务守护进程的进程ID号。
●杀掉守护进程。
●使用apt-get 命令进行“fish”软件的安装,更新,卸载。
也可安装3d-chess
软件。
三.实验要求
按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。
同时将apt-get命令的使用方法整理进实验报告。
四.实验步骤
19.使用top命令,查看系统中消耗CPU资源最多的几个进程。
20.使用ps命令,查看系统中所有进程。
21.通过管道,查找ssh服务守护进程的进程ID号。
22.使用kill命令杀掉该进程。
实验三Linux网络管理
实验学时:2学时
实验类型:验证性
一.实验目的
通过命令,对网络管理进行操作。
二.实验内容
●通过ifconfig命令,显示配置网络设备。
●使用route命令查看当前路由表的信息。
●使用ping命令,测试两台电脑是否能相互通信。
●安装ftp服务器及客户端。
并验证连接是否有效。
三.实验要求
按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。
同时将ftp服务器的配置文档整理进实验报告。
四.实验步骤
23.使用ifconfig命令,查看当前系统活动的网络接口配置信息。
24.使用ifconfig命令启动和关闭指定网卡。
25.使用ifconfig命令配置系统ip地址。
26.使用route命令查看当前路由表信息。
27.使用ping命令,查看结果。
28.通过netsata命令显示网络信息。
实验四Shell综合
实验学时:2学时
实验类型:综合性
一.实验目的
通过对Shell语法的练习,熟练运用知识点,完成时间密码验证,计算时间差,按时备份文件程序。
二.实验内容
●熟悉Unix/Linux的运行环境,实验平台。
●练习Unix/Linux的文本行编辑器vi的使用方法
●熟练掌握Shell的基本语法,完成时间验证,计算时间差以及按时备份文件程序。
三.实验要求
1. 利用Shell编程,实现密码的验证
1) Shell程序提示输入密码
2) 用户输入
3) 系统将用户输入的密码与password比较
4) 若一致,则显示成功
5) 否则,提示错误,进行输入
6) 按Q/q退出程序
2. 编写小程序,计算用户输入的时间与系统时间的差值。
1) 提示用户输入时间
2) 用户输入
3) 判断输入时间是否合法
4) 若合法,则计算差值,判断显示“已过多少天”或者”还有多少天”
5) 不合法,结束程序
3. 编写一个备份程序,备份/home目录下的非目录文件,到/usr/logs目录下,当时间的分钟为5的倍数是,自动备份。
1) 启动程序,当系统时间分钟为5的倍数,自动备份。
2) 提示是否继续备份
3) 用户输入
4) 若选择n/N,退出程序
5) 其他则下一个5分钟,自动备份
四.实验步骤
1.使用vi命令编写第一个脚本输入头注释。
2.使用while do done循环作为程序的主题,每次循环中,使用read命令获取用户输
入的密码,通过与本地的密码判断,如果成功,输出密码正确,退出程序,否则判断是否是q/Q,匹配的话,通过break或者exit退出程序,否则输出密码错误,进行输入。
3.使用chmod密码给脚本提升权限,运行脚本。
4.编写计算时间差程序,首先使用read命令获取用户输入的时间,cal命令查找年月
判断用户输入的时间是否合法,使用while循环,知道用户输入正确,程序才向下执行。
5.使用date命令把用户输入的时间及当前系统时间转换成时间戳,作用是后面计算
日期差
6.计算出两时间戳的差,转换成天数,判断天数,根据正负符号显示还有多少天和已
过多少天
7.提示脚本权限,运行脚本,查看结果
8.编写自动备份程序,当系统时间的分钟为5的倍数是,使用tar命令把/home目录
下的非目录文件打包放在/usr/logs目录下。
首先判断/usr/logs目录存在否,若果不存,创建目录
9.使用while循环控制,取得系统时间的分钟,判断是否为5的倍数,若果是,开始
备份,备份完成后,提示用户输入是否继续备份,选择是,等待时间,继续,否则,退出循环,程序结束。
10.提升脚本权限,运行脚本,查看结果。