常用linux .net git vim docker cmd命令汇总

常用cmd命令汇总

命令行启动.net6

常用

dotnet run --urls=http://*:8080
nohup dotnet ZHZT.SingleWebsite.Microservice.dll --urls http://*:7000 & //后台启动
ps -ef | grep dotnet //显示所有后台运行的.net 程序

汇总

dotnet run //使用dotnet run命令启动默认端口号是launchSettings.json中设置的5000
dotnet run --urls=http://*:8080  //urls指定ip和端口
dotnet watch run  //watch监听程序修改,一旦修改则重新启动
dotnet watch run --urls=http://*:8080
dotnet run -p NETCoreCLI.csproj  //一个“-”是简称的p
dotnet run --project NETCoreCLI.csproj  //两个“-”是全称的project
dotnet watch run -p NETCoreCLI.csproj --urls=http://*:8080
dotnet [解决方案bin文件下的dll文件] --urls=http://*:8080
dotnet NETCoreCLI.dll --urls=http://*:8080
dotnet clean  //清除项目的默认生成,与VS中的右键清理效果是一样的
Ctrl + C  //停止
cls  //清除屏幕
Tab键  //自动补齐

git常用命令

常用

git - 简明指南

#创建新仓库:创建新文件夹,打开,然后执行,以创建新的 git 仓库。
git init
#检出仓库:执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository
#如果是远端服务器上的仓库,你的命令会是这个样子
git clone username@host:/path/to/repository

#工作流:你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
#添加和提交:你可以提出更改(把它们添加到暂存区),使用如下命令
git add <filename>
git add *
#这是 git 基本工作流程的第一步;使用如下命令以实际提交改动,现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库
git commit -m "代码提交信息"
#推送改动:你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:可以把 master 换成你想要推送的任何分支。
git push origin master
#如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:如此你就能够将你的改动推送到所添加的服务器上去了
git remote add origin <server>

#分支:分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
#创建一个叫做“feature_x”的分支,并切换过去
git checkout -b feature_x
#切换回主分支
git checkout master
#再把新建的分支删掉
git branch -d feature_x
#除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin <branch>

#更新与合并:要更新你的本地仓库至最新改动,执行:
git pull
#以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>

汇总

img

