LIKELION๐Ÿฆ TIL(2022-06-24)

Ryuยท2022๋…„ 6์›” 26์ผ
0

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ

๋ชฉ๋ก ๋ณด๊ธฐ
8/12
post-thumbnail

C์–ธ์–ด

ํฌ์ธํ„ฐ

  • ์‚ฌ์šฉ์ž๊ฐ€ C์–ธ์–ด๋กœ ์ž‘์„ฑ โ†’ โ€˜์ปดํŒŒ์ผ๋Ÿฌโ€™๊ฐ€ ์ปดํŒŒ์ผ(๋ฒˆ์—ญ) โ†’ ๊ธฐ๊ณ„์–ด๋กœ ์ „๋‹ฌ.
int main(void) {
	int i = 30;    // i๋Š” &i(์ง„์งœ ์ฃผ์†Œ)์— ๋Œ€ํ•œ ๋ณ„์นญ(๋ณ„๋ช…)์ด๋‹ค. '๋ฑ…๋ฑ… ์‚ฌ๊ฑฐ๋ฆฌ'์™€ ๊ฐ™์€.
	int i2 = 40;

	int* p = &i;    // p๋Š” **'์ฃผ์†Œ'**๋ฅผ ๋‹ด๋Š” ๊ณต๊ฐ„. i์˜ ์ง„์งœ ์ฃผ์†Œ๊ฐ€ p๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
	*p = 50;    // *๋Š” **'๊ฐ„๋‹ค'**๋ผ๋Š” ๋œป. *p ๋กœ ๊ฐ€๋ฉด 30์งœ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚˜์˜จ๋‹ค. ์ด๋ฅผ 50์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š”..

	printf("%ld\n", (long)&i);  // **i์˜ ์ฃผ์†Œ : 140721167407256**
  printf("%ld\n", (long)&i2);  // **i2์˜ ์ฃผ์†Œ : 140721167407252**

	printf("i : %d\n", i);
  // ์ถœ๋ ฅ => i : 50
	return 0;
}

  1. ๋งŒ์•ฝ ๋ฐ‘์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋ฉด, ๋‚˜์ค‘์— ํฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ ๋“ค์–ด์˜ฌ ๊ณต๊ฐ„์ด ์—†๋‹ค.. (๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐฉ์–ด์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ, ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.)

๐Ÿค printf("%ld\n", (long)&i); ์˜ ๊ฐ’์ด ์™œ ์ด๋ ‡๊ฒŒ ํด๊นŒ?

๐Ÿ’ก ์ฝ”๋“œ ์‹คํ–‰ ์‹œ, ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด์ž. ์ฝ”๋“œ ์‹คํ–‰ โ†’ ์šด์˜์ฒด์ œ๊ฐ€ โ€˜์Šคํƒโ€™์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น โ†’ RAM ๋ฉ”๋ชจ๋ฆฌ์— 4byte ์งœ๋ฆฌ ๋ฐฉ 2๊ฐœ๊ฐ€ ์ƒ๊ธด๋‹ค. (์ง€์—ญ๋ณ€์ˆ˜2๊ฐœ) โ†’ ๋ฐ์ดํ„ฐ๋Š” **RAM์˜ ๋๋‹จ์—์„œ๋ถ€ํ„ฐ ์ ์žฌ**๋œ๋‹ค. ๊ทธ๋ž˜์„œ!! **๋งˆ์ง€๋ง‰ ์ฃผ์†Œ๊ฐ€ ๊ต‰์žฅํžˆ ํฐ ๊ฐ’**์ด ๋‚˜์˜จ๋‹ค.

cf). RAM์˜ ์ €์žฅ ๋‹จ์œ„๋Š” byte ์ด๋‹ค. (cpu์˜ register ๋Š” word ๋‹จ์œ„)

์™œ i ์˜ ์ฃผ์†Œ๊ฐ€ ๋” ํด๊นŒ ?

  • i์˜ ์ฃผ์†Œ : 140721167407256
    i2์˜ ์ฃผ์†Œ : 140721167407252
๐Ÿ’ก ์ƒ์„ฑ ์ˆœ์„œ : i ๊ฐ€ ๋จผ์ € ๋งŒ๋“ค์–ด์ง€๊ณ , i2 ๊ฐ€ ๊ทธ ๋‹ค์Œ. ๋ฉ”๋ชจ๋ฆฌ ๋ฐฐ์น˜๋ฅผ ์‚ดํŽด๋ณด๋ฉด i2 โ€” i ์ด๋ ‡๊ฒŒ. ๋˜ ์Œ“์ด๋ฉด, i3 โ€” i2 โ€” i1 ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฑ„์›Œ๋‚˜๊ฐ.

