Linux 系统命令操作语法的格式:

  命令        【参数选项】          【文件或路径】

  rm                      -f                              /etc/hots

  提示:

  1、括号中[]表示可选,即命令的参数及路径文件是可选的;一个命令不同的功能

  2、参数选项表示使用一个命令的不同功能。 

  1)创建一个目录/data

  解答:

  提示:Windows下的路径样式为C:\data\test,而linux下的路径样式为/data/test

  因此/data就可以看做是c:\data,不同的是Windows系统下还有D、E等盘,Linux下就只有/,它为所有目录的顶点。

  英文:make directorys缩写后就是mkdir,这就是创建目录的命令。

  本题命令答案:

  mkdir /data   或者cd /;mkdir  data

  提示:使用分号可以在一行内分隔两个命令,考试中发现很多同学把两个命令写到了一行,但是却没有加分号分隔,那样执行起来会报错的。

  学生常犯的错误:把data看成了date,data是数据的意思,而date是日期的意思,这是完全不同的。

  创建目录,如果文件已经存在,则会提示文件已存在,不能创建。

root@zhu-K53SJ:/# cd /;mkdir data
root@zhu-K53SJ:/# ls -ld /data
drwxr-xr-x root root 10月 : /data
root@zhu-K53SJ:/# mkdir /data #目录已经存在,则不能创建
mkdir: 无法创建目录"/data": 文件已存在

  总结:

  cd后跟相对路径或者绝对路径,表示进入目录。如果不跟任何东西,会进入当前用户的家目录。

  相对路径概念:不从“/”开始,而是从当前目录开始。例如:data/, mnt/oldboy

  绝对路径概念:从"/“开始的目录,就叫绝对路径。例如:/data/,/mnt/oldboy

  2)在/data下面建立一个文件oldboy.txt

  解答:

  命令答案:

  touch /data/oldboy.txt  或者  cd /;touch oldboy.txt

  #创建文件也可以用echo等,只不过touch是专业的。

  例如:echo > /data/oldboy.txt或  > /data/oldboy.txt也可以创建文件。当然还有很多可以间接创建文件的命令,如vi,cat等。见后文。

root@zhu-K53SJ:/data# ls
alex.txt oldboy.txt
root@zhu-K53SJ:/data# touch oldboy.txt

  注意:touch创建文件,如果文件已经存在,则不创建文件,也不覆盖,只修改文件的时间属性(时间戳:创建时间,修改时间等等)

  总结:touch:摸,触摸的意思,创建文件或更新时间戳。如果文件存在,则更新时间戳;如果文件不存在,则创建文件

  3)为oldboy.txt增加内容为“I am studying linux”

  解答:

  法一:常规编辑方法

  执行vi oldboy.txt进入vi编辑器(默认命令模式),点击a或i进入编辑模式,敲入内容I am studying linux,然后按键盘上的esc键退出编辑模式(进入命令模式),然后敲:wq保存病退出。wq解释:write quit(写入并退出),:q退出,:q!强制退出,加"!"强制退出。

  此法说明:

  vi 就是类似记事本一样的Linux下的常用的编辑器了,如果想功能更丰富可以用vim替代vi,vim类似高级的编辑器例如emeditor,iv/vim的内部有很多命令技术点要掌握。

  下图为vi/vim的工作模式图:

  法二:单行或多行文本文本插入常用命令,内容都是放到文件的尾部

  echo "I am studying linux" > /data/oldboy.txt

  1、如果没有oldboy.txt,会创建oldboy.txt文件

  2、如果有oldboy.txt,会清空内容,放入单引号的内容。

  echo "I am studying linux." >>/data/oldboy.txt   这个在企业里面很常用:单行内容追加到文件的结尾。

  实践过程:

  echo "I am studying linux." >> /data/oldboy.txt   特殊的编辑文件方法,通过echo命令使用单引号把引号的内容通过>>追加到/data/oldboy.txt,注意:追加就是增加,不是覆盖,例子如下:

