/Shell_Script

My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7

Primary LanguageC++

link


shell script 기초

#!/bin/sh
echo -e "Hello\n$NAME!" #개행된다.
#!/bin/bash
echo -e "Hello\n$NAME!" #개행된다.

https://fopman.tistory.com/137

PATH(bash)

vi /etc/bash.bashrc

A collection of useful .gitignore templates


.DS_Store만 gitignore[🔝]

echo ".DS_Store" >> .gitignore 

fishshell용 echo로 gitignore넣기[🔝]

echo "# Result" >> README.md &&
echo "" >> README.md &&
echo "```bash" >> README.md &&
echo "" >> README.md &&
echo "```" >> README.md &&
echo "" >> README.md &&

echo "# Visual Studio 2015/2017 cache/options directory" >> .gitignore &&
echo ".vs/" >> .gitignore &&
echo "" >> .gitignore &&
echo "# A collection of useful .gitignore templates " >> .gitignore &&
echo "# https://github.com/github/gitignore" >> .gitignore &&
echo "# General" >> .gitignore &&
echo ".DS_Store" >> .gitignore &&
echo "dir/otherdir/.DS_Store" >> .gitignore &&
echo "" >> .gitignore &&

echo "# VS Code files for those working on multiple tools" >> .gitignore &&
echo ".vscode/" >> .gitignore &&
echo "# Generated by Cargo" >> .gitignore  &&
echo "# will have compiled files and executables" >> .gitignore &&
echo "debug/" >> .gitignore &&
echo "target/" >> .gitignore &&
echo "" >> .gitignore &&

echo "# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries" >> .gitignore &&
echo "# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html" >> .gitignore &&
echo "Cargo.lock" >> .gitignore &&
echo "" >> .gitignore &&

echo "# These are backup files generated by rustfmt" >> .gitignore &&
echo "**/*.rs.bk" >> .gitignore &&
echo "" >> .gitignore &&

echo "# MSVC Windows builds of rustc generate these, which store debugging information" >> .gitignore &&
echo "*.pdb" >> .gitignore &&
echo "" >> .gitignore &&

echo "# WASM" >> .gitignore &&
echo "pkg/" >> .gitignore &&
echo "/wasm-pack.log" >> .gitignore &&
echo "dist/" >> .gitignore

Rust .gitignore (macOS, LinuxOS)

echo "# Result\xa\xa\x60\x60\x60\xa\xa\x60\x60\x60" >> README.md &&

echo "# A collection of useful .gitignore templates " >> .gitignore &&
echo "# https://github.com/github/gitignore\xa" >> .gitignore &&
echo "# General" >> .gitignore &&
echo ".DS_Store" >> .gitignore &&
echo "dir/otherdir/.DS_Store\xa" >> .gitignore &&

echo "# VS Code files for those working on multiple tools" >> .gitignore &&
echo ".vscode/\xa" >> .gitignore &&
echo "# Generated by Cargo" >> .gitignore  &&
echo "# will have compiled files and executables" >> .gitignore &&
echo "debug/" >> .gitignore &&
echo "target/\xa" >> .gitignore &&

echo "# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries" >> .gitignore &&
echo "# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html" >> .gitignore &&
echo "Cargo.lock\xa" >> .gitignore &&

echo "# These are backup files generated by rustfmt" >> .gitignore &&
echo "**/*.rs.bk\xa" >> .gitignore &&

echo "# MSVC Windows builds of rustc generate these, which store debugging information" >> .gitignore &&
echo "*.pdb\xa" >> .gitignore &&

echo "# WASM" >> .gitignore &&
echo "pkg/" >> .gitignore &&
echo "/wasm-pack.log" >> .gitignore &&
echo "dist/" >> .gitignore
  • WindowsOS(PowerShell)
echo "# Result`r`n`r`n```````n`r`n```````n" >> README.md &&
echo "/target`r`nCargo.lock`r`n" >> .gitignore
  • WindowsOS(PowerShell) ver.2
echo "# A collection of useful .gitignore templates/`r`n# https://github.com/github/gitignore/`r`n# General/`r`n.DS_Store/`r`n `r`n# Generated by Cargo`r`n# will have compiled files and executables`r`ndebug/`r`ntarget/`r`n `r`n# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries`r`n# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html`r`nCargo.lock`r`n `r`n# These are backup files generated by rustfmt`r`n**/*.rs.bk`r`n `r`n# MSVC Windows builds of rustc generate these, which store debugging information`r`n*.pdb`r`n" >> .gitignore && echo "# Result`r`n`r`n```````n`r`n```````n" >> README.md

https://devblogs.microsoft.com/scripting/powertip-new-lines-with-powershell/

  • macOS & LinuxOS
echo "/target\xa\.DS_Store\xa/.vscode\xa# Generated by Cargo\xa# will have compiled files and executables\xadebug/\xatarget/\xa# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries\xa# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html\xaCargo.lock\xa# These are backup files generated by rustfmt\xa*/*.rs.bk\xa# MSVC Windows builds of rustc generate these, which store debugging information\xa*.pdb\xadist/\xapkg/\xa" >> .gitignore &&
echo "# Result\xa\xa\x60\x60\x60\xa\xa\x60\x60\x60" >> README.md
  • Rust .gitignore
