Linux Commands - redutan/redutan.github.io GitHub Wiki

FileSystem

FHF (Filesystem Hierarchy Standard) ํ‘œ์ค€ ํŒŒ์ผ ์‹œ์Šคํ…œ

/ : ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ
/bin : ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด
/boot : ๋ถ€ํŠธ๋กœ๋” ๋””๋ ‰ํ† ๋ฆฌ
/dev : ์‹œ์Šคํ…œ ๋””๋ฐ”์ด์Šค (์žฅ์น˜ํŒŒ์ผ)
/etc : ๊ฐ์ข… ์„ค์ •ํŒŒ์ผ
/home : ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
/lib : ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (๋ฐ ์ปค๋„๋ชจ๋“ˆ)
/media : ์™ธ๋ถ€ ์ €์žฅ์†Œ (cdrom, usb ๋“ฑ)
/mnt : ์™ธ๋ถ€ ์ €์žฅ์†Œ ๋˜๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ ๋งˆ์šดํŠธํฌ์ธํŠธ /proc : ์‹œ์Šคํ…œ ์„ค์ •๋“ค์˜ ๊ฐ€์ƒํŒŒ์ผ์‹œ์Šคํ…œ (pseudo-file ์‹œ์Šคํ…œ)
/root : ๋ฃจํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
/sbin : ์‹œ์Šคํ…œ (๊ด€๋ฆฌ์ž์šฉ) ๋ช…๋ น์–ด
/tmp : ์ž„์‹œ ์ €์žฅ์†Œ
/usr : ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋“ค ๊ณตํ†ตํŒŒ์ผ
/var : ์‹œ์Šคํ…œ ์šด์šฉ์ค‘์— ์ƒ์„ฑ๋˜๋Š” ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

์‰˜ ๋กœ๊ทธ์ธ ์‹œ ๊ธฐ๋™ ์ˆœ์„œ

