zoukankan      html  css  js  c++  java
  • 在学习linux基础入门时的一些问题总结(1)

    本周在实验楼完成了《linux基础入门》的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题,主要有以下4个方面:

    • useradd和adduser的区别
    • crontab命令的使用
    • vim编辑器的使用
    • chmod命令的执行
      实际应用中的问题主要是从实验测试中所发现,在做以下2个测试中遇到了一些问题:
    • 挑战:历史命令
    • 挑战:数据提取
      下面来详细谈谈以上几个问题

    useradd和adduser的区别

    在进行实验楼“实验3 用户及文件权限管理”实验时,在一个创建用户的实验步骤中,我将“adduser”指令误打为“useradd”,但是终端并没有报错,但在后面su指令切换此账号时终端要求输入密码,此时我就无法在进行下去了。经过查阅资料以及后面的实验步骤了解到,useradd指令仅仅只创建账户,还需要用passwd命令来设置密码,而adduser 会创建用户,创建目录,创建密码,提示你做这一系列操作。

    crontab命令的使用&vim编辑器的使用

    在学习到“实验9 Linux任务计划crontab”实验时,对于周期性执行的任务计划指令crontab有了些许疑问。经过梳理,创建一个任务计划首先使用:

    crontab -e
    

    之后会选择进入vim编辑器。进入vim编辑器后也遇到了一些问题,后经查阅vim编辑器用法,在vim中添加命令语句要首先按i键进入插入编辑模式,在完成编辑后键入:wq保存退出vim。在vim中编写任务计划的过程中,遇到的最大问题就是不熟悉crontab的格式,不熟悉那几个奇怪的“*”的各自含义。阅读实验步骤,了解到crontab的格式如下:

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    
    

    crontab命令是linux的常用指令,其执行格式需要牢记。

    chmod命令的执行

    在学习到chmod命令执行的时候,chmod命令的使用有两种使用方法:一是二进制数表示法,二是加减赋值法。后者较为好理解,主要是二进制数表示法遇到了些问题,不知道chmod指令后面的几个数字代表的含义,经过阅读实验步骤和查阅资料了解到,首先,我们规定数字 4(2^2) 、2(2^1) 和1(2^0)表示读、写、执行权限,即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5依此类推。chmod的语法格式为:

    chmod (abc) file
    

    其中,a,b,c各为一个数字,分别代表User、Group、及Other的权限,且此abc顺序不可改变,严格abc。以下是两个例子:

    • 设置所有人可以读写及执行
    chmod 777 file  (等价于  chmod u=rwx,g=rwx,o=rwx file)
    
    • 设置拥有者可读写,其他人不可读写执行
    chmod 600 file (等价于  chmod u=rw,g=---,o=--- file)
    

    挑战:历史命令

    在linux中,对于文本的处理和分析是极为重要的,现在有一个文件叫做data1,同学们可以在这里下载,
    wget http://labfile.oss.aliyuncs.com/courses/1/data1
    里面记录是一些命令的记录,现在需要你从里面找出出现频率次数前3的命令并保存在/home/shiyanlou/result。

    目标
    处理文本data
    将结果写入result
    结果包含次数和命令,如“100 ls”

    测试此命令:

    通过。
    其中head的指令的用法格式是:

    head -num       截取前num行
    

    需要注意的问题是,要先sort再uniq,因为uniq去重时是检测相邻有没有重复,如果不排序将会出现很多重复计数的情况。

    挑战:数据提取

    小明在做数据分析的时候需要提取文件中关于数字的部分,同时还要提取用户的邮箱部分,但是有的行不是数组也不是邮箱,现在需要你在data2这个文件中帮助他用正则表达式匹配出数字部分和邮箱部分。在这里下载
    wget http://labfile.oss.aliyuncs.com/courses/1/data2
    将下载的data2保存在/home/shiyanlou/data2

    目标
    在文件data中匹配数字开头的行,结果写入/home/shiyanlou/num文件
    在文件data中匹配出正确格式的邮箱,结果写入一个名为/home/shiyanlou/mail的文件

    此挑战卡了好久,原因是邮箱格式中的.忘记加转义。。。贴个编译通过的答案:

    匹配数字开头的行
    grep '^[[:digit:]].' data2>num
      
    匹配正确格式的邮箱
    grep '^[[:alnum:]]*@[[:alnum:]]*.[[:alnum:]]*' data2>mail
    

    总结

    21个实验,遇到了很多问题和难点,总归还是命令及其用法不熟悉,通过这些实验,学习到了很多,希望今后能够熟练运用。

  • 相关阅读:
    悟透JavaScript(理解js面向对象)(转)
    spark相关问题
    hive常见问题以及解析
    visual studio code添加leetcode插件
    阿里云oss的使用
    Poi工具类快速生成Ecxel(升级版)
    linux实现增量拷贝数据,代替scp
    nginx实现均衡负载
    idea 程序包不存在 解决办法
    通过word文件模板生成word文件
  • 原文地址:https://www.cnblogs.com/intoxication/p/9788654.html
Copyright © 2011-2022 走看看