root@zhu-K53SJ:/data# echo "覆盖文件的信息" > oldboy.txt      #单">"大于号是用来写入的,如果文件存在,则覆盖原文件的信息;不存在,则创建新的文件
root@zhu-K53SJ:/data# cat oldboy.txt
覆盖文件的信息 root@zhu-K53SJ:/data# echo "使用echo往文件里面追加信息,'>>'双大于号,是用来追加信息的" >> oldboy.txt #”>>"双引号是往文件末尾追加信息
root@zhu-K53SJ:/data# cat oldboy.txt
覆盖文件的信息
使用echo往文件里面追加信息,'>>'双大于号,是用来追加信息的

  此法说明:

  echo是一个打印输出内容的一个常用命令,配合">"或">>"可以为文件覆盖及追加内容,这个命令可要掌握哟。">"的意思为重定向,会清楚文件里所有以前数据,“>>”为内容追加,只在文件尾部追加需要的内容,还有一个教复杂不常用的类似命令,printf。

  法三:写脚本重用,追加多行,内容都是放到文件的尾部

  cat >>/data/oldboy.txt<<EOF

root@zhu-K53SJ:/data# cat >oldboy.txt        #cat >oldboy.txt,然后向文件里面写入信息,按ctrl + c或d,结束输入
I am studying linux
^C
root@zhu-K53SJ:/data# cat oldboy.txt
I am studying linux

  方法四:多行文本追加,可以使用cat方法,"<<"表示输入,把内容添加到尖括号的流向

root@zhu-K53SJ:/data# cat >>oldboy.txt<<EOF    #EOF是追加结束符号,可以是任意追加结束符
> 还可以这昂错做吗
> 是的
> EOF
root@zhu-K53SJ:/data# cat oldboy.txt
I am studying linux
还可以这昂错做吗
是的

  8、已知文件test.txt内容为:

  test

  liyao

  oldboy

  请给出打印test.txt内容时,不包含oldboy字符串的命令。

  解答:

  创建环境,创建一个文件,并写入信息进去,如下:

root@zhu-K53SJ:/data# cat >>test.txt<<EOF      #往文件写入内容的方法
> test
> liyao
> oldboy
> EOF

  grep -v oldboy test.txt   或者通过管道 cat test.txt | grep -v test.txt   不推荐,直接使用第一种即可

root@zhu-K53SJ:/data# grep -v oldboy test.txt
test
liyao

  grep 过滤,grep oldboy test.txt 过滤文件中的oldboy字符串。

root@zhu-K53SJ:/data# grep oldboy test.txt      #从文件test.txt过滤oldboy字符串,Linux三剑客之一。
oldboy
root@zhu-K53SJ:/data# grep od test.txt #如果文件不存在,则不能过滤

  head  -n 2 test.txt  读取文件的前两行

  法三:

  拓展:三剑客之一的sed删除方法,其实是把oldboy行删除,然后打印剩下的内容

  sed '/oldboy/d' test.txt

  sed -e '/oldboy/d' test.txt

root@zhu-K53SJ:/data# sed /oldboy/d test.txt
test
liyao

  提示:三剑客是grep、awk、sed,他们都有过滤字符串的功能,grep最擅长,awk处理列擅长。sed擅长删除,修改,替换,添加。

  9、请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及oldboy/tetst目录

  解答:

  mkdir -p /oldboy/test

  实践过程:

  root@zhu-K53SJ:/# mkdir -p /oldboy/test        #递归创建目录,一般第一级目录不存在时用-p,否则报错。

  root@zhu-K53SJ:/# tree /oldboy                      #查看目录树结果

  /oldboy/

    --test

  1 directory,0 files

  其他的方法:mkdir /oldboy /oldboy/test

  如果tree命令不存在,可以使用yum install tree -y安装

  10、已知/tmp目录下已经存在了test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让linux系统不提示是否覆盖(root权限下)

  解答:

  建立测试数据

  \cp /mnt/test.txt /tmp/     加反斜线就不提示了

  /bin/cp /mnt/test.txt  /tmp/   加命令的全路径

   覆盖文件不提示,上面的两张方法,cp、mv、rm都比较危险,所以是否为了防止大家误操作,加了内容限制,让你知道执行这些指令的时候比较微信。  

  法三(不推荐使用):

  unalias cp  取消别名

  alias 查看现有的别名

  别名的作用:

  1)通过给危险命令加一些保护参数,防止人为误操作;

  2)把很多复杂的字符串或命令变成一个简单的字符串或命令。

  别名对应的命令:   别名的困惑及解决技巧:http://oldboy.blog.51cto.com/2561410/699046

  alias  查看和设置别名  alias cp='cp -i'  等号后面一定要是一个命令

  unalias 取消别名

  别名的用途举例:

  系统的例子就是最好的例子:

  11、只查看ett.txt文件(100行)内20到第30行的内容(企业常见面试题)

  解答:sequence==seq序列

  生成ett文件