cf). i์˜ ์ฃผ์†Œ๋Š” ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ์ €๊ฒƒ์ด์ง€ 4byte ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ , ์‹ค์ œ๋กœ๋Š” 6~9๊นŒ์ง€ ์‚ฌ์šฉ.
i2์˜ ์ฃผ์†Œ ์—ญ์‹œ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ์ €๊ฒƒ์ด์ง€ 4byte ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ,์‹ค์ œ๋กœ๋Š” 2~5๊นŒ์ง€ ์‚ฌ์šฉ.

&i ์— ๋Œ€ํ•ด !

  • &i โ‡’ ๊ฑฐ๋Œ€ํ•œ ์ˆซ์ž๊ฐ€ ๋‚˜์˜ด. ์ง„์งœ ์ฃผ์†Œ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.
    • &i = 30; // ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•.
  • &i โ‡’ ์˜ ๋œป์€ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ์ด๋™ํ•œ๋‹ค๋Š” ๋œป! ์ฆ‰, i ์˜ ์ฃผ์†Œ๋กœ ๊ฐ„๋‹ค!
    *&i = 50; // i ์˜ ์‹ค์ œ ์ฃผ์†Œ๋กœ ๊ฐ„๋‹ค!! i = 50; ๊ณผ ์ฐจ์ด๊ฐ€ ์—†๋‹ค.
    ๋‹ค์Œ์€ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.
    - int* p = &i;
    *p = 70;
    - *&i = 70; โ†’ ์ด๋ ‡๊ฒŒ ์ฃผ์†Œ ๋ณ€์ˆ˜์— ๋‹ด์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ์— ๊ฐ€๋„ ๋จ.
    - i = 70;

int p = &i; ์™œ int ์€ 8byte ์ผ๊นŒ ?

  • int* ์€ โ€˜์ฃผ์†Œโ€™๋ฅผ ๋‹ด๋Š” ๋ณ€์ˆ˜์ด๋‹ค.
    • ์ฃผ์†Œ๋Š” ์œ„์—์„œ ๋ณด์•˜๋“ฏ์ด ์—„์ฒญ๋‚˜๊ฒŒ ๊ธด ๊ฐ’์ด ๋‚˜์˜จ๋‹ค. (RAM ์˜ ๋๋‹จ๋ถ€ํ„ฐ ์ ์žฌ๋˜๋ฏ€๋กœ)
    • ๋”ฐ๋ผ์„œ, 8byte ์ •๋„ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ์ฃผ์†Œ ๊ฐ’์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•œ๋‹ค.
  • int, char ๋ชจ๋‘ 8byte ์ด๋‹ค. ์ฃผ์†Œ ๊ฐ’์„ ๋‹ด๋Š” ๋ณ€์ˆ˜๋Š” ๋ชจ๋‘ 8byte์ด๋‹ค.

๐Ÿค” ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ฃผ์†Œ ๊ฐ’์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง€๋Š” ์ด์œ  ?

โ†’ ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” โ€˜๊ฐ€์ƒ์˜ RAMโ€™์ด๋‹ค.

int ๋ณ€์ˆ˜ b๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ , b ์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ด๋ณด์ž.

  • ์ฒ ์ˆ˜์˜ ์ง‘(a) ์— ๋ฐฉ๋ฌธํ•  ๋•Œ, ์˜ํฌ์˜ ์ง‘(b)์ด ์ด์›ƒ์ง‘์ด๋ผ๋ฉด ์‰ฝ๊ฒŒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค.