git init                                                  # 初始化本地git仓库(创建新仓库)
git config --global user.name "xxx"                       # 配置用户名
git config --global user.email "xxx@xxx.com"              # 配置邮件
git config --global color.ui true                         # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy                    # remove  proxy configuration on git
git clone git+ssh://git@192.168.53.168/VT.git             # clone远程仓库
git status                                                # 查看当前版本状态(是否修改)
git add xyz                                               # 添加xyz文件至index
git add .                                                 # 增加当前子目录下所有更改过的文件至index
git commit -m 'xxx'                                       # 提交
git commit --amend -m 'xxx'                               # 合并上一次提交(用于反复修改)
git commit -am 'xxx'                                      # 将add和commit合为一步
git rm xxx                                                # 删除index中的文件
git rm -r *                                               # 递归删除
git log                                                   # 显示提交日志
git log -1                                                # 显示1行日志 -n为n行
git log -5
git log --stat                                            # 显示提交日志及相关变动文件
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818         # 显示某个提交的详细内容
git show dfb02                                            # 可只用commitid的前几位
git show HEAD                                             # 显示HEAD提交日志
git show HEAD^                                            # 显示HEAD的父(上一个版本)的提交日志 ^^为上两个版本 ^5为上5个版本
git tag                                                   # 显示已存在的tag
git tag -a v2.0 -m 'xxx'                                  # 增加v2.0的tag
git show v2.0                                             # 显示v2.0的日志及详细内容
git log v2.0                                              # 显示v2.0的日志
git diff                                                  # 显示所有未添加至index的变更
git diff --cached                                         # 显示所有已添加index但还未commit的变更
git diff HEAD^                                            # 比较与上一个版本的差异
git diff HEAD -- ./lib                                    # 比较与HEAD版本lib目录的差异
git diff origin/master..master                            # 比较远程分支master上有本地分支master上没有的
git diff origin/master..master --stat                     # 只显示差异的文件,不显示具体内容
git remote add origin git+ssh://git@192.168.53.168/VT.git # 增加远程定义(用于push/pull/fetch)
git branch                                                # 显示本地分支
git branch --contains 50089                               # 显示包含提交50089的分支
git branch -a                                             # 显示所有分支
git branch -r                                             # 显示所有原创分支
git branch --merged                                       # 显示所有已合并到当前分支的分支
git branch --no-merged                                    # 显示所有未合并到当前分支的分支
git branch -m master master_copy                          # 本地分支改名
git checkout -b master_copy                               # 从当前分支创建新分支master_copy并检出
git checkout -b master master_copy                        # 上面的完整版
git checkout features/performance                         # 检出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933                    # 检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout v2.0                                         # 检出版本v2.0
git checkout -b devel origin/develop                      # 从远程分支develop创建新本地分支devel并检出
git checkout -- README                                    # 检出head版本的README文件(可用于修改错误回退)
git merge origin/master                                   # 合并远程master分支至当前分支
git cherry-pick ff44785404a8e                             # 合并提交ff44785404a8e的修改
git push origin master                                    # 将当前分支push到远程master分支
git push origin :hotfixes/BJVEP933                        # 删除远程仓库的hotfixes/BJVEP933分支
git push --tags                                           # 把所有tag推送到远程仓库
git fetch                                                 # 获取所有远程分支(不更新本地分支,另需merge)
git fetch --prune                                         # 获取所有原创分支并清除服务器上已删掉的分支
git pull origin master                                    # 获取远程分支master并merge到当前分支
git mv README README2                                     # 重命名文件README为README2
git reset --hard HEAD                                     # 将当前版本重置为HEAD(通常用于merge失败回退)
git rebase
git branch -d hotfixes/BJVEP933                           # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933                           # 强制删除分支hotfixes/BJVEP933
git ls-files                                              # 列出git index包含的文件
git show-branch                                           # 图示当前分支历史
git show-branch --all                                     # 图示所有分支历史
git whatchanged                                           # 显示提交历史对应的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818       # 撤销提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD                                          # 内部命令:显示某个git对象
git rev-parse v2.0                                        # 内部命令:显示某个ref对于的SHA1 HASH
git reflog                                                # 显示所有提交,包括孤立节点
git show HEAD@{5}
git show master@{yesterday}                               # 显示master分支昨天的状态
git log --pretty=format:'%h %s' --graph                   # 图示提交日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash                                                 # 暂存当前修改,将所有至为HEAD状态
git stash list                                            # 查看所有暂存
git stash show -p stash@{0}                               # 参考第一次暂存
git stash apply stash@{0}                                 # 应用第一次暂存
git grep "delete from"                                    # 文件中搜索文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT
git gc
git fsck

Docker常用命令

常用

#查看Docker上已经安装的镜像
docker images
#搜索DockerHub上的镜像
docker search tomcat
#删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG 
#删除全部
docker rmi -f $(docker images -qa)
#删除悬空镜像
docker rmi $(docker images -f "dangling=true" -q)
#批量删除没有使用的镜像
docker image prune -a -f
====================容器===========================
#启动容器
docker start 容器ID或容器name
#重启容器
docker restart 容器ID或容器name
#停止容器
docker stop 容器ID或容器name
# 删除已经停止的容器
docker rm 容器ID或容器name 
# 强制删除已经停止或正在运行的容器
docker rm -f  容器ID或容器name 
#一次性删除所有正在运行的容器
docker rm -f $(docker ps -qa)
#批量删除所有未运行的容器
docker rm $(docker ps -a -q)
#统计启动了多少容器
docker ps -a | wc -l
#批量删除无用容器或已经停止的容器
docker container prune -f
=====================日志============================
#日志命令
docker logs -f -t --tail 10 容器ID或容器名称

汇总

#启动 Docker
sudo systemctl start docker  
#停止 Docker
sudo systemctl stop docker	
#重启 Docker
sudo systemctl restart docker
#修改配置后重启 Docker
sudo systemctl daemon-reload
#修改配置后重启 Docker
sudo systemctl restart docker
#查看版本
docker version
#查看Docker 信息
docker info
#Docker 帮助
docker --help		
=========================镜像指令==============================
#查看Docker上已经安装的镜像
docker images		
#搜索Docker hub上面的镜像
docker search tomcat		
#下载镜像
docker pull tomcat[:version]
#以删除tomcat为例
docker rmi tomcat[:version]	
#通过镜像ID删除
docker rmi -f 镜像ID
#通过镜像ID删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG 
#删除全部
docker rmi -f $(docker images -qa)		
==========================容器指令常用参数================================
-d: 后台运行容器,并返回容器ID

