Vi文本编辑
1、vi hello.c
2、键入i进入插入模式
3、编辑
4、键如[ESC]退出到命令行模式
5、键入:wq保存退出
命令行模式功能键
Yy:复制当前光标所在行
[n]yy:n为数字,复制当前光标开始的n行
P:粘贴复制的内容到光标所在行
Dd:删除当前光标所在行
[n]dd:删除当前光标所在的行开始的n行
/name:查找光标之后的名为"name"的字符串
G:光标移动到文件尾(注意是大写)
U:取消前一个动作(注意是小写)
:w保存
:q退出vi(系统会提示保存修改)
:q!强行退出(对修改不做保存)
:wq保存后退出
:w[filename]另存为filename的文件
:set nu显示行号
:set nonu取消行号
注意:无特殊要求的指令字母都是小写
Shell脚本编程
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
比较操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
-e 文件已经存在
-f 文件是普通文件
-s 文件大小不为零
-d 文件是一个目录
-r 文件对当前用户可以读取
-w 文件对当前用户可以写入
-x 文件对当前用户可以执行
For var in [list]
Do
#code block
done
git 操作
1. 安装git
$sudo apt-get install git
2. 设置git
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ git config --global push.default matching(允许推送所有的分支)
3. 创建版本库
$ git init
4. 添加文件到git版本控制
$ git add readme.txt
5. 提交代码到git仓库
$ git commit -m "第一次修改11.c文件"
6. 状态查询:
$ git status
7. 与上一个版本比较不同
$ git diff 或者 $ git diff 11.c
8. 查询提交日志
$ git log 或者 $ git log --pretty=oneline
9. 版本回退(上一个)
$ git reset --hard HEAD^
10. 版本回退(任意)
$ git reflog //查询所有的版本
$ git reset --hard xxxxxx //根据上边查询出来的版本号,可回退任意版本
11. 暂存区和版本库的概念
$ git add把文件添加进去,实际上就是把文件修改添加到暂存区
$ git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支(版本库)
12. 比较工作区和版本库里不同的命令
$ git diff HEAD -- readme.txt //readme.txt文件并没有执行git add命令,所以是属于工作区的文件
13. 放弃工作区的修改
$ git checkout -- 11.c
14. 放弃暂存区的修改(使用git add命令后)
$ git reset HEAD 11.c //退回到工作区,之后可以执行放弃工作区的修改,来还原
15. 删除工作区文件和从版本库还原
$ rm 11.c
$ git checkout -- 11.c
16. 删除版本库里的文件
$ git rm 11.c
17. 创建ssh-key(公钥生成在自己的用户目录下.ssh/id_rsa.pub)
ssh-keygen -t rsa -C "541237941@qq.com" 或者 ssh-keygen
18. 关联远程库(在本地的工作区执行该命令)
git remote add origin git@github.com:suifengrumeng/git-c.git
如果关联错了,可运行命令进行取消:
git remote remove origin
19. 推送到远程库
git push -u origin master(只推送本地的master分支到远程主机origin)
推送所有分支
git push --all origin (需要切换config模式到matching)
20. 以后本地再提交,就可以
git push origin master
21. 从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
22. 分支操作
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除本地分支:git branch -d <name>
删除远程库分支:git push -u -f origin :suifeng
查看分支信息:git log --graph --pretty=oneline --abbrev-commit
23. 关闭快速合并
git merge --no-ff -m "merge with no-ff" dev