#include <stdio.h>
void sol() {
  char a = 1;
  char b = 5;

  char* p;    // p๋Š” ํฌ์ธํ„ฐ! 
  // ์ˆ˜์ •๊ฐ€๋Šฅ์ง€์—ญ ์‹œ์ž‘
  p = &a;
  *p = 2;
  p = &a - 1;   // p๋Š” a์˜ ์ฃผ์†Œ์—์„œ -1 ์„ ํ•œ, b์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. a์˜ ์ฃผ์†Œ๊ฐ€ ๋” ํฌ๋‹ค. (์Šคํƒ ๋งจ ์•„๋ž˜ ๋๋‹จ์—์„œ๋ถ€ํ„ฐ ์ ์žฌ)
	// p--; ๋ผ ํ•ด์ค˜๋„ ๋˜‘๊ฐ™๋‹ค. *(p-1) = 10; ์ด๋ผ ํ•ด์ค˜๋„ ๋˜‘๊ฐ™๋‹ค. 
	// p ๊ฐ€ ๊ฐ€์ง€๋Š” ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์— ๋”ฐ๋ผ์„œ, -1์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€๋‹ค. -> int* p ์ด๋ฉด, -1์ด 4byte์ž„.
  *p = 10;
  // ์ˆ˜์ •๊ฐ€๋Šฅ์ง€์—ญ ๋

  printf("== ๋ณ€์ˆ˜์˜ ๊ฐ’ ==\n");
  printf("a : %d\n", a);
  // ์ถœ๋ ฅ => a : 2
  printf("b : %d\n", b);
  // ์ถœ๋ ฅ => b : 10
}

์‰˜ ๋ช…๋ น์–ด

์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ๋กœ ๋ช…๋ น์–ด ์ž…๋ ฅ โ†’ โ€˜์‰˜โ€™์€ ๊ฐ€์šด๋ฐ์—์„œ ํ†ต์—ญ๊ด€ ์—ญํ•  โ†’ ์šด์˜์ฒด์ œ(๋ฆฌ๋ˆ…์Šค)์—๊ฒŒ ์ „๋‹ฌ
( ์œˆ๋„์šฐ์—์„œ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋Š” BASH ์‰˜ ํ™˜๊ฒฝ์ด ์žˆ๋‹ค. )

  • ์œˆ๋„์šฐ ํด๋”์—์„œ ํŒŒ์ผ ํ™•์žฅ๋ช… ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ
    ๋ณด๊ธฐ โ†’ ์˜ต์…˜ โ†’ ํด๋” ๋ฐ ๊ฒ€์ƒ‰ ์˜ต์…˜ ๋ณ€๊ฒฝ โ†’ ๋ณด๊ธฐ โ†’ ์•Œ๋ ค์ง„ ํŒŒ์ผ ํ˜•์‹์˜ ํŒŒ์ผ ํ™•์žฅ๋ช… ์ˆจ๊ธฐ๊ธฐ ์ฒดํฌ ํ•ด์ œ.
  • ls -l โ‡’ ํŒŒ์ผ ์ •๋ณด ์ž์„ธํžˆ ๋‚˜์˜ด. ll ์ด๋ผ๊ณ  ํ•ด๋„ ๋œ๋‹ค.
    ls -alh โ‡’ ์ˆจ๊น€ํŒŒ์ผ๊นŒ์ง€ ๋ชจ์กฐ๋ฆฌ ์ž์„ธํ•˜๊ฒŒ ๋ณด์—ฌ์คŒ (all list human)
    pwd โ‡’ ํ˜„์žฌ ํด๋” ๊ฒฝ๋กœ ์ถœ๋ ฅ.
    -rw-rโ€”rโ€” โ€ฆ โ†’ ํŒŒ์ผ์ด๋ผ๋Š” ๋œป. ์•ž์— - ๊ฐ€ ์žˆ๋‹ค.
    drwxr-xr-x โ€ฆ โ†’ ํด๋”๋ผ๋Š” ๋œป. ์•ž์— d ๊ฐ€ ์žˆ๋‹ค.
  • clear , ctrl + l โ‡’ ์ž‘์—…์ฐฝ ๋น„์šฐ๊ธฐ
  • shift + delete โ‡’ ํœด์ง€ํ†ต ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์™„์ „ ์‚ญ์ œ.
    explorer . โ‡’ Git Bash ์—์„œ ํ•ด๋‹น ํƒ์ƒ‰๊ธฐ ์ฐฝ ์—ด๊ธฐ.
  • history โ‡’ ๋‚ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์ž…๋ ฅํ–ˆ๋˜ ๋ช…๋ น์–ด ๋‚ด์—ญ๋“ค
  • touch .test โ‡’ ์ˆจ๊น€ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ. ls ์ž…๋ ฅํ•ด๋„ ์•ˆ ๋‚˜์˜ด.
    ls -al โ†’ ์ˆจ๊น€ ํŒŒ์ผ๊นŒ์ง€ ๋ณด๊ธฐ. al ์€ all ์ด๋ผ๋Š” ๋œป. ํ˜„์žฌ ํด๋” ์ •๋ณด์™€ ์ƒ์œ„ ํด๋”๊นŒ์ง€ ๋ณด์—ฌ์คŒ..
    (./ ์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ../ ์€ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ)
  • ls โ‡’ ls . ์ด ์ƒ๋žต๋œ ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ˜„์žฌ ์œ„์น˜์—์„œ์˜ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ.
    ๋งŒ์•ฝ, ls a โ‡’ ๋”ฐ๋ผ์„œ ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด, a ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ๊ฒƒ์ž„.
  • start . โ†’ ctrl + enter โ†’ ํ˜„์žฌ ์œ„์น˜๊ฐ€ ํƒ์ƒ‰๊ธฐ์—์„œ ์—ด๋ฆผ.
    whoami โ†’ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ๋ ค์คŒ.
    cd ~ โ†’ ๋‚ด ํ™ˆ ํด๋”๋กœ ์ด๋™.
  • echo ~ โ†’ ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ํด๋” ๊ฒฝ๋กœ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.

ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ

  • rm a โ†’ a ํŒŒ์ผ ์‚ญ์ œ.
    rm a b abc โ†’ ์—ฌ๋Ÿฌ ๊ฐœ ํŒŒ์ผ ํ•œ ๋ฒˆ์— ์‚ญ์ œ.
  • rm * โ†’ ์ „์ฒด ์‚ญ์ œ. (์ˆจ๊น€ ํŒŒ์ผ์€ ์‚ญ์ œํ•˜์ง€ ๋ชปํ•œ๋‹ค!!)
    โ†’ ์ˆจ๊น€ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” , ๊ทธ๋ƒฅ rm .a ๋ผ๊ณ  ํด๋”๋ช… ์ „์ฒด ๋‹ค ์ž…๋ ฅํ•ด์ค˜์„œ ์ง€์šด๋‹ค.
  • rm aa* โ†’ aa๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ ๋ชจ๋‘ ์‚ญ์ œ.
  • rm -rf .git โ‡’ .git ํŒŒ์ผ ์‚ญ์ œ.

