热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux新建文件夹_MLamp;DEV[6]|算法工程师Linux必知必会

【ML&DEV】这是大家没有看过的船新栏目!ML表示机器学习,DEV表示开发,本专栏旨在为大家分享作为算法工程师的工作,机器

【ML&DEV】

这是大家没有看过的船新栏目!ML表示机器学习,DEV表示开发,本专栏旨在为大家分享作为算法工程师的工作,机器学习生态下的有关模型方法和技术,从数据生产到模型部署维护监控全流程,预备知识、理论、技术、经验等都会涉及,近期内容以入门线路为主,敬请期待!

往期回顾:

  • ML&DEV[1] | 机器学习数学基础入门线路

  • ML&DEV[2] | 机器学习开发技能入门线路

  • ML&DEV[3] | 机器学习入门线路

  • ML&DEV[4] | 机器学习进阶线路

  • ML&DEV[5] | 系统理解特征工程

算法工程师居然要会Linux?

之前其实我也提到过算法工程师,除了算法,必须还有工程,你的模型要给用户用,要在线上跑,那必须要打包发布,放在服务器上,而现在大多服务器用的都是Linux系统,暂且不说是否需要深入了解Linux内部的内容,就是简单常用的命令,终究是需要了解的,与Windows相对应的,查看文件、新建文件夹、打开文件夹、删除文件等,你都是要知道的,近期进行了一轮简单的复习,另外最近校招季,很多求之说明都要求“会linux”,其实我下面要谈的内容,如果你都掌握,那其实就能称为“会简单的linux”了。

当然的,这里不包括所有,只是部分,也是最常用的部分,按照28法则,20%的内容其实已经能够覆盖80%的场景了,剩下的,其实可以自行查阅,甚至可以开始自己编写一些shell脚本(可以理解为批量的linux命令执行)。

菜鸟教程提供的Linux命令大全:https://www.runoob.com/linux/linux-command-manual.html

想要练习却苦于没有资源的,两个方案,mac的最简单了,直接内置了相似的terminal,而windows则可以安装虚拟机配置ubantu(linux的一个版本),同样在terminal中操作。

当然哈,不会的同学看一遍估计也记不了,且里面很多细节我都没有(文档之类的我觉得搬运过来真的没有太大意义额鹅鹅鹅,大家相信我就多去查查文档,会更好更详细),建议大家多尝试,加上上面的命令大全多尝试,这样才能真正熟练。

另外推荐两个有关linux的材料,我自己本身也在看的:

  • 《Shell从入门到精通》,清华大学出版社。

  • 《鸟哥的Linux私房菜基础学习篇》,人民邮电出版社。

文件和目录管理

文件和目录管理是操作系统里最基本的技能,对windows、macOS、linux都是,大概就是查看文件、增加删除文件之类的操作。

ls

ls用于查看核定目录下的内容(未指定则是当前目录,当前目录是指你现在所能看到的那个目录,路径可以用 pwd查看),但这个只能是简单看有什么文件和文件夹,非常简单:

$ ls

NLP_using sunday

delete_xcode.sh tc_server

learnNote

如果要看更多的详情,可以尝试用同样常用的 ls-lah

ls -lah

total 64

drwxr-xr-x 17 chashao staff 544B 9 21 00:26 .

drwx------+ 18 chashao staff 576B 9 13 12:49 ..

-rw-r--r--@ 1 chashao staff 24K 7 16 20:00 .DS_Store

drwxr-xr-x 10 chashao staff 320B 11 17 2018 NLP_using

-rw-r--r-- 1 chashao staff 368B 4 14 17:16 delete_xcode.sh

drwxr-xr-x 12 chashao staff 384B 11 27 2018 learnNote

drwxr-xr-x 4 chashao staff 128B 11 30 2018 sunday

drwxr-xr-x 4 chashao staff 128B 4 13 11:32 tc_server

