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

0. Linux猩球

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

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

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

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

2. Shell世界生存口诀

0.急速解渴快捷键(~高频)

// 光标回到行首[告别手指抽筋的方向键]
control+a
// 光标回到行末
control+e
// 删除命令行的整段命令
control+u
// 删除光标处到行尾的字符
control+k
// 恢复上一次删除内容
control+y
// 查看系统所有用户
cat /etc/passwd

//vim解渴快捷键 [~命令行模式下使用~]
gg: 将光标移动到文档开头
G:  将光标移动到文档末尾
$:  将光标移到移到本行尾
0:  [数字] 将光标移到本行行首

1.操作文件夹

pwd  //显示当前所处路径
cd 文件夹名称  //进入某个文件件,假设存在文件User
ls    //显示当前目录的内容
ls -a   //显示当前目录的内容,包括隐藏文件[即以 . 开头的文件]
ls -ahl   // 显示当前目录的内容,文件大小以可读方式显示
du -h  //显示当前文件夹的大小

《机器学习程序猿在Linux猩球的生存指南》 ls -aul

《机器学习程序猿在Linux猩球的生存指南》 文件夹权限

文件夹的权限是一个比较重要的概念,关系到你是否有权利操作这个文件夹,关于权限的修改可学习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历史记录,防止后面手滑错误执行….虽然麻烦,但是在生产主机上,我还是每次都要执行一下,不要问我问什么这么小心….
  

2.查询、检索、统计

find . -name "*.py" | wc -l    //查看当前文件下(包含子文件夹)总共有多少个py文件
grep -o root  a.txt | wc -l  // 统计文件a.txt中root这个词出现的次数
grep root  a.txt | wc -l   //统计有root出现行的总行数

grep详细用法

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的进程

《机器学习程序猿在Linux猩球的生存指南》 杀死本机的火狐浏览器

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

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

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

《机器学习程序猿在Linux猩球的生存指南》 top命令

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

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

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

《机器学习程序猿在Linux猩球的生存指南》 Vi/Vim的快捷键

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

1.只改变当前用户的vim

cd ~ //进入在~目录下

vim .vimrc –> 添加一行 set number –>Esc–>wq, 保存退出,即可(普通用户权限即可)

2. 补充一些基础学习资料

3. 最后

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

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

    原文作者:流川枫AI
    原文地址: https://www.jianshu.com/p/fae52827a581
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