在给大家分享知识的过程中,发现很多同学在学习竞赛和工作中都存在下列问题:
而上述问题都是一个竞赛选手、一个算法工程师所必备的。因此我们组织了本次linux实践练习活动。在活动中我们将布置具体任务,参与的同学们不断闯关完成,通过这些实践任务尽可能地帮助大家入门。
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。在全球超级计算机TOP500强操作系统排行榜中,Linux的占比最近十几年长期保持在85%以上,且一直呈现快速上升趋势。根据2016年的排行榜,Linux的占比已经高达98.80%。其实在各种大、中小型企业的服务器应用领域,在企业内部服务器99%的情况下都是Linux系统,如果你想成为一个合格的软件工程师&算法工程师,Linux是你必备的技能。
https://bilibili.com/video/BV1yr4y1C7RC
https://bilibili.com/video/BV1Zr4y1F7sQ
https://bilibili.com/video/BV1S64y1v7UG
注:
任务要点:ssh登录、密码输入、环境配置
任务要点:创建文件夹、创建文件、删除文件、删除文件夹
任务要点:下载文件、移动文件、阅读文件
任务要点:vi和vim使用
任务要点:python的os和sys系统接口,文件接口
任务要点:python代码模块化
实现要求:
任务要点:程序后台运行,进程管理
https://blog.csdn.net/a736933735/article/details/89577557
任务要点:字符筛选
https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
https://blog.csdn.net/baidu_41388533/article/details/107610827
https://www.runoob.com/linux/linux-comm-grep.html
https://www.cnblogs.com/JohnLiang/p/6202962.html
任务要点:文件压缩
https://www.cnblogs.com/wxlf/p/8117602.html
任务要点:文件搜索
https://www.runoob.com/linux/linux-comm-find.html
https://www.cnblogs.com/linjiqin/p/11678012.html
感谢热心答疑的助教“Halo”大佬、“tomo”大佬
根据具体任务安排,自己先尝试,然后可在组队学习群内提问和讨论。
Linux上进行学习,python3环境。
使用校园网可能会无法访问,可使用手机热点登录。
石墨文档上的链接点击后可能会把链接后的中文也加上,可以看看浏览器地址栏,若有链接以外的字符需要删除。
(感谢“366℃”同学)
python默认是调用2.7 里面没有pandas,需要用python3执行。
可以在py文件加一行 #!/bin/python3,加上x权限。
(感谢“哪儿吃”同学)
在affairs文件夹创建一个__init__.py的空文件。
弄清运行的代码和被import的代码文件路径关系,默认当前目录 . 是在 pythonpath的。
(感谢“366℃”同学、“哪儿吃”同学)
root账户才能在home下操作。可以在用户主目录下用mkdir创建自己的目录,在自己的个人目录下创建文件。
cd ~ 就是到当前用户的主目录了。
(感谢“哪儿吃”同学、“披头”同学)
linux文件可以没有后缀。
/usr/bin目录里一般放的是二进制可执行文件。
(感谢“披头”同学)
nohup执行后默认会将输出保存在nohup.out文件,但执行后无法接受标准输入,关闭窗口后仍然会运行。
&无法将标准输出保存到文件中,关闭窗口后程序就会停止。
nohup &一起使用综合了两者的优点,既能标准输入也能将标准输出的日志输入到文件,关闭窗口后仍然会运行。
这个日志内容没变,可能还是上一次的日志。上一次是结束了后台程序所以文件最后有keyboardinterrupt。
至于为什么这次没输出,可以查一下 python stdout 缓存,修改方法是 python 指令加参数 -u 取消缓存
(感谢“MarioZZJ”同学)
jobs命令只能显示当前控制台创建的任务,关闭窗口就看不到了,可以用ps命令来看。
tmux是输出到屏幕,不过后台运行看不到了,现在需要将输出输入到txt中。
使用输出重定向操作。
(感谢“MarioZZJ”同学、“哪儿吃”同学、“Dehua”同学)
kill -9 进程号。
(感谢“哪儿吃”同学、“JZTang”同学)
目录层级不对,需要在自己昵称命名的文件夹下运行。
(感谢“披头”同学)
在python3.8之后函数参数中允许出现/和*号。单独出现在参数中的*参数表示*后面的参数必须为关键字参数的形式。如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。
使用管道符号“|”将grep 和 grep -v连接起来,前一个的输出接着作为下一个的输入。
(感谢“Hoo7.256”同学、“MarioZZJ”同学)