coggle30天机器学习打卡之Linux篇

本文详细介绍了在Linux环境下使用命令行登录、创建文件夹、下载文件、编辑Python、后台运行应用、筛选文件内容、压缩解压及定位文件等一系列核心技能,涉及Vi编辑器、Python模块、文件操作和自动化工具如grep、awk、tmux等。
摘要由CSDN通过智能技术生成

任务1 使用命令行登录指定的Linux环境

我的是Windows11系统,本次打卡所使用的ssh工具是PuTTY,开始页面如下:
在这里插入图片描述
点击open,会出现登录界面,输入账户名和密码即可:
在这里插入图片描述

任务2 在目录下创建文件夹、删除文件夹

  • 步骤1:学习Linux的目录结构
  • 步骤2:学习Linux的文件和目录管理
  • 步骤3:在/home/coggle目录下,新建一个以你英文昵称(中间不要有空格哦)的文件夹A在文件夹A内部创建一个以coggle命令的文件夹B
  • 步骤4:在B文件夹内创建一个空txt文件
  • 步骤5:删除步骤4创建的文件
  • 步骤6:删除文件夹B,然后删除文件夹A

先贴上本步骤所使用到的命令

pwd
mkdir ./TCSC
mkdir ./TCSC/coggle
cd ./TCSC/coggle
pwd
touch file.txt
ls
rm file.txt
ls
cd ~
rmdir ./TCSC/coggle
rmdir ./TSCS
find ./TCSC

粗略讲解:
pwd:输出当前所处的绝对路径
mkdir:创建文件夹,这个步骤是创建两个文件夹,除了分开创建(即先创建父目录再创建子目录),还可以同时创建,使用参数-p/--parents,即mkdir -p ./TCSC/coggle,意:当父目录不存在时会自动创建
touch:创建一个空白文件或者将一个文件的内容输出到另一个文件,该命令也可以同时创建多个文件,只需使用空格隔开
rmdir:删除文件夹(只能是空白文件夹)。不带参数默认删除子文件夹,带参数-p/--parents会删除路径中所包含的父文件夹(该操作慎选),Linux貌似没有撤回(不知道ctrl+r算不算)操作。如果想使用更加具体的操作,请使用rm
find:查看某个文件是否存在

在这里插入图片描述
ps.想要了解一个命令怎么使用和有哪些参数,可以使用命令 --help。例如对于mkdir
在这里插入图片描述

任务3 在目录下下载文件、阅读文件

  • 步骤1:在home/coggle目录下,新建一个以你英文昵称(中间不要有空格哦)的文件夹A在文件夹A内部创建一个以coggle命令的文件夹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读取下载的文件。

创建文件夹并且下载文件
在这里插入图片描述
使用head和tail
在这里插入图片描述

使用cat,因为cat是打印出所有内容,所以只截图一部分
在这里插入图片描述

利用pandas读取文件:
在这里插入图片描述

任务4 在目录下使用vi或vim编辑文件