ํด๋” ์‚ญ์ œํ•˜๊ธฐ

  • rm dir a โ†’ a ํด๋” ์‚ญ์ œ. ์•Œ์•„๋งŒ ๋‘์ž. ๋” ๋งŽ์ด ์“ฐ์ด๋Š” ๋ช…๋ น์–ด ์žˆ๊ธด ํ•จ.
    (๋‹จ, a ์•ˆ์ด ๋น„์›Œ์žˆ์–ด์•ผ ์‚ญ์ œ ๊ฐ€๋Šฅ. ๋”ฐ๋ผ์„œ, a ์•ˆ์— ํด๋”๊ฐ€ ์žˆ๋‹ค๋ฉด ์—ญ์ˆœ์œผ๋กœ ์ง€์›Œ๋‚˜๊ฐ€์•ผ ํ•จ.)
  • ํด๋” ๊ณ„์ธต ์‚ญ์ œํ•˜๋ ค๋ฉด, rmdir a/b/c/d โ†’ rmdir a/b/c โ†’ rmdir a/b โ€ฆ ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•ด์•ผ ํ•จ.
  • rm -rf * (recursive force) ๊ทธ๋ƒฅ ๊ฐ•์ œ๋กœ ๋ฐ€์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ. recursive : ์žฌ๊ท€์ ์œผ๋กœ, ์•ˆ์˜ ์•ˆ์˜ ์•ˆ์˜โ€ฆ
    โ†’ ๋งค์šฐ ์กฐ์‹ฌํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.
    rm -rf a ๋ผ๊ณ  ํ•˜๋ฉด, ํด๋” ๊ตฌ์กฐ๊ฐ€ a/b/c/d ์ด๋ ‡๊ฒŒ ์žˆ์–ด๋„ ํ•œ ๋ฒˆ์— ์ง€์›Œ์ง.

