linux复习要点,考试必备(详细版)
《Linux操作系统》复习提纲

考试形式:理论闭卷判断题:1*10=10分单项选择题:1*15=15分多项选择题:2*10=20分填空题:1*20=20分简答题:3题20分操作题:目录管理、文件归档、文件权限设置等15分考试时间:120 分钟第1章Linux操作系统的安装与启动Linux简介:主要知识点:1、Linux的开发者:芬兰赫尔辛基大学的学生Linus Torvalds,目前,仍然由他领导一个开发小组继续进行内核的开发1991年9月,Linux第一个内核版本0.01问世2、Linux是自由软件,受GPL版权协议的保护3、GNU项目的含义:GNU不是UNIX的递归缩写,发起人Richard Stallman4、Linux操作系统的完整名称是GNU/Linux5、Linux操作系统的组成Linux内核:版本号一般由3部分数字组成,采用r.x.y格式,其中r代表主版本号;x为副版本号,若为偶数,则表示稳定版本,若为奇数,则为开发中的版本;y代表错误修补次数,如2.6.18为稳定版本。
●Shell:是系统的用户接口,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它们送入内核执行。
实际上Shell是一种命令解释器。
Linux支持的Shell包括:bash(Rh9默认shell)、ash、bsh、tcsh、csh●Linux文件系统:是文件存放在磁盘等存储设备上的组织方法。
支持:FAT16、FAT32、EXT3、ReiserFS、XFS、JFS、ISO9660、NFS等。
●Linux应用程序:包括文本编辑器、编程语言、X Window图形桌面系统、办公软件包、Internet工具及数据库5、Linux的特点:(1)完全免费、源代码开放(2)多用户多任务、支持多进程和多线程(3)丰富的网络功能(4)可靠的安全性和稳定性(5)完全兼容POSIX标准(6)支持多种平台(7)良好的用户接口5、Linux发行版本:指一些组织或商业厂家,将Linux系统的内核与外围应用软件和文件封装起来,将提供一些系统安装接口和系统设置与管理工具。
Linux复习知识点(1)

Linux复习知识点第一章:1、linux的特点:与UNIX系统兼容、自由软件和源码公开、性能高和安全性强、便于定制和再开发、互操作性高、全面的多任务和真正的32位操作系统2、linux的版本:核心版本、发行版本第二章:1、简单命令:(1)who命令:who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。
而who am i命令将列出使用该命令的当前用户的相关信息(2)date命令:date命令在屏幕上显示或设置系统的日期和时间。
如果没有选项和参数,将直接显示系统的当前日期和时间(3)cal命令:cal命令显示公元1~9999年中任意一年或任意一个月的日历。
如果使用该命令时不带任何参数,则显示当前月份的日历。
如果在cal命令后只有一个参数,则该参数被解释为年份,而不是月份(4)su命令:不退出系统而使自己成为另外一个用户。
格式:su-用户名(5)注销:exit、Ctrl+d,重启:reboot,关闭:halt2、文件概念和文件类型(1)文件系统的概念:磁盘上的文件系统是层次结构,有若干目录和其子目录组成,最上层的目录为根(root)目录,用“/(斜杠)”表示(2)文件类型:Linux:操作系统支持以下文件类型:普通文件、目录文件、设备文件及符号链接文件3、文件操作命令(1)cat命令:cat经常用来显示文件的内容(2)more命令:分屏显示(3)head:head命令在屏幕上显示指定文件的开头若干行(默认前10行)(4)tail命令:tail命令在屏幕上显示指定文件的末尾若干行。
(5)cp命令:cp命令将源文件或目录复制到目标文件或目录中。
cp-r复制目录(6)rm命令:rm命令删除文件和目录,rmdir要求删除时目录为空(7)mv命令:mv命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中(剪切)。
(8)wc命令:统计指定文件的字节数、字数、行数,并将统计结果显示出来。
最新《LINUX系统及其编程》考试复习重点