以下就是使用vim后所呈现的页面,vim主要有两种模式(菜鸟教程写的是三种模式,我觉得都可以):一个就是命令模型,即按下Esc键所呈现的页面,用于编写内容外的操作,例如查找、保存、复制粘贴等;另一个就是插入模式或者编辑模型,用于编写文件内容。这里提下再命令模式下常用的几个:

  • 查找:?/,分别代表正向搜索和反向搜索。在符号后输入想要查找的内容,然后按下Enter键,然后可以按下n来继续下一个匹配的单词或者按下N到上一个匹配的单词
  • 删除光标当前行:DD(连续按下两次D键)
  • 进入输入模式:I键
  • 将光标移到行首行尾:行首:shift+6;行尾:shift+4
  • 将光标移到文档开头或末尾:开头:gg(小写);末尾:G(大写)
  • 保存::w;强制保存:w!;退出::q;强制退出::q!;保存后退出::wq(后面加上感叹号就表示强制操作)
  • 复制粘贴(来源:https://ruby-china.org/topics/4266):
    • 将光标移动到要复制的文本开始的地方,按v进入可视模式。
    • 将光标移动到要复制的文本的结束的地方,按 y 复制。
    • 此时 vim 会自动将光标定位到选中文本的开始的地方,并退出可视模式。
    • 移动光标到想要粘贴到的地方,按p粘贴
      在这里插入图片描述
      在这里插入图片描述
      Nano用得不多,不过感觉比vim简单,因为最下面就是操作说明,例如:^X
      就是要同时按下ctrl+x键。在这里插入图片描述
      在这里插入图片描述

任务5 在目录下创建py文件,并进行运行

  • 步骤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/coggle目录下,在你英文昵称(中间不要有空格哦)的文件夹中,新建一个test5.py文件,改程序可以使用os、sys模块完成以下功能:
    • 功能1:打印命令行参数
    • 功能2:使用os模块打印/usr/bin/路径下所有以m开头的文件。

功能1:
test5.py程序源码:

import sys
lis = sys.argv[1:]
if len(lis) < 2:
    raise Exception("必须传入两个参数")
print(f"test5.py\n{lis[0]}\n{lis[1]}")

运行:
在这里插入图片描述
功能2:
程序源码:

import sys
import os
pth = os.listdir("/usr/bin")
ans = []
for file_dir in pth:
    name = file_dir.split('/')[-1]
    if not os.path.isdir("/usr/bin/"+name) and name.startswith('m'):
        ans.append(name)
print(ans)

运行截图:
在这里插入图片描述

任务6 在目录下创建py目录,并进行import导入

  • 步骤1:学习python模块化,https://www.runoob.com/python3/python3-module.html
  • 步骤2:在/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹中创建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具体的第几行内容。

先贴上程序源码:

# affairs.py
import pandas as pd

def read_display(rows): 
# rows不是一个整数,而是一个列表
    df = pd.read_csv("https://mirror.coggle.club/dataset/affairs.txt")
    print(df.loc[rows])

# test6.py
import sys
from affairs import read_display
params = sys.argv[1:]
if not len(params):
    params = [0]
read_display([int(p)for p in params])

运行截图:
在这里插入图片描述
简单讲解,affairs.py文件就是定义一个很简单的文件读取函数,而test6.py就是用于接受命令行的参数并传进affairs.py中所定义的函数:read_display。这个函数可打印出一行或多行程序,还有注意我怎么导入这个函数的,在test6.py文件开头from affairs import read_displayaffairs是个文件夹,与test6.py处于同一目录下。
在这里插入图片描述
而在affairs这个文件夹中的文件目录结构为:
在这里插入图片描述
注意文件__init__.py,我是先在里面导入函数read_display,所以才可以直接from affairs import read_display,否则就只能from affairs.affairs import read_display,最后看看__init__.py里面有什么:
在这里插入图片描述
其中__all__是限制外界,外界只能从affairs导入函数read_display

任务7 在Linux系统中后台运行应用程序,并打印日志

  • 步骤1:在/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹中创建一个sleep.py文件,该文件需要完成以下功能:
    • 程序一直运行
    • 每10秒输出当前时间
  • 步骤2:学习 & 和 nohup后台执行的方法https://blog.csdn.net/a736933735/article/details/89577557
    http://ipcmen.com/jobs
  • 步骤3:学习tmux的使用,将步骤1的程序进行后台运行,并将输出结果写入到txt文件

创建文件、写入文件略过,直接贴源码:

import time

while True:
    cur_time = time.localtime(time.time())
    print(time.strftime("%Y-%m-%d %H:%M:%S",cur_time))
    time.sleep(10)

运行python3 sleep.py命令:
在这里插入图片描述
使用nohup进行后台执行,命令nohup python3 -u sleep.py > file.txt &
在这里插入图片描述
在这里插入图片描述
关闭后台:
在这里插入图片描述
接下来是来使用tmux来实现相同的功能,首先先使用命令tmux new -s mysession创建一个新窗口:
在这里插入图片描述
接下来使用的命令就和前面提到的一样了:
在这里插入图片描述
如果想切换到原来的窗口(注意不是退出tmux窗口),可先输入组合键 Ctrl+B,然后松开再输入字母d;如果想要完全退出tmux窗口,可直接按 Ctrl+d
在这里插入图片描述
ps. 本次学习的链接:

任务8 使用grep和awk从文件中筛选字符串

任务9 在目录下创建zip和tar压缩文件,并进行解压

  • 步骤1:在/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹中,下载https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
  • 步骤2:使用zip 压缩/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹
  • 步骤3:将 /home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar格式。
  • 步骤4:将 /home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar.gz格式。

下载文件:
在这里插入图片描述

打包为zip文件:
在这里插入图片描述

打包为tar文件
在这里插入图片描述
打包为tar.gz文件:
在这里插入图片描述

任务10 使用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/文件夹下文件内容包含coggle的文件
  • 步骤3:使用locate寻找到python3.preinst文件

统计以py为后缀名的文件个数:
在这里插入图片描述
在这里插入图片描述
简单解释下命令,上图中命令可以分为三部分:find / -name "*.py",列出所有以py为后缀名的文件;|,竖线,将前面命令的输出后面命令的输入;wc -l统计某个文件(这里是前面命令的输出)的行数,学习链接:https://www.runoob.com/linux/linux-comm-wc.html

寻找/home/文件夹下文件内容包含coggle的文件(结果只截一部分):
在这里插入图片描述

时候用locate寻找到python3.preinst文件:
学习链接:https://www.runoob.com/linux/linux-comm-locate.html
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值