ํด๋” ์ƒ์„ฑ

  • mkdir d c โ‡’ ํด๋” d, c 2 ์ƒ์„ฑ (2๊ฐœ)
    mkdir โ€œd cโ€ โ‡’ ํด๋” โ€œd cโ€ ์ƒ์„ฑ (1๊ฐœ)
  • mkdir .ggg
  • ํด๋” ๊ณ„์ธต์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด, mkdir a/b/c/d ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
    mkdir a โ†’ mkdr a/b โ†’ mkdir a/b/c โ€ฆ ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•ด์•ผ ํ•จ.
  • mkdir -p a/b/c/d โ‡’ a/b/c/d ํ•œ ๋ฒˆ์— ๋งŒ๋“ค์–ด์ค€๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ ๊ณ„์ธต๊ตฌ์กฐ

  • ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ : / root ๋””๋ ‰ํ† ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค.
  • ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ : ~ // cd ~
    โ†’ ๊ทธ๋ž˜์„œ ~/Desktop/work ์ด๋Ÿฐ ์‹์œผ๋กœ ํ‘œํ˜„๋  ๋•Œ, ~์€ ์‚ฌ์šฉ์ž ์ง‘์ด๋ผ๋Š” ๋œป. (/c/Users/ehddks)

Cd ๋ช…๋ น์–ด!

  • cd / โ‡’ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ๋‹ค.
    cd /c โ‡’ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ c ๋กœ ์ด๋™ํ•œ๋‹ค.
    cd /c/Users โ‡’ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ c ์•ˆ Users ๋กœ ์ด๋™ํ•œ๋‹ค.
    cd ~ โ‡’ ์‚ฌ์šฉ์ž ํด๋”(์ง‘) ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ctrl + c โ‡’ ์ด์ƒํ•œ ๊ณณ์— ๋น ์ ธ์„œ ๋ชป ๋‚˜์˜จ๋‹ค. ์ •์ง€, ์ทจ์†Œ๋ผ๋Š” ๋œป.

๋ณต์‚ฌ ์™€ ๋ถ™์—ฌ๋„ฃ๊ธฐ

  • ctrl + Insert โ‡’ ๋ณต์‚ฌ
  • shift + Insert โ‡’ ๋ถ™์—ฌ๋„ฃ๊ธฐ

์ ˆ๋Œ€๊ฒฝ๋กœ์™€ ์ƒ๋Œ€๊ฒฝ๋กœ

  • ๋‹ค์Œ ๋‘ ๋ช…๋ น์–ด๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค.
    cd /c/Users โ‡’ root ๋””๋ ‰ํ† ๋ฆฌ ์ผ๋‹จ ๋“ค์–ด๊ฐ€๊ณ , ๊ทธ ๋‹ค์Œ ๊ทธ ์•ˆ์— ์žˆ๋Š” c, Users ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. (์ ˆ๋Œ€๊ฒฝ๋กœ)
    cd ./Users โ‡’ ํ˜„์žฌ ์œ„์น˜(cํด๋”) ๊ธฐ์ค€์—์„œ, hello ํด๋” ์•ˆ์œผ๋กœ. (์ƒ๋Œ€๊ฒฝ๋กœ)
    cd Users โ‡’ ./ ์ƒ๋žตํ•ด๋„ ๋จ.
  • ์‹ค์Šต : ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉ์ž ๋””๋ ‰ํ† ๋ฆฌ๋กœ โ€˜์ƒ๋Œ€ ๊ฒฝ๋กœโ€™๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋™ํ•ด๋ณด๊ธฐ.
  • ์ž๋™์™„์„ฑ์€ tab ํ‚ค ์‚ฌ์šฉ!
  • whoami ๋กœ ์‚ฌ์šฉ์ž ๊ฒฝ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ!
  • ์‹ค์Šต : a/b/c/d/memo.txt ๋งŒ๋“ค๊ณ  , a ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œํ•ด๋ณด๊ธฐ.