这里的 -lah实际上是一个配置项,你还要展示什么内容可以配置,具体还有很多配置项可以自己去尝试。

cd

cd非常简单,就是转换当前目录,首先当然可以配置绝对路径,也可以用相对路径, cd../就是到上一层目录, cd../hello就是到上一层文件夹下的一个hello的文件夹中,此处注意,如果你写的路径不存在或者你最后用的是一个文件夹,那会报错。

mkdir

mkdir新建文件夹,空格以后跟文件夹名。

pwd

pwd刚才有提到过,获取当前绝对路径。

rm

rm是指remove,删除,可以用 rm-r删除文件夹,并且递归删除,删除操作一律谨慎使用

mv

mv是指move,移动,可以理解为windows的剪切粘贴,后面有两个必要参数(当然两个必要参数前还需要有一个可选参数,例如 -i-f),一个是你要移动的文件,另一个是移动到的新的位置(如果是文件夹那就会放文件夹里面)。

find

find顾名思义就是查找的意思,专业说法是指定目录找文件。具体公式是这样的(没有吧备选项放出):

find path -option

path是你要查找的路径,-option是选项,例如 -name就是根据名称来找。

touch

touch用的稍微少,用于修改文件或者目录的时间属性,包括存取时间和修改时间。

文件查看与编辑

看文件名肯定不够的,肯定是要对文件进行修改。

wc

计算文档字数之类的值。

$ wc -c helloworld.txt # 字数

11 helloworld.txt

$wc -l helloworld.txt # 行数

1 helloworld.txt

head和tail

查看文件的前若干行或者后若干行(没有配置的话会有默认行数),可以用作数据探索。

cat和tac

这两个命令都是遍历一个文件的内容,打印在linux界面, cat是正向遍历,后者是反向遍历。

nl

nl和cat类似的遍历,但是会给打印的内容加上行号。

more和less

moreless都是和cat遍历类似的遍历命令,但是区别在于 more可以按照页展示,空格下一页,另外还有检索功能;less会比more更为强大,也有搜索等功能,特别之处在于对上翻页和前向搜索更方便。

grep

grep是遍历文件中带有特定字段的内容,例如我要找带有“深圳”的数据,这可以帮我们过滤信息,我在读取日志的时候很喜欢用,日志的内容非常繁杂,我根据日志中打的标签,可以快速选择我需要关注的日志信息。

sed

平时用的不是很多,但是用起来非常强大,可以依照脚本指令编辑一个、多个文件。来举个栗子,具体用法可以在文档里面查吧。

sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串

表示在名为 testfile的第四行后添加一行,内容是newline。

awk

功能很多很复杂,但是感觉贼强。举个例子说明一下,具体的使用还是建议大家自己过一遍。

下面是一个叫做 log.txt文档的内容

2 this is a test

3 Are you like awk

This's a test

10 There are orange,apple,mongo

下面这个命令就表示提取这个文档里面第一列和第四列的内容(空格划分)。

awk '{print $1,$4}' log.txt

是不是觉得有点像sql的感觉?反正就觉得很厉害哈哈哈。

stat

查看文件的一些细节情况,大小、创建时间、权限之类的。

系统管理

top和ps

都是查看所有进程的状态,包括其占用情况。但是 top是实时的监控,打开界面的, ps则是一个瞬时的,例如我就是看看我的程序pid,然后用来kill掉的。

vmstat

用于查看虚拟内存状态。这个命令我发现在有的系统里是失效的。

free

显示内存占用状态。这个命令我发现在有的系统里是失效的。

chown和chmod

chown是用户与用户组设置, chmod是设置读、写、运行的权限。(作为小弟的我似乎没有什么机会用到,自己平时操作就不需要分配,团队里我是末尾也是用不到哈哈哈,等用得到的那天再说)

nohup

在命令之前带这个玩意,能让命令在后台一直运行(类似windows的最小化)。

disown

令已经在运行的进程,不再受到用户退出限制。

