首页 > 系统相关 >【AI白身境】Linux干活三板斧,shell、vim和git

【AI白身境】Linux干活三板斧,shell、vim和git

时间:2022-10-12 15:42:36浏览次数:95  
标签:插件 shell 命令 三板斧 vim github AI git



【AI白身境】Linux干活三板斧,shell、vim和git

今天是专栏《AI白身境》的第二篇,所谓白身,就是什么都不会,还没有进入角色。

上一篇给大家介绍了要想真正进入深度学习这个行业,必须要先学会使用Linux,今天就和大家说说我们应该如何使用Linux,如何利用shell,vim和git这三大神器。

作者 | 汤兴旺 言有三

编辑 | 汤兴旺 言有三

 

01 Linux基础命令与shell脚本

通过第一篇的介绍,我们已经知道在Linux下面操作会比windows下效率高很多,下面和大家讲解一下Linux的基础操作,默认大家已经装好了Linux系统。

1.1 cd命令

命令格式:cd <路径>

意义:cd是change directory 的缩写;cd命令后面跟一个路径,用于切换当前用户所在的路径,其中路径可以是绝对路径也可以是相对路径。

示例:

cd /system/bin 表示切换到/system/bin路径下。

cd logs 表示切换到logs路径下。

cd / 表示切换到根目录。

cd ../ 表示切换到上一层路径。

1.2 ls命令

命令格式:ls <参数> <路径>

意义:ls是list的缩写;ls命令后面可以跟一个路径或参数,也可以不跟,表示列出路径或当前目录下的所有文件信息。最常用的的参数是“-l",也就是“ls -l”命令。

示例:

ls / 显示根目录下的所有文件及文件夹。

ls -l /data 显示/data路径下的所有文件及文件夹的详细信息。

ls -l 显示当前路径下的所有文件及文件夹的详细信息

ls *l wc显示当前目录下面的文件数量。

1.3 cat命令

命令格式: cat <文件>

意义:cat是concatenate 的缩写。表示读取文件内容及拼接文件。

示例:

cat /sys/devices/system/cpu/online 读取 /sys/devices/system/cpu/路径下online文件内容。

cat test.txt 读取当前路径下test.txt文件内容。

1.4 rm命令

命令格式: rm <文件> 或 rm -r <文件夹>

意义:rm是remove 的缩写。用于删除文件或文件夹,常用参数-r -f,-r表示删除目录,也可以用于删除文件,-f表示强制删除,不需要确认。同样的,删除文件前需保证当前用户对当前路径有修改的权限。

示例:

rm -rf path 删除path。

rm test.txt 删除test.txt。

1.5 mkdir命令

命令格式: mkdir 文件夹

意义:mkdir是make directory 的缩写。用于创建文件夹。创建文件夹前需保证当前用户对当前路径有修改的权限。

示例:

mkdir /data/path 在/data路径下创建path文件夹。

mkdir -p a/b/c 参数 -p用于创建多级文件夹,这句命令表示在当前路径下创建文件夹a, 而a文件夹包含子文件夹b,b文件夹下又包含子文件夹c。

1.6 cp命令

命令格式: cp <文件><目标文件>或者cp -r<文件夹><目标文件夹>

意义:cp是copy 的缩写。用于复制文件或文件夹。

示例:

cp /data/logs /data/local/tmp/logs 复制/data路径下的logs到/data/local/tmp路径下。

cp 1.sh /sdcard/ 复制当前路径下的1.sh到/sdcard下。

1.7 kill命令

命令格式:kill PID码

意义:结束当前进程

示例:

先通过输入命令 ps au查看进程,找到需要终止进程的PID再通过kill PID即可,如我这里想要终止的进程是vimtest.py,查到的PID是3163,我们可以输入kill 3163结束这个程序,如果结束不了,可以通过kill -9 PID码强制结束,即kii -9 3163

【AI白身境】Linux干活三板斧,shell、vim和git_Linux

除了这七个命令,还有许多常见的命令,如pwd命令,这个可以查看当前路径,这个在移动数据集或者整理文件list的时候很有用;tar命令,这个可以文件压缩;unzip命令,这个可以用于文件解压,这样的命令其实还有很多,需要我们在使用的过程中不断熟练,需要我们不停的查阅学习。

1.8 shell脚本文件之"hello world"

有了基本的命令之后,接下来就可以写一些常用的脚本。脚本常用于获取参数,循环遍历。

首先我们看一个“hello world”。

#!/bin/sh
a="hello world!"

num=2

echo "a is : $a num is : ${num}nd"

运行结果:

a is : hello world! num is : 2nd

可以看出,用$来获取变量值,通常运行脚本的时候,可以用$1,$2,$3等获取多个参数。