-i: 以交互式运行容器,通常与-t同时使用

-p: 端口映射,格式为 主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与-i同时使用

--name="name": 为容器指定一个名称

--dns 8.8.8.8: 为容器指定一个dns服务器,默认与宿主一致

--dns-search domain:为容器指定一个DNS域名,默认与宿主一致

-h "hostname": 指定容器的hostname

-e arg="value": 设置环境变量

-env-file=[]:从指定文件读入环境变量

--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定的cpu运行

-m: 设置容器使用内存最大值

--net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型

--link=[]:添加链接到另外一个容器

--expose=[]:开放一个端口或一组端口,宿主机使用随机端口映射到开放的端口
==================================实例指令============================
#运行容器
docker run --name mynginx -d nginx:latest
#映射多个端口
docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latest 
#查看正在运行的Docker容器
docker ps

# 显示所有容器,包括当前没有运行的容器
-a

# 显示最近创建的容器
-l

# 显示最近创建的N个容器
-n

# 静默模式,只显示容器ID
-q

# 不截断输出
--no-trunc

# 退出并停止
exit

# 容器不停止退出
ctrl+P+Q

#启动容器
docker start 容器ID或容器name
#重启容器
docker restart 容器ID或容器name
#停止容器
docker stop 容器ID或容器name
#删除容器
# 删除已经停止的容器
docker rm 容器ID或容器name 
# 强制删除已经停止或正在运行的容器
docker rm -f  容器ID或容器name 
#一次性删除所有正在运行的容器
docker rm -f $(docker ps -qa)
#从容器拷贝文件到宿主机
docker cp 容器ID或容器名称:/文件路径与文件名 宿主机地址
docker cp coco:/tmp/info.txt .
========================日志命令==================================
#日志命令
docker logs -f -t --tail 10 容器ID或容器名称
#参数说明:
# 加入时间戳
-t
# 跟随最新的日志打印
-f
# 输出最后几行的日志
--tail 行数

Linux常用命令

常用

#自动推荐
Tab键
#列举出当前工作目录的内容(文件或文件夹)
ls
#用于新建一个新目录
mkdir
#删除给定的目录
rmdir
#创建文件
#强制删除给定目录
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
rm -rf /var/log/httpd/access
#会删除给定的文件
rm— Remove
#切换文件路径,cd 将给定的文件夹(或目录)设置成当前工作目录。
cd — Change Directory
#grep 在给定的文件中搜寻指定的字符串。grep -i “” 在搜寻时会忽略字符串的大小写,而grep -r “” 则会在当前工作目录的文件中递归搜寻指定的字符串。
grep
#用于在标准输出(监控器或屏幕)上查看文件内容
cat— concatenate and print files
#通过发送数据包ping远程主机(服务器),常用与检测网络连接和服务器状态。
ping
#列出当前登录的用户名
who

汇总