root@zhu-K53SJ:/data# seq  >ett.txt    #模拟环境,创建序列,1-100,写入文件中
root@zhu-K53SJ:/data# cat ett.txt #seq序列,1-100的序列 6
...
100

  通过管道实现目标

root@zhu-K53SJ:/data# head - ett.txt|tail -11     #首先去前三十行,然后通过管道传给tail取后面10行

30

root@zhu-K53SJ:/data# tail -80 ett.txt|head -10     #取后面80行,通过管道传递给后面指令,取前10行,即可
21
22
23
24
25
26
27
28
29
30

  法一:head -30 ett.txt |tail -10

  法二(必会):

  sed -n "20,30p" ett.txt      这个命令更有效率,要记住  

root@zhu-K53SJ:/data# sed -n '20,30p' ett.txt

  法2(锦上添花):

  awk "19<NR && NR<31" ett.txt

root@zhu-K53SJ:/data# awk "19<NR && NR<31" ett.txt    #NR是行,行号大于19,且小于31的内容。

  法4:(锦上添花)

  root@zhu-K53SJ:/data# awk '{if(NR<31&&NR>19) printf $0"\n"}' ett.txt

root@zhu-K53SJ:/data# awk '{if(NR<31&&NR>19) printf $0"\n"}' ett.txt

  提示:NR是行号,&&意思是并且,两边同时成立

  root@zhu-K53SJ:/data# awk "NR==30" ett.txt       #打印第30行

  法5:

  root@zhu-K53SJ:/data# grep 20 -A 10 ett.txt    

  12、分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,取top10,也就是计算每个url的总访问大小【附加题,加分题】

  说明:本题生产环境应用:这个功能可以用于IDC网站流量宽带很高,然后通过分析服务器日志那些元素占用流量过大,进而进行优化或裁剪该图片,压缩js等措施。

  13、把/oldboy目录及其子目录下的所有一扩展名.sh结尾的文件中包含oldboy的字符串全部替换为oldgirl【附加题:加分题】

  解答:

  建立测试数据

  root@zhu-K53SJ:/oldboy# find -type f -name "*.sh" |xargs sed -i "s#oldboy#oldgril#g"

root@zhu-K53SJ:/# mkdir -p /oldboy/test
root@zhu-K53SJ:/# cd /oldboy

 root@zhu-K53SJ:/oldboy# echo 'oldboy' > test/del.sh
  root@zhu-K53SJ:/oldboy# echo 'oldboy' > test.sh
  root@zhu-K53SJ:/oldboy# echo 'oldboy' > .sh

root@zhu-K53SJ:/oldboy# find -type f|xargs                    #查找替换,首先使用find来实现
./.sh ./test/del.sh ./test.sh
root@zhu-K53SJ:/oldboy# find -type f -name "*.sh"
./.sh
./test/del.sh
./test.sh
root@zhu-K53SJ:/oldboy# find -type f -name "*.sh" |xargs cat     #使用find先查找,通过管道来传输,管道
oldboy
oldboy
oldboy
root@zhu-K53SJ:/oldboy# find -type f -name "*.sh" |xargs sed "s#oldboy#oldgril#g"    #首先看替换成功了没有,不要急着用-i,成功了使用-i
oldgril
oldgril
oldgril
root@zhu-K53SJ:/oldboy# find -type f -name "*.sh" |xargs sed -i "s#oldboy#oldgril#g"
root@zhu-K53SJ:/oldboy# find -type f -name "*.sh" |xargs cat
oldgril
oldgril
oldgril

  法二:

  root@zhu-K53SJ:/oldboy# sed -i "s#oldboy#oldgril#g" `find /oldboy -type f -name "*.sh"`

root@zhu-K53SJ:/oldboy# find /oldboy -type f -name "*.sh"|xargs cat
oldgril
oldgril
oldgril

  上面代码中,加上一对“``”(Tab键上面的反引号),使其先执行,执行的结果作为sed的参数。

  相当于:root@zhu-K53SJ:/oldboy# sed -i "s#oldboy#oldgril#g" /oldboy/.sh /oldboy/test/del.sh /oldboy/test.sh   替换了所有.sh文件里面的内容