比如脚本test.sh

x=$1

y=$2

z=$3

echo $1 $2 $3

调用的时候就可以:sh test.sh 1 2 3

1.9 shell脚本文件之遍历目录

问题:

1. 切换工作目录至/tmp

2. 依次向/tmp目录中的每个文件或子目录问好(Hello,log)

3. 统计/tmp目录下共有多个文件,并显示出来

#!/bin/bash

cd /tmp

for i in /tmp/*

do

    echo "Hello , $i"

done

count=`ls -l|grep '^-'|wc -l`

echo "====file_count:$count===="

运行结果:

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_02

shell命令还有很多高级用法,大家在实战中进行练习提高吧。

 

02 github

github是全球最大的程序员交友平台,所以如果你要想从事技术行业,就必须拥有一个账号,跟微信一样离不开你的生活。

2.1 注册github                            

https://github.com/这个是github官方网站,我们可以在官网上注册属于自己的gitHub账号。点击网址后,界面如下图,由于我们没有github账户, 我们需要点击Sign up for  Github进行简单的注册。

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_03

点击Sign up for Github后,进入下方这个界面,在Step1中填写好个人信息,Step2-3全部采用默认设置,即可完成github注册,记得要去自己的邮箱verify,不然后面没办法创建仓库。是不是很简单。

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_04

完成上面的步骤后你就拥有了自己的github账户,下图就是我的github主页。

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_05

2.2 创建仓库

有了上面的主页后,我们点击start a project后就可以创建仓库了,下图就是仓库需要填写一些信息的界面。

【AI白身境】Linux干活三板斧,shell、vim和git_github_06

仓库名通常就填写我们的项目名,为了说明,这里我填写my_github,描述可以对自己的仓库进行一个简单的说明,也可以不填。点击“Create repository”按钮,就成功地创建了一个新的github仓库,如下图所示:

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_07

现在我们就有了自己的github和仓库,为了便于管理,我们需要安装一个软件git。

2.3 安装git

下面我将说一下在ubuntu18.04上安装git,其他的linux系统其实也是一样的,安装方法很简单,输入下面命令即可安装。

sudo apt install git

安装完成后,你可以用下面命令查看git版本。

 git --version

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_08

2.4 配置参数

接下来你需要做的就是在git中配置自己的名称和电子邮件地址,可以通过使用以下命令来完成此操作:

$git config --global user.name "your name"
$git config --global user.email  "your email"

我们可以通过下面命令查看是否正确配置。

git config --list

【AI白身境】Linux干活三板斧,shell、vim和git_Git_09

这还没有完,我们还需要创建一个ssh key,这个实际上就是一个将你的电脑和github账号联系在一起的密钥,这样以后就可以十分方便的通过git上传你的代码。下面介绍一下如何获得这个密钥,又是如何输入到你的Github中。

获取密钥的方法如下:

首先在命令行输入cd  ~/.ssh,第一次配置会显示没有那个文件或目录,这是正常现象。然后在命令行输入ssh-keygen -t rsa -C "邮箱地址",接下来连按三次回车就可以了。

命令行代码如下:

【AI白身境】Linux干活三板斧,shell、vim和git_Git_10

这样我们的密钥就创建成功了。

然后打开/home/tangxingwang/.ssh/id_rsa文件夹下id_rsa.pub文件,复制里面的内容,打开之后不要惊讶,这就是你需要的密钥。你需要登录你的github来添加这个密钥,登录github后找到SSH and GPG keys这个选项(在setting里面),然后点击网页右上角的New SSH keys进行添加。具体细节如下图:

【AI白身境】Linux干活三板斧,shell、vim和git_Git_11

点击New SSH keys后界面如下图所示,这里的Title是让你给你的密钥起一个名字,随便起一个就行,然后把你刚刚复制的密钥填写在下边的大框里,点击Add SSH keys即可。

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_12

2.5 clone操作

当我们想要从github上面拉取代码时,就需要使用clone操作,现在我们看看怎么进行clone,其实很简单,只需要输入 git clone<需要clone的地址>,示例如下:

git clone [email protected]:tangxingwang/my_github.git

【AI白身境】Linux干活三板斧,shell、vim和git_github_13

这样就clone成功了,是不是很简单。

有的时候我们需要拉取依赖库,就需要加上--recursive选项。

2.6 push操作

说完clone,我们再讲讲push,现在我想在刚刚clone下的文件夹my_github里面添加一个新的文件test.py,然后把它push到github中。命令如下:

cd my_github  

touch test.py

git add test.py

git status

git commit -m"first commit"

git push origin master

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_14

这样我们就push成功了,我们再看看github

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_15

 

03 VIM基本操作

最后我们说说编辑器之神vim。vim是从vi发展出来的一个文本编辑器,其在代码补全、编译等方便的功能特别丰富,在程序员中被广泛使用。

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_16

3.1 基本命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令

3.2 输入模式

在输入模式下可以对文件执行写操作,类似在Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o等插入命令,编写完成后按 Esc 键即可返回基本命令模式。

3.3 底线命令模式

如果要保存、查找或者替换一些内容等,就需要进入底线命令模式。

底线命令模式的进入方法为:在基本命令模式下按":"键,vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。

对于新手来说,经常不知道自己处于什么模式,不论是自己忘了,还是不小心切换了模式,都可以按一次 Esc 键返回基本命令模式。如果你多按几次 Esc 键后听到"嘀————"的声音,则代表你已经处于基本命令模式了。

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_17

3.4 vim使用实例

现在我们使用 vim 来建立一个名为 test.py 的文件,你可以这样做:vi test.py,这样就就入了基本命令模式了

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_18

按下 i 进入输入模式,开始编辑文字,其实在基本命令模式下,只要按下 i, o, a 等字符就可以进入输入模式了!但各自的功能不同。

其中i是光标前插入,a是光标后插入,o是换行。另外在输入模式当中,你可以发现在左下角状态栏中会出现 –插入- 的字样,那就是可以输入任意字符的提示。这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

【AI白身境】Linux干活三板斧,shell、vim和git_github_19

那么假设我已经按照下面的样式给它编辑完毕了,应该要如何退出呢?其实很简单,就是给它按下Esc这个按钮即可!马上你就会发现画面左下角的 –插入 – 不见了!

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_20

对文件编辑完后,我们需要对文件进行保存,其实存盘并离开的指令很简单,在基本命令模式下输入 :wq 即可保存离开!

或者按住shift,连续按两次大写的ZZ。

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_21

OK! 这样我们就成功创建了一个test.py文件

3.5 vim按键说明

除了上面简易范例的 i, o,a,Esc, :wq 之外,其实 vim 还有非常多的按键可以使用

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_22

 

【AI白身境】Linux干活三板斧,shell、vim和git_Git_23

这些基本命令需要我们在使用过程中不断的总结,这样才会融会贯通。附上一张vim的键盘图,哈哈。

【AI白身境】Linux干活三板斧,shell、vim和git_github_24

3.6 vim插件攻略

工欲善其事,必先利其器。一个强大的开发环境可以大大提高工作效率。好吧,我知道这是废话。。。不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样可以一键安装并且功能几乎完美无缺的开发工具而郁闷不已,甚至打算收回刚刚迈出的脚步。所幸的是,Vim有许多强大的插件。

3.6.1vim插件之Vundle

vim 通过插件可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim目录中。由于所有的插件文件都被存储在同一个目录下,所以当你安装更多插件时,不同的插件文件之间相互混淆。因而,跟踪和管理它们将是一个恐怖的任务。然而,这正是 Vundle 所能处理的。

Vundle,分别是 vim 和 Bundle 的缩写,它是一款能够管理 vim 插件的非常实用的工具。它为每一个你安装的插件创建一个独立的目录树,并在相应的插件目录中存储附加的配置文件。因此,相互之间没有混淆的文件。简言之,Vundle 允许你安装新的插件、配置已有的插件、更新插件配置、搜索安装的插件和清理不使用的插件。所有的操作都可以在一键交互模式下完成

【AI白身境】Linux干活三板斧,shell、vim和git_Linux_25

3.6.2 Vim插件之YouCompleteMe

使用Vim编写程序少不了使用自动补全插件。这时候当然少不了YouCompleteMe,它是一个随键而全的、支持模糊搜索的、高速补全的插件。YCM 由 google 公司搜索项目组的软件工程师 Strahinja Val Markovic 所开发,YCM 后端调用 libclang(以获取AST,当然还有其他语言的语义分析库)、前端由 C++ 开发(以提升补全效 率)、外层由 python 封装,这就是最好用的自动补全插件。vim插件还有很多,大家可以根据自己的需要进行安装。

当我们真正熟悉使用了上面的3类工具之后,就从Linux菜鸟开始进步了。

 

总结

你现在对shell,vim,git是不是有点感觉了,抓紧学习,也要期待我们下一篇的内容哟。

下期预告:下一期我们会讲python的常用基础,如果你有建议,欢迎留言,我们会及时采纳的。

 

转载文章请后台联系

侵权必究

【AI白身境】Linux干活三板斧,shell、vim和git_Vim_26

AI白身境系列完整阅读:

第一期:​​【AI白身境】深度学习从弃用windows开始​

第二期:​​【AI白身境】Linux干活三板斧,shell、vim和git​

第三期:​​【AI白身境】学AI必备的python基础​

第四期:​​【AI白身境】深度学习必备图像基础​

第五期:​​【AI白身境】搞计算机视觉必备的OpenCV入门基础​

第六期:​​【AI白身境】只会用Python?g++,CMake和Makefile了解一下​

第七期:​​【AI白身境】学深度学习你不得不知的爬虫基础​

第八期: ​​【AI白身境】深度学习中的数据可视化​

第九期:​​【AI白身境】入行AI需要什么数学基础:左手矩阵论,右手微积分​

第十期:​​【AI白身境】一文览尽计算机视觉研究方向​

​第十一期:【AI白身境】AI+,都加在哪些应用领域了​

第十二期:​​【AI白身境】究竟谁是paper之王,全球前10的计算机科学家​

AI初识境系列完整阅读

第一期:​​【AI初识境】从3次人工智能潮起潮落说起​

第二期:​​【AI初识境】从头理解神经网络-内行与外行的分水岭​

第三期:​​【AI初识境】近20年深度学习在图像领域的重要进展节点​

第四期:​​【AI初识境】激活函数:从人工设计到自动搜索​

第五期:​​【AI初识境】什么是深度学习成功的开始?参数初始化​

第六期:​​【AI初识境】深度学习模型中的Normalization,你懂了多少?​

第七期:​​【AI初识境】为了围剿SGD大家这些年想过的那十几招​

第八期:​​【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?​

第九期:​​【AI初识境】如何增加深度学习模型的泛化能力​

第十期:​​【AI初识境】深度学习模型评估,从图像分类到生成模型​

第十一期:​​【AI初识境】深度学习中常用的损失函数有哪些?​

第十二期:​​【AI初识境】给深度学习新手开始项目时的10条建议​

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【AI白身境】Linux干活三板斧,shell、vim和git_编译环境_27

 

 

 

标签:插件,shell,命令,三板斧,vim,github,AI,git
From: https://blog.51cto.com/u_14122493/5750903

相关文章

  • 【AI白身境】深度学习从弃用windows开始
    【AI白身境】深度学习从弃用windows开始今天是新专栏《AI白身境》的第一篇,所谓白身,就是什么都不会,还没有进入角色。给大家准备了10期左右的文章来完成这个身份的转变,今天是......
  • 【AI白身境】深度学习中的数据可视化
    今天是新专栏《AI白身境》的第八篇,所谓白身,就是什么都不会,还没有进入角色。上一节我们已经讲述了如何用爬虫爬取数据,那爬取完数据之后就应该是进行处理了,一个很常用的手段是......
  • 【AI白身境】一文览尽计算机视觉研究方向
    今天是新专栏《AI白身境》的第10篇,所谓白身,就是什么都不会,还没有进入角色。相信看了前面的几篇文章后很多朋友已经等不及快速入行了,今天就来介绍一下计算机视觉的各大研究方......
  • Docker, containerd, CRI-O and runc之间的区别?
    1、概述在容器生态系统中充斥着各种各样的术语,今天就来为你,一一解码! Docker开启了容器的时代,但不久之后,工具、标准和首字母缩略词似乎在这一领域爆发。那么,“docker”......
  • 【AI初识境】给深度学习新手做项目的10个建议
    这是专栏《AI初识境》的第12篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。在成为合格的深度学习算法工程师,尤其是工业界能够实战的调参选手之前,总会踏足......
  • MYSQL explain详解
    xplain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。虽然这篇文章我写的很长,但看起来真的不会困啊,真的都是干货啊!!!!......
  • 【Xshell】ln -sf 建立软连接
    连接类型分为硬连接和符号连接(软连接)两种,无论哪种,文件都保持同步变化硬连接(默认):没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件软连接( ......
  • Power shell执行策略(ExecutionPolicy)
    问题场景,node安装npminstall-gyarn,yarn --version命令无法查看yarn版本,提示yarn:无法加载文件C:\Users\FelishaHuang\AppData\Roaming\npm\yarn.ps1,因为在此系......
  • vulnhub靶机 AI WEB 2
    vulnhub靶机AI:WEB:2靶场介绍靶场地址:https://www.vulnhub.com/entry/ai-web-2%2C357/主要内容:文件读取、join爆破、命令注入、命令注入传shell、(隐藏文件)敏感文件......
  • mac big sur 运行cocos报raise ValueError, ‘unknown locale: %s‘ % localename错误
    ndk,ant,sdk,java_home环境配置正确情况下运行cocos报: raiseValueError,'unknownlocale:%s'%localename ,系统语言为英文版本 控台台输入open-e.bash_profile增......