Linux命令+Git命令
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常用的快捷键
操作 | 快捷键 | 备注 |
---|---|---|
复制 | Ctrl + Shift + C 或 Ctrl + Insert |
可以使用数字小键盘的 0 键,更加方便。 |
粘贴 | Ctrl + Shift + V 或 Shift + Insert |
前者与默认截图热键冲突时可以使用后者。 |
跳转至行首 | Ctrl + A |
将光标移动到当前行的开头。 |
跳转至行尾 | Ctrl + E |
将光标移动到当前行的末尾。 |
删除光标左侧所有字符 | Ctrl + U |
删除光标左侧的所有字符(包括空格)。 |
删除光标右侧所有字符 | Ctrl + K |
删除光标右侧的所有字符(包括空格)。 |
查找命令历史记录 | Ctrl + R |
输入关键词后,按多次 Ctrl + R 可返回下一个匹配项。 |