day2--课前考试题的更多相关文章

  1. 老男孩linux实战培训初级班第二次课前考试题

    ################################################################ 本文内容摘录于老男孩linux实战运维培训中心课前考试题(答案部分) ...

  2. linux基础:第三关课前考试题整理

    1.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644, 要求使用命令取得644 这样的数字. [root@server ~]# stat /etc/hosts ...

  3. AHA高级心血管生命支持ACLS课前自我评估测试

    AHA高级心血管生命支持ACLS课前自我评估测试 答题人:a   成绩单 您的得分:17.5 分 答对题数:7 题 您的名次:47 名 问卷满分:100 分 测试题数:40 题 参与人次:47 人   ...

  4. Linux:课程安排、Linux简介、虚拟机安装、课前准备(常用设置和操作)

    一.课程安排 1)Linux 的作用 商业服务器基本上都是 Linux: 开源软件都先支持 Linux: 大数据分析.机器学习首先选 Linux: 整个互联网地基靠Linux撑起来: Linux 系统 ...

  5. sql系列(基础篇)-前言 课前补充知识

    前言 课前补充知识 Number(p,s) Number(p,s):数字类型,p 表示数字的有效长度(从数字的左边第 1 位不为 0 的開始算起,直到最右边的长度.取值范围 0~38 位),s 表示数 ...

  6. L014-第三关课前linux命令及基础知识考试手把手实战解答小节

    又是一周啊,以后保持一周一个微博吧. 这是一个堂解答考试题的课,那么就以题目来展开吧! 1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求用命令获得644这 ...

  7. (转)老男孩linux培训某节课前考试试题及答案分享

    目录:[考试目的] ................................2[考试范围]  ...............................2[答题策略] .......... ...

  8. 老男孩linux实战培训初级班第三次课课前考试题

    ################################################################ 本文内容摘录于老男孩linux实战运维培训中心考试题 如有转载,请务必 ...

  9. 这是C语言结课前(期末考试之前)写给牛晓霞的一封信!

    致尊敬的牛晓霞老师: 这是黄领衫的感想,也是想告诉你的话! 在老师说要给班里写得好的人发黄领衫的时候,我当时的想法是我很有可能拿到这份奖品的,怎么说呢,算是一种自信吧,或是对自己的态度的认可.虽然我能 ...

随机推荐

  1. python --- socket模块详解

    socket常用功能函数: socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)                  ...

  2. JS使用默认图片代替页面上无法显示的图片

    1.js方法: function replaceErrorImg(obj) { obj.src="images/common/error.bmp"; } 2.jquery绑定 $( ...

  3. 基于HTML5和WebGL的3D网络拓扑结构图

    现在,3D模型已经用于各种不同的领域.在医疗行业使用它们制作器官的精确模型:电影行业将它们用于活动的人物.物体以及现实电影:视频游戏产业将它们作为计算机与视频游戏中的资源:在科学领域将它们作为化合物的 ...

  4. 使用 Newtonsoft.Json 操作 JSON 字符串

    一.把实体类转化为 JSON 字符串 1. 为实体类赋值 SenderFromMQSearch senderFromMQSearch = new SenderFromMQSearch(); sende ...

  5. Tomcat 笔记-设置虚拟主机

    通过作用虚拟主机,可以使多个不同域名的网站共存于一个Tomcat中 在tomcat的server.xml文件中添加主机名: <Host name="hostname" app ...

  6. LINUX 笔记-VIM常用命令整理

    1.进入insert模式 o:当前行后 O:当前行前 r:替换当前字符 R:替换当前字符直到ESC 2.删除命令 #dw:删除#个word d^:删除至行尾 d$:删除至行首 3. u:撤消 ctrl ...

  7. [Hdu1342] Lotto

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1342 题目大意:输出6--13从小到大个数,然后按顺序输出6个数,输出所有种可能. 解题思路:这题难度 ...

  8. Android Studio中的Java控制台中出现乱码问题?

    今天在用Android studio 中敲代码时发现控制台出不了汉字,一打汉字全是乱码的.在此特供解决方案. 在Java的工程目录build.gradle下添加如下代码: 1.新版gradle tas ...

  9. WebService调用(基于KSOAP2)

    public static boolean getData(String param) { //WebService服务器地址 String SERVICE_URL = "http://22 ...

  10. LeetCode 118. Pascal's Triangle (杨辉三角)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...