1《LINUX系统及其编程》复习大纲21.Linux系统的类型、结构(内核、shell用户界面的作用)32.安装Linux时需要收集哪些信息?43.Linux磁盘分区(分区方式、分区工具、分区类型、分区参数)54.交换分区的作用65.Linux分区与目录的关系76.用户帐号的设置8习题1-8、1-9、1-12、1-13、1-1597.Linux终端及其工作方式(Linux终端的选择方法及其字符命令行方10式与图形操作界面的转换方法)8.什么是shell?shell命令解释器的作用11129.shell提示符1310.Linux系统中的文件类型(主要文件类型的标识)11.Linux的文件目录结构(系统目录:/usr、/home、/dev、/bin、1415/etc,/var的作用,用户主目录:/home/用户名~,“.”、“..”目录)1612.通配符(*、?[、]、-)转义字符(\)的使用方法1713.目录和文件的基本操作18(cat、more、less、cp -r 、rm -r、mv、mkdir、rmdir、cd、pwd、ls -al)1914.链接类型及其不同链接类型之间的区别,链接的作用。
习题 2-1~2-5、2-8~2-15、2-17、2-22202117.vi编辑器(三种基本工作模式及其转换、保存文件和退出vi的方法)22习题 3-1、3-2、3-32318. X Window系统(组成部分及其每部分的作用)2419.Linux系统两种主要的桌面系统环境是什么2520.桌面系统与X Window和窗口管理器的关系26习题4-1、4-2、4-3、4-7~4-102721.挂载一个存储设备(需要的信息,挂载卸载命令以及使用注意事项) 2822.Linux所支持的文件系统类型2923.Linux系统中存储设备的名称3024. 虚拟文件系统(VFS)的作用3125.自动挂载及其配置文件配置文件/etc/fstab32习题 6-2、6-3、6-4、6-5、6-8、6-93326.配置网络接口设备的几种方法3427. 常用的网络服务管理工具3519.常用网络服务的作用及其启动和关闭的方法3620.Linux帐号的分类(UID和GID)3721.用户帐号信息的配置文件/etc/passwd及其内容3822.在Linux系统中如何保存用户口令信息3923.基本用户管理命令(adduser、passwd、userdel、usermod、su)4024.文件权限管理命令(chown、chmod)4125.Linux系统进程的类型4226.Linux系统启动进程的方式4327.Linux系统进程管理命令(at、batch)44习题 9-1、9-2、9-3、9-8、9-11、9-12、9-13、9-164528.什么是shell程序?说明shell程序的一般格式。
Linux 期末复习重点

Linux 期末复习重点1网络操作系统1.概念:网络操作系统是建立在计算机操作系统基础上,用于管理网络通信和共享资源,协调各主机上任务的运行,并向用户提供统一的,有效的网络接口的软件集合,运行在服务器之上,有时也称为服务器操作系统。
2.功能:1.网络通信:实现无差错传输,建立拆除通信链路,传输控制,差错控制,流量控制,路由选择等。
2.资源管理:对网络中所有软硬件资源实施有效管理,协调用户对共享资源的使用,保证数据的安全性,一致性和完整性。
3.网络管理:通过访问控制确保数据安全,容错技术保证系统故障时数据可靠性。
4.网络服务:提供多种有效的网络服务,如电子邮件服务,远程访问服务。
5.互操作:将若干设备和网络互联,用户可以透明访问,已实现更大范围的用户通信和资源共享。
6.网络接口:向用户提供一组有效的同意的能获取网络服务的接口。
Linux命令行与shell操作vi编辑器:1.三个模式:命令模式,插入模式,末行模式。
2.进入退出:1.在命令模式下输入A(行尾)a(右)I(行首)i(左)O(所在行上方)o(所在行新增一行)进入插入模式,esc退出3.命令模式下输入:进入末行模式4.在命令行中输入vi或vim即可进入vim编辑器。
5.Vim filename 将打开指定文件。
6.:wq将文件以当前文件名保存并退出vim编辑器;:q 退出编辑器,:q!不保存文件强行退出,:qw保存文件并退出。
用户与组管理1.用户账户三种类型:根账户root UID默认为0,系统账户1-999包括65534,普通账户UID从1000开始编号。
2.组是一类特殊账户,就是指具有相同或者相似特性的用户集合,又称用户组。
用户与组属于多对多的关系。
3.组账户分为超级组,系统组和自定义组。
4.用户账户信息(除密码外)保存在/etc/passwd配置文件中5.密码保存在/etc/shadow文件中。
MD5加密算法。
6.组账户基本信息(除密码外)保存在/etc/gpasswd配置文件中7.组账户密码保存在/etc/gshadow配置文件中。
复习提纲linux