远程连接

有关远程连接,我觉得这个是linux很强大的技能,在windows下,其实没有很好的连接,除非你有QQ微信网盘之类的,但是linux之间的远程连接方法其实还不少。

ssh

这是一种制定的建立在应用层基础上的安全网络协议,甚至可以和windows产生联系,所以就很厉害吧。坑有点深,具体方法。有点复杂,给一个链接大家自行体会一下:https://blog.csdn.net/li528405176/article/details/82810342,记住他是用户直接连接两个终端的。

scp和rsync

两个同步两个终端文件的操作,说人话就是传文件。首先说两者的区别,引用博客的一段话其实很清楚:

sync和scp在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。原因是scp是复制:若mas2文件不存在则新建,若存在则覆盖,若mas2上有而Dashboard主机没有,则不改变。可以理解为scp为“复制”。而rsync则在文件在存在于两主机时,比较两文件是够相同,相同的话,就什么都不做,若存在差异就直接更新。———————————————— 版权声明:本文为CSDN博主「lixwcqs」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/lixwjava/article/details/50421431

从本地到远程,有下面4种形式:

scp local_file remote_username@remote_ip:remote_folder

scp local_file remote_username@remote_ip:remote_file

scp local_file remote_ip:remote_folder

scp local_file remote_ip:remote_file

从远程到本地,2中:

scp -r local_folder remote_username@remote_ip:remote_folder

scp -r local_folder remote_ip:remote_folder

其他

首先是标准输入和标准输出。

另外还有几个很重要的且不能不提的东西,放在这里。大家根据我给的一些资源整理阅读学习。

首先是标准输入和标准输出:

https://blog.csdn.net/wang10051225/article/details/82157089

还有一个需要提到的是管道。

https://www.jianshu.com/p/9c0c2b57cb73

vim是linux下最具代表性的文档编辑器。这个需要记住的细节非常多,尝试自己用这个玩意做一段时间开发,自然会熟悉。

https://www.runoob.com/linux/linux-vim.html

git是代码管理的基本命令,有个非常傻瓜的教程,大家可以看看:

https://www.bootcss.com/p/git-guide/

crontab是一个linux的定时任务工具,给定时间,他会定时去执行任务,具体的使用可以参照这个:

https://www.runoob.com/linux/linux-comm-crontab.html

补充

上面内容只是很简单的一块吧,有了上面的内容,你就可以进行简单的linux操作了,但是还会有很长的一条路要走,例如写shell脚本(例如条件、循环语句、变量之类的)、和多语言协同合作(例如大家熟悉的python等),这个就需要多实践和练习。

aa615b3cda49e181624ac19646ce1dfc.png




推荐阅读
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Sublime Text 3 + LiveReload + Chrome
    安装LiveReload在SublimeText3中安装LiveReload。macOS快捷键⌘+⇧+P,输入InstallPackage,搜索LiveReload并回车安装。(W ... [详细]
  • 编写健壮且高性能的网络服务需要付出大量的努力。提高服务性能 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
  • 安卓及谷歌官网不容易上,在此整理好下载地址,这样就可以直接用迅雷下载了。Eclipse最新Mars版Eclipse(暂时还没被墙)Mac版:http:www.eclipse.org ... [详细]
  • iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    从2月14日开始,上传程序的同学可能会遇到提示上传失败的提示.并且打开自己的钥匙串,发现所有的证书全部都显示此证书签发者无效.出现以下情况:Failedtolocateorgene ... [详细]
  • 眼下准备入手MacbookAir的8GBRam版。 ... [详细]
  • windows平台使用NSP拦截具体进程的域名解析过程(xFsRedir的代理功能之域名代理)
    byfanxiushu2022-10-17转载或引用请注明原始作者。xFsRedir软件其中之一的功能就是实现了全方位的网络代理,从主机代理,到本地代理 ... [详细]
author-avatar
my76572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有