介绍
我们在各自的操作系统中使用GUI(图形用户界面)。但是,CLI(命令行接口)仍然很快,可靠且专业人士广泛使用。
CLI的最常见优势是我们可以从一个终端完成所有操作,但是对于GUI,我们可能需要一个新的窗口来完成每个任务。
因此,以下是不同领域的一些命令,可以在您的日常生活中有所帮助。
您可能会知道或可能不知道一些命令。但是知道我们有类似的捷径有时可能是救生员。
目录:
- 命令的先决条件
- git
- 公共命令
- 删除所有已删除的远程git分支。
- 删除所有已删除的远程git分支在当地签出。
- 在推动之前的最新提交中的重置文件。
- 节点JS框架
- 从当前目录中删除所有子文件夹中的所有node_modules。
- .NET框架
- 从当前目录中删除所有bin和obj文件夹。
- Windows OS
- 复制/移动文件的Robocopy。
- 将端口添加到Windows防火墙。
- 从给定路径上删除所有空白文件夹。
命令的先决条件
仅在目标文件夹中执行与文件或文件夹有关的所有命令。
为此,您应从目标文件夹打开终端或从任何地方打开它并导航到文件夹。
git
git是开发人员广泛使用的源控制之一。我们将其用于其有效的分支系统。
因此,以下是与Git相关的一些命令,以从您的本地存储库中删除已删除的分支。请注意,如果您使用Windows,您可能需要使用Git Bash使用此命令。
通用命令
这是您需要每天使用的一些通用git命令。
命令:
终端:全部bash
存储库:
# Init: Initialize a new repository.
git init
# Clone: To clone a new repository.
git clone <Remote-URL>
# Remote: To list all named repositories.
git remote -v
# Pull: To take a pull from named remote.
git pull <Branch-name> <Remote-URL/Remote-name>
# Push: To send commits to the remote repository.
git push <Remote-URL/Remote-name> <Branch>
# Config: To alter a configuration of the git.
git config <Setting> <Command>
Example:
git config user.email "<email-address>"
git config user.name "<user-name>"
文件和提交:
# Add: To stage all un-staged modified files.
git add .
# Commit: To add a commit locally with a message.
git commit -m "<Commit-message-in-quotes>"
# Status: To get the current state of the repository.
git status
# Stash: To store the current changes locally with untracked(new) files.
git stash save "<Stash-Nessage>"
分支:
# Create a new branch
$ git branch <Branch-Name>
# List all remote or local branches of git
$ git branch -a
# Delete a branch
$ git branch -d <Branch-Name>
# Checkout:
# Checkout an existing branch
$ git checkout <Branch-Name>
# Checkout and create a new branch with that name
$ git checkout -b <New-Branch-Name>
# Merge: To merge the mentioned branch changes into the current branch.
git merge <Branch-Name>
# Note: We need to manually resolve the found conflicts from an IDE as we need to manually review and confirm which piece of code we need to keep.
# Rebase: To merge the mentioned branch changes into the current branch but, without the commit history as if the branch is recently checked out.
git branch <Branch-Name>
标签:
# List tags
git tag
# List tags with search
git tag -l "<Search-Token>"
# Create a tag
git tag -a <Tag-Name> HEAD -m "<Tag-Message>"
# Sync changes with Remote and specific tag
git push <Remote-Name> <Tag-Name>
# Note: To add tag for a specific commit, we need to add tag name in the push as above.
参考链接:http://guides.beanstalkapp.com/version-control/common-git-commands.html
如果您正在寻找某些特定情况的命令,则可以在下面找到它们。
删除所有已删除的远程GIT分支
当我们从遥控器中获取,拉或结帐分支时,远程副本将保存在我们的系统中,并且在从遥控器中删除它后不会自动从系统中删除。我们可以通过以下命令进行操作。
命令:
# Terminal: Bash
git fetch --prune
删除所有已删除的远程GIT分支
上面的命令只能从您的远程本地删除远程分支,但是如果您已签出了本地的git分支,并且从遥控器中删除了远程分支,则它仍将留在您的本地分支中。要删除那些本地分支,您可以使用以下命令。
命令:
# Terminal: Bash
git fetch -p ; git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d
在推送之前重置最新提交的文件
有时候,我们将一个分支拉入当前的Git分支,并希望在此之后将其恢复,或者将错误的Git分支拉出。因此,为了恢复更改并回滚更改,我们可以使用以下命令。
命令:
# Terminal: Bash
git reset --hard
节点JS框架
节点JS是开发网站和应用程序中增长最快的JavaScript框架之一。
尽管快速可靠,但我们可能需要手动干扰来解决问题。其中之一在下面列出。
从当前目录中删除所有子文件夹中的所有Node_modules文件夹
当我们在nodejs应用程序中工作时,我们可以遇到微服务/微额定应用程序。
它们倾向于在根目录内有多个node_modules文件夹。如果文件夹结构不是标准的,我们可能会在该项目中看到多个node_modules文件夹。
因此,在从事这些项目时,我们可能需要通过删除node_modules文件夹来删除所有依赖项。因此,我们可以使用以下命令。
,而不是搜索文件夹的每个实例并删除它。命令:
# Terminal: Any
# One time install of package.
npm install rimraf -g
# Command to remove all node_modules folders recursively from current directory.
rimraf .\**\node_modules
.NET框架
.NET是Microsoft创建的软件开发框架,该框架提供了一个平台,用于使用C#,Visual Basic和F#等各种编程语言来构建Windows桌面应用程序,Web应用程序和服务。它包括一个运行时环境,类库以及用于应用程序创建,部署和管理的开发工具。
从当前目录中删除所有bin和obj文件夹。
在.NET项目中,我们可以期望一个多层应用程序,其中逻辑和代码在不同的应用程序和库之间分配。因此,每个应用程序/库都有自己的bin和obj文件夹。
我们没有任何问题,但是如果需要,手动删除垃圾箱和OBJ文件夹可能很乏味。
因此,我们可以使用以下命令。它将搜索解决方案的所有垃圾箱和OBJ文件夹,并在单个执行中删除它们。
命令:
# Terminal: CMD, Powershell
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Windows OS
Windows是广泛使用的操作系统之一。但是,尽管具有丰富的老鼠友好的UI,但执行某些任务还是很乏味,漫长而无聊。此外,您可能需要一些直接命令,可以节省您的几秒钟。
复制/移动文件的Robocopy
Robocopy是窗口的内置工具,目前仅从终端可用。这是将文件从一个位置复制/将文件复制到另一个位置的快速可靠的方法。
许多讨论都在互联网上浮动,涉及为什么不本质地将其用于代码中复制/移动文件。
某些第三方应用程序在内部运行Robocopy,例如Teracopy等。
命令:
# Terminal: CMD, Powershell
robocopy "<Source Path>" "<Destination Path>" /move /is /e /compress /mt:128
要使用Robocopy移动文件和文件夹,请将move
附加到上述命令。另外,如果要为目标创建一个新的根文件夹,请将名称添加到目标路径中。
将端口添加到Windows防火墙
在安全性是我们最重点的公司的地方,我们倾向于默认情况下禁用公众的所有端口。
因此,如果我们托管网站或启动在可用端口上运行的应用程序时,我们需要公开端口。
为了实现这一目标,我们需要启用防火墙中的端口进行入站和出站。
当以下命令在终端中执行具有提升特权的终端时,它们在入站和出站规则中创建一个条目。
命令:
入站:
# Terminal: CMD, Powershell
New-NetFirewallRule -DisplayName '<Port Number>' -Profile 'Domain,Private,Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort <Label>
出站:
# Terminal: CMD, Powershell
New-NetFirewallRule -DisplayName '<Port Number>' -Profile 'Domain,Private,Public' -Direction Outbound -Action Allow -Protocol TCP -LocalPort <Label>
根据上述命令,我们将规则标记为端口号,以方便搜索。您可以使用自己选择的名称。
从给定路径上删除所有空白文件夹
如果我们在控制台/桌面应用程序中工作,则代码可以在执行过程中创建空白文件夹,如果代码处于该方面。我们需要通过删除空文件夹来清理它们。
我们还考虑包含其他具有空子文件夹或没有的子文件夹的文件夹。
在这里,文件夹删除的默认命令将不起作用,因为该文件夹中有一个空的子文件夹。
因此,以下命令可以找到这些子文件夹并递归删除它们。
命令:
# Terminal: Powershell
for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"
专家提示
通常,命令以单一类型的终端工作,如果我们在执行之前确认它会很棒。
我只知道上面的命令对日常任务可能是通用且有用的。如果您知道任何此类终端命令并想在这里添加它们,请告诉我。我很乐意将它们添加到此博客中。
结论
有许多可用的命令可以使我们的生活更轻松。他们不得替换我们在所有操作系统中使用的GUI,但是它们可以缩短使用它们的任务的持续时间。
作者
我从2015年的IT company开始了我的职业生涯。目前,我是一项技术的全堆栈团队负责人。
我喜欢解决复杂的问题,同时照顾现代化和优化。我喜欢听音乐,与家人和朋友共度时光以及看电影。