机器学习程序猿在Linux猩球的生存指南

人工智能LeadAI2018-12-05 14:15:01

上海站 | 高性能计算之GPU CUDA培训

4月13-15日
三天密集式学习  快速带你晋级
阅读全文
>


正文共3048个字,8张图,预计阅读时间10分钟。


一个小程序猿,在一场飞行意外中,坠落到Linux猩球,与家乡Win猩球/Mac猩球的绚丽多彩不同的是:Linux猩球大部分时间都是处于黑暗之中[命令行/Shell界面],因此,大多数时候他只能跟这个黑色的世界进行交互。为了更好的生存下来,他制作了这个基本生存指南。


指南适用范围


这不是一个系统的Linux终端命令介绍,只是我剪贴板上常用的几个命令而已,适用于Linux轻度使用者。我使用Linux的场景主要就是为了跑深度学习模型,以及线上云主机的执行一些脚本、Hadoop/Spark任务...更详细的学习资料请参考最后的参考文献。


Linux猩球最初是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时偶然发现的…此后,大量程序猿的背井离乡来此开荒,现在仍滞留大量的程序猿成为难民….


shell世界生存口诀


1、操作文件夹


pwd  //显示当前所处路径

cd 文件夹名称  //进入某个文件件,假设存在文件

Userls    //显示当前目录的内容

ls -a   //显示当前目录的内容,包括隐藏文件[即以 . 开头的文件

]ls -ahl   // 显示当前目录的内容,文件大小以可读方式显示

du -h  //显示当前文件夹的大小


ls -aul


文件夹权限


文件夹的权限是一个比较重要的概念,关系到你是否有权利操作这个文件夹,关于权限的修改可学习chmod等命令。


2、创建、复制、移动、重命名,删除


mkdir  newfile:创建一个新的目录

cp 来源档(source) 目标档(destination)

cp aa.txt a.txt    //复制一个文件并重命名为a.txt

cp -r model1  model-3800    //【文件夹要+r参数】复制源文件夹model1到目标文件夹model-3800

mv  source destination

mv aa.txt a.txt   //相当于把aa.txt文档重新命名为a.txt


rm 文件  //删除文件

rm -r 文件夹   //删除文件夹【慎用...配合方向键很酸爽!】

rm *.log //批量删除


-----为了解决手残执行rm -r等危险命令,使用history预防-------


history  //显示终端执行的命令历史记录

history |grep rm   //防止误删【血的教训】

history -d 1066   //手动删除该条rm历史记录,防止后面手滑错误执行….虽然麻烦,但是在生产主机上,我还是每次都要执行一下,不要问我问什么这么小心….


3、查询、检索、统计


find . -name "*.py" | wc -l    //查看当前文件下(包含子文件夹)总共有多少个py文件

grep -o root  a.txt | wc -l  // 统计文件a.txt中root这个词出现的次数

grep root  a.txt | wc -l   //统计有root出现行的总行数


**3.操作txt等文档[编辑脚本、配置文件]**

vi a.txt   //新建a.txt文档

head -10 a.txt  //显示a.txt文件的前10行

tail -10 a.txt  //显示a.txt文件的后10行

wc -l a.txt  //显示文件有多少行

wc -w a.txt   // 看文件里有多少个词

cat f a.txt | tail -n +3000 | head -n 1000    //即显示文件的3000~3999行


4、其他我常用的命令


sh test.sh   //执行sh脚本

python test.py //执行python脚本

nohup sh  test2118.sh>  test.log  &     //后台执行脚本test.sh,并将输出写入到test.log中


配合使用脚本:


tail -f test.log   //动态输出test.log的内容,监控后台执行的脚本的执行过程

ps -ef | grep python  //查看系统运行python程序的PID,根据PID我们可以终止某个后天运行的脚本

kill -9 9208  //杀掉PID=9208的进程


杀死本机的火狐浏览器


ps au// 显示所有正在运行的进程:


ps aux


top //显示运行中系统的动态实时视图:


top命令


扩展工具Htop


使用pt-get在linux安装htop的命令:apt-get install htop
htop 是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。


Htop


高级文本编辑工具
Awk/Vi/Vim编辑器的使用,需要慢慢熟悉那些快捷命令,使用场景还是非常多的。


Vi/Vim的快捷键


如何让vi/vim打开文件时显示行号:【方便线上微调代码时】

1.只改变当前用户的vim
cd ~   //进入在~目录下
vim .vimrc --> 添加一行 set number -->Esc-->wq, 保存退出,即可(普通用户权限即可)

补充一些基础学习资料
    1. 菜鸟教程的Linux教程(http://www.runoob.com/linux/linux-tutorial.html)

    2. 绝对不要使用的Linux命令(https://linux.cn/article-9206-1.html)

    1. Linux grep命令使用(https://www.cnblogs.com/end/archive/2012/02/21/2360965.html)

    1. Linux awk 命令的使用--JD内推面试问题之一(http://www.runoob.com/linux/linux-comm-awk.html)

    1. Linux常用shell的命令1(http://www.360doc.com/content/16/0615/15/7044580_567984505.shtml)

    1. Linux常用的shell命令2(https://www.cnblogs.com/BuildingHome/p/4739268.html)

    1. Linux常用的shell命令3(https://segmentfault.com/a/1190000010849424)

    1. 全栈必备Linux 基础 (http://blog.jobbole.com/106827/)

    1. 初学机器学习的你,是否掌握了这样的Linux技巧(https://mp.weixin.qq.com/s/tvdOEbS-dBBp5YeQM5w-uA)
      好好看下面这条,以后误删公司数据不需要收拾行李跑路了...

    1. 我把Linux系统上面误删的数据找回来了!(http://blog.51cto.com/wzlinux/2052835)


    最后


    最好,大家有木有手残执行 rm -f 文件夹 的痛苦经历,评论区抖搂出来大家嗨皮一下啊,逃亡路上不孤单...或者,有什么比较好的、常用的命令贴出来,大家相互学习!


    原文链接:https://www.jianshu.com/p/fae52827a581


    查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

    www.leadai.org


    请关注人工智能LeadAI公众号,查看更多专业文章

    大家都在看

    LSTM模型在问答系统中的应用

    基于TensorFlow的神经网络解决用户流失概览问题

    最全常见算法工程师面试题目整理(一)

    最全常见算法工程师面试题目整理(二)

    TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

    装饰器 | Python高级编程

    今天不如来复习下Python基础