echo

  • echo ์•ˆ๋…•ํ•˜์„ธ์š”
    echo โ€œ์•ˆ๋…•ํ•˜์„ธ์š”โ€ โ†’ ๋‘˜ ๋‹ค ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ.
    echo \โ€์•ˆ๋…•\โ€ํ•˜์„ธ์š” โ†’ โ€œ์•ˆ๋…•โ€ํ•˜์„ธ์š” ์ถœ๋ ฅ.

  • ๋ฆฌ๋‹ค์ด๋ ‰ํŒ…
    ls \ > a.txt โ‡’ > ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, a.txt์— ๊ฒฐ๊ณผ๋ฅผ ๋‹ด๋Š”๋‹ค. ์ด๋ฅผ โ€˜๋ฆฌ๋‹ค์ด๋ ‰ํŒ…โ€™ ์ด๋ผ๊ณ  ํ•จ.
    explorer . ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ๋“ค์–ด๊ฐ€์„œ a.txt ํ™•์ธํ•ด๋ณด์ž.
    - echo โ€œ์•ˆ๋…•โ€ > a.txt โ‡’ ๋ฎ์–ด์“ฐ๊ธฐ
    - echo โ€œ์•ˆ๋…•โ€ >> a.txt โ‡’ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ๊ธฐ์กด ๋‚ด์šฉ์— ์ถ”๊ฐ€.
    - echo -n โ€œ์•ˆ๋…•โ€ >> a.txt โ‡’ \n ์ž…๋ ฅ ์—†์ด ์ถ”๊ฐ€.
    echo โ€œ์•ˆ๋…•โ€ > a.txt โ‡’ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•ˆ๋…•\n ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.
    - echo -en โ€œ์•ˆ๋…•\nํ•˜์„ธ์š”โ€ >> a.txt โ‡’ \n ์ด ์ ์šฉ๋˜๊ฒŒ ํ•˜๋ ค๋ฉด -en ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • cat a.txt โ‡’ ๋ฌธ์„œ ๋‚ด์šฉ ๋ฐ”๋กœ ํ™•์ธํ•˜๊ธฐ.

  • ๐ŸŒป echo ๋งŒ์œผ๋กœ song.txt ๋งŒ๋“ค์–ด๋ณด๊ธฐ(์›ํ•˜๋Š” ๋…ธ๋ž˜ ๊ฐ€์‚ฌ)
    cat song.txt ๋กœ ํ™•์ธ!

  • rm -rf * ๋กœ ํŒŒ์ผ ๋ชจ๋‘ ์‚ญ์ œ
    ls / 1> result.txt โ‡’ 1์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์˜๋ฏธํ•จ.
    abc > result.txt โ‡’ ์ด๊ฒƒ์€ ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•. ๋”ฐ๋ผ์„œ ํ‘œ์ค€์˜ค๋ฅ˜ โ€˜2โ€™๋กœ ๋“ค์–ด๊ฐ.
    abc 1>> result.txt 2>>error.txt โ‡’ ํ‘œ์ค€์ถœ๋ ฅ์€ result๋กœ, ํ‘œ์ค€์—๋Ÿฌ๋Š” error ๋กœ

  • mkdir a b c d e f g โ€ฆ. z
    ll | less โ‡’ ์ ๊ฒŒ , ์กฐ๊ธˆ์”ฉ ๋ณด์—ฌ์ค€๋‹ค.
    โ†’ ll ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ less ํ•œํ…Œ ์ฃผ๊ณ , less๋Š” ์กฐ๊ธˆ์”ฉ ๋ณด์—ฌ์ค€๋‹ค.

Git

  • git update-git-for-windows โ‡’ ๊นƒ ์—…๋ฐ์ดํŠธ ๋ช…๋ น์–ด.

git init ์œผ๋กœ .init ํŒŒ์ผ(๋กœ์ปฌ ์ €์žฅ์†Œ) ๋งŒ๋“ค๊ธฐ.

  1. ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ ์ƒ์„ฑ
    โ†’ ํŒŒ์ผ ๊ฒฝ๋กœ์— cmd ์ž…๋ ฅํ•˜๋ฉด ๋ฐ”๋กœ cmd ์ฐฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  2. ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ ์•ˆ์—์„œ git bash here ํด๋ฆญ
  3. cmd ๋ช…๋ น์–ด๋กœ git init ์ž…๋ ฅ.