1、linux创始人及主流产品?Linux 的创始人 Linus Torvalds. Asianux ,B2D Linux ,Conectiva Linux ,Debian GNU/Linux,Fedora Core ,Gentoo Linux ,Knoppix Linux ,Linux From Scratch ,Magic Linux ,Mandriva Linux ,Red Hat Linux ,Slackware Linux ,Stanix Live CD ,SUSE Linux ,Turbo Linux ,Ubuntu Linux红旗Linux(Redflag Linux) ,冲浪Linux(Xteam Linux) ,蓝点Linux ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,Open Desktop ,新华Linux ,共创Linux ,百资Linux ,中标普华Linux ,中软Linux ,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux ,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS ,FANX,Everest,酷博linux2、磁盘接口类型:IDE SCSI,访问分别用hdxy ,sdxy,其中x指的是第几块硬盘,用a,b,c等表示;y指的是分区号,从1开始。
3、一个硬盘最多只允许4个分区(主分区与扩展分区)扩展分区中只允许有一个,但可以建立多个逻辑分区至少应该建立一个/ 分区和一个/swap分区了解文件系统类型: ext2 ext3 ext4 Swap vfat NFS ISO9660其中交换分区的悬挂点是以上哪种类型?swap4、用户在字符界面成功登录,就会执行一个shell程序,普通用户的提示符为和特权用户(root)提示符分别是什么?$这是普通用户 #这是根用户,也就是root5、shell类型:sh csh ksh bash(系统默认)6、重定向与管道输入重定向:<输出重定向:> 覆盖已有文件,>> 追加重定向如,将a.txt内容追加到b.txt后面用>>命令如何实现?cat a.txt>>b.txt管道:| 将一个程序的输出作为另一个程序的输入,实现程序间的通信7、工作目录:用户的当前目录,可以使用pwd命令查看当前工作目录主目录:用户个人数据的存储位置,用~表示。
Linux 系统编程基础考试复习总结

一、Linux 文件系统:Linux 文件系统:对一个存储设备上的数据和元数据进行组织的机制。
●Windows中常用的文件系统FAT16,FAT32,NTFS;●Linux中常用的文件系统有EXT2,EXT3,XFS,reiserfs,RAMFS等;Linux分区号命名规则:Linux 把各种IDE设备分配了一个由hd 前缀组成的文件;而对于各种SCSI 设备,则分配了一个由sd 前缀组成的文件。
第一个IDE 设备,Linux 就定义为hda;第二个IDE 设备就定义为hdb;下面以此类推。
SCSI 设备就应该是sda、sdb、sdc 等。
USB存储设备属于SCSI设备,其编号为sdX;Linux分区和Windows分区的对应关系:●硬盘分区分为主分区、扩展分区和逻辑分区。
●一个硬盘最多可以分4个主分区;因此硬盘可以被分为1-3个主分区加一个扩展分区,或者仅有1-4个主分区。
●对于扩展分区,可以继续对他进行划分,分成若干个逻辑分区,也就是说扩展分区只不过是逻辑分区的“容器”●主分区的名称分别是hda1、hda2、hda3和hda4 。
逻辑分区的名称一定是从hda5开始,每增加一个分区,分区名称的数字就加1。
Linux和Windows文件系统比较●Windows下,目录结构属于分区,windows启动时检测不同的分区并被赋予一个分区字母;●Linux下,分区‘加载’于目录结构,除非你加载一个分区或设备,否则系统不会知道那个分区的存在。
●这看上去也许不是访问分区或设备的最方便的方式,但是这种方式提供了最大的机动性。
Linux文件系统装载在Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。
使用mount 命令将一个文件系统分区附着到当前文件系统层次结构中(根)。
在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。
mount -t ext3 /dev/hda1 /mntext3文件系统的特点:高可用性、数据的完整性、文件系统的速度;EXT3三种日志模式:Journal模式、Ordered模式、写回(Writeback)模式Linux允许众多不同类型的文件系统共存,并支持跨文件系统的操作,这是由于虚拟文件系统(Virtual File System,简称VFS)的存在Linux常用命令:管理文件和目录的命令Pwd :显示当前的目录cd :用户改变用户的工作目录Ls:显示目录中的内容cp :复制文件cp [options] 源文件目标文件Mv:移动文件或文件换名mv [options] 源文件目标文件ln 在文件间建立连接ln [options] 源文件[目标文件]ln [options] 源文件…目录mkdir :建立用户目录,-p选项,命令将会自动建立不存在的中间目录chmod :改变文件或目录的许可权限chmod [options] 文件名…u 代表用户自己,即文件的所有者g 代表本人所在的组,组成员o 系统中其他的用户a 所有用户+ 增加权限- 减少权限= 使存储权限等于r 读权限w 写权限x 执行权限touch :创建一个空文件或者改变文件的时间参数find :搜索特定文件find [路径…] [表达式] grep :在文件中搜索匹配行并输出cat :连接文件并输出cat [options] [file…]磁盘管理的命令文件备份和压缩命令备份:cpTar:打包备份文件-c 创建文件-z 使用gzip压缩-f指定文件-r 把要存档的文件追加到档案文件的未尾;t 列出档案文件的内容,查看已经备份了哪些文件u 更新文件x 从档案文件中释放文件。
linux考试复习题

