: command line interface
: UNIX, LINUX, MacOS์์ ์ฌ์ฉ๋๋๋ฐ, Window, Android, IOS์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋๋ emulator๊ฐ ํ์ํ๋ค. ์ง๊ธ์ ๋์ค์ ์ผ๋ก git bash๊ฐ ์ด ์ญํ ์ ๊ฐ๋นํ๊ณ ์๋ค.
: File๊ณผ Directory(ํด๋)๋ฅผ ๋ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ฅผ ์์์ผํ๋ค.
pwd : ํ์ฌ ๋๋ ํ ๋ฆฌ ํ์ธ(print working directory)
cd / : ์ต์์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd ~ : ํ ๋๋ ํ ๋ฆฌ(์ปค๋งจ๋ ์ฐฝ์ ์ผฐ์ ๋์ ๋๋ ํ ๋ฆฌ)๋ก ์ด๋
cd .. : ์์ ๋๋ ํ ๋ฆฌ๋ก (ํ๋ฒ)์ด๋
ls : ํ์ผ ๋ฆฌ์คํธ ํ์ธ
ls --help ํน์ man ls : ls์ ์ฌ์ฉ ๋งค๋ด์ผ์ ํ์ธ
ls -l : (์์ธํ)ํ์ผ ๋ฆฌ์คํธ ํ์ธ // ๋งจ ์์ d๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋ฏธํ๊ณ , -๋ File์์ ์๋ฏธํ๋ค.
touch a.txt : ๋ด์ฉ์ด ์๋ a๋ผ๋ ํ
์คํธ ํ์ผ ์์ฑ
touch .a.txt : ๋ด์ฉ์ด ์๋ a๋ผ๋ (์จ๊ธด) ํ
์คํธ ํ์ผ ์์ฑ
ls -a : (์จ๊นํ์ผ๊น์ง)ํ์ผ ๋ฆฌ์คํธ ํ์ธ
ls -l -a ํน์ ls -la : (์จ๊นํ์ผ๊น์ง)(์์ธํ)ํ์ผ ๋ฆฌ์คํธ ํ์ธ
ls -R : (๋๋ ํ ๋ฆฌ ๋ฐ์ ์๋ ํ์ผ๊น์ง)ํ์ผ ๋ฆฌ์คํธ ํ์ธ
mkdir a : a๋ผ๋ ๋๋ ํ ๋ฆฌ ์์ฑ
cd a ํน์ cd ./a : ํ์ฌ ๋๋ ํ ๋ฆฌ์์ a๋ผ๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd /a : ์ต์์ ๋๋ ํ ๋ฆฌ์์ a๋ผ๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
mv a b : a๋ผ๋ ํ์ผ์ ํ์ฌ ๋๋ ํ ๋ฆฌ๋ก b๋ผ๋ ์ด๋ฆ์ผ๋ก ์ด๋(์ด๋ฆ ๋ฐ๊พธ๊ธฐ)
rm a : a๋ผ๋ ํ์ผ์ ์ง์ด๋ค
rm -r a : a๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ด๋ค.
cat a.txt : a๋ผ๋ ํ
์คํธ ํ์ผ์ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค.
; : ํ ์ค์์ ๋ช
๋ น ๊ตฌ๋ถ์ ์ญํ
&& : ํ ์ค์์ ๋ช
๋ น ๊ตฌ๋ถ์ ์ญํ , ๋จ, ์์ ๋ช
๋ น์ด๋ฅผ ์คํจํ๋ฉด ๋ค์ ๋ช
๋ น์ด๋ ๋ฐ์๋ค์ด์ง ์์.
lsof -i :8080 // 8080ํฌํธ๊ฐ ์ฌ์ฉ๋๊ณ ์๋์ง ํ์ธํ๋ค.
lsof -i :80
lsof -i
lsof
sudo chown ์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ //
sudo chgrp ์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ
ps -ef | grep ๋ช
๋ น์ด //ํ์ฌ ์คํ๋๊ณ ์๋ ํ๋ก์ธ์ค ์ค์ '๋ช
๋ น์ด'์ ์ด๋ฆ์ด ๋ค์ด๊ฐ ์๋ ๊ฒ๋ง ํ์ธํ๋ค.
ps aux | grep ํ๋ก์ธ์ค // ํ์ฌ ์คํ๋๊ณ ์๋ ํ๋ก์ธ์ค ํ์ธ
ls -l // ๋๋ ํ ๋ฆฌ์ ๊ถํ์ ๋ฆฌ์คํธ์
ํ๋ค.
- 1 : ํ์ผ(-), ๋๋ ํ ๋ฆฌ(d)
- 2, 3, 4 : ์์ ์ ๊ถํ
- 5, 6, 7 : ๊ทธ๋ฃน ๊ถํ
- 8, 9, 10 : ๋ค๋ฅธ ์ฌ๋๋ค ๊ถํ
r์ ์ฝ๊ธฐ(read), w๋ ์ฐ๊ธฐ(write), x๋ ์คํ(execution)์ ๊ถํ์ ๋ํ๋ธ๋ค. ๋ํ r, w, x๋ ๊ฐ๊ฐ 4, 2, 1์ ๊ฐ์ ๊ฐ์ง๋ค.
cf) ๋๋ ํ ๋ฆฌ์ ๋ค์ด๊ฐ๋ ค๋ฉด ์คํ ๊ถํ์ด ํ์ํ๋ค.
- chmod
: u (์ฌ์ฉ์), g (๊ทธ๋ฃน), o (๋ค๋ฅธ ์ฌ์ฉ์), a (์ ๋ถ), + (๊ถํ์ถ๊ฐ), - (๊ถํ์ ๊ฑฐ)
chmod u+x a.out // ์์ ์์๊ฒ a.outํ์ผ์ ์คํ๊ถํ์ ๋ถ์ฌํ๋ค.
chmod g+r a.txt // ๊ทธ๋ฃน์ a.txtํ์ผ์ ์ฝ๊ธฐ๊ถํ์ ๋ถ์ฌํ๋ค.
chmod o-w a.txt // ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ a.txtํ์ผ์ ์์ ๊ถํ์ ์ ๊ฑฐํ๋ค.
chmod 740 a.txt // ์์ ์๋ rwx, ๊ทธ๋ฃน์ r, ๋ค๋ฅธ ์ฌ์ฉ์๋ ์๋ฌด๊ถํ์ด ์๋ค.
- chown
sudo chown ubuntu . // ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์ฌ์ฉ์๋ฅผ ubuntu(์ฌ์ฉ์)๋ก ๋ฐ๊พผ๋ค.
- chgrp
sudo chgrp staff . // ํ์ฌ ๋๋ ํ ๋ฆฌ์ ๊ทธ๋ฃน์ staff(๊ทธ๋ฃน)๋ก ๋ฐ๊พผ๋ค.
-
๋ฆฌ๋ ์ค ๋ช ๋ น์ด ๋ชจ์์ง
https://www.howtogeek.com/412055/37-important-linux-commands-you-should-know/
-
๊ถํ ๊ด๋ จ
a # ๋ค์ ์นธ ์ด๋ ํ ์
๋ ฅ๋ชจ๋
o # ๋ค์ ์ค ์ด๋ ํ ์
๋ ฅ๋ชจ๋
I # ๋งจ ์ ์นธ ์ด๋ ํ ์
๋ ฅ๋ชจ๋
A # ๋งจ ๋ง์ง๋ง ์นธ ์ด๋ ํ ์
๋ ฅ๋ชจ๋
cw # ์ปค์์ ์๋ ๋จ์ด ์ง์ฐ๊ณ ์
๋ ฅ๋ชจ๋
$ # ๋ง์ง๋ง ์นธ ์ด๋
^ # ๋งจ ์ ์นธ ์ด๋
V # ์ ํ๋ชจ๋
y # ๋ธ๋ก ๋ณต์ฌ
yy # ํ ์ค ๋ณต์ฌ
์ซ์+yy # ์ซ์ ๋งํผ์ ์ค ๋ณต์ฌ
p # ๋ถ์ฌ๋ฃ๊ธฐ
d # ๋ธ๋ก ์๊ฒ
dd # ํ ์ค ์ญ์
์ซ์+dd # ์ซ์ ๋งํผ์ ์ค ์ญ์
D # ์ปค์ ๋ท ๋ด์ฉ ์ญ์
x # ๋ฌธ์ 1๊ฐ ์ญ์
x+์ซ์ # ์ซ์ ๋งํผ์ ๋ฌธ์ ์ญ์
F # ๋ค์ ํ์ด์ง
B # ์ด์ ํ์ด์ง
J # ๋ฐ์ ์ค ์๋ก ์ฎ๊ธฐ๊ธฐ
= # ๋ธ๋ก ์ ๋ ฌ
=% # ์ปค์ { } ์ ๋ ฌ
* # ์ปค์ ๋ฌธ์์ ๊ฐ์ ๋ฌธ์ ์ฐพ๊ธฐ
n # ๋ฐ์ผ๋ก ์ฐพ๊ธฐ
N # ์๋ก ์ฐพ๊ธฐ
u # ๋๋๋ฆฌ๊ธฐ
R # ๋๋๋ฆฌ๊ธฐ ์ทจ์
:์ซ์ # ์ซ์line์ผ๋ก ์ด๋
:$ # ๋ง์ง๋งline์ผ๋ก ์ด๋
:%s/์ฐพ์๋จ์ด/๋ฐ๊ฟ๋จ์ด # ๋ฌธ์ ํ๊บผ๋ฒ์ ๋ฐ๊พธ๊ธฐ
:r ํ์ผ๋ช
# ํ์ผ ๋ณต๋ถ
:!๋ฆฌ๋
์ค๋ช
๋ น์ด # ์ ์ฌ์ฉ ๊ฐ๋ฅ
h # ์ผ์ชฝ ์ด๋
j # ์๋ ์ด๋
k # ์๋ก ์ด๋
l # ์ค๋ฅธ์ชฝ ์ด๋
- ํ์ผ ์ ์ก
scp -i ~/Documents/dev/key/main.pem sch.png [email protected]:~/
-
์ธ๋ถ ์ฌ์ฉ์ ์ฐ๊ฒฐํด์ฃผ๊ธฐ
# ์๋ก์ด ์ ์ ๋ฅผ ์์ฑํฉ๋๋ค. - $ sudo useradd -s /bin/bash -m -d /home/USERNAME -g root USERNAME # ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํฉ๋๋ค. - $ sudo passwd USERNAME - ํจ์ค์๋ ์ ๋ ฅ # sudoers ํ์ผ ๊ถํ ๋ณ๊ฒฝ - $ sudo chmod u+w /etc/sudoers # sudoers ํ์ผ ์ด๊ณ , username ์ถ๊ฐ - $ sudo vi /etc/sudoers - USERNAME ALL=(ALL:ALL) ALL # sshd_config ํ์ผ์ PasswordAuthentication ์ค์ ์ถ๊ฐ(ํน์ ๋ณ๊ฒฝ) - $ sudo vi /etc/ssh/sshd_config - PasswordAuthentication yes # ssh๋ฅผ ์ฌ์์ํฉ๋๋ค. - $ sudo service ssh restart # ssh [username]@host - $ ssh [email protected] ์ ๊ฐ์ ํ์์ผ๋ก ์ ๋ ฅํฉ๋๋ค. # ์์์ ์ค์ ํ ํจ์ค์๋๋ฅผ ์ ๋ ฅํฉ๋๋ค. # ์๋ฃ!
-
Scale up
: ๊ธํ๊ฒ scale upํด์ผํ๋ค๋ฉด, image๋ง๋ค๊ณ , elastip ip๋ง ๊ธฐ์กด๊บผ ์ฎ๊ฒจ์ ์ฐ๋ฉด๋๋ค.
: ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ๋ง ํ๋ฉด, ์ฒ์ ๋ง๋ค ๋์ IP์ elastic ip๊ฐ ๋ฐ๋๊ฒ ๋๊ณ , ๊ฒฐ๊ตญ ์ ์์ ์๋ํ์ ๋, WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ๋ผ๋ ๊ฒฝ๊ณ ๊ฐ ๋จ๊ฒ; ๋๋ค.
๋คํธ์ํฌ๋ฅผ ์กฐ๊ธ ๋ ๊ณต๋ถํ๊ณ ์ง๊ธ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์ ๋ง๋์ง ์ดํดํ ์ ์๋๋ก ํ์.
ssh-keygen -R ๋์IP
-
VM ์ธ์คํด์ค๋ฅผ ํ์ํ ์คํ์ ๋ง๊ฒ ๋ง๋ญ๋๋ค. ์ธ๋ถ IP ์ฃผ์๋ฅผ ํต ํด๋ก๋๋ค.
-
์์ ์ ๋ก์ปฌ์ ํค๋ฅผ ๋ง๋ญ๋๋ค. (์ถ๊ฐ๋ก ์ ๋ ฅํ๋ผ๊ณ ํ๋ ๋น๋ฐ๋ฒํธ๋ ์ถํ ์๋ฒ ์ ์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ฉ๋๋ค.)
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILE_NAME] -C "GCP์ด๋ฉ์ผ"
-
ํค ์ ๋ณด๋ฅผ ํ์ธํ๊ณ , ๋ณต์ฌ ํด๋ก๋๋ค.
cat ~/.ssh/[KEY_FILE_NAME].pub
-
GCP console์์ VM ์ธ์คํด์ค์ ๋ฉํ ๋ฐ์ดํฐ -> sshํค ๋ก ์ด๋ํฉ๋๋ค. ๋ง๋ค๊ธฐ ํน์ ์์ ํญ์ ๋๋ฌ์ ํด๋น ํค๋ฅผ ๋ถ์ฌ๋ฃ์ต๋๋ค.
-
์ฌ๊ธฐ๊น์ง ํ๋ฉด, ์ผ๋จ iterm(์ธ๋ถ)์์ ssh ์ ์์ ๋ฉ๋๋ค.
-
์์ ์ vim์์ ํ์ง ์๊ณ ์ถ๋ค๋ฉด, vscode๋ฅผ ํต๋๋ค.
-
cmd + shift + p์์ 'ssh'๋ง ์นฉ๋๋ค.
๊ทธ ๋ค์ Connect to Host -> Add New SSH Host
ssh -i ~/.ssh/[KEY_FILE_NAME] id@์ธ๋ถip
/Users/osangjin/.ssh/config ๊ฐ ๋ณด์ด๋ฉด, Enter
-
ํค ํ์ผ์ ๊ถํ์ ์์ ํด ์ค๋๋ค.
cd ~/.ssh chmod 400 [KEY_FILE_NAME] [KEY_FILE_NAME].pub
-
cmd + shift + p ํด์ 'ssh'๋ง ์นฉ๋๋ค.
๋ฑ๋กํ ์ธ๋ถ ip๊ฐ ๋ณด์ด๋ฉด ๋น๋ฐ๋ฒํธ ์ ๋ ฅํด์ ์ ์ ๋
cf)
-
์ ์
ssh -i ~/.ssh/osj-gcp-key [email protected]
(๋ฌผ๋ก , rsa key๋ฅผ GCP์ ๋ฑ๋กํด์ผ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.)
-
ํ์ผ ์ ์ก
scp -i [์ธ์ฆํค] [์ ๋ก๋ํ ํ์ผ] [๊ณ์ ]@[์๊ฒฉip]:[์ ๋ก๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก] ex) scp -i ~/.ssh/osj-gcp-key screenshot.png [email protected]:~/21500404
-
ํ์ผ ๋ค์ด๋ก๋
scp -i ~/.ssh/my-ssh-key username@ip-address:remote-file-path local-file-path ex) scp -i ~/.ssh/osj-gcp-key [email protected]:~/hw1/21500404.tgz ~/Desktop
-
ACG์์ฑ
- ์ค์
-
Server ์์ฑ
- ํฌํธ ํฌ์๋ฉ ์ค์
-
Public IP์์ฑ
: ์ด๋์ ip๋ ssh ๋ง๊ณ , mysql ์ง์ ํต์ ์ด๋ฐ๊ฑฐ๋ฅผ ์ํจ.
-
ssh ์ ์
ssh -p 2222 root@[ip]
๋ช ๋ น๋ชจ๋ --> ์ ๋ ฅ๋ชจ๋ : i
์ ๋ ฅ๋ชจ๋ --> ๋ช ๋ น๋ชจ๋ : Esc
shift + a //
cw //
shift + 4 //
docker exec -it [์ปจํ
์ด๋ ID] /bin/bash
-
Seoul ํ์ผ ์๋์ง ํ์ธ
ls /usr/share/zoneinfo/Asia
-
์๊ฐ ๋ณ๊ฒฝ
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
๋ฐฉํ๋ฒฝ port๋ ์ด์๊ณ ,
listen ํ๊ณ ์๋ค๋ ๊ฒ๋ ํ์ธํ์์๋
์๋ต์ ๋ชปํ๋ ๊ฒฝ์ฐ์๋
sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
==> https://xn--220b31d95hq8o.xn--3e0b707e/
-
์ปจํ ์ด๋ ์ ๋ถ ์ญ์
docker container rm -f $(docker container ls -aq)
-
์ด๋ฏธ์ง ์ ๋ถ ์ญ์
docker image rm -f $(docker image ls -q)