Bat&Powershell语法总结笔记
温馨提示:远离BAT语法,幸福你我他(ಡωಡ)
1   推荐链接
- 微软文档:代码页标识符(chcp)
- CMD命令例程索引:该网站的教程索引比微软官方文档好用。
2   检测并获取管理员权限
2.1   方式一:使用cacls工具检测权限
1 | @REM 检测权限:根据系统版本尝试访问系统文件路径 |
温馨提示:远离BAT语法,幸福你我他(ಡωಡ)
1 | @REM 检测权限:根据系统版本尝试访问系统文件路径 |
windows中的换行符(dos)是\r\n,而linux中的换行符(unix)是\n。若不转换,git可能会视作为被更改的文件,从而造成大量无意义的commit。此外,windows中bat脚本文件要求换行符为\r\n,否则cmd解释器无法正确解析,导致无法正确执行脚本。
单文件转换:
dos2unix test.c
unix2dos test.c
批量转换:
find . -type f -exec dos2unix {} \;
find . -type f -exec unix2dos {} \;
详细命令解释:
1 | find .: Find anything in this directory, including its subdirectories, and anything in those subdirectories as well (recursion) |
若出现本地仓库文件和远程仓库文件出现crlf和lf不相同的问题,会导致git代码同步报错。
解决方法:使用editorconfig文件规定文档。
打开%USERPROFILE%\.gitconfig
文件,编辑特定的设置项即可。
1 | git config --global http.proxy http://127.0.0.1:1080 |
git默认对大小写不敏感,一般可通过两种方式避免git未识别大小写操作。
方式1:中间文件方法
1 | # git mv(重命名索引,文件夹直接大小写重命名可能无法成功,可以用tmp做中间处理,文件直接大小写无问题) |
方式2:设置git配置
1 | git config core.ignorecase false |
1 | git pull origin master # 相当于fetch后merge |
1 | # 添加远程上游,仓库地址填写需要拉取的上游 |
git clone http链接(可以不包含.git后缀)
1 | # -O为输出到指定文件,-和-O配合,不输出到具体文件,而是标准输出。可通过管道符|直接给其他命令。 |
1 | # 克隆特定分支,-b(--branch)支持输入tag,--recursive包含子仓库 |
以克隆blender手册翻译的简中为例:
1 | mkdir locale |
规范编写的commit message可通过auto changelog发布release:
github release create -a ../learngit/README.md -m "release my first program" v1.0.1
注:支持……版本,英文用 Support for …… 表示
1 | git submodule add https://github.com/Mister-Kin/actions.git |
1 | rm -rf .git |
注意如果使用这种方式,强制推送到远程github仓库的话,实际查看github网站的信息,貌似并没有缩小,可能数据更新有延迟。
还有另外一种方式,在github网站上删除该reop,并重新建立同名repo再推送。
1 | git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD #(*.pdf) |
1 | git branch -M master # 创建分支 |
多人协作注意版本控制,分支把控好,不能污染上游,开发者每个人单独分支。
dev分支常规开发,hotfix分支临时修复
1 | # Switched to a new branch "dev" |
应用场景:在dev分支进行开发编写,突然发现master分支有bug,想checkout分支(切换分支),但此时dev分支上有未提交的文件,并且也并不想现在提交。
解决方案:
1 | # Rename the local branch to the new name |
.gitignore文件中添加新的文件过滤,但是该文件在之前已经提交到远程仓库分支里,我们需要将远程分支代码中的这个文件移除。
1 | # 1.为避免冲突,同步已下远程仓库最新代码 |
这是由于Http协议错误,刷新缓存即可解决
使用终端命令窗口运行命令:
1 | ipconfig /flushdns |
使用终端命令窗口运行命令:
1 | sudo killall -HUP mDNSResponder |
因为git文件过大造成的错误,默认缓冲区是1M大小。
解决方法:
1 | git config --global http.postBuffer 524288000 # 设置为500M |
Github LFS是收费产品,免费账户只有1G的存储空间和带宽流量(本人已弃用)。
仓库一旦使用LFS存储,无法直接通过wget或者curl工具下载原文件,只会下载到一个文本指针文件,指向LFS的存储云地址。
Windows Git LFS大文件管理:windows上使用Git for windows客户端程序时,LFS启用命令:git lfs install
。
ubuntu安装LFS包:sudo apt install git-lfs
。
1 | # 添加LFS需要管理的大文件,如果文件名就是*.txt,则需要用双引号""包含 |
重复繁琐的工作交予自动CI/CD完成。
[1] How do I rename both a Git local and remote branch name?[EB/OL]. https://stackoverflow.com/questions/30590083/how‑do‑i‑rename‑both‑a‑git‑local‑and‑remote‑branch‑name.
[2] Git 中 submodule 的使用[EB/OL]. https://zhuanlan.zhihu.com/p/614114699.
[3] Why is git submodule not updated automatically on git checkout?[EB/OL]. https://stackoverflow.com/questions/1899792/why‑is‑git‑submodule‑not‑updated‑automatically‑on‑git‑checkout.
[4] git lfs安装及使用方法[EB/OL]. https://blog.csdn.net/michaelshare/article/details/83183806.
[5] Git克隆远程仓库中的指定文件或者文件夹[EB/OL]. https://blog.csdn.net/fsfsdgsdg/article/details/127177631.
[6] How to run dos2unix on all files with all extensions in a directory and its sun-directories?[EB/OL]. https://stackoverflow.com/questions/67254229/how-to-run-dos2unix-on-all-files-with-all-extensions-in-a-directory-and-its-sun.
[7] How to pull a pull request from upstream in github[EB/OL]. https://stackoverflow.com/questions/54033842/how-to-pull-a-pull-request-from-upstream-in-github.
[8] 详解 Git 大文件存储(Git LFS)[EB/OL]. https://zhuanlan.zhihu.com/p/146683392.
[9] Git Sparse Checkout使用指南[EB/OL]. https://blog.csdn.net/shelutai/article/details/123116973.
[10] git-sparse-checkout[EB/OL]. https://www.git-scm.com/docs/git-sparse-checkout.
[11] Simple steps to uninstall Git LFS from your repository[EB/OL]. https://github.com/git-lfs/git-lfs/issues/3026.
[12] zh-cn 与 zh-hans 是什么关系、有什么区别?[EB/OL]. https://www.zhihu.com/question/21980689.
Shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。通过命令行提示符$
,它允许用户输入文本命令,然后解释命令,并在内核中执行。
Bash是GNU项目的shell,即Bourne Again SHell。这是一个由Bourne shell(sh)发展而来的shell,并且兼容sh,包含不少korn shell(ksh)和c shell(csh)的优点。大部分Linux发行版都预装了bash,并且大多数sh脚本(由多个shell命令组成的文件)无需修改即可通过bash运行。
shell命令行界面(CLI)
source ~/.bashrc
source ~/.profile
echo 'export APP=/opt/tinyos-2.x/apps' >> ~/.bashrc
在%USERPROFILE%
(用户配置路径)下找到.bash_history删除即可。
${file%.*}
:移除最后一个点之后的内容${file%%.*}
:移除第一个点之后的内容${file#*.}
:移除第一个点之前的内容${file##*.}
:移除最后一个点之前的内容
test可以与&&组成一个条件判断,无需用if命令。
case命令,无法使用test命令。
case不能用正则表达,只用样式匹配。
find /path/to/directory -type f ! -name 'file_prefix*' | xargs rm -rf
https://www.jb51.net/article/216095.htm
https://www.qcgzxw.cn/575.html
[1] BLUM R, BRESNAHAN C. Linux 命令行与 shell 脚本编程大全[M]. 门佳, 武海峰, 译. 3 版. 北京: 人民邮电出版社, 2016.
[2] GNU Bash[EB/OL]. https://www.gnu.org/software/bash/.
[3] Test variable in a bash case statement[EB/OL]. https://unix.stackexchange.com/questions/205084/test‑variable‑in‑a‑bash‑case‑statement.
[4] Regular expressions in a Bash case statement[EB/OL]. https://stackoverflow.com/questions/9631335/regular‑expressions‑in‑a‑bash‑case‑statement.
[5] Adding suffix to filename during for loop in bash[EB/OL]. https://unix.stackexchange.com/questions/600051/adding‑suffix‑to‑filename‑during‑for‑loop‑in‑bash.
an ISO image or via torrent
->download from a nearby CTAN mirror
->下载最新的iso文件。获取下载链接
->应用软件
->TeX 排版系统
->TeX Live 2024 (Windows & Linux)
。C:/texlive/2024
Advanced
N. of collections
->Languages
(全勾选无,然后只勾选下面三个,然后确认)安装 Texworks 前端
tex -v
、latex -v
、xelatex -v
。C:\texlive\2024\bin\windows
。tlmgr update --all
。关于在VSC中建立latex的snippets 用户代码片段时,若需要输出 \ 换行命令,需要在 json 里输入六个 \\\ 才能真正输出\的,个人想法是VSC传递机制非标准化,不符合 标准的转义字符输出。
使用width参数缩放到0.5倍的文本宽度,scale参数就是图片相对于原尺寸缩放,比较难以控制。
1 | % 此处用textwidth文本宽度,或者也可以用linewidth线宽 |
moderncv的宏包是分文件编写的,具体语法参照texmf-dist\tex\latex\moderncv中的各个模块。
和LaTeX语法一样,如果有特殊符号,一样要使用反斜杠标注,例如_要写成_,不然编译会导致所有参考文献没有输出。
编写大型的LaTeX文档,在子文件中的input命令的路径应输入完整,即从项目顶层路径。input命令仅仅是插入该文档,不会做其他工作。
例如项目文件夹为main
,下设sub/subsub/
两层文件夹,sub中的tex文件要想插入subsub中的tex文件,应为\input{sub/subsub/xxx.tex}
,而非\input{subsub/xxx.tex}
。原因就是input仅仅是做插入,当main中的tex文件插入sub中xxx.tex,如果仅仅输入\input{subsub/xxx.tex}
,编译时main根本就找不到文件,路径缺失了sub。
[1] 【latex】LaTeX调整图片大小的方法;自动调整合适的大小[EB/OL]. https://blog.csdn.net/weixin_39589455/article/details/128533896.
# 标题
## 标题
### 标题
#### 标题
##### 标题
###### 标题
链接中添加空格的方法
\&\#32
-
替代空格反引号(位于tab键之上)包裹住代码内容:`代码内容`
在代码内容前后使用三个反引号包裹住。
1 | ```语言关键字 |
代码块支持语法高亮的语言关键字:
language | key |
---|---|
1C | 1c |
ActionScript | actionscript |
Apache | apache |
AppleScript | applescript |
AsciiDoc | asciidoc |
AspectJ | asciidoc |
AutoHotkey | autohotkey |
AVR Assembler | avrasm |
Axapta | axapta |
Bash | bash |
BrainFuck | brainfuck |
Cap’n Proto | capnproto |
Clojure REPL | clojure |
Clojure | clojure |
CMake | cmake |
CoffeeScript | coffeescript |
C++ | cpp |
C# | cs |
CSS | css |
D | d |
Dart | d |
Delphi | delphi |
Diff | diff |
Django | django |
DOS.bat | dos |
Dust | dust |
Elixir | elixir |
ERB(Embedded Ruby) | erb |
Erlang REPL | erlang-repl |
Erlang | erlang |
FIX | fix |
F# | fsharp |
G-code(ISO 6983) | gcode |
Gherkin | gherkin |
GLSL | glsl |
Go | go |
Gradle | gradle |
Groovy | groovy |
Haml | haml |
Handlebars | handlebars |
Haskell | haskell |
Haxe | haxe |
HTML | html |
HTTP | http |
Ini file | ini |
Java | java |
JavaScript | javascript |
JSON | json |
Lasso | lasso |
Less | less |
Lisp | lisp |
LiveCode | livecodeserver |
LiveScript | livescript |
Lua | lua |
Makefile | makefile |
Markdown | markdown |
Mathematica | mathematica |
Matlab | matlab |
MEL (Maya Embedded Language) | mel |
Mercury | mercury |
Mizar | mizar |
Monkey | monkey |
Nginx | nginx |
Nimrod | nimrod |
Nix | nix |
NSIS | nsis |
Objective C | objectivec |
OCaml | ocaml |
Oxygene | oxygene |
Parser 3 | parser3 |
Perl | perl |
PHP | php |
PowerShell | powershell |
Processing | processing |
Python’s profiler output | profile |
Protocol Buffers | protobuf |
Puppet | puppet |
Python | python |
Q | q |
R | r |
RenderMan RIB | rib |
Roboconf | roboconf |
RenderMan RSL | rsl |
Ruby | ruby |
Oracle Rules Language | ruleslanguage |
Rust | rust |
Scala | scala |
Scheme | scheme |
Scilab | scilab |
SCSS | scss |
Smali | smali |
SmallTalk | smalltalk |
SML | sml |
SQL | sql |
Stata | stata |
STEP Part21(ISO 10303-21) | step21 |
Stylus | stylus |
Swift | swift |
Tcl | tcl |
Tex | tex |
text | text/plain |
Thrift | thrift |
Twig | twig |
TypeScript | typescript |
Vala | vala |
VB.NET | vbnet |
VBScript in HTML | vbscript-html |
VBScript | vbscript |
Verilog | verilog |
VHDL | vhdl |
Vim Script | vim |
Intel x86 Assembly | x86asm |
XL | xl |
XML | xml |
YAML | yml |
[1] Markdown 官方教程[EB/OL]. https://markdown.com.cn/.
[2] MarkDown 支持高亮的语言[EB/OL]. https://blog.csdn.net/u012102104/article/details/78950290.
R.I.P