# A collection of useful .gitignore templates
# https://github.com/github/gitignore
# General
.DS_Store

# Generated by Cargo
# will have compiled files and executables
debug/
target/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
  • WASM + Rust.gitignore
# A collection of useful .gitignore templates 
# https://github.com/github/gitignore

# General
.DS_Store

# VS Code files for those working on multiple tools
.vscode/

# Generated by Cargo
# will have compiled files and executables
debug/
target/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# WASM
pkg/
/wasm-pack.log
dist/

C .gitignore

# macOS general
.DS_Store

# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
main

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
  • echo
echo "# Result\xa\xa\x60\x60\x60\xa\xa\x60\x60\x60" >> README.md &&

echo "# macOS general" >> .gitignore &&
echo ".DS_Store\xa" >> .gitignore &&

echo "# Prerequisites" >> .gitignore &&
echo "*.d\xa" >> .gitignore &&

echo "# Object files" >> .gitignore &&
echo "*.o" >> .gitignore &&
echo "*.ko" >> .gitignore &&
echo "*.obj" >> .gitignore &&
echo "*.elf\xa" >> .gitignore &&

echo "# Linker output" >> .gitignore &&
echo "*.ilk" >> .gitignore &&
echo "*.map" >> .gitignore &&
echo "*.exp\xa" >> .gitignore &&

echo "# Precompiled Headers" >> .gitignore &&
echo "*.gch" >> .gitignore &&
echo "*.pch\xa" >> .gitignore &&

echo "# Libraries" >> .gitignore &&
echo "*.lib" >> .gitignore &&
echo "*.a" >> .gitignore &&
echo "*.la" >> .gitignore &&
echo "*.lo\xa" >> .gitignore &&

echo "# Shared objects (inc. Windows DLLs)" >> .gitignore &&
echo "*.dll" >> .gitignore &&
echo "*.so" >> .gitignore &&
echo "*.so.*" >> .gitignore &&
echo "*.dylib\xa" >> .gitignore &&

echo "# Executables" >> .gitignore &&
echo "*.exe" >> .gitignore &&
echo "*.out" >> .gitignore &&
echo "*.app" >> .gitignore &&
echo "*.i*86" >> .gitignore &&
echo "*.x86_64" >> .gitignore &&
echo "*.hex" >> .gitignore &&
echo "main\xa" >> .gitignore &&

echo "# Debug files" >> .gitignore &&
echo "*.dSYM/" >> .gitignore &&
echo "*.su" >> .gitignore &&
echo "*.idb" >> .gitignore &&
echo "*.pdb\xa" >> .gitignore &&

echo "# Kernel Module Compile Results" >> .gitignore &&
echo "*.mod*" >> .gitignore &&
echo "*.cmd" >> .gitignore &&
echo ".tmp_versions/" >> .gitignore &&
echo "modules.order" >> .gitignore &&
echo "Module.symvers" >> .gitignore &&
echo "Mkfile.old" >> .gitignore &&
echo "dkms.conf" >> .gitignore


Zig .gitignore[🔝]

echo "# Result\xa\xa\x60\x60\x60\xa\xa\x60\x60\x60" >> README.md &&

echo "# A collection of useful .gitignore templates " >> .gitignore &&
echo "# https://github.com/github/gitignore\xa" >> .gitignore &&
echo "# This file is for zig-specific build artifacts." >> .gitignore &&
echo "# If you have OS-specific or editor-specific files to ignore,\xa# such as *.swp or .DS_Store, put those in your global" >> .gitignore &&
echo "# General" >> .gitignore &&
echo ".DS_Store\xa" >> .gitignore &&

echo "# VS Code files for those working on multiple tools" >> .gitignore &&
echo ".vscode/\xa" >> .gitignore &&
echo "# Generated by zig build run" >> .gitignore  &&
echo "# will have compiled files and executables" >> .gitignore &&
echo "zig-out/" >> .gitignore &&
echo "zig-cache/" >> .gitignore &&
echo "/release/" >> .gitignore &&
echo "/debug/" >> .gitignore &&
echo "/build/" >> .gitignore &&
echo "/build-*/" >> .gitignore &&
echo "/docgen_tmp/\xa" >> .gitignore
# This file is for zig-specific build artifacts.
# If you have OS-specific or editor-specific files to ignore,
# such as *.swp or .DS_Store, put those in your global
.DS_Store
# VS Code files for those working on multiple tools
.vscode/
# ~/.gitignore and put this in your ~/.gitconfig:
#
# [core]
#     excludesfile = ~/.gitignore
#
# Cheers!
# -andrewrk

zig-cache/
zig-out/
/release/
/debug/
/build/
/build-*/
/docgen_tmp/

출처 https://github.com/ziglang/zig/blob/master/.gitignore

