Linux常用命令
#1. Linux终端常用命令
##1.1.1. 文件转码
一般转换编码都是用iconv命令来转换,命令格式如下
$iconv -f gb18030 -t utf-8 file1.txt > file2.txt
##1.1.2. 添加手册
发现乌班图还是有很多函数不全,只有一小部分pthread的函数,使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册。安装manpages-posix-dev就可以了
|
|
关机
sudo poweroff
sudo shutdown now -P重启
sudo reboot
##1.1. 查看所写代码行数
当前目录下:
wc -l .c .h
当前目录及子目录:
find . -name .c |xargs wc -l
find . -name .cpp | xargs wc -l
find . -name *.h |xargs wc -l
统计文件行数(单个文件):
wc -l file
#2. git常用命令
理解git里的三个区域概念非常重要。git里很多常用的命令都是围绕着这三个区域来做的。它们分别为:
- working directory,也就是你所操作的那些文件
- history,你所提交的所有记录,文件历史内容等等。git是个分布式版本管理系统,在你本地有项目的所有历史提交记录;文件历史记录;提交日志等等。
- stage(index),暂存区域,本质上是个文件,也就是.git/index
git clone
eg: git clone git://github.com/XXX/XXX.git some_project (最后为仓库的地址)
将’git://github.com/XXX/XXX.git’这个URL地址的远程版本库完全克隆到本地XXX目录下面git init
初始化当前目录,初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中git status
查看当前目录相应文件在git下的状态git commit
提交当前工作空间的修改内容
eg:git commit -m “update code”,提交的时候必须用-m来输入一条提交信息git add
将当前更改或者新增的文件加入到git的索引中
eg:git add test.c 就会增加test.c文件到git的索引中
git add . —— 将当前所有的更改加入到git索引中staged files are files we have told git that are ready to be committed,暂存区域本质是一个文件,.git/index
|
|

git pull
意思就是将远程的代码给拉到本地
从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地
eg:’git pull origin master 就是将origin这个版本库的代码更新到本地的master主枝git rm
从当前的工作空间中和索引中删除文件
eg:git rm test.c
//删除git add的文件 目录要加上-r
git rm –cached file1 //删除文件跟踪但不删除文件系统中的文件file1git push
将本地commit的代码更新到远程版本库中(推送的远程的代码仓库中)
eg:git push origin 就会将本地的代码更新到名为orgin的远程版本库中第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
第一次使用了-u 命令 以后只使用git push origin master即可
- git log , git diff , git reset –hard HEAD^
git log //用于查看提交的每个版本
git diff //用于查看提交的本版本的改变
在Git中,用HEAD表示当前版本也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向另一个提交版本的标签.
$ git reset –hard HEAD^
丢弃工作区的修改
工作区有一个隐藏目录“.git” git add把文件添加进去,实际上就是把文件修改添加到暂存区 git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
- 只是修改了文件.但是还没有git add 的时候
git checkout – file可以丢弃工作区的修改(file是你需要撤销修改的文件名)
恢复到最后一次提交时候的状态
git checkout -- file命令中的“--”很重要,没有“--”,就变成了“创建一个新分支”的命令
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- 修改了文件,并且进行了git add
命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
用HEAD时,表示最新的版本
- 删除提交到git上的文件
要从版本库中删除该文件,那就用命令git rm删掉,并且commit
|
|
- 添加,修改,合并分支
|
|
#3. vim常用命令
##3.1. 字符串替换
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
##3.2. 简单的光标移动
0 → 数字零,到行头
^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
$ → 到本行行尾
g_ → 到本行最后一个不是blank字符的位置。
/pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)
##3.3. 打开/保存/退出/改变文件
:e <path/to/file> → 打开一个文件
:w → 存盘
:saveas <path/to/file> → 另存为 <path/to/file>
:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
:q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
:bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(n到下一个文件)
##3.4. 分屏split 和 vsplit.
下面是主要的命令,可以使用VIM的帮助 :help split. 。
:split → 创建分屏 (:vsplit创建垂直分屏)
<C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
<C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
<C-w>+ (或 <C-w>-) : 增加尺寸