git CLI ์‹ค์Šต (add ~ commit)

  • echo ".DS_Store" > .gitignore โ‡’ .DS_Store ๋ฅผ .gitignore ํŒŒ์ผ์— ํ…์ŠคํŠธ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ.
    cat .gitignore
  • .git ์€ โ€˜๋กœ์ปฌ ์ €์žฅ์†Œโ€™๋ผ๊ณ  ํ•œ๋‹ค.
    ๋‚˜๋จธ์ง€ ๋””๋ ‰ํ† ๋ฆฌ ๋ถ€๋ถ„์„ โ€˜์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌโ€™ ๋ผ๊ณ  ํ•œ๋‹ค.
  • working(.init) โ€”- stage โ€”- repository
    stage ๋Š” ์ค‘๊ฐ„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ™์€ ๋Š๋‚Œ.
  • git status โ‡’
    • git status ๋Š” , working ๊ณผ repository ์˜ ์ฐจ์ด์ ์„ ๋ณด์—ฌ์ค€๋‹ค.
    • ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์‚ญ์ œ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ๋ฌถ์–ด์„œ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค!
  • git add โ‡’
    • ์ด๋Š” ๋งˆ์น˜ โ€˜์žฅ๋ฐ”๊ตฌ๋‹ˆโ€™ ๋ผ๋Š” stage ์˜์—ญ์— ๋‹ด๋Š” ๊ฒƒ์ž„.
    • working ์˜์—ญ์— ์žˆ๋Š” ๊ฒƒ์„ stage ์˜์—ญ์œผ๋กœ ๋ณต์‚ฌํ•˜๋Š” ํ–‰์œ„.
    • ๋‹ค์‹œ ๋นผ๋ ค๋ฉด?
  • git rm โ€”cached .gitignore โ‡’
    • git status ๋กœ ํ™•์ธํ•ด๋ณด๋ฉด, stage ์˜์—ญ์—์„œ ๋‹ค์‹œ working ์˜์—ญ์œผ๋กœ ๋Œ์•„๊ฐ„ ๊ฒƒ์„ ํ™•์ธ ๊ฐ€๋Šฅ.
      ์ฆ‰, add๋ฅผ ํ†ตํ•ด staging ์˜์—ญ์— ์˜ฌ๋ฆฐ ๊ฒƒ์„ ๋‹ค์‹œ working ์˜์—ญ(.init , ๋กœ์ปฌ์ €์žฅ์†Œ) ์œผ๋กœ ๋Œ๋ฆฌ๋Š” ๊ฒƒ.
  • git commit -m โ€œfirst commitโ€ โ‡’
    • stage(์žฅ๋ฐ”๊ตฌ๋‹ˆ) ์—์„œ repository ๋กœ !
  • git config [user.name](http://user.name) โ‡’
    • git ์€ commit ์‹œ git ์˜ user.name ๊ณผ user.email ์„ ๋ฌผ์–ด๋ณธ๋‹ค. ๋ณดํ†ต์€ ๊นƒํ—ˆ๋ธŒ ์•„์ด๋”” ์™€ ์ด๋ฉ”์ผ์„ ์‚ฌ์šฉํ•œ๋‹ค.

    • global ์„ ์“ฐ์ง€ ์•Š๊ณ  ์ž…๋ ฅํ•˜๋ฉด, .init ์ด๋ผ๋Š” ๋กœ์ปฌ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•œ๋‹ค.

      git config โ€”global [user.name](http://user.name) โ€œ๊นƒํ—ˆ๋ธŒ ์•„์ด๋””โ€
      git config โ€”global [user.email](http://user.email) โ€œ๊นƒํ—ˆ๋ธŒ ์ด๋ฉ”์ผโ€

      git config โ€”global [user.name](http://user.name) โ‡’ ํ™•์ธํ•˜๊ธฐ.
      git config โ€”global [user.email](http://user.email) โ‡’ ํ™•์ธํ•˜๊ธฐ.

      git config โ€”global โ€”unset-all user.name
      git config โ€”global โ€”unset-all user.email

  • commit ์™„๋ฃŒ๋˜๋ฉด, git status ํ•˜๋ฉด ์ด์ œ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค!
    โ†’ ๋„ˆ๋ฌด ๋‹น์—ฐํ•จ. ์›Œํ‚น์ŠคํŽ˜์ด์Šค์™€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฐจ์ด๊ฐ€ ์—†๋‹ค.
  • git add . โ‡’
    • ๋ชจ๋‘ ๋‹ด๊ธฐ !! . ์˜ ์˜๋ฏธ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ผ๋Š” ๋œป์ด๋‹ค.
      ์ฆ‰, ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ ๋‹ด๊ธฐ.

GIT ์œผ๋กœ ๊ณผ๊ฑฐ์˜ ์†Œ์Šค์ฝ”๋“œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ(์‹œ๊ฐ„์—ฌํ–‰)

  • git checkout -f . โ‡’ ํŒŒ์ผ ์ˆ˜์ • ํ›„, commit ์ „์ด๋ผ๋ฉด, ๋งˆ์ง€๋ง‰ commit ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค!
  • git checkout master โ‡’ ๋‹ค์‹œ ์ตœ์‹  ์ƒํƒœ๋กœ ๋Œ์•„์˜จ๋‹ค!
  • ์‹œ๊ฐ„ ์—ฌํ–‰ ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ!!
    • ๋ฐ˜๋“œ์‹œ git status ํ–ˆ์„ ๋•Œ, ์•„๋ฌด๊ฒƒ๋„ ์—†์„ ๋•Œ ํ•ด์•ผ ํ•จ.
    • ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ์‹œ์ ์˜ log ๋ฅผ ctrl + insert ๋กœ ๋ณต์‚ฌ,
      git check out [๋ณต์‚ฌํ•œ ๋กœ๊ทธ] โ‡’ shift + insert ๋กœ ๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ฐ€๋Šฅ.
      git checkout -f master

Vim (echo ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ๋˜ ๋‹ค๋ฅธ ํŽธ์ง‘๋ฒ•์ด ์žˆ๋‹ค.)

  • vim a.txt โ†’ ํŽธ์ง‘ ๋ชจ๋“œ๋กœ!

    • a : INSERT ๋ชจ๋“œ. ์ด ๋•Œ ๋ฌธ์„œ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • esc : ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ, ๋ฉ”๋‰ด๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ.
    • shift : โ†’ ์˜ต์…˜ ์„ ํƒ ๊ฐ€๋Šฅ
    • :q ๋‚˜๊ฐ€๊ธฐ, :q ! โ‡’ ๋ฌด์กฐ๊ฑด ๋‚˜๊ฐ. ๋ฌป์ง€๋งˆ!
      :wq! โ‡’ ์ €์žฅ ํ›„ ๋‚˜๊ฐ€๊ธฐ ์ผ๋‹จ, ์ €์žฅํ•ด๋ณด๊ณ  ๋ฌด์กฐ๊ฑด ๋‚˜๊ฐ„๋‹ค!
      :w โ‡’ ์ €์žฅํ•˜๊ธฐ
  • a.txt.swp (์Šค์™‘ํŒŒ์ผ) ์ด ๋‚จ์•„์žˆ๋Š” ์ƒํƒœ์—์„œ ๋‹ซ์–ด๋ฒ„๋ฆฌ๋ฉด?

    • D๋กœ ์—ด์–ด๋ณด๊ธฐ.
      โ†’ ์ˆ˜์ • ํ›„, :wq! ๋กœ ๋น ์ ธ๋‚˜๊ฐ€๋ฉด, swp ํŒŒ์ผ ์‚ญ์ œ๋˜๊ณ  ํŒŒ์ผ์€ ์ €์žฅ๋จ.
    • ์•„๋‹ˆ๋ฉด, ์ˆ˜๋™์œผ๋กœ rm -rf a.txt.swp ๋ฐ€์–ด๋ฒ„๋ฆฌ๊ธฐ
  • ์• ๊ตญ๊ฐ€ ์‹ค์Šต โ‡’ song.txt ์— 1์ ˆ ์ €์žฅ.
    cat song.txt ๋กœ ํ™•์ธํ•ด๋ณด์ž.

  • ํŽธํ•˜๊ฒŒ ์‚ญ์ œํ•˜๊ธฐ!

    • dd โ‡’ ํ•ด๋‹น ์ปค์„œ ์œ„์น˜ 1์ค„ ์‚ญ์ œ
    • esc ๋ˆ„๋ฅด๊ณ  ํŽธ์ง‘๋ชจ๋“œ ๋น ์ ธ๋‚˜์™€์„œ d ๊พน ๋ˆ„๋ฅด๊ธฐ โ‡’ ๋ชจ๋‘ ์‚ญ์ œ.
      โ†’ ์ฃผ์˜ํ•  ์ ์€, ๋‹ค์‹œ Insert ๋ชจ๋“œ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ a๋ฅผ 3๋ฒˆ ๋ˆŒ๋Ÿฌ์•ผ ํ•จ.
  • echo โ€œ์•ˆ๋…•ํ•˜์„ธ์š”โ€ > a.txt โ‡’ ํŒŒ์ผ ์•ˆ์—์„œ ์ถœ๋ ฅํ•ด๋ผ

  • echo โ€œ1234โ€ >> a.txt โ‡’ ๋‚ด์šฉ ๋ง๋ถ™์ด๊ธฐ!!

  • echo -n โ€œ567โ€ >> a.txt โ‡’ ๊ฐœํ–‰๋ฌธ์ž ๋นผ๊ณ  ๊ทธ๋ƒฅ ์ด์–ด ๋ถ™์ด๊ธฐ.

    • echo ๋ชจ๋“œ๋กœ ์‚ญ์ œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
profile
Strengthen the core.

0๊ฐœ์˜ ๋Œ“๊ธ€