- 该博文系2021年12月Datawhale第32期组队学习的学习记录
- 博文主要基于Datawhale开源教程Linux实践和本期学习文档Datawhale Linux组队学习,记录个人的学习总结
- 个人电脑系统为 Unbutu20.04,因此直接用终端进行作业,而不需要安装额外的ssh工具
文章目录
Linux简介
- Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统
- Linux系统因其稳定性在服务器操作系统具有霸主地位
任务实践
task01:使用命令行登录制定的Linux环境
任务要点:ssh登录、密码输入、环境配置
- 步骤1:配置本地登录环境如果是window系统,安装任意一款ssh工具https://blog.csdn.net/puss0/article/details/103390947https://www.runoob.com/linux/linux-remote-login.html如果是Mac或Linux系统,则不需要,可以直接使用ssh
- 步骤2:使用如下信息登录系统用户名:datawhale,密码:datawhale,IP:139.198.15.157
Task02:在目录下创建文件夹、删除文件夹
任务要点:创建文件夹、创建文件、删除文件、删除文件夹
- 步骤1:学习Linux的目录结构
- 步骤2:学习Linux的文件和目录管理
- 步骤3:在/home/datawhale目录下,新建一个以你英文昵称(中间不要有空格哦)的文件夹A在文件夹A内部创建一个以datawhale命名的文件夹B
- 步骤4:在B文件夹内创建一个空txt文件
- 步骤5:删除步骤4创建的文件
- 步骤6:删除文件夹B,然后删除文件夹A
Task03:在目录下下载文件、阅读文件
任务要点:下载文件、移动文件、阅读文件
- 步骤1:在home/datawhale目录下,新建一个以你英文昵称(中间不要有空格哦)的文件夹A在文件夹A内部创建一个以datawhale命令的文件夹B
- 步骤2:使用wget命令下载https://mirror.coggle.club/dataset/affairs.txt,到文件夹B wget教程:https://www.cnblogs.com/pretty-ru/p/10936023.html
- 步骤3:使用head、cat、tail命令阅读下载的文件。阅读文件基础教程:https://www.cnblogs.com/jixp/p/10833801.html
- 步骤4:在命令行使用ipython进入python3环境,并使用pandas读取下载的文件。
Task04:在目录下使用vi或vim编辑文件
任务要点:vi和vim使用
- 步骤1:学习Nano的使用,https://blog.csdn.net/junxieshiguan/article/details/84104912
- 步骤2:学习Vim的使用,https://www.runoob.com/linux/linux-vim.html
- 步骤3:分别使用Nano和Vim创建py文件,并输入以下内容,并运行
#!/usr/bin/env python3
print('Hello World!')
Task05:在目录下创建py文件,并进行运行
任务要点:python的os和sys系统接口,文件接口
- 步骤1:学习python下os模块处理文件和目录的函数,https://www.runoob.com/python/os-file-methods.html
- 步骤2:学习python下sys模块和传参函数,https://www.runoob.com/python3/python3-module.html
- 步骤3:在home/datawhale目录下,在你英文昵称(中间不要有空格哦)的文件夹中,新建一个test5.py文件,该程序可以使用os、sys模块完成以下功能:
- 功能1:打印命令行参数
命令行输入: python3 test5.py 参数1 参数2 程序输出: test5.py 参数1 参数2
- 功能2:使用os模块打印/usr/bin/路径下所有以m开头的文件。
Task06:在目录下创建py目录,并进行import导入
任务要点:python代码模块化
- 步骤1:学习python模块化,https://www.runoob.com/python3/python3-module.html
- 步骤2:在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中创建affairs文件夹
- 步骤3:编写test6.py和affairs.py完成以下功能:
- 功能1:affairs.py代码完成https://mirror.coggle.club/dataset/affairs.txt文件的读取,这里可以直接pd.read_csv(‘https://mirror.coggle.club/dataset/affairs.txt’)来完成。这一部分建议写为函数。
- 功能2:test6.py可以导入affairs.py代码
- 功能3:test6.py可以进行命令行解析,输出affairs.txt具体的第几行内容。
/home/datawhale/
你英文昵称命名的文件夹/
test6.py
affairs/
affairs.py
实现要求:
在/home/datawhale/你英文昵称命名的文件夹/目录下,可以执行:
python3 test6.py 10
没有bug,并完成第十行内容的输出。
Task07:在Linux系统中后台运行应用程序,并打印日志
任务要点:程序后台运行,进程管理
- 步骤1:在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中创建一个sleep.py文件,该文件需要完成以下功能:程序一直运行每10秒输出当前时间
- 步骤2:学习 & 和 nohup后台执行的方法
- 步骤3:学习tmux的使用,将步骤1的程序进行后台运行,并将输出结果写入到txt文件。
Task08:使用grep和awk从文件中筛选字符串
任务要点:字符筛选
- 步骤一:下载周杰伦歌词文本,并进行解压:
https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip - 步骤二:利用grep命令完成以下操作,并输出到屏幕
- https://blog.csdn.net/baidu_41388533/article/details/107610827
- https://www.runoob.com/linux/linux-comm-grep.html
- 统计歌词中 包含【超人】的歌词
- 统计歌词中 包含【外婆】但不包含【期待】的歌词
- 统计歌词中 以【我】开头的歌词
- 统计歌词中 以【我】结尾的歌词
- 步骤三:利用sed命令完成以下操作,并输出到屏幕
https://www.cnblogs.com/JohnLiang/p/6202962.html- 将歌词中 第2行 至 第40行 删除
- 将歌词中 所有【我】替换成【你】
Task09:在目录下创建zip和tar压缩文件,并进行解压
任务要点:文件压缩https://www.cnblogs.com/wxlf/p/8117602.html
- 步骤1:在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中,下载https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
- 步骤2:使用zip 压缩/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹
- 步骤3:将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar格式。
- 步骤4:将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar.gz格式。
Task10:使用find和locate定位文件
任务要点:文件检索
https://www.runoob.com/linux/linux-comm-find.html
https://www.cnblogs.com/linjiqin/p/11678012.html
- 步骤1:使用find统计文件系统中以py为后缀名的文件个数
- 步骤2:使用find寻找/home/文件夹下文件内容包含datawhale的文件
- 步骤3:使用locate寻找到python3.6.1.gz文件