转摘【笔记】Linux工作三件套,shell、vim和git
Linux工作三件套,shell、vim和git
1.Linux基础命令与shell脚本
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即可。
除了这七个命令,还有许多常见的命令,如pwd命令,这个可以查看当前路径,这个在移动数据集或者整理文件list的时候很有用;tar命令,这个可以文件压缩;unzip命令,这个可以用于文件解压。
1.8 shell脚本文件之"hello world"
有了基本的命令之后,接下来就可以写一些常用的脚本。脚本常用于获取参数,循环遍历。
首先看一个"hello world"。
bash
#!/bin/sh
a="hello world!"
num=2
echo "a is : $a num is : ${num}nd"
运行结果:
bash
a is : hello world! num is : 2nd
可以看出,用来获取变量值,通常运行脚本的时候,可以用1,2,3等获取多个参数。
bash
x=$1
y=$2
z=$3
echo $1 $2 $3
调用的时候就可以:sh test.sh 1 2 3
1.9 shell脚本文件之遍历目录
问题:
-
切换工作目录至/tmp
-
依次向/tmp目录中的每个文件或子目录问好(Hello,log)
-
统计/tmp目录下共有多个文件,并显示出来
bash
#!/bin/bash
cd /tmp
for i in /tmp/*
do
echo "Hello , $i"
done
count=`ls -l|grep '^-'|wc -l`
echo "====file_count:$count===="
2.github
github是全球最大的程序员交友平台,所以如果你要想从事技术行业,就必须拥有一个账号,跟微信一样离不开你的生活。
2.1 注册github
https://github.com/这个是github官方网站,我们可以在官网上注册属于自己的gitHub账号。
2.2 创建仓库
创建账号后,点击start a project后就可以创建仓库了。
2.3 安装git
下面介绍在ubuntu18.04上安装git,其他的linux系统其实也是一样的,安装方法很简单,输入下面命令即可安装。
sudo apt install git
安装完成后,你可以用下面命令查看git版本。
git --version
2.4 配置参数
接下来需要做的就是在git中配置自己的名称和电子邮件地址,可以通过使用以下命令来完成此操作:
$git config --global user.name "your name"
$git config --global user.email "your email"
可以通过下面命令查看是否正确配置。
git config --list
这还没有完,还需要创建一个ssh key,这个实际上就是一个将你的电脑和github账号联系在一起的密钥,这样以后就可以十分方便的通过git上传你的代码。下面介绍一下如何获得这个密钥,又是如何输入到你的Github中。
获取密钥的方法如下:
首先在命令行输入cd ~/.ssh,第一次配置会显示没有那个文件或目录,这是正常现象。然后在命令行输入ssh-keygen -t rsa -C "邮箱地址",接下来连按三次回车就可以了。
这样我们的密钥就创建成功了。
然后打开/home/youname/.ssh/id_rsa文件夹下id_rsa.pub文件,复制里面的内容,打开之后不要惊讶,这就是你需要的密钥。你需要登录你的github来添加这个密钥,登录github后找到SSH and GPG keys这个选项(在setting里面),然后点击网页右上角的New SSH keys进行添加。
点击New SSH keys后,这里的Title是让你给你的密钥起一个名字,随便起一个就行,然后把你刚刚复制的密钥填写在下边的大框里,点击Add SSH keys即可。
2.5 clone操作
当我们想要从github上面拉取代码时,就需要使用clone操作,其实很简单,只需要输入 git clone<需要clone的地址>,示例如下:
git clone git@github.com:mygithub/my_github.git
这样就clone成功了,是不是很简单。
有的时候我们需要拉取依赖库,就需要加上--recursive选项。
2.6 push操作
说完clone,我们再讲push,现在我想在刚刚clone下的文件夹my_github里面添加一个新的文件test.py,然后把它push到github中。命令如下:
bash
cd my_github
touch test.py
git add test.py
git status
git commit -m"first commit"
git push origin master
这样我们就push成功了,可以查看github。
3.VIM操作
vim是从vi发展出来的一个文本编辑器,其在代码补全、编译等方便的功能特别丰富,在程序员中被广泛使用。
3.1 基本命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
-
i 切换到输入模式,以输入字符。
-
x 删除当前光标所在处的字符。
-
: 切换到底线命令模式,以在最底一行输入命令
3.2 输入模式
在输入模式下可以对文件执行写操作,类似在Windows 的文档中输入内容。进入输入模式的方法是输入i、a、o等插入命令,编写完成后按 Esc 键即可返回基本命令模式。
3.3 底线命令模式
如果要保存、查找或者替换一些内容等,就需要进入底线命令模式。
底线命令模式的进入方法为:在基本命令模式下按":"键,vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。
对于新手来说,经常不知道自己处于什么模式,不论是自己忘了,还是不小心切换了模式,都可以按一次 Esc 键返回基本命令模式。如果你多按几次 Esc 键后听到"嘀------------"的声音,则代表你已经处于基本命令模式了。

3.4 vim按键说明
除了 i, o,a,Esc, :wq 之外,其实 vim 还有非常多的按键可以使用


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

3.6 vim插件攻略
工欲善其事,必先利其器。一个强大的开发环境可以大大提高工作效率。Vim有许多强大的插件。
3.6.1vim插件之Vundle
vim 通过插件可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim目录中。由于所有的插件文件都被存储在同一个目录下,所以当你安装更多插件时,不同的插件文件之间相互混淆。因而,跟踪和管理它们将是一个恐怖的任务。然而,这正是 Vundle 所能处理的。
Vundle,分别是 vim 和 Bundle 的缩写,它是一款能够管理 vim 插件的非常实用的工具。它为每一个你安装的插件创建一个独立的目录树,并在相应的插件目录中存储附加的配置文件。因此,相互之间没有混淆的文件。简言之,Vundle 允许你安装新的插件、配置已有的插件、更新插件配置、搜索安装的插件和清理不使用的插件。所有的操作都可以在一键交互模式下完成
3.6.2 Vim插件之YouCompleteMe
使用Vim编写程序少不了使用自动补全插件。这时候当然少不了YouCompleteMe,它是一个随键而全的、支持模糊搜索的、高速补全的插件。YCM 由 google 公司搜索项目组的软件工程师 Strahinja Val Markovic 所开发,YCM 后端调用 libclang(以获取AST,当然还有其他语言的语义分析库)、前端由 C++ 开发(以提升补全效 率)、外层由 python 封装,这就是最好用的自动补全插件。vim插件还有很多,可以根据自己的需要进行安装。
===========================
【来源: CSDN】
【作者: 镰刀韭菜】
【原文链接】 https://xinzhe.blog.csdn.net/article/details/97832892
声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。