Git

日常操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 获取远端代码
git fetch upstream xxxx

# 将远端代码合并到本地
git merge upstream/xxxx

# 获取并合并代码
git pull

# 查看不同(工作区与暂存区)
git diff

# 查看工作区修改的文件
git status

# 放弃工作区的修改
git checkout

# 将修改的文件提交到暂存区
git add

# 提交更改
git commit -m "# 注释"

# 提交到远端
git push origin xxxx

# 查看提交日志
git log (--pretty=oneline)

# 版本回退
git reset --hard HEAD^ # 上一个版本
git reset --hard HEAD^^ # 上上一个版本
git reset --hard HEAD~20 # 上20个版本

# 回到未来
git reflog
git reset

# 删除文件
git rm
git commit

# 合并一个commit
git cherry-pick [commitId]

# 修改上一次commit注释
git commit --amend -m '# 新的注释'

# 显示将要删除的文件
git clean -n

# 删除没有track的文件,不包含.gitignore
git clean -f

# 删除指定路径下没有track的文件
git clean -f <path>

# 删除当前目录下没有track的文件和文件夹
git clean -fd

# 暂存更改
git stash

# 弹出暂存
git stash pop

#### 远程仓库
# 创建SSH KEY
# 用户目录 .ssh/
# id_rsa 私钥
# id_rsa.pub 公钥
ssh-keygen -t rsa -C "my@email.com"

# 在Github上 Add SSH Key, 粘贴公钥内容

# 克隆远端代码
git clone some_url

进阶

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 创建并切换到分支
git checkout -b dev

# 等同于
git branch dev
git checkout dev

# 查看分支
git branch

# 合并分支
git merge

# 删除分支
git branch -d

# 查看分支合并图
git log --graph

# 分支策略
git merge --no-ff -m "注释" dev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Bug分支
# 暂存修改
git stash

# 回到master,并创建新分支,修复后提交
git checkout master
git checkout -b issue-101
git commit -m "fix-issue-101"

# 合并bug分支并删除
git checkout master
git merge --no-ff -m "m-merge-issue-101" issue-101
git branch -d issue-101

# 将修复bug后的master合并到dev
git checkout dev
git merge --no-ff -m "dev-merge-m" master

# 弹出暂存的修改
git stash pop

# 修复冲突
git commit -m "fixconflict & append something"

# 完成后提交
git checkout master
git merge --no-ff -m "m-merge-dev" dev
git branch -d dev

标签管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 创建标签,默认HEAD,也可指定commit id
git tag <name>

# 指定标签信息
git tag -a <tagname> -m "message"

# PGP签名标签
git tag -s <tagname> -m "message"

# 查看所有标签
git tag

# 推送本地标签
git push origin <tagname>

# 推送全部本地未推送的标签
git push origin --tags

# 删除一个本地标签
git tag -d <tagname>

# 删除一个远程标签
git push origin :refs/tags/<tagname>

Linux

文件命令

命令 操作
ls 列出目录
ls -al 使用格式化列出隐藏文件
cd dir 更改目录到dir
cd 更改到home目录
pwd 显示当前目录
mkdir dir 创建目录dir
rm file 删除file
rm -r dir 删除目录dir
rm -f file 强制删除file
rm -rf dir 强制删除目录dir
cp file1 file2 将file1复制到file2
cp -r dir1 dir2 将file1复制到dir2,如果dir2不存在则创建它
mv file1 file2 将file1重命名或移动到file2,若file2存在则移动
ln -s file link 创建file的符号连接link
touch file 创建file
cat > file 将标准输入添加到file
more file 查看file的内容
head file 查看file的前10行
tail file 查看file的后10行
tail -f file 从后10行开始查看file的内容

进程管理

命令 操作
ps 显示当前的活动进程
top 显示所有正在运行的进程
kill pid 杀掉进程id pid
killall proc 杀掉所有名为proc的进程
bg 列出已停止或后台的作业
fg 将最近的作业带到前台
fg n 将作业n带到前台

文件权限

命令 操作
chmod octal file 更改file的权限
  • 4 读(r)
  • 2 写(w)
  • 1 执行(x)

SSH

命令 操作
ssh user@host 以user用户连接到host
ssh -p port user@host 在端口port以user用户身份连接到host
ssh-copy-id user@host 将密钥添加到host以实现无密码登录

搜索

命令 操作
grep pattern files 搜索files中匹配pattern的内容
grep -r pattern dir 递归搜索dir中匹配pattern的内容
command l grep pattern 搜索command输出中匹配pattern的内容

系统信息

命令 操作
date 显示当前日期和时间
cal 显示当月的日历
uptime 显示系统从开机到现在所运行的时间
w 显示登录的用户
whoami 查看你的当前用户名
finger user 显示user的相关信息
uname -a 显示内核信息
cat /proc/cpuinfo 查看cpu的信息
cat /proc/meminfo 查看内存信息
man command 显示command的说明手册
df 显示磁盘占用情况
du 显示目录空间占用情况
free 显示内存及交换区占用情况

压缩

命令 操作
tar cf file.tar files 创建包含files的tar文件file.tar
tar xf file.tar 从file.tar提取文件
tar czf file.tar.gz files 使用Gzip压缩创建tar文件
tar xzf file.tar.gz 使用Gzip提取tar文件
tar cjf file.tar.bz2 使用Bzip2压缩创建tar文件
tar xjf file.tar.bz2 使用Bzip2提取tar文件
gzip file 压缩file并重命名为file.gz
gzip -d file.gz 将file.gz解压缩为file

网络

命令 操作
ping host ping host并输出结果
whois domain 获取domain的whois信息
dig domain 获取domain的DNS信息
dig -x host 逆向查询host
wget file 下载file
wget -c file 断点续传

安装

从源代码安装:

1
2
3
4
5
./configure
make
make install
dpkg -i pkg.deb
rpm -Uvh pkg.rpm

快捷键

命令 操作
Ctrl + C 停止当前命令
Ctrl + Z 停止当前命令,并使用fg恢复
Ctrl + D 注销当前会话,与exit相似
Ctrl + W 删除当前行中的字
Ctrl + U 删除整行
!! 重复上次的命令
exit 注销当前会话