linux考试题(内付答案版)_第1页
linux考试题(内付答案版)_第2页
linux考试题(内付答案版)_第3页
linux考试题(内付答案版)_第4页
linux考试题(内付答案版)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 一 基本命令部分 1 查找系统中所有文件长度为0的普通文件 并列出它们的完整路 径 find empty find size 0 type f find type f size 0 exec ls l type f 普通文件 size 0 长度0 2 查找 zsh目录中更改时间在7日以前的普通文件 并在删除之前询 问它们 find zsh type f mtime 7 ok rm mtime 7 7天前 ok 删除前询问 3 myfile html内容如下 This is what I meant 删除HTML标记 也就是要得到 This is what I meant cat myfile html sed e s g e s g 或cat myfile html sed s g s g 4 使用tr命令将指定文件的空行删除 tr s n hjx txt s命令删除意思 和后面的 dev null 9 解释命令 trap echo hello int INT 当您运行Ctrl C 等中断时 会自动运行echo命令 trap命令用于指定在接收到信号后将要采取的动作 常见的用途是在 脚本程序被中断时完成清理工作 trap INT 表明忽略SIGINT信号 按Ctrl C也不能使脚本退出 10 强制结束指定进程号的进程 2 kill 9 进程号 11 将某个文件的属性更改为只有root可读写执行 chown root express 两条一起执行 这条是修改用户为root chmod 700 hjx 格式 rwx 分三组 有的写1 即111 000 000 12 查出系统中所有用户标识号大于99的用户 cat etc passwd awk BEGIN FS if 3 99 print 1 用户标识符在passwd文件以 号分隔的第三个域 说明 输出passwd的内容到管道 使用awk BEGIN FS 表示先设置使用分号划分域 如果 3 99 即第三个划分的域 用户标识 大于99 则输出 1 用户名 13 统计系统中用户标识号大于99的用户数 cat etc passwd awk BEGIN FS users 0 if 3 99 users END print users 14 按文件大小的降序列出目录中的所有文件 ls l sort nrk 5 或 ls l sort grk 5 g表示按大小排列 r表示倒序 k5表示按第五域排序 n 依照数值的大小排序 nrk 5即是按照数字方式倒序排序 根据文件属性的第5列即是文件大小排序 15 将当前目录下的所有文件打包成一个文件 tar czvf new tar gz 正确的 后面 表示当前目录 tar czvf hjx tar gz ls tar 对文件目录进行打包备份 c 创建一个新的档案文件 t 查看档案文件的内容 x 分解档案文件的内容 f 指定档案文件的名称 v 显示过程信息 z 采用压缩方式 二 分别使用sed和awk实现下面的功能 使用express文件 16 在每一行后面增加一空行 sed G express G为把内容缓冲区内容添加当前行 当前内容缓冲区为空行 awk print 0 n express 两种的效果一样的 17 设置文本中每一行后面有且只有一空行 sed d G express d 表示遇到空行 则删除 d命令执行后不会继续执行下面的命令G 而是直接读入下一 3 行重新执行 d G 进行处理 直到匹配到不是空行才执行G命令把hold space中的内容 此时为空 追加到文本的后面 然后默认输出 awk printf s n n 0 express 即是不是空行的 printf 0 表示输出当前处理的整行字符串 输出字符的格式 s n n 表示输出字符串 然后执行两个换行即空一行 18 在每行后面增加2行空行 sed d G G express awk printf s n n n 0 express 19 删除所有偶数行 sed n d express n 读取下一个输入行 用下一个命令处理新的行而不是用第一个命令 d 从模式空间 Pattern space 位置删除行 sed n d 执行n时会首先输出当前处理行 然后读取下一行 并使用d命令删除 awk NR 2 0 print 0 express NR 表示awk开始执行程序后所读取的数据行数 相关解释 NR 2 2 表示不是偶数行 20 在匹配The的行前插入空行 sed The x p x express x 交换pattern和hold space p 打印pattern space sed The x p x 第一个x首先交换 这时pattern space为空 hold space为匹配 xx 这一行的内容 交换后使用p输出模式空间中的内容为空行 然后再换回来 保持pattern space为空 为下一次处理做准备 awk if The printf n s n 0 else print 0 express awk if The printf n s n 0 表示匹配到The的行 就使用printf函数输出 0表示整行字符串 输出的 格式为 n s n 表示先换行再输出 然后再换行 表示The之前空一行 21 输出行号 行号和正文间加冒号 sed express sed N s n 表示打印当前行号 s String s re string把 n替换成 N 追加下一个输入行到模板块后面并在二者间嵌入一个新行 改变 当前行号码 后一个sed实现将下一行读取进模式空间 用 号匹配换行符 awk printf d s n NR 0 express d将替换为NR s将替换为 0 22 对文件中的所有非空行编号 sed express sed N s n 4 N 追加下一个输入行到模式空间后面并在二者间嵌入一个 n 改变当前行号码 打印当前行号 匹配一个非换行符的字符 表示第一个字符是非换行字符的输出行号 sed N s n 中N读取下一行 行的内容 并在两行之间插入 n 然后再使用s re string把 n替 换成 awk if printf d s n NR 0 else print 0 express NR 表示awk开始执行程序后所读取的数据行数 printf d s n NR 0 输出 格式为 十进制有符号整数 当前处理的行所包含的字符串 整个语句表示 如果不是空行 则调用printf函数以 数字 字符串 换行 的形式输出当 前处理行号了整行内容 否则 直接输出当前处理的整行内容 23 计算行号 模拟 wc l sed n express sed相关的命令参数 n quiet silent 安静模式 取消默认输出 锚定行的结束 如 sed 匹配所有以sed结尾的行 打印当前行号 表示打印最后一行的行号 n表示安静模式 不会输出其他行的相关内容 awk END print NR express awk相关的知识点 BEGIN和END 在awk 中两个特别的表达式 BEGIN和END 这两者都可用于pattern中 提供BEGIN和END的作 用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作 任何在BEGIN之后列出 的操作 在 内 将在awk开始扫描输入之前执行 而END之后列出的操作将在扫描完全 部的输入之后执行 因此 通常使用BEGIN来显示变量和预置 初始化 变量 使用END 来输出最终结果 所以awk END print NR 也就是在读取到最后一行之后 才输出对于的行号 也就是输出该文件的行数 24 模拟dos2unix sed s r g expressdos expressdos1 使用s re string替换多余的 r 然后默认输出模式空间中的数据 g 表示行内全面替换 awk gsub r print 0 express express2 gsub r s t 在字符串t中用字符串s和正则表达式r匹配的所有字符串 返回值是替换的个数 如果没 有给出t 默认是 0 使用gsub把 r替换成 然后再输出当前处理的整行字符串 25 将所有good改为bad并打印且只打印该行 sed n s good bad gp express n为静默模式 p为打印 awk gsub good bad print 0 express 5 gsub全面替换 使用gsub把good替换成bad 接着打印整行 26 将包含is的行的good改为bad并打印且只打印该行 sed n is good s good bad gp express n使用安静模式 is 匹配包含is的行 good 匹配包含is的行中包含good的行 s good bad g 把改行所有的good都替换成bad 然后使用p输出该行 awk if 0 is print 0 express 0 is 表示使用第0个域匹配 is 正则表达式 第0个域保存的即是当前处理的整行数据 0 is print 0 express 0 is 表示使用第0个域匹配 is 正则表达式 找出匹配不到的行继续进行处理 第0个域 保存的即是当前处理的整行数据 0 is j print A j express 31 显示文件中的最后10行 模拟 tail sed e a e q N 11 D ba express sed方法相关命令参数 e直接在指令列模式上进行 sed 的动作编辑 允许多台编辑 a表示建立一个标签a b跳转命令 这个命令是无条件跳转 ba表示跳转到标签a处 q退出Sed N追加下一个输入行到模板块后面并在二者间嵌入一个 n 改变当前行号码 D删除模板块的第一行 11表示文件第十一行 D表示如果不是最后一行则删除第一行 相关解释 首先创建一个a标签 然后不断执行这段代码 q N 11 D ba 如果是最后一行则退出sed 否则继续循环 N读取下一行 读取模式空间的第11行 如果是最后一行则删除模式空 间的第一行 继续跳到标签a处执行 awk a i 0 END if i 10 for j i 10 j i j print a j else for j 0 j10 如果是则输入最后10个元素 否则直接输出所有的元素 32 显示文件中的最后2行 模拟 tail 2 命令 sed N D express 表示如果不是最后一行则执行N命令读取下一行 D表示如果不是最后一行则删除第一 行 注意 执行D命令之后 pattern space 内不添加下一笔数据 而将剩下的数据重新执行sedscript 也就是直接再次执行 N命令 读入下一行 知道最后一行时就不执行D删除命令 此时 patten space中有最后两行数据 awk a i 0 END if i 2 for j i 2 j i j print a j else for j 0 j 50 print 0 express length s 函数 返回s长度 36 显示部分文本 从包含apple的行开始到最后一行结束 sed n apple p express awk BEGIN p 1 if 0 apple p 0 p 0 print 0 express 在处理语句之前 先执行BEGIN里面的语句 即让p 1 然后使用 0 apple p 0 判断正在处理的该行语句有没有apple 如果有 则让p 0 然后输出该行 由于此时p 0 所以条件总是成立 会把接下来到最后的语句全部输出 37 显示通篇文档 除了从包含apple的行到包含google的行 sed apple google d express apple google d表示匹配从包含apple的行到包含google的行 然后使用d全部删除 awk BEGIN p 1 if 0 apple else p 0 if 0 google p 1 express 首先在BEGIN中给p赋初值1 然后依次处理每一条语句 如果没有匹配到apple并且p 1 则输出改行 否则p 0 直到匹配到google为止 才让p 1 继续输出 三 shell部分 38 解释一下什么是shell 文字操作系统与外部最主要的接口就叫做shell shell是操作系统最 外面的一层 shell管理你与操作系统之间的交互 等待你输入 向 操作系统解释你的输入 并且处理各种各样的操作系统的输出结果 Shell基本上是一个命令解释器 39 编写一个名为nf的程序 显示当前目录中的文件数 键入程序并 测试 ls awk files END print files 使用ls把当前目录下的所有文件信息送入管道 使用awk进行累加计算文件个数 40 编写一个名为whos的程序 显示排好序的已登录用户清单 只显 示用户名 不要有其他信息 键入程序并测试 who sort r n k1 awk print 1 Sort命令的功能是对文件中的各行进行排序 8 n按照数字方式排序 r 颠倒指定排序的顺序 k作用是根据某个列来排序 默认是第1列 从1开始 使用who吧当前在线用户情况送入管道 然后使用sort进行排序 k1表示按照第一列即是用户名来排序 然后使用awk处理输出 1 1即是使用制表符或者 空格作为分隔符分隔用户信息得到的第一个字段 即是用户名 全字段对应为 0 41 在终端上显示 displays the value of x which is x 显示的时候 第2个 x的值应该被替换 比如如果x 3 显示 displays the value of x which is 3 x 3 echo displays the value of x which is x 42 依次执行下面三条命令 分析结果 filename home zsh express filename echo filename tr echo filename cut cl echo filename 结果为 home zsh express 通过使用 tr 可以非常容易地实现 sed 的许多最基本功能 可以将 tr 看作为 sed 的 极其 简化的变体 使用tr命令可以用一个字符来替换另一个字符 或者可以完全除 去一些字符 也可以用它来除去重复字符 cut命令可以从一个文本文件或者文本流中提取文本列 具体的说就是在文件中负责剪切数 据用的 cut是以每一行为一个处理对象的 这种机制和sed是一样的 首先filename home arthinking express是给变量赋初值 filename echo filename tr echo filename cut c1 这句中c1表示取出第一个字符 即是 tr echo filename cut c1 即是把 转换成 echo filename中的filename是一个字符串 并不是变量 所以这里只能输出filename 43 shell编程里的 结构是什么作用 举例说明 作用 一个命令的标准输出插在一个命令行中任何位置 例如 上例中 echo filename cut c1 44 编写一脚本 打印出所有的参数 echo they are 传递给shell script的参数 45 编写一个脚本 统计参数的总数 echo there are arguments passed 表示传递给shell script的参数个数 46 编写一个脚本 判断指定的文件是否存在 if e 1 then echo 1 do not exist 9 fi 47 编写一个名为rename的程序 给第1个参数所给定的文件更名 在原 名后添加第2个参数包含的一串字符 即 rename memol sv 应该将文件memol更名为memol sv 创建一个rename的文件 在里面编写 mv 1 1 2 在终端进入rename所在的目录 运行 rename a txt 其中a为需要修改的文件名 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中 48 编写一个名为unrename的程序 从第1个参数指定的文件名的后 部去掉第2个参数包含的字符串 即 unrename memol sv sv 应该把文件memol sv更名为memol 要保证从尾部去掉字 符串 如 unrename test1test test 应该将tes1test更名为test1 提示 用sed和命令替换 mv 1 echo 1 sed s 2 修改文件名命令mv中的参数 1为需要的文件名 echo 1 sed s 2 为想要修改的格式 其中 echo 1 sed s 2 表示把 1中的变量送入管道 使用sed的替换功能s re string将 1中匹配到 2 2 表 示匹配第二个域的内容直到结尾的 替换为空 即是去掉 49 编写一个shell脚本 使用循环语句将当前目录下的 c文件更名为 cpp for loop in ls do if echo loop grep q c then echo rename loop to echo loop sed s c cpp mv loop echo loop sed s c cpp fi done for loop in ls 表示变量loop从ls命令得到的列表中取值 if echo loop grep q c 中 q表示取消显示 整句表示判断是否找到以 c结尾的文件 找到则执行then里面的语句 mv loop echo loop sed s c cpp 表示把 c换成 cpp 50 source命令和exec命令有啥区别 举例说明 虽然exec和source都是在父进程中直接执行 但exec这个与source有很大的区别 source是 执行shell脚本 而且执行后会返回以前的shell 而exec的执行不会返回以前的shell了 而是 直接把以前登陆shell作为一个程序看待 在其上经行复制 不过 要注意一个例外 当exec命令来对文件描述符操作的时候 就不会替换shell 而且操 作完成后 还会继续执行接下来的命令 1 0 在shell中执行ls ls结束后不返回原来的shell中了 exec ls 将express中的内容作为exec的标准输入 exec express 在当前目录下 包含子目录 删除所有txt文件 find name txt exec rm 解释下面的shell脚本 51 bin sh rm f fred 强制删除fred if f fred then 判断fred是否是普通文件 else echo file fred does not exist fi exit 0 52 bin sh echo The date is date 输出时间 set date 设置时间 echo The month is 2 输出第二个参数 exit 0 53 bin sh while 1 do echo 1 输出所有的参数 shift 把位置参数左移 done exit 0 四 make命令部分 54 解释下面的makefile文件 all myapp 为目标依赖myapp Which compiler CC gcc CC指定编译器 Where to install INSTDIR usr local bin 1 1 Where are include files kept INCLUDE Options for development CFLAGS g Wall ansi CFLAGSC 编译器的选项 wall是打开警告开关 g 可调试 ansi c的一种标准 O可执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论