bash์ธ ๊ฒฝ์šฐ

  • /etc/profile
    • /etc/profile.d/*.sh
    • /etc/bash.bashrc
  • ~/.profile
    • ~/.bashrc
      • ~/.bash_aliases(if exists)

์Šคํฌ๋ฆฝํŠธ

# ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ๋ฐ /bin/sh ๋˜๋Š” /bin/bash ๋ฅผ ํ†ตํ•ด ์‹คํ–‰
$ /bin/sh test1.sh
# ์‹คํ–‰ํผ๋ฏธ์…˜์„ํ†ตํ•œ์ง์ ‘์‹คํ–‰
$ chmod +x test1.sh 
$ ./test1.sh
# ์ด๋•Œ, ํ•ด๋‹น ์‰˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์†์„ฑ์„ ์ฒซ ์ค„์— ์ •์˜ (she(#)bang(!) ๋˜๋Š” shabang, hashbang) 
- #!/bin/bash
- #!/usr/bin/perl
- #!/usr/bin/python
#shebang ๋ฌด์‹œํ•˜๊ณ  ์ง์ ‘ ์‹คํ–‰
$ bash -m test1.sh

์Šคํฌ๋ฆฝํŠธ ์ž…์ถœ๋ ฅ ์ธ์ž

  • $0: ์Šคํฌ๋ฆฝํŠธ/๋ช…๋ น์–ด ์ด๋ฆ„
  • $#: ์ „๋‹ฌ๋œํŒŒ๋ผ๋ฏธํ„ฐ์ˆ˜
  • $$: ํ”„๋กœ์„ธ์Šค๋ฒˆํ˜ธ
  • $?: ์‹คํ–‰๊ฒฐ๊ณผ
  • $1,$2,...: ์ž…๋ ฅ์ธ์ž
  • $*: ์ž…๋ ฅ์ธ์ž ๋ชจ๋‘

Shell Keymap

  • Ctrl + L: ํ˜„์žฌ ์ž…๋ ฅ ๊ธ€์ž๋“ค์€ ๋‚จ๊ฒจ๋‘” ์ฑ„ 'clear' ์‹คํ–‰
  • Ctrl + U: ํ˜„์žฌ ์ปค์„œ ์œ„์น˜๋ถ€ํ„ฐ ๊ทธ ์ค„ ์ฒ˜์Œ๋ถ€๋ถ„ ๊นŒ์ง€ ์ง€์šฐ๊ธฐ
  • Ctrl + D: ํ˜„์žฌ ์ปค์„œ์— ์žˆ๋Š” ๊ธ€์ž ์ง€์šฐ๊ธฐ
  • Alt + B: ์ด์ „ ๋‹จ์–ด๋กœ ์ปค์„œ ์ด๋™
    • Esc ๋ˆ„๋ฅด๊ณ  ๋• ํ›„ ๋ฐ”๋กœ B๋„ ๋˜‘๊ฐ™์ด ์ž‘๋™ํ•˜๋Š”๋ฐ ๋งฅ์—์„œ ์œ ์šฉํ•จ
  • Alt + F: ๋‹ค์Œ ๋‹จ์–ด๋กœ ์ปค์„œ ์ด๋™
    • Esc ๋ˆ„๋ฅด๊ณ  ๋• ํ›„ ๋ฐ”๋กœ B๋„ ๋˜‘๊ฐ™์ด ์ž‘๋™ํ•˜๋Š”๋ฐ ๋งฅ์—์„œ ์œ ์šฉํ•จ
  • Ctrl + A: ์ค„ ๋งจ ์•ž์œผ๋กœ ์ปค์„œ ์ด๋™
  • Ctrl + E: ์ค„ ๋งจ ๋’ค๋กœ ์ปค์„œ ์ด๋™
  • Ctrl + F: ํ•œ ์นธ ์•ž์œผ๋กœ ์ด๋™( <- ํ‚ค ์™€ ๋™์ผ)
  • Ctrl + B: ํ•œ ์นธ ๋’ค๋กœ ์ด๋™(-> ํ‚ค ์™€ ๋™์ผ)
  • Ctrl + K: ํ˜„์žฌ ์ปค์„œ ์œ„์น˜๋กœ๋ถ€ํ„ฐ ๊ทธ ์ค„ ๋ ๋ถ€๋ถ„๊นŒ์ง€ ํ…์ŠคํŠธ ์ง€์šฐ๊ธฐ

Redirection(> >> 1> 2> &> < <<)

# ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ ํ‘œ์ค€ ์ถœ๋ ฅ(1)์— ๋ณด๋‚ด๊ณ  ์—๋Ÿฌ ์ถœ๋ ฅ๋„ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ๊ณณ์œผ๋กœ ๋ณด๋‚ธ๋‹ค.
$ ls tmp/* > result.txt 2>&1
# ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์„ ํ‘œ์ค€ ์ถœ๋ ฅ(1)๊ณผ ์—๋Ÿฌ ์ถœ๋ ฅ(2) ๋‘˜ ๋‹ค ๋ณด๋‚ธ๋‹ค.
$ ls tmp/* &> result.txt

# ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋ถ€ํ„ฐ end(delim)๊ฐ’์ด ๋“ค์–ด์˜ฌ ๋•Œ๊นŒ์ง€ ์˜ ์ž…๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ถœ๋ ฅ
$ cat << end > hello.txt

Pipeline(|)

find

#๋‚ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ™•์žฅ์ž๊ฐ€ .txt ์ธ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฒ•
$ find *.txt
#๋‚ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋ถ€ํ„ฐ ํ™•์žฅ์ž๊ฐ€ .txt ์ธ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฒ•
$ find . -name โ€œ*.txtโ€
#๋‚ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํŒŒ์ผ๋ช…์ด hello๋กœ ์‹œ์ž‘ํ•˜๋Š” โ€œํŒŒ์ผโ€ ๋งŒ ์ฐพ๋Š” ๋ฒ•
$ find . -name โ€œhello*โ€ -type f
#๋‚ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด dir ๋กœ ์‹œ์ž‘ํ•˜๋Š” โ€œ๋””๋ ‰ํ† ๋ฆฌโ€ ๋งŒ ์ฐพ๋Š” ๋ฒ• โ€ข find . -name โ€œdir*โ€ -type d
๋‚ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์šฉ๋Ÿ‰์ด 100,000,000๋ฐ”์ดํŠธ (100M) ๋ณด๋‹ค ํฐ ํŒŒ์ผ ์ฐพ๋Š” ๋ฒ•
โ€ข find . -size +100000000c <-- ์—ฌ๊ธฐ 100000000c ๋Œ€์‹  100000k ๋˜๋Š” 100M ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ตœ๊ทผ ์ƒ์„ฑ๋œ ํŒŒ์ผ๋งŒ ์ฐพ์•„๋ณด๊ธฐ (2020๋…„ 5์›” 15์ผ ์ดํ›„ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ
โ€ข find -newerct โ€œ15 May 2020โ€ -ls <-- ์—ฌ๊ธฐ newerct ๋Œ€์‹  newermt ๋กœ ํ•  ๊ฒฝ์šฐ ์ตœ๊ทผ ๋ณ€๊ฒฝ๋œ ์ตœ๊ทผ 2์ผ์—์„œ 5์ผ ์‚ฌ์ด์— ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ์ฐพ๊ธฐ
โ€ข find . -mtime +2 -a -mtime -5 -ls

stat

  • Access: ํŒŒ์ผ์— ์ตœ๊ทผ ์ ‘๊ทผ ์‹œ๊ฐ„
    • ๋…ผ๋ž€์ด ์žˆ์Œ. ๊ณ ์ „์ ์œผ๋กœ๋Š” read ์‹œ์—๋„ ์˜ฌ๋ผ๊ฐ”์œผ๋‚˜ ์ง€๊ธˆ์€ ์˜ต์…˜์„ ํ†ตํ•ด์„œ ๋‹ค์†Œ ๋ณ€๊ฒฝ๋จ
  • Modify: ํŒŒ์ผ์˜ ๋‚ด์šฉ ๋ณ€๊ฒฝ ์‹œ๊ฐ„
  • Change: ํŒŒ์ผ์˜ ์ˆ˜์ • ์‹œ๊ฐ„
    • inode ๊ด€์ ์—์„œ์˜ ๋ณ€ํ™” ์‹œ๊ฐ„ - ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์†์„ฑ์ˆ˜์ • ๋“ฑ
  • Birth: ์ƒ์„ฑ
$ stat hello2.txt
  File: hello2.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 274693      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  jordan)   Gid: ( 1000/  jordan)
Access: 2022-08-12 00:25:52.460811416 +0000
Modify: 2022-08-12 00:25:52.460811416 +0000
Change: 2022-08-12 00:26:07.680853040 +0000
 Birth: 2022-08-12 00:25:52.460811416 +0000

nmap

์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ACL์„ ํฌํŠธ ๋ฒ”์œ„๋กœ ๊ฒ€์‚ฌ

  • ์—ด๋ ค์žˆ์œผ๋ฉด open
  • ๋ง‰ํ˜€์žˆ์œผ๋ฉด filtered
  • ๋‹ซํ˜€์žˆ์œผ๋ฉด closed
$ nmap -p 1024-65535 10.10.10.10

Starting Nmap ...
Namp scan report for 10.10.10.10
PORT     STATE    SERVICE
1433/tcp filtered ms-sql-s
1521/tcp filtered oracle
...
โš ๏ธ **GitHub.com Fallback** โš ๏ธ