- shell 俗称
壳
,用来区别于核
,操作的始终是计算机的硬件 shell 分类
- 图形化 shell
可以更直接的去操作系统,例如windows - 命令行 shell
例如 window 底下的cmd命令,linux系统的命令行工具
git bash
模拟cmd的大部分命令,linux系统直接使用bash
- 图形化 shell
git:分布式版本控制系统
配置
git config --global <options> <parameter>
配置文件保存路径在 .git/config
--global
:全局配置,<options>
:配置项,<parameter>
:参数设置名字和邮箱地址
git config --global user.name "userName"
git config --global user.email "userEmail"
# 重新设置
git config --global --replace-all user.name "newName"
git config --global --replace-all user.email "userEmail"
- 查看配置信息
git config --list
/git config -l
基本操作
1. 文件操作
- 输出当前目录
pwd
- 切换目录
cd
cd css # 切换下级目录
cd .. # 返回上级目录
d: # 切换磁盘
查看文件夹目录
ls
-a
:查看所有文件,包括隐藏文件、当前目录和上级目录
-l
:查看详细信息,读写权限
创建目录
mkdir <folderName>
mkdir css js image # 创建多个目录,使用空格分隔
- 创建文件
touch <fileName>
touch index.html
touch css/master.less
touch css/master.less js/main.js
查看文件
cat <fileName>
:查看文件,列出全部内容
more <fileName>
:命令模拟,在window下是无效的
less <fileName>
:分页列出内容,翻页:按[space]
键,换行:按[Enter]
键,退出:输入:q
head -n <fileName>
:查看文件的前几行,tail -n <fileName>
:查看文件后几行
移动文件
mv <fileName> <toPath>
相对路径
-l
:即使目标存在,也要强制重命名或移动文件
-k
:跳过移动或重命名会导致错误情况的操作
-n
:显示发生了什么
-v
:在移动时报告文件的名称
mv index.html default.html # 重命名
mv index.html view/
mv index.html ../projact
mv index.html /view/admin
- 复制文件
cp <fileName> <toPath>
- 删除文件
rm <fileName>
- 删除文件夹
rmdir # 删除空文件夹
rm <folderName> -r # 删除非空文件夹,递归方式
- 解压
tar
- 查看当前用户
whoami
- 输入过的命令历史
history
- 下载
wget
- 重定向
>
、>>
ls > mes.txt # 把ls的结果覆盖到 mes.txt
ls >> mes.txt # 把ls的结果追加到 mes.txt
- 网络请求
curl
curl http://www.baidu.com
curl http://www.baidu.com > baidu.html
- 过滤器
把前面的index.html
内容以参数的形式传递到后面grep
,然后进行正则匹配
cat index.html | grep b # 返回 index.html 文件中含有字符串 b 的标签
2. VI 编辑
vi <fileName>
:进入命令行模式- 模式之间的切换
编辑模式与底行模式之间无法直接切换
命令行模式 → 编辑模式:输入i
或a
命令行模式 → 底行模式:输入:
,即按[Shift] + ;
返回命令行模式:按[Esc]
键
退出命令行模式:输入:!q
命令行模式
ZZ
:保存并退出
u
:撤销操作
dd
:删除当前行
yy
:复制当前行
p
:粘贴
[Ctrl] + f
:上一页
[Ctrl] + b
:下一页
i
:进入编辑模式,当前光标处插入
a
:进入编辑模式,当前光标后插入
A
:进入编辑模式,当前行最后
o
:进入编辑模式,当前行向下起新行
O
:进入编辑模式,当前行向上起新行底行模式
w
:保存文件
w newFile
:另存为
q
:退出
wq
:保存并退出
q!
:不保存强制退出
e!
:撤销更改
版本操作
1. 创建版本库
master
:默认开发分支
origin
:默认远程版本库
Head
:默认开发分支
Head^
:Head 的父提交
- 克隆远程版本库
git clone <url>
- 初始化本地版本库,生成 git 仓库
git init
2. 修改和提交
- 把文件放入暂存区
git add # 把文件放入暂存区
git add -A # 所有文件
git add ** # 表示一个目录
git add . # 跟踪所有改动过的文件
git add <fileName> # 跟踪指定文件
git status # 查看当前仓库版本状态
git diff # 查看变更内容
git mv <old> <new> # 文件改名
git rm <file> # 删除文件
git rm --cached <file> # 停止跟踪文件但不删除
git commit -m "message" # 提交所有更新过的文件
git commit --amend # 修改最后一次提交
3. 查看提交历史
git log # 查看提交历史
git log -p <file> # 查看指定文件的提交历史
git blame <file> # 查看指定文件的提交历史,以列表方式
4. 撤销
git reset --hard HEAD # 撤销工作目录中所有未提交文件的修改内容
git reset --hard <version> # 回退到某个指定版本
git checkout HEAD <file> # 撤销指定的未提交文件的修改内容
git checkout <fileName> # 将暂存区的内容还原到编辑区
git revert <commit> # 撤销指定的提交
5. 分支与标签
git branch # 显示所有本地分支
git checkout <branchName/tagName> # 切换到指定分支或标签
git branch <newBranch> # 创建新分支
git branch -d <branchName> # 删除本地分支
git branch -D <branchName> # 删除本地分支
git tag # 列出所有本地标签
git tag <tagName> # 基于最新提交创建标签
git tag -g <tagName> # 删除标签
6. 合并与衍合
git merge <branch> # 合并指定分支到当前分支
git rebase <branch> # 衍合指定分支到当前分支
7. 远程操作
git remote -v # 查看远程版本库信息
git remote show <remote> # 查看指定远程版本库信息
git remove add <remote> <url> # 添加远程版本库
git fetch <remote> # 从远程库获取代码
git pull --set-upstream <remote> <branch> # 推送分支
git pull <remote> <branch> # 下载代码及快速合并
git push <remote> <branch> # 上传代码及快速合并
git push <remote> :<branch/tagName> # 删除远程分支或标签
git push --tags # 上传所有标签