#列举出当前工作目录的内容(文件或文件夹)
ls — List
#用于新建一个新目录
mkdir — Make Directory
#显示当前工作目录
pwd — Print Working Directory
#切换文件路径,cd 将给定的文件夹(或目录)设置成当前工作目录。
cd — Change Directory
#删除给定的目录
rmdir— Remove Directory
#会删除给定的文件
rm— Remove
#命令对文件进行复制
cp— Copy
#命令对文件或文件夹进行移动,如果文件或文件夹存在于当前工作目录,还可以对文件或文件夹进行重命名
mv— Move
#用于在标准输出(监控器或屏幕)上查看文件内容
cat— concatenate and print files
#默认在标准输出上显示给定文件的最后10行内容,可以使用tail -n N 指定在标准输出上显示文件的最后N行内容。
tail — print TAIL(from last)
#按页或按窗口打印文件内容。在查看包含大量文本数据的大文件时是非常有用和高效的。你可以使用Ctrl+F向前翻页,Ctrl+B向后翻页
less — print LESS
#grep 在给定的文件中搜寻指定的字符串。grep -i “” 在搜寻时会忽略字符串的大小写,而grep -r “” 则会在当前工作目录的文件中递归搜寻指定的字符串。
grep
#在给定位置搜寻与条件匹配的文件。你可以使用find -name 的-name选项来进行区分大小写的搜寻,find -iname 来进行不区分大小写的搜寻
find
#创建、查看和提取tar压缩文件。tar -cvf 是创建对应压缩文件,tar -tvf 来查看对应压缩文件,tar -xvf 来提取对应压缩文件。
tar
# 命令创建和提取gzip压缩文件,还可以用gzip -d 来提取压缩文件
gzip
# 对gzip文档进行解压。在解压之前,可以使用unzip -l 命令查看文件内容。
unzip
#会在终端列出所有可用的命令,可以使用任何命令的-h或-help选项来查看该命令的具体用法。图就省略啦,会有详细列表显示出来的。
help
#会用单行来描述给定的命令,就是解释当前命令。
whatis — What is this command
#用于结束当前的终端会话
exit
#通过发送数据包ping远程主机(服务器),常用与检测网络连接和服务器状态。
ping
#列出当前登录的用户名
who — Who Is logged in
#用于切换不同的用户。即使没有使用密码,超级用户也能切换到其它用户
su — Switch User
#显示出关于系统的重要信息,如内核名称、主机名、内核版本、处理机类型等等,使用uname -a可以查看所有信息
uname
#查看文件系统中磁盘的使用情况–硬盘已用和可用的存储空间以及其它存储设备。你可以使用df -h将结果以人类可读的方式显示。
df — Disk space Free
#显示系统的运行进程
ps — ProcesseS
#默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u 查看某个用户的CPU使用排名情况。
top — Top processes
#用于关闭计算机
shutdown

Vim常用命令

移动光标

h,j,k,l 上,下,左,右
ctrl-e 移动页面
ctrl-f 上翻一页
ctrl-b 下翻一页
ctrl-u 上翻半页
ctrl-d 下翻半页
w 跳到下一个字首,按标点或单词分割
W 跳到下一个字首,长跳,如end-of-line被认为是一个字
e 跳到下一个字尾
E 跳到下一个字尾,长跳
b 跳到上一个字
B 跳到上一个字,长跳
0 跳至行首,不管有无缩进,就是跳到第0个字符
^ 跳至行首的第一个字符
$ 跳至行尾
gg 跳至文首
G 调至文尾
5gg/5G 调至第5行
gd 跳至当前光标所在的变量的声明处
fx 在当前行中找x字符,找到了就跳转至
; 重复上一个f命令,而不用重复的输入fx
* 查找光标所在处的单词,向下查找
# 查找光标所在处的单词,向上查找

删除复制

dd 删除光标所在行
dw 删除一个字(word)
d/D删除到行末x删除当前字符X删除前一个字符yy复制一行yw复制一个字y/D删除到行末x删除当前字符X删除前一个字符yy复制一行yw复制一个字y/Y 复制到行末
p 粘贴粘贴板的内容到当前行的下面
P 粘贴粘贴板的内容到当前行的上面

插入模式

i 从当前光标处进入插入模式
I 进入插入模式,并置光标于行首
a 追加模式,置光标于当前光标之后
A 追加模式,置光标于行末
o 在当前行之下新加一行,并进入插入模式
O 在当前行之上新加一行,并进入插入模式
Esc 退出插入模式

编辑

J 将下一行和当前行连接为一行
cc 删除当前行并进入编辑模式
cw 删除当前字,并进入编辑模式
c$ 擦除从当前位置至行末的内容,并进入编辑模式
s 删除当前字符并进入编辑模式
S 删除光标所在行并进入编辑模式
xp 交换当前字符和下一个字符
u 撤销
ctrl+r 重做
~ 切换大小写,当前字符
>> 将当前行右移一个单位
<< 将当前行左移一个单位(一个tab符)
== 自动缩进当前行

查找替换

/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
"\c" 忽略大小写
"\C" 大小写敏感

n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

退出编辑器

