常用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 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>
汇总
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