github/gitignore#3442


Java & Kotlin .gitignore[🔝]

.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

Java & Kotlin echo .gitignore

echo ".gradle" >> .gitignore &&
echo "**/build/" >> .gitignore &&
echo "\x21src/**/build/\xa" >> .gitignore &&

echo "# Ignore Gradle GUI config" >> .gitignore &&
echo "gradle-app.setting\xa" >> .gitignore &&

echo "# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)" >> .gitignore &&
echo "\x21gradle-wrapper.jar\xa" >> .gitignore &&

echo "# Avoid ignore Gradle wrappper properties" >> .gitignore &&
echo "\x21gradle-wrapper.properties\xa" >> .gitignore &&

echo "# Cache of project" >> .gitignore &&
echo ".gradletasknamecache\xa" >> .gitignore &&

echo "# Eclipse Gradle plugin generated files" >> .gitignore &&
echo "# Eclipse Core" >> .gitignore &&
echo ".project" >> .gitignore &&
echo "# JDT-specific (Eclipse Java Development Tools)" >> .gitignore &&
echo ".classpath" >> .gitignore


TypeScript .gitignore[🔝]

echo "node_modules/" >> .gitignore &&
echo ".DS_Store" >> .gitignore &&
echo "package-lock.lock" >> .gitignore &&
echo ".vscode/" >> .gitignore &&
echo "dist/" >> .gitignore &&
echo "pkg/" >> .gitignore &&
echo "build/" >> .gitignore

echo 에코(echo)로 유니코드(Unicode) 출력하기[🔝]

echo $'\uf115'

Power10k Install[🔝]

https://economiceco.tistory.com/m/16511

    1. sudo apt install zsh
$ sudo apt install zsh
    1. Nerd Font설치

https://github.com/romkatv/powerlevel10k#fonts

  • . ohmyzsh설치

https://ohmyz.sh/

https://ohmyz.sh/#install

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

ohmyzsh github https://github.com/ohmyzsh/ohmyzsh

    1. power10k설치

https://github.com/romkatv/powerlevel10k

    1. bashrc 설정 최상단에 추가
exec zsh
    1. 터미널에서 zsh 치면 설정화면 나옴 .zshrc 설정 끝내고 Plugins 추가
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git
    # other plugins..
    zsh-syntax-highlighting
    zsh-autosuggestions
    z
    fzf # 필요하면 추가하세요
    fasd # 필요하면 추가하세요
)
    1. 설정 끝내고 Plugins 추가
cd .oh-my-zsh/plugins

plugins폴더 들어가서

git clone 으로 강제로 넣어주기

zsh-z https://github.com/agkozak/zsh-z

https://github.com/zsh-users/zsh-autosuggestions

https://github.com/zsh-users/zsh-syntax-highlighting

.zshrc 에서 할 예정

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH




끝은 :$PATH로 끝내고 그 사이에 폴더 넣고 : 으로 분리한다.


내 설정
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$HOME/.cargo/bin:$HOME/.zig:$HOME/zls:$PATH:
    1. 내가 세팅한 PATH확인방법
$PATH

https://github.com/YoungHaKim7/rust_vim_setting

dotfiles_linux/참조하세요



shell명령어 정리잘됨.commands.dev

https://www.commands.dev/


xxd 사용법


Regular Expression

https://www.regexpal.com/

Shell_Script

ASCII Table(16진수로 외우자)

주로 쓰는 ascii & Unicode 정리
char✨ Escape 16진수Hx 설명Description 10진수Dec 8진수Oct 2진수Binary In Unicode
LF \xa 0xA NL line feed, new line 10 0o12 0b1010
Space \x20 0x20 Space 32 0o40 0b00100000
! \x21 0x21 Exclamation mark 33 0o41 0b00100001
` \x60 0x60 Backtic, Grave 96 0o140 0b1100000 U+0060
`
GRAVE ACCENT


SILQ Unicode

https://github.com/YoungHaKim7/silq_project

양자 코딩 자주 쓰는 Unicode
Symbol Unicode(Hex) LaTeX ShortCut Name 10진수Dec
2192 \to Rightwards Arrow 8594
2115 \bn Double-Struck Capital N 8469
211D \br Double-Struck Capital R 8477
π 3A0 \pi Greek Capital Letter Pi 928
𝔹 1D539 \bb Mathematical Double-Struck Capital B 120121
22C5 \cdot Dot Operator 8901
θ 398 \theta Greek Capital Letter Theta 920
ψ 3A8 \psi Greek Capital Letter PSI 936
λ 39B \lambda Greek Capital Letter LAMDA 923
¬ AC \neg Not Sign 172
× D7 \times Multiplication Sign 215
± B1 \pm Plus-Minus Sign 177
𝟙 1D7D9 \b1 Mathematical Double-Struck Digit One 120793

Memory 2, 8 , 16 pattern

Binary vs Octal vs Decimal vs Hexadecimal
16진수Hx 설명Description 10진수Dec 8진수Oct 2진수Binary
0xff 255 0o377 0b11111111