Linux基础——第一关

来源:互联网 发布:霍华德站立摸高数据 编辑:程序博客网 时间:2024/06/06 20:27

整个Linux运维需要掌握的知识很多,所以在学习Linux运维之前,我们需要先检验一下自己Linux的水平。我们通过抛出例题的方式来检验一下目前为止我们的Linux掌握情况。

[考试检验]

  • 创建一个目录/data
                [命令]    [参数]    [路径]创建目录          mkdir             /data显示目录或文件     ls       -ld      /data
  • 在/data下面建立一个文件my.txt
                [命令]    [参数]    [文件名]切换目录            cd              /data创建文件         touch              my.txt查看目录或文件    ls         -l
  • 为my.txt增加内容为 “I am studying linux.”
> 方法一:常规编辑方法 执行vi my.txt进入vi编辑器、点击a或i进入<编辑模式>,敲入内容I am studying Linux,然后按键盘上的<esc键>退出编辑模式进入<命令模式>,最后敲<:wq>保存并退出。<wq 解释 Write quit>> 方法二:单行文件插入常用命令,内容追加到文件尾部echo 'I am studying linux.'>>/data/my.txt <企业中很常用>> [echo命令示例扩展一]echo 'I am OK' > /data/my.txt   <会覆盖文件的内容>
  • 把my.txt文件拷贝到/tmp下
cp my.txt /tmp/> 拷贝目录  cp -a /etc/ tmp
  • 把/data目录移动到/root下
mv  /data   /root/[提示:如果希望带目录拷贝,尽量不要mv /data/ /root/,移动目录前,源目录结尾不要多余斜线。虽然此处可以,但是我们要养成好的规范和习惯。]
  • 进入/root下的data目录,删除my.txt
cd  /root/datarm my.txt> 删除文件或目录时,生产环节的使用方法一般是:(1) 和xargs搭配用法    find . -type f -mtime +15 | xargs rm -f    [#删文件 15天以前 #删目录下文件用这个好]    find . -type d -mtime +30 | xargs rm -rf    [#删除目录 30天以前 慎用]    [提示:xargs是一个不错的命令,要总结](2) 使用find的-exec    find /logs -type f -mtime +5 -exec rm {} \;    [#在/logs目录中查找更改时间在5日以前的文件并删除它们]    [提示:find命令是生产环境中很重要的一个命令,要总结]
  • 已知文件test.txt内容为:
    test
    liyao
    me
    hello
    请给出打印test.txt内容时,不包含me字符串的命令
> 方法一grep -v me test.txt> 方法二sed -n /me/p test.txt
  • 请用一条命令创建/data和/data/2017目录
递归创建目录  mkdir -p /data/2017查看目录结构  tree /data安装tree     yum install tree -y
  • 已知/tmp目录下已经存在了test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让linux系统不提示是否覆盖(root权限下)
> 方法一/bin/cp /mnt/test.txt /tmp/test.txt> 方法二\cp /mnt/test.txt /tmp/test.txt[提示:此题的思路是屏蔽掉系统默认的对应命令别名,默认执行cp的操作是调用了别名的。所以提示覆盖。详细说明:    cp命令默认是不会提示overwrite的,但是cp的-i选项会提示,而一般Linux的用户环境文件 ~/.bashrc中会把cp命令成alias cp='cp -i',如:    命令    alias | grep cp    结果    alias cp='cp -i'这样在Linux下输入cp命令实际上运行的是cp -i,加上一个"\"符号或者cp全路径/bin/cp就是让此次cp命令不使用别名运行。]
  • 只查看ett.txt文件(100行)内第20行到第30行的内容
生成ett.txt文件 seq 100>ett.txt> 方法一head -30 ett.txt | tail -11> 方法二sed -n 20,30p ett.txt> 方法三awk '{if(NR>19&&NR<31) print $0}' ett.txt  #NR是awk中的行号[小结]sed 擅长行 sed -n '3,7p' test.txtawk 擅长列 awk -F ":" '{print $1}' /etc/passwd
  • 分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,取top10,也就是计算每个url的总访问大小
有点难,后续学习之后再补上。
  • 把/me目录及其子目录下所有以扩展名.sh结尾的文件中包含./hostlists.txt的字符串全部替换成../idctest_iplist。
find /me -name '*.sh' -type f -exec sed -i 's#./hostlists.txt#../idctest_iplist#g' {} \;

[命令总结]

mkdir   创建目录的命令 make directorysls      -l(long)d(directory)显示目录或文件 全称listcd      切换目录层次change directoryecho    打印输出内容,如:echo {1..6}vi/vim  记事本编辑器          命令模式(:wq :q :q! :wq!)<==>插入模式(esc切换命令模式)        w write    q quit    !强制        set nu    显示行号cat     查看文件内容        [cat命令示例]        cat >> /data/my.txt <<EOF        I am a student,        do you know?        EOFcp  [-aifpru]   [源文件]   [目标文件]    -a:相当于 -pdr    -d:若源文件为链接文件(link file),则复制链接文件属性而非档案本身。    -f:强制,若目标档案已经存在且无法开启,则移除后再尝试。    -i:若目标文件已经存在,在覆盖时会先询问。    -p:连同档案的属性一起复制过去,而非使用默认属性。    -r:递归,用于复制目录    -u:若目标文件存在,则目标文件比源文件旧时才复制。    [提示:如果源文件是多个,那么目的文件在最后,且是目录。]mv  [-ifu]  [源文件/源目录]   [目的文件/目的目录]    -i:如果目的文件已存在,询问是否覆盖    -f:强制执行,不会询问。    -u:若目的文件存在,则比源文件新,才会移动。    [提示:如果源文件是多个,那么目的文件在最后,且是目录。]pwd 显示当前路径rm  -f:强制删除文件    -r:递归删除   删除文件或目录    -rf:删除指定的目录和文件rmdir 删除空目录,鸡肋命令。head 头部 显示文件头部-n 行数 [-行数],默认10行tail 尾巴 显示文件尾部-n 行数 [-行数],默认10行grep 核心命令之一(三剑客之三)    过滤内容:如:grep "hello" test.txt    -v:排除    [提示:按行过滤]sed 取各种内容(三剑客之二)    -n:取消原始输出    如:sed -n /[^me]/p text.txt #me开头的行打印       sed -n /[^me]/d text.txt #删除me开头的行 awk (三剑客之一)    如:awk /me/ test.txt #过滤me[查看命令帮助的手段](1)man  命令名(2)命令   --help(3)搜索引擎 "Linux 命令名"alias   显示设置别名unalias 取消别名which   查看命令的路径whereis,locate,findfind    查找命令    -type:查找的类型,如:f,文件;d,目录;    -name:按名字查找    -mtime:按修改时间查找seq 打印数字序列    -s:指定分隔符    [命令]    [参数]    [起始]    [步长]    [结束]    seq      -s  "="    2        2         10    结果:2=4=6=8=10xargs   用于把find/ls的输出交给后面处理touch   创建文件或者修改文件时间戳

[符号]

:   多个命令的分隔符/   根或者路径的分隔符>   重定向(数据流朝着箭头方向流动)   覆盖原来文件内容>>  追加重定向(数据流朝着箭头方向流动)    在原来文件结尾追加..  上一级目录.   当前目录~   用户的家目录|管道 把前一个命令的输出交给后一个命令继续处理
原创粉丝点击