本周在实验楼完成了《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个实验,遇到了很多问题和难点,总归还是命令及其用法不熟悉,通过这些实验,学习到了很多,希望今后能够熟练运用。

在学习linux基础入门时的一些问题总结(1)的更多相关文章

  1. 安装虚拟机以及学习Linux基础入门

    安装虚拟机 参考基于VirtualBox虚拟机安装Ubuntu图文教程完成了虚拟机的安装,主要遇到了以下2个问题 在新建虚拟电脑的时候,如果类型选择了Linux,则版本就只能选择Ubuntu(32 位 ...

  2. 柴柴随笔第三篇:安装虚拟机以及Linux基础入门

    虚拟机的安装 老师提供的作业指南给了我莫大的帮助,一步一步按着其中操作提示和网址链接,我首先下好了VM,也创建好了自己的第一台虚拟机. 接着按照步骤安装了Ubuntu到我的虚拟机. 到此,一切都顺风顺 ...

  3. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  4. Linux基础入门---学习心得

    之前一直以为Linux和Windows差不多,但是学习了Linux基础入门之后才发现两种操作系统之间差距非常大. Linux只是在硬件之上的内核和系统调用,就连我们在Windows里习以为常的图形界面 ...

  5. VBox&vmware虚拟机安装Linux及Linux基础入门学习

    VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...

  6. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  7. Linux 基础入门 第二周9.21~9.27

    一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...

  8. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  9. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

随机推荐

  1. 机器学习---笔记----Python基础

    一. python简介 1. python 具有丰富强大的库,常被称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起 2. python强制使用空白符(white space)作为语句缩进 ...

  2. Win10系列:C#应用控件基础3

    CheckBox控件 在应用程序的开发过程中开发者经常使用一组CheckBox控件来显示多个复选框,让用户从中选择一个或多个.当用户勾选复选框后,被选中的复选框会被标记为勾选状态,再次点击此复选框可取 ...

  3. day34 线程池 协程

    今日内容: 1. 线程的其他方法 2.线程队列(重点) 3.线程池(重点) 4.协程 1.线程的其他方法 语法: Threading.current_thread() # 当前正在运行的线程对象的一个 ...

  4. 使用perfect进行服务端开发

    最近闲来无事,研究了下基于perfect的swift后端开发.根据大神的博客进行了简单的配置,加深下印象也算是和各位分享一下. 参考博客:http://www.cnblogs.com/ludashi ...

  5. 运行java程序的方法-DOS命令和Eclipse方法

    ● 运行java程序的方法(使用DOS命令) 首先进行一个"文件夹选项"的设置: 在D:\Android\java_code目录下新建了一个Hello_World.java文件(不 ...

  6. SQL-6查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序

    题目描述 查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序CREATE TABLE `employees` (`emp_no` int(11) NOT N ...

  7. windows消息传送(自定义消息和WM_COPYDATA)

    通过SendMessge实现的进程间通信. 0x01 自定义消息 1,WINDOWS中自定义消息的定义和使用: (1)在WNDOWS中消息分系统消息和自定义消息.系统消息定义从0到0x3FF,使用0x ...

  8. Ubuntu16.04 安装Tensorflow-CPU

    最近我开始学习深度学习框架Tensorflow,一开始在windows平台下的anaconda下安装,由于anaconda安装几次后navigator打开老是出现闪退的问题,所以决定换个ubuntu下 ...

  9. IBM MQ 集成CXF 发送JMS 消息

    0.POM依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  10. 创建自己的docker基础镜像

    1.下载镜像 centos7 docker pull centos: 2.创建容器加载镜像 docker run -i -t --name centos7 centos: docker run 参数详 ...