Linux命令+Git命令
- linux
- 查看
- 两个操作系统cd命令的区别
- 操作文件和文件夹
- vim
- 不同模式
- 保存和退出
- Git
- 注意事项
- git bash常用的快捷键
linux
Linux操作系统中,几乎所有的东西都以文件夹或文件形式存在,这些文件夹/文件有一个共同的根目录/。如果我们在某块磁盘A上(无其他分区)安装了Linux操作系统后,那么根目录下将会有此类默认的系统目录:
$ ls /
bin etc lib mnt proc run tmp var boot dev home root srv sys usr
查看
经常去pwd + ls + tree!!!
ls -al 类似于 dir /a
dir+ls命令
-
Windows:
dir是 Windows 命令提示符(CMD)中默认的命令,用来列出当前目录下的文件和文件夹。它不需要安装任何东西
-
Linux:
ls用来列出当前目录的文件和子目录。
-
Linux 下
ls命令的常用选项: -
-l(详细信息):-l选项让ls显示文件和目录的详细信息,包括权限、链接数、所有者、组、文件大小、修改时间等。
示例:
ls -l输出示例:
-rw-r--r-- 1 user group 12345 Apr 15 10:30 file.txt drwxr-xr-x 2 user group 4096 Apr 15 10:00 mydir- 第一列表示文件权限。
- 第二列是硬链接数。
- 第三列是文件的所有者。
- 第四列是文件的所属组。
- 第五列是文件大小(以字节为单位)。
- 第六列是最后修改时间。
- 最后一列是文件名或目录名。
-
-a(显示所有文件,包括隐藏文件):-a选项显示目录中的所有文件,包括以点(.)开头的隐藏文件(例如.bashrc)。
示例:
ls -a -
-la或-al(显示详细信息并显示所有文件):- 可以将
-l和-a选项组合使用,显示所有文件和详细信息。
- 可以将
-
Windows 下
dir命令的常用选项: -
/Q(显示文件所有者):- 显示文件的所有者(类似于
ls -l中显示的所有者信息)。
示例:
dir /Q - 显示文件的所有者(类似于
-
/A(显示所有文件,包括隐藏文件):dir命令的/A选项用于显示所有文件,包括隐藏文件和系统文件。你可以通过指定/A:H来只显示隐藏文件,或者/A:S来只显示系统文件。
示例:
dir /A -
/Q+/A(显示文件所有者并显示隐藏文件):- 如果要显示详细的文件信息并包括隐藏文件,你可以将
/A和/Q选项组合使用。
示例:
dir /A /Q - 如果要显示详细的文件信息并包括隐藏文件,你可以将
-
/T(显示文件时间):dir /T选项用于显示文件的时间戳(例如创建时间、修改时间、最后访问时间)。/T:C表示显示创建时间,/T:A表示显示最后访问时间,/T:W表示显示最后修改时间。
示例:
dir /T:W -
tree命令
-
Windows:
tree命令 默认在 Windows 系统中可用,它用于以树形结构显示目录及其子目录。无需额外安装。
-
Linux:
tree命令在大多数 Linux 发行版中不自带,通常需要单独安装。例如,在基于 Debian 的系统(如 Ubuntu)中,可以通过以下命令安装:sudo apt install tree- 安装后,使用
tree命令查看目录结构。 - 示例:
tree - 这会显示当前目录及其子目录的树状结构。
两个操作系统cd命令的区别
cd 命令在 Linux 和 Windows 中都可以接受绝对路径和相对路径,都是
.表示当前目录,..表示父目录
cd /d E:/lang适用于切换盘符并进入指定目录。
但是只有在 Windows 中,/d是用来切换盘符的,因为 Windows 文件系统基于不同的盘符来管理不同的磁盘,
在 Linux 中,cd不需要-d或类似的选项,只需要指定路径,不需要考虑盘符的问题,因为 Linux 是一个基于文件系统树的操作系统。它的文件系统是统一的,所有的磁盘和分区都挂载到一个根目录/下。
除了盘符切换(/d选项)的区别外,Linux 和 Windows 中的cd命令在行为和一些细节上也有一些不同:
- 路径表示
- Linux:
- 使用
/来表示目录分隔符。例如:/home/user/docs。 - 路径是区分大小写的。也就是说,
/home/user和/home/User是不同的路径。
- 使用
- Windows:
- 使用
\来表示目录分隔符。例如:C:\Users\Documents。 - 路径不区分大小写。例如,
C:\Users和C:\users被视为相同路径。
- 使用
-
环境变量
- Linux:
- 在 Linux 中,
cd可以通过~来表示当前用户的主目录。例如,cd ~会切换到当前用户的家目录/home/username。 cd也支持-来返回到上一个目录(即最近访问的目录)。例如,cd -会切换到上次访问的目录。
- 在 Linux 中,
- Windows:
- Windows 命令行中,
cd命令不支持~表示当前用户目录(但是 PowerShell 中支持)。例如,cd ~在普通的命令提示符下会报错。 - 同样,Windows 命令行也支持
cd -来返回上一个目录,这个功能在某些版本的 CMD 中可能不可用,但 PowerShell 中则支持。
- Windows 命令行中,
- Linux:
-
路径中的空格
- Linux:
- 如果路径中包含空格,通常需要用引号或反斜杠来转义。例如:
cd "My Documents"或cd My\ Documents。
- 如果路径中包含空格,通常需要用引号或反斜杠来转义。例如:
- Windows:
- 同样的情况,如果路径中有空格,使用引号包围路径。例如:
cd "C:\Users\My Documents"。
- 同样的情况,如果路径中有空格,使用引号包围路径。例如:
操作文件和文件夹
- 创建文件
-
Linux:
touch:用来创建一个空文件,或者更新已有文件的修改时间戳。- 示例:
touch newfile.txt会创建一个名为newfile.txt的空文件。
- 示例:
-
Windows:
type nul > filename:Windows 中没有直接类似touch的命令,但可以通过type nul创建一个空文件。- 示例:
type nul > newfile.txt创建一个空的newfile.txt文件。
- 示例:
- 创建文件夹(目录)
-
Linux:
mkdir:用来创建一个新的目录。- 示例:
mkdir newdir会创建一个名为newdir的目录。
- 示例:
-
Windows:
mkdir或md:在命令提示符中,mkdir或md都可以用来创建一个新的目录。- 示例:
mkdir newdir会创建一个名为newdir的目录。
- 示例:
- 移动文件或文件夹
-
Linux:
mv:用来移动文件或文件夹。如果目标是一个路径,mv会将文件移动到该路径;如果目标是另一个文件名,mv会将文件重命名。- 示例:
mv file.txt /newdir/会把file.txt移动到/newdir/目录。 - 示例:
mv oldname.txt newname.txt会把文件oldname.txt重命名为newname.txt。
- 示例:
-
Windows:
move:Windows 中的move命令用于移动文件或目录,功能与mv类似。- 示例:
move file.txt D:\newdir\会把file.txt移动到D:\newdir\目录。
- 示例:
- 删除文件或文件夹
-
Linux:
rm:用于删除文件或目录。rm默认只删除文件,要删除目录,需要使用-r选项(递归删除)。- 示例:
rm file.txt删除文件。 - 示例:
rm -r dir删除目录及其内容。
- 示例:
-
Windows:
del:用于删除文件。- 示例:
del file.txt删除文件。
- 示例:
rmdir或rd:用于删除空目录。如果目录中有内容,需要使用/s选项递归删除。- 示例:
rmdir /s /q dir删除目录及其所有内容,/q是安静模式,不提示确认。
- 示例:
- 拷贝文件或文件夹
-
Linux:
cp:用于复制文件或目录。cp命令默认只复制文件,若要复制目录,需要使用-r选项。- 示例:
cp file.txt /newdir/会将file.txt复制到/newdir/目录。 - 示例:
cp -r dir /newdir/会将整个目录dir复制到/newdir/中。
- 示例:
-
Windows:
copy:用于复制文件。- 示例:
copy file.txt D:\newdir\会将file.txt复制到D:\newdir\目录。
- 示例:
xcopy:用于复制文件和目录,包括子目录。- 示例:
xcopy /E dir D:\newdir\会将目录dir及其内容复制到D:\newdir\中。
- 示例:
总结:
| 操作 | Linux 命令 | Windows 命令 |
|---|---|---|
| 创建文件 | touch | type nul > filename |
| 创建文件夹 | mkdir | mkdir 或 md |
| 移动文件/文件夹 | mv | move |
| 删除文件 | rm | del |
| 删除文件夹 | rm -r | rmdir 或 rd |
| 拷贝文件 | cp | copy |
| 拷贝文件夹 | cp -r | xcopy |
vim
vim 是Linux的文本编辑器,有很多命令和模式。
不同模式
Vim 的操作依赖于 不同的模式,每个模式下键盘按键的功能不同。、
- 普通模式(Normal Mode)
- 功能:这是 Vim 的默认模式,也是最常用的模式。在普通模式下,你可以执行各种命令和操作,如移动光标、删除字符、复制、粘贴、查找等。
- 操作:按键并不直接插入字符,而是触发命令。例如,按
h移动光标向左,按d删除文本,按yy复制一行,按p粘贴等。 - 如何进入:启动 Vim 后默认进入普通模式。如果你在其他模式(如插入模式)下,可以按
Esc返回普通模式。
- 插入模式(Insert
- 功能:在插入模式下,你可以像在普通文本编辑器中一样输入字符。你在此模式下编辑文本。
- 操作:按键直接插入文本,类似于大多数文本编辑器中的操作。
- 如何进入:按
i(插入当前位置)、I(行首插入)、a(当前光标后插入)、A(行尾插入)、o(下一行插入)、O(上一行插入)等都可以进入插入模式。 - 如何退出:按
Esc返回普通模式。
-
命令模式(Command-Line Mode)
- 功能:命令模式允许你输入文件操作命令,如保存、退出、搜索、替换等。在命令模式下,你可以执行各种与文件操作相关的命令。
- 操作:常用命令包括
:w保存文件、:q退出、:wq保存并退出等。 - 如何进入:在普通模式下,按
:进入命令模式。 - 如何退出:按
Esc返回普通模式。
-
可视模式(Visual Mode)
- 功能:可视模式允许你选择文本,然后对选择的文本进行操作(如复制、删除、格式化等)。
- 操作:按键用于操作选中的文本。例如,按
d删除选中的文本,按y复制选中的文本。 - 如何进入:按
v进入字符可视模式,按V进入行可视模式,按Ctrl-v进入块可视模式。 - 如何退出:按
Esc返回普通模式。
- 替换模式(Replace Mode)
- 功能:替换模式允许你在光标下直接替换字符。
- 操作:按下一个字符会替换当前光标位置的字符。
- 如何进入:按
R进入替换模式,按r替换当前光标位置的字符。 - 如何退出:按
Esc返回普通模式。
- 底部命令行模式(Ex Mode)
- 功能:底部命令行模式允许执行更复杂的命令,通常在执行
:ex或:visual等命令时使用。 - 操作:这个模式主要用于复杂的文件操作和搜索等。
- 如何进入:通常通过
:进入命令模式后执行特定命令。
总结 Vim 模式:
| 模式 | 简述 | 如何进入 | 如何退出 |
|---|---|---|---|
| 普通模式 | 默认模式,进行文本编辑、移动光标、执行命令等 | 启动 Vim 或按 Esc | — |
| 插入模式 | 输入文本模式 | 按 i(插入),a(追加)等进入 | 按 Esc 返回普通模式 |
| 命令模式 | 执行命令,如保存、退出、查找、替换等 | 普通模式按 : 进入 | 按 Esc 返回普通模式 |
| 可视模式 | 选择文本模式,进行文本操作(如复制、删除等) | 按 v(字符模式),V(行模式),Ctrl-v(块模式) | 按 Esc 返回普通模式 |
| 替换模式 | 替换模式,直接替换光标下的字符 | 按 R 进入替换模式 | 按 Esc 返回普通模式 |
| 底部命令行模式 | 用于执行复杂的操作命令,如执行多行操作或编辑命令。主要用于高级操作 | 按 : 进入命令行模式 | 按 Esc 返回普通模式 |
保存和退出
-
保存文件并退出 (
:wq)- 命令:
:wq或:x - 功能:保存文件并退出
vim。 - 操作步骤:
- 按
Esc键确保你处于 普通模式(命令模式)。 - 输入
:wq,然后按 回车。 :w表示保存文件,q表示退出。
- 或者,你可以使用
:x,它的效果与:wq一样,都会保存并退出。
- 按
示例:
:wq或者:
:x - 命令:
-
仅保存文件 (
:w)- 命令:
:w - 功能:保存文件,但不退出
vim。 - 操作步骤:
- 按
Esc键确保你处于 普通模式。 - 输入
:w,然后按 回车。
- 按
示例:
:w- 这会将当前编辑的内容保存到文件中,但仍然留在
vim中继续编辑。
- 命令:
-
仅退出 (
:q)
- 命令:
:q - 功能:退出
vim,如果文件已经保存,直接退出;如果文件没有保存,会提示警告。 - 操作步骤:
- 按
Esc键确保你处于 普通模式。 - 输入
:q,然后按 回车。
- 按
示例:
:q
- 如果文件没有保存,
vim会显示警告信息,如E37: No write since last change (add ! to override),表示文件有未保存的更改。
-
强制退出 (
:q!)- 命令:
:q! - 功能:强制退出
vim,不保存文件。 - 操作步骤:
- 按
Esc键确保你处于 普通模式。 - 输入
:q!,然后按 回车。
- 按
- 这个命令会 丢弃所有未保存的更改,直接退出。
示例:
:q! - 命令:
-
保存文件到不同的文件名 (
:w filename)
- 命令:
:w filename - 功能:将文件保存到一个新的文件名。
- 操作步骤:
- 按
Esc键确保你处于 普通模式。 - 输入
:w newfile.txt,然后按 回车。
- 按
示例:
:w newfile.txt
Git
注意事项
- 先
pull过来,merge处理冲突,同时保证最新! - git bash here还是普通文件夹,只有git init才变成了本地仓库
- git checkout 切换之前,必须
git status确保没有commit剩余!!!否则报错 - 区别
| 命令 | 功能描述 | 备注 |
|---|---|---|
git commit | 提交已通过 git add 暂存的文件 | 需要手动使用 git add 添加更改文件 |
git commit -a | 提交所有已跟踪文件的更改(自动暂存已更改的文件) | 不会提交新文件,需要使用 git add 添加新文件 |
git add | 将指定的文件更改添加到暂存区 | 可以指定文件名或使用通配符(如 *) |
git add -A | 将 所有更改(包括新增、修改、删除)添加到暂存区 | 更安全的选项,可以确保不会错过任何修改 |
git add | 当前目录下所有未add的进行add操作 | 经常用 |
- merge和push pull都有可能冲突,解决冲突之后要,重新a,c,p
- gitlab私有软件托管,只要企业内部
建立连接远程仓库
- 本地0进度
git clone完全复制过来创建仓库
“origin” 是克隆操作默认使用的名称
公有的 http
私有的 ssh 用密钥
- 本地有进度
git remote add origin 地址
更新到远程仓库
git push origin 本地分支:远程分支
git push底层执行了merge,需要手动解决冲突
更新到本地仓库
先看看是不是upto date
out of date就需要拉取:::
方法1.git remote show orgin
方法2.git status 不可以!!!
git fetch orgin master + git merge orgin/master 等于
git pull orgin 远程分支:本地分支
git bash常用的快捷键
git入门教程
| 操作 | 快捷键 | 备注 |
|---|---|---|
| 复制 | Ctrl + Shift + C 或 Ctrl + Insert | 可以使用数字小键盘的 0 键,更加方便。 |
| 粘贴 | Ctrl + Shift + V 或 Shift + Insert | 前者与默认截图热键冲突时可以使用后者。 |
| 跳转至行首 | Ctrl + A | 将光标移动到当前行的开头。 |
| 跳转至行尾 | Ctrl + E | 将光标移动到当前行的末尾。 |
| 删除光标左侧所有字符 | Ctrl + U | 删除光标左侧的所有字符(包括空格)。 |
| 删除光标右侧所有字符 | Ctrl + K | 删除光标右侧的所有字符(包括空格)。 |
| 查找命令历史记录 | Ctrl + R | 输入关键词后,按多次 Ctrl + R 可返回下一个匹配项。 |