linux考试复习题Linux考试复习题Linux作为一种开源的操作系统,已经成为了计算机科学领域中不可或缺的一部分。
无论是在服务器端还是在个人电脑上,Linux都有着广泛的应用。
对于计算机专业的学生来说,熟悉Linux系统是必不可少的。
下面,我们来复习一些关于Linux的考试题目。
一、命令行操作题1. 如何查看当前目录下的文件和文件夹?答:使用ls命令,输入ls即可显示当前目录下的文件和文件夹列表。
2. 如何在命令行中创建一个新的文件夹?答:使用mkdir命令,输入mkdir <文件夹名>即可创建一个新的文件夹。
3. 如何复制一个文件到另一个目录下?答:使用cp命令,输入cp <源文件路径> <目标目录路径>即可将文件复制到目标目录下。
4. 如何删除一个文件夹及其内部所有文件和文件夹?答:使用rm命令,输入rm -rf <文件夹路径>即可删除该文件夹及其内部所有文件和文件夹。
5. 如何查看一个文件的内容?答:使用cat命令,输入cat <文件路径>即可查看该文件的内容。
二、文件权限题1. 如何修改文件的权限为只有所有者可读写,其他用户无权限?答:使用chmod命令,输入chmod 600 <文件路径>即可将文件权限设置为只有所有者可读写。
2. 如何修改文件夹的权限为所有用户可读写执行?答:使用chmod命令,输入chmod 777 <文件夹路径>即可将文件夹权限设置为所有用户可读写执行。
三、进程管理题1. 如何查看当前运行的所有进程?答:使用ps命令,输入ps -ef即可查看当前运行的所有进程。
2. 如何杀死一个进程?答:使用kill命令,输入kill <进程ID>即可杀死该进程。
四、软件包管理题1. 如何在Ubuntu系统中安装一个软件包?答:使用apt-get命令,输入sudo apt-get install <软件包名>即可安装该软件包。
Linux操作系统复习提纲

