https://github.com/younghakim7/shell_script
My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7
https://github.com/younghakim7/shell_script
shell zsh
Last synced: 3 months ago
JSON representation
My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7
- Host: GitHub
- URL: https://github.com/younghakim7/shell_script
- Owner: YoungHaKim7
- Created: 2023-02-24T20:22:41.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-19T03:56:39.000Z (about 2 years ago)
- Last Synced: 2024-05-19T04:31:59.121Z (about 2 years ago)
- Topics: shell, zsh
- Language: C++
- Homepage:
- Size: 166 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# link
- [fishshell용-echo로-gitignore넣기](#fishshell용-echo로-gitignore넣기)
# 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
- ```.gitignore```세팅 언어별로 다 정리되어 있다. 굿 👍💕🙌
- https://github.com/github/gitignore/
- gitignore규칙 한글로 잘 정리됨( 모든 폴더 하위폴더까지 적용하는것까지!!)
- https://nochoco-lee.tistory.com/46
# `.DS_Store`만 gitignore[[🔝]](#link)
```bash
echo ".DS_Store" >> .gitignore
```
# fishshell용 echo로 gitignore넣기[[🔝]](#link)
```
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)
```bash
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```
```bash
# 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```
```bash
# 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```[[🔝]](#link)
```
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
```
- Zig ```.gitignore```[[🔝]](#link)
```
# 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
https://github.com/github/gitignore/pull/3442
# Java & Kotlin ```.gitignore```[[🔝]](#link)
```
.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```[[🔝]](#link)
```bash
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) 출력하기[[🔝]](#link)
```
echo $'\uf115'
```
# Power10k Install[[🔝]](#link)
https://economiceco.tistory.com/m/16511
- 1. sudo apt install zsh
```
$ sudo apt install zsh
```
- 2. Nerd Font설치
https://github.com/romkatv/powerlevel10k#fonts
- . ohmyzsh설치
https://ohmyz.sh/
https://ohmyz.sh/#install
```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
ohmyzsh github
https://github.com/ohmyzsh/ohmyzsh
- 4. power10k설치
https://github.com/romkatv/powerlevel10k
- 5. bashrc 설정 최상단에 추가
```bash
exec zsh
```
- 6. 터미널에서 zsh 치면 설정화면 나옴 ```.zshrc``` 설정 끝내고 Plugins 추가
```bash
# 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 # 필요하면 추가하세요
)
```
- 7. 설정 끝내고 Plugins 추가
```bash
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
- zsh-autosuggestions 글씨 색깔 바꾸기
- https://stackoverflow.com/questions/47310537/how-to-change-zsh-autosuggestions-color
- 8. path 관리는
.zshrc 에서 할 예정
```bash
# 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:
```
- 9. 내가 세팅한 PATH확인방법
```bash
$PATH
```
https://github.com/YoungHaKim7/rust_vim_setting
dotfiles_linux/참조하세요
# shell명령어 정리잘됨.commands.dev
https://www.commands.dev/
# xxd 사용법
- https://twpower.github.io/122-xxd-command-usage
- https://linux.die.net/man/1/xxd
```bash
xxd -I 0x00595335 rust_stop_watch_youtube_pomodoro_timer
Usage:
xxd [options] [infile [outfile]]
or
xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
Options:
-a toggle autoskip: A single '*' replaces nul-lines. Default off.
-b binary digit dump (incompatible with -ps,-i). Default hex.
-C capitalize variable names in C include file style (-i).
-c cols format octets per line. Default 16 (-i: 12, -ps: 30).
-E show characters in EBCDIC. Default ASCII.
-e little-endian dump (incompatible with -ps,-i,-r).
-g bytes number of octets per group in normal output. Default 2 (-e: 4).
-h print this summary.
-i output in C include file style.
-l len stop after octets.
-n name set the variable name used in C include output (-i).
-o off add to the displayed file position.
-ps output in postscript plain hexdump style.
-r reverse operation: convert (or patch) hexdump into binary.
-r -s off revert with added to file positions found in hexdump.
-d show offset in decimal instead of hex.
-s [+][-]seek start at bytes abs. (or +: rel.) infile offset.
-u use upper case hex letters.
-R when colorize the output; can be 'always', 'auto' or 'never'. Default: 'auto'.
-v show version: "xxd 2023-10-25 by Juergen Weigert et al.".
```
- `xxd -l` 첫줄 부터
```
xxd -l 200 rust_stop_watch_youtube_pomodoro_timer
00000000: cffa edfe 0c00 0001 0000 0000 0200 0000 ................
00000010: 1300 0000 7007 0000 8500 a000 0000 0000 ....p...........
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45 ....H...__PAGEZE
00000030: 524f 0000 0000 0000 0000 0000 0000 0000 RO..............
00000040: 0000 0000 0100 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000060: 0000 0000 0000 0000 1900 0000 2802 0000 ............(...
00000070: 5f5f 5445 5854 0000 0000 0000 0000 0000 __TEXT..........
00000080: 0000 0000 0100 0000 0040 2f00 0000 0000 .........@/.....
00000090: 0000 0000 0000 0000 0040 2f00 0000 0000 .........@/.....
000000a0: 0500 0000 0500 0000 0600 0000 0000 0000 ................
000000b0: 5f5f 7465 7874 0000 0000 0000 0000 0000 __text..........
000000c0: 5f5f 5445 5854 0000 __TEXT..
```
- 내가 표시한곳부터 끝까지 출력 할때
- ` xxd -s `
```
xxd -s 0x00595335 rust_stop_watch_youtube_pomodoro_timer
00595335: 41b1 d9db a764 19c9 a3ee e788 1920 9b8d A....d....... ..
00595345: e0cb 62df 151e f065 63c0 fbcd 6c4e 7922 ..b....ec...lNy"
00595355: 2af5 38b7 1031 d2f9 3c50 c2bc ca07 9596 *.8..1.. .........
00595395: bd80 b4ad 8a6a aa0c 1a89 cae1 a61e ad17 .....j..........
005953a5: 89e0 10a5 bf2c 4ee3 43aa d5ae 51a0 1e27 .....,N.C...Q..'
005953b5: 11c1 47ed 68ea c238 a2db 1be5 534b d583 ..G.h..8....SK..
005953c5: b163 a273 fad6 4664 69fe 9b48 fa14 f69e .c.s..Fdi..H....
005953d5: 00db 573e c9e2 0a42 403c 1f53 a807 a479 ..W>...B@<.S...y
005953e5: 25c7 25d1 9a3d 7c4e b28d ae16 7e7e 7f00 %.%..=|N....~~..
005953f5: 0000 00
```
- 내가 원하는 라인 tail과 head활용
```bash
$ xxd -s 0x00595335 rust_stop_watch_youtube_pomodoro_timer | head -n 5
00595335: 41b1 d9db a764 19c9 a3ee e788 1920 9b8d A....d....... ..
00595345: e0cb 62df 151e f065 63c0 fbcd 6c4e 7922 ..b....ec...lNy"
00595355: 2af5 38b7 1031 d2f9 3c50 c2bc ca07 9596 *.8..1.....B@<.S...y
005953e5: 25c7 25d1 9a3d 7c4e b28d ae16 7e7e 7f00 %.%..=|N....~~..
005953f5: 0000 00
```
# Regular Expression
https://www.regexpal.com/
# Shell_Script
- https://www.guru99.com/introduction-to-shell-scripting.html
# ASCII Table(16진수로 외우자)
- https://www.asciitable.xyz/
- https://www.asciitable.com/
- https://learn.microsoft.com/en-us/cpp/c-language/octal-and-hexadecimal-character-specifications?view=msvc-170
- https://en.wikipedia.org/wiki/Unicode
- https://www.unicode.org/versions/Unicode15.0.0/
- http://xahlee.info/comp/unicode_index.html?q=
- http://xahlee.info/comp/ascii_chars.html
주로 쓰는 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