:w 将缓冲区写入文件,即保存修改
:wq 保存修改并退出
:x 保存修改并退出
:q 退出,如果对缓冲区进行过修改,则会提示
:q! 强制退出,放弃修改

多文件编辑

vim file1.. 同时打开多个文件
:args 显示当前编辑文件
:next 切换到下个文件
:prev 切换到前个文件
:next! 不保存当前编辑文件并切换到下个文件
:prev! 不保存当前编辑文件并切换到上个文件
:wnext 保存当前编辑文件并切换到下个文件
:wprev 保存当前编辑文件并切换到上个文件
:first 定位首文件
:last 定位尾文件
ctrl+^ 快速在最近打开的两个文件间切换
:split[sp] 把当前文件水平分割
:split file 把当前窗口水平分割, file
:vsplit[vsp] file 把当前窗口垂直分割, file
:new file 同split file
:close 关闭当前窗口
:only 只显示当前窗口, 关闭所有其他的窗口
:all 打开所有的窗口
:vertical all 打开所有的窗口, 垂直打开
:qall 对所有窗口执行:q操作
:qall! 对所有窗口执行:q!操作
:wall 对所有窗口执行:w操作
:wqall 对所有窗口执行:wq操作
ctrl-w h 跳转到左边的窗口
ctrl-w j 跳转到下面的窗口
ctrl-w k 跳转到上面的窗口
ctrl-w l 跳转到右边的窗口
ctrl-w t 跳转到最顶上的窗口
ctrl-w b 跳转到最底下的窗口

多标签编辑

:tabedit file 在新标签中打开文件file
:tab split file 在新标签中打开文件file
:tabp 切换到前一个标签
:tabn 切换到后一个标签
:tabc 关闭当前标签
:tabo 关闭其他标签
gt 到下一个tab
gT 到上一个tab
0gt 跳到第一个tab
5gt 跳到第五个tab

执行shell命令

1、在命令模式下输入":sh",可以运行相当于在字符模式下,到输入结束想回到VIM编辑器中用exit,ctrl+D返回VIM编辑器
2、可以"!command",运行结束后自动回到VIM编辑器中
3、用“Ctrl+Z“回到shell,用fg返回编辑
4、:!make -> 直接在当前目录下运行make指令

VIM启动项

-o[n] 以水平分屏的方式打开多个文件
-O[n] 以垂直分屏的方式打开多个文件

自动排版

在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定

如何在vim中编译程序

在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make
编译后的结果就显示在了copen打开的小窗口里了,而且用鼠标双击错误信息,就会跳转到发生错误的行。

buffer操作

1、buffer状态
- (非活动的缓冲区)
a (当前被激活缓冲区)
h (隐藏的缓冲区)
% (当前的缓冲区)
# (交换缓冲区)
= (只读缓冲区)
+ (已经更改的缓冲区)

VIM 操作目录

1.打开目录
vim .
vim a-path/

2.以下操作在操作目录时生效
p,P,t,u,U,x,v,o,r,s

c 使当前打开的目录成为当前目录
d 创建目录
% 创建文件
D 删除文件/目录
- 转到上层目录
gb 转到上一个 bookmarked directory
i 改变目录文件列表方式
^l 刷新当前打开的目录

mf - 标记文件
mu - unmark all marked files
mz - Compress/decompress marked files
gh 显示/不显示隐藏文件( dot-files)
^h 编辑隐藏文件列表
a 转换显示模式, all - hide - unhide
qf diplay infomation about file
qb list the bookmarked directories and directory traversal history
gi Display information on file

mb
mc
md - 将标记的文件(mf标记文件)使用 diff 模式
me - 编辑标记的文件,只显示一个,其余放入 buffer 中
mh
mm - move marked files to marked-file target directory
mc - copy
mp
mr
mt

vim 中复制,移动文件
1, mt - 移动到的目录
2, mf - 标记要移动的文件
3, mc - 移动/复制

R 移动文件

打开当前编辑文件的目录
:Explore
:Hexplore
:Nexplore
:Pexplore
:Sexplore
:Texplore
:Vexplore

好文推荐

27个常用的Linux命令

Vim编辑器常用命令

git - 简明指南

posted @ 2022-03-20 10:35  AJun816  阅读(473)  评论(0编辑  收藏  举报