Linux操作系统复习提纲0、考试相关的事项闭卷,时间是90分钟成绩:平时成绩50%(项目30%,实验与出勤20%),卷面成绩50% 1、基本命令(1)ls作用:查看当前目录或某一目录下的文件或子目录。
-l 长格式-a 隐藏文件(以点开头的文件)-R 显示整个目录结构,类似于tree这条命令-d 显示目录本身举例:(2)pwd作用:查看当前目录[root@fileserver ~]# pwd/root(3)cd作用:改变目录[root@fileserver ~]# cd /aaa/bbb[root@fileserver bbb]#[root@fileserver bbb]# ls2.txt ccc[root@fileserver bbb]#[root@fileserver bbb]# pwd/aaa/bbb(4)cp作用:复制文件或目录-r 复制目录[root@fileserver bbb]# cp /etc/hosts /aaa[root@fileserver bbb]#[root@fileserver bbb]# ls /aaa1.txt bbb hosts[root@fileserver bbb]#[root@fileserver bbb]# cp -r /aaa /tmp[root@fileserver bbb]#[root@fileserver bbb]# ls /tmpaaa gconfd-root mapping-root scim-panel-socket:0-root (5)mv作用:移动文件或目录,或者给目录与文件改名[root@fileserver bbb]# mv 2.txt 3.txt[root@fileserver bbb]#[root@fileserver bbb]# ls3.txt ccc[root@fileserver bbb]# mv 3.txt /aaa[root@fileserver bbb]#[root@fileserver bbb]# ls /aaa1.txt 3.txt bbb hosts[root@fileserver bbb]#[root@fileserver bbb]# lsccc(6)mkdir作用:创建目录-p 创建多级目录的时候,先创建父目录[root@fileserver bbb]# mkdir /a/b/cmkdir: 无法创建目录“/a/b/c”: 没有那个文件或目录[root@fileserver bbb]#[root@fileserver bbb]# mkdir -p /a/b/c系统常见目录/etc 配置文件的目录/etc/hosts、/etc/samba/smb.conf/home 普通用户家目录,当创建一个用户,就会在这个目录里面创建一个与用户名同名的目录作为此用户的家目录,比如,创建用户user01 时,就会创建/home/user01,作为user01的家目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 ➢ 计算机系统由硬件和软件组成。 ➢ 操作系统是用户与计算机硬件系统间的接口,用于控制和管理系统资源 ➢ Linux的各组成部分
➢ Linux内核(Kernel)采用模块化的结构,其主要模块包括:存储管理、CPU和进程管理、文件系统管理、设备管理和驱动、网络通信以及系统的引导、系统调用等。Linux内核的源代码通常安装在/usr/src/linux目录,可供用户查看和修改
➢ Linux的主要特点: 真正的多用户多任务、良好的兼容性、强大的可移植性、高度的稳定性、支持多种文件系统、开源特性、免费使用。
➢ Shell: 指“提供使用者使用界面”的软件(命令解析器)。在Linux系统中,shell是操作系统的外壳,为用户提供使用操作系统的接口,它是命令语言、命令解释程序和程序设计语言的统称。操作系统的shell程序,介于用户和操作系统内核(Kernel)之间,负责将用户的命令解释成操作系统可以接受的指令,然后由操作系统来执行这些指令,并将操作系统执行的结果以用户可以了解的方式反馈给用户。
➢ 1.查阅历史记录—history命令 例如:$history\$history n(n为第几条记录) 快速执行旧命令用 ! 例如:$ !478 2. 输入/输出重定向: < 输入改向 、<< 追加输入改向、> 输出改向、>> 追加输出改向 0 标准输入(stdin) 1 标准输出(stdout)2 标准错误输出(stderr) 例1:使用输入重定向查看ls_result.txt文件 cat < ls_result.txt 例2:将date的输出转向到myfile文件中date > myfile 例3:将ls 的输出追加到myfile文件中 ls -l>>myfile 例4:将错误输出改向到err-file文件 myprog 2 >err-file 例5:将标准输出和错误输出改向out文件 myprog >out 2>>out myprog >out 2>>&1 例6:创建f1,f2从键盘输入内容;将f1内容追加到f2,创建f 3,将f1与f2合并到f3;从键盘向f1追加“Hello world” cat > f1 cat > f2 cat f1 >> f2 cat f1 f2 > f3 cat >> f1 3. 1)通配符(*和?) “*”和“?”是Linux系统中最常用的两个通配符,在字符串查找的时候,通配符可以代替任意的字符。其中“?”可以代替一个任意字符,“*”可以代替任意多个字符。例如,执行“ls –l /root/test*”命令就会列出/root目录下所有以test打头的所有文件名 2)命令取代符(`) 命令取代符“`”在Esc键下方,与“~”符号在同一个键上。两个“`”符号包围的命令,是该命令行中首先被执行的命令。例如,“echo `date`”命令,首先执行date命令,然后使用echo来显示date命令的结果,而不是显示字符串date 3)命令分隔符(;) cd /etc ; more passwd
硬件 Kernel Shelll 用户 2 ➢ 在bash中,查看全部环境变量有两种方法: env命令 set命令 例如:set | tail -5或者 env | tail 使用管道和tail控制查看后几个环境变量。若要查看当前某个环境变量的值,可以使用echo命令。echo $环境变量名 例如:echo $UID 设置环境变量值的方式: export 环境变量名=环境变量值 例如: export LOGNAME=aaaaa 例如:将/home/lyz/exam加入到PATH中 $PATH=/home/lyz/exam:$PATH $export PATH
➢ 创建和执行一个shell程序非常简单,一般需要以下3个步骤: (1)利用文本编辑器创建脚本内容。 (2)使用“chmod”命令赋权,设置脚本的可执行属性。 (3)执行脚本 例如:创建Hello.sh的shell程序 1.#!/bin/sh ----为实际的解释器 echo `date +%Y%m%d` 2.设置Hello.sh文件的可执行属性 chmod a+x Hello.sh 3.执行Hello.sh脚本 ./ Hello.sh 或者: sh Hello.sh
➢ vi有两种工作模式: 编辑模式:用来输入和编辑文件的模式,屏幕上会显示用户的键入,按键不是被解释为命令执行,而是作为文本写到用户的文件中。 指令模式:用来编辑、存盘和退出文件的模式。 在指令模式下键入如下命令可以退出vi。 :q 如果用户只是读文件的内容而未对文件进行修改,可以在命令模式下输入“:q”退出vi。 :q! 如果用户对文件的内容作了修改,又决定放弃对文件的修改,则用“:q!”命令。 :w! 强行保存一个vi文件,如果该文件已存在,则进行覆盖。 :wq 保存文件并退出vi。 ZZ 快速保存文件的内容,然后退出vi。功能和“:wq”相同。 :w filename 相当于“另存为”。 :n,mw filename 将第n-m行的文本保存到指定的文件filename中。
➢ chmod命令:权限设定字符串。格式:[所有者][+-=][权限] 所有者:u:用户 g:组 o:其它 a:所有用户(默认) 权限: r:读 w:写 x:执行 s:设置用户(组)的ID号 t:设置粘着位(sticky bit),防止文件或目录被非属主删 u:用户的当前权限 g:组的当前权限 o:其他用户的当前权限 +-= : +:增加权限 -:删除权限 =:重新分配权限 例如:chmod u+x file 给file的属主增加执行权限 chmod 751 file 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
➢ shell程序语法和其他高级语言程序类似,包括变量、控制结构和函数等。bash脚本是一种弱类型的脚本语言。 ➢ shell变量: 3
变量的声明:变量名=值 注意:等号两边不能存在分隔符(包括空格,制表位和回车符)。 例如:a1="hello" b1=90 变量的赋值:键盘输入:使用read命令 例如: read var1 var2 var3 键盘输入:Hello my friends echo $var1 变量的引用:通常,要引用一个变量,可以采取在变量名前加一个$的方法,即“$变量名”。 例如: echo "a1 is $a1"
➢ shell表达式:在bash中单纯使用一个表达式作为命令或语句是错误的,而必须使用expr或let命令来指明表达式是一个运算式。 ➢ bash中条件测试:test cond_expr 或 [ cond_expr ] 注意:利用一对中括号时,左右的中括号与表达式之间都必须存在空格。 cond_expr是需要测试的条件表达式,可以是以下几种情况: (1)文件存取属性测试:包括文件类型,文件的访问权限等。 (2)字符串属性测试,包括字符串长度,内容等。 (3)整数关系测试,包括大小比较,相等判断等。 (4)上述3种关系通过逻辑运算(与、或、非)的组合。
➢ 例1: 根据用户输入的目录名称判断该目录是否存在,如果存在则进入该目录,否则测试同名文件是否存在,如果存在,则退出shell程序,否则新建同名目录,并进入该目录。
首先使用test命令测试test.sh是否存在其可写,从ls –l命令返回的结果看,确实是test.sh文件存在且可写的,所以“echo $?”命令返回0表示真。然后又使用中括号测试。 tdir是不是目录以及是否可写,从ls –l命令的返回来看,tdir同样是目录且可写的,所以返回真。其中“$?”表示引用变量“?”,而变量“?”是一个特殊变量,可以返回紧邻的前驱命令的返回值。 4
#!/bin/bash #an example script of if clear echo "input a directory name, please!" read dir_name #测试$dir_name目录是否存在 if [ –d $dir_name ] ; then cd $dir_name > /dev/null 2>$1 echo "$dir_name has already existed,enter directory succeed" #测试是否存在与$dir_name同名的文件 elif [ -f $dir_name ] ; then echo "file: $dir_name has already existed,create directory failed" exit else mkdir $dir_name > /dev/null 2>$1 cd $dir_name echo "$dir_name has not existed,create and enter directory succeed" fi 本例中:“cd $dir_name > /dev/null 2> $1”表示cd命令可能产生的标准输出信息和标准错误输出信息重定向的到一个空设备/dev/null,从而实现隐藏cd命令错误输出的功能。 例2: 使用case语句编写程序,接收键盘输入,输入为1,输出red;输入为2,输出green,输入3,输出pink,其他输出input error。 #!/bin/bash #an example script of case clear echo “please enter a character(1~3):" read c1 case $c1 in 1) echo “red”;; (双分号“;;”) 2) echo “green”;; 3) echo “pink”;; *) echo "input error!";; esac echo “Success!!!”
➢ 编译的过程: 1.预处理(Preprocessing):分析各种预处理命令,如#define, #include, #if等; gcc -E test.c -o test.i 2.编译(Compilation): 根据输入文件产生汇编语言的程序; gcc -S test.i -o test.s 3.汇编(Assembly): 将汇编语言输入,产生扩展名为.o的目标文件; gcc -c test.s -o test.o