一点常用命令

Git

提交代码

1
2
3
git add [文件名]
git commit -m"[描述]"
git push origin [本地分支名]:[远程分支名]

创建分支

1
2
3
4
5
6
7
8
# 查看当前分支
git branch
# 创建并切换
git checkout -b [分支名]
# 推送新分支到远程
git push origin [分支名]
# 切换分支
git checkout [分支名]

删除内容

1
2
3
4
5
6
# 删除分支
git push origin --delete [分支名]
# 删除版本库文件(保留本地)
git rm --cached [文件名]
# 删除版本库文件夹(保留本地)
git rm --cached -r [目录名]

合并分支

1
2
3
4
5
6
# 更新本地
git pull
# 合并前对比
git diff [源分支] [目标分支]
# 合并分支到当前分支
git merge [分支名]

撤销操作

1
2
3
4
5
6
# 查看commit_id
git log
# 回退到某个commit并保存之前的修改
git reset --soft [commit_id]
# 回退到某个commit并保存之前的修改
git reset --hard [commit_id]

上传本地项目

1
2
3
4
5
6
git init
git add .
git commit -m"[项目描述]"
git remote add origin https://github.com/[path]/[project].git
git pull --rebase origin master
git push -u origin master

shell

进程信息

1
2
3
4
5
6
7
8
9
10
11
12
# 显示所有进程信息
ps -A
# 显示指定用户信息
ps -u [用户名]
# 显示所有进程信息,包括命令行
ps -ef
# ps组合grep
ps -ef | grep [条件]
# 列出正在内存中的程序
ps aux
# 列出类似程序树的程序显示
ps -axjf

磁盘信息

1
2
3
4
5
6
7
# 整个磁盘空间
df -lh
# 目录文件磁盘占用
du --max-depth=1 -h
du -sh
du -h --max-depth=0
du -sh /root/sw

定时任务

1
2
3
4
5
6
7
8
9
10
11
# 增加定时命令
crontab -e
# 定时命令格式 (其中*表示任意,数字对应相应的单位)
crontab -e [分钟][小时][日期][月份][星期] [需要执行的命令]
# 示例(每天12点运行test.sh脚本)
# 0 12 * * * sh test.sh

# 查看定时命令列表
crontab -l
# 不间断运行
nohup [需要执行的命令] &

发送邮件

1
echo "[邮件内容]" | mutt -s "[邮件标题]" -a [附件路径] [邮箱]

文本操作

grep

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-a: 将 binary 文件以 text 文件的方式搜寻数据
-c: 计算找到 ‘搜寻字符串’ 的次数
-i: 忽略大小写的不同,所以大小写视为相同
-n: 顺便输出行号
-v: 反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
—color=auto: 可以将找到的关键词部分加上颜色的显示

单字符匹配: [字符范围]
单字符字符反向选择: [^字符范围]
行首: ^需匹配字符
行尾: 需匹配字符$
任意一个字符: .
重复0个或多个之前的字符: 需重复字符*
限定重复之前字符次数: 需重复字符\{次数\}
全目录查找字符串: grep -R "字符串" [目录]

comm

1
2
3
4
5
6
7
8
9
10
11
# -1: 不显示在第一个文件出现的内容;
# -2: 不显示在第二个文件中出现的内容;
# -3: 不显示同时在两个文件中都出现的内容。
# 交集
comm aaa.txt bbb.txt -1 -2
# 非交集
comm aaa.txt bbb.txt -3 | sed 's/^\t//'
# 差集
comm aaa.txt bbb.txt -2 -3
# 差集
comm aaa.txt bbb.txt -1 -3

uniq

1
2
3
4
5
6
-c或—count: 在每列旁边显示该行重复出现的次数。
-d或—repeated: 仅显示重复出现的行列。
-f<栏位>或—skip-fields=<栏位>: 忽略比较指定的栏位。
-s<字符位置>或—skip-chars=<字符位置>: 忽略比较指定的字符。
-u或—unique: 仅显示出一次的行列。
-w<字符位置>或—check-chars=<字符位置>: 指定要比较的字符。