Ls -al 뭐잇나
내가 어떤 폴더에있나 pwd
Ls- al
Ls -l 파일의 리스트를 자세히 보여준다. 용량이랑
앞에 d 가 붙으면 디렉토리라는 뜻
Mkdir
Touch
부모디렉터 가는방법 .. cd cd /home/ubuntu
이게 상대경로, 절대경로
Rm empty_file.txt
Rm -r hello_linux/
Rm -–help
Rm —man
Mkdir -p dir1/dir2/dir3/dir4
숨김파일은 앞에 점ㅇ ㅣ붙음
Ls -S 용량으로
Cp 원본파일 복사할파일위치
Touch co.txt
Cp cp.txt /users/eunsukkim/dir1/cp.txt
Mv 원본파일 이동할위치
Mv rename.txt rename2.txt
Nano hello.html
Whiteout
Writeout
Sudo Apt-get update
프로그램업데이트 할게 이쓴ㄴ지 최신상태로 유지
Sudo apt-get update;
Sudo apt -cache search htop
설치하고픈 프로그램이 있는지찾는거
Top
Sudo apt-cache search htop
Sudo apt-get
Sudo apt-get install htop
htop
Sudo apt-get upgrade htop
Sudo apt-get remove htop
아웃인서스트릴 데이컬잇머덜
모두 집중해 원쏜의 소리 파트 투
원써나헤 야메하 오 갈래아
원투
쓰리 투더 포 킵온카운트 다운 무
리하지마허리부러질라 구
판에사 날이 시퍼런 작두위를
Brew list
Brew upgrade
Brew install htop-osx
Brew upgrade vim
Wget https://www.cyberciti.biz/faq/category/linux/
Mv download hello.jpeg
-wget -O Paris.jpeg https://unsplash.com/photos/_JJcOx7OoYk/download?ixid=MnwxMjA3fDB8MXxhbGx8Mnx8fHx8fDJ8fDE2ODIxNjg0NTg&force=true
GitHub.com/facebook/react
https://github.com/facebook/react.git
Git clone https://github.com/facebook/react.git
react_src
ls -l> result.txt
Cat result.txt
Rm kilkil.txt 2>error.log
에러정보가 error.log로 출력되게됨
G
Rm kilkil.txt 2>error.log
Rm rename2.txt 1> result.txt 2>error.log
ls -l > result.txt:
출력결과를 파일로 저장.
rm (없는파일).txt 2> error.log:
숫자 '2'는 StdError를 Redirect할 수 있도록 넘겨주는 일종의 연산자이다. (없는 파일을 Redirect하는 경우와 마찬가지)
여태는 '1'인 StdOutput이 생략되어 있었음.
Rm kilkil.txt 2>error.log
Rm rename2.txt 1> result.txt 2>error.log
cat은 사용자가 입력ㅎㄴ걸 스탠다드 인풋으로 갖고있는거
Cat hello.txt
<는 스탠다드 인풋으로
Cat <hello.txt
Head -n1 < linux.txt > one.txt
linux가 리다이렉션 되서 head에 입력이 되고 그걸 원 txt에 저장됨
기본적으로 리눅스계역에서 프로그램은 스탠다드 인풋 입력하는거 스탠다드 아웃푹 출력하는거
스텐다드 에러
Ls -al >> result.txt
리다이렉션한 결과를 추가한다
Ls -al > /dev/null
쓰레기통에 넣는거
Ls;pwd;
내가 입력하면 쉘이 그걸 먹고 커널한테 전달해줌
왜 분리한걸까? 추정하건데 쉘은 해석하는프로그램
Cd haha haha2
디렉토리 바꾸는거
Cp *.log bak
없다면 만들고 있으면 만들지 않고라는 의미도 됨
Echo $0 내가 뭘하고있는지
Ls /bin
Bash zsh 잇는곳 보는거
배쉬라는 스크립트를 통해서 해석해야한다
Nano backup
./backup
Chmod +x backup 실행기능을 추가한다.
Ls -l
Rm -rf bak 지우기 그냥 팍
Nano backup
루트 디렉토리
Cd .. 상위디렉토리
Cd ~ 홈워프
Locate *.log 찾는거
Find. 하위디렉토리에서 찾겟다
Find / 루트에서 찾겟다
Find / -name *.log 찾겟다
Sudo find / -name *.log
Find ~ -name *.log 홈 디렉토리 아래서 찾고싶다
Whereis ls
Ls 프로그램을 실행한거
원래 /bin/ls인데 ls도 된다
Echo $path
패스의 변ㅅ에 담겨있는 데이터들이 에코로 출력
Ps
Ps aux
Ps aux | grep apache
Sudo kill 22142
Sudo top
Sudo htop
컨트롤지트 하면 동시에 할수있는거
Stty -a 단축키
Ctrl + z : 실행 프로그램 백그라운드 보내기
명령어 뒤 &: 백그라운드 실행
ex) ls -alR / > result.txt 2> error.log & :
jobs : 백그라운드 작업 목록
fg: 전환
+: 전환순서1 / -: 전환순서2 / 공백: 전환순서3, 4, …
Jobs
Nano -z hello.html
Fg %2
Kill %3
Kill -9 %3
Ls -r / >result.txt 2> error.log
Ls -alR / > result.txt2>error.log &
다음명령도 동시에 할수 있는거
데몬은 항상켜져있다.
Cd /etc/init.d/
Ps aux | grep apache2
Sudo service apache2 start
Service apache start
sudo /usr/sbin/apachectl start
or
sudo apachectl start
Stop Apache server command:
sudo /usr/sbin/apachectl stop
or
sudo apachectl stop
Restart Apache server command:
sudo /usr/sbin/apachectl restart
or
sudo apachectl restart
Crontab -e
Date > date.log
Cat date.log
Date >> date.log
Crontab -e -z
Crontab -l 우리가 처리한 내용
Tail -f date.log
크론 나가는거 컨트롤씨
Crontabl -e
*1/ * * * * date >> date.log
*1/ * * * * date >> date.log 2>1
2는 표준에러 1은 표준출력
표준에러를 표준출력으로 리다이렉션
Cat date.log
Crontab -l
Job
Alias l=‘ls -al’
Alias ..=‘cd ..’
Nano .bashrc
Echo ‘hi,bach’
Id
Who
Ssh -p 3022 eunsukkim@localhost
Man su
Su - root
Exit
Sudo passwd -u root
Sudo passwd -l root
Cd /root
루트랑 일반사용자는 다르다. 사용하는게
Sudo useradd -m duru
Cd /home
Ls
Su - duru
Sudo passwd duru
Su - duru
Sudo pwd
Sudo adduser hduser sudo
Sudo usermod -a -g sudo hduser
유닉스에서는 퍼미션으로 파일 디렉토리에 어떤일을 할수있게, 할수없게 권한을 지정한다
파일 디렉토리 데해서 읽기 쓰기 실행
Touch perm.txt
Ls -l perm.txt
Echo ‘hi’ > perm.txt
Cat perm.txt
sudo sysadminctl -addUser xxx -password xxxxxxxx interactive
Cat perm.txt
Chmod u-r perm.txt
Longin 해서 kim으로 바꿀수이씅ㅁ!!!!!!!!!!!!!!!!!!!!!!!
Chmod o-r perm.txt
Ls -l perm.txt
Cat perm.txt
Chmod o+r perm.txt
Nano hi-machine.sh
/bin/zsh hi-machine.sh
Chmod u+x hi-machine.sh
./hi-machine.sh
Chmod 111 perm.txt
Chmod 110 perm.txt
Chmod a+r perm.txt
Chmod a+w perm.txt
Sudo mkdir developer
groupadd developer
Nano /etc/group
Sudo usermod -a -G developer egoing
Sudo usermod -a -g developer kk8805
현재디렉토리의 소유자 바꾸는거
Sudo chown root:developer .
Sudo chown Kim . 그룹은 상관핮 ㅣ않겟다
Sudo chmod g+w .
Echo ‘hi,’ > egoing.txt
그룹으로 바꿨으니 쓰는권한
그룹이 아닌넘은 못함
sudo dscl . -create /Users/<user>
sudo dscl . -create /Users/<user> UserShell /bin/bash
sudo dscl . -create /Users/<user> RealName "<realName>"
sudo dscl . -create /Users/<user> UniqueID "<userID>"
sudo dscl . -create /Users/<user> PrimaryGroupID <groupID>
sudo dscl . -create /Users/<user> NFSHomeDirectory /Users/<user>
sudo dscl . -passwd /Users/<user> <passwd>
sudo dscl . -append /Groups/admin GroupMembership <user>
Ping google.com
curl ifconfig.me
$ifconfig | grep inet
$ipconfig getifaddr en0
sudo apachectl start
sudo vim /etc/apache2/httpd.conf
ServerRoot “/usr"
sudo apachectl -k stop
Elinks
Elinks http://118.220.129.171/
brew services start httpd
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
실행하기
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
종료하기
Mv 이름바꾸기, 이동하기
Elinks http://localhost/haha.html
Pwd
sudo vim /etc/apache2/httpd.conf
/Library/WebServer/Documents
cd /var/log/apache2
ls -al
Tail /var/log/apache2/access.log
Tail -f /var/log/apache2/access_log
curl http://localhost
서버에는 ssh가 깔려있고
클라이언트에는 ssh client가 깔려있으여됨
그걸 로 클라이언트 컴에서 rm ls pwd 이런 명령어 조작하면 서버컴에서 그걸 실행해서 클라이언트에 보여줌
Brew install openssh-server
Sudo service ssh start
Sudo ps aux | grep ssh
$ ssh [username]@[hostname]
[user@localhost ~]$ ssh user@myhost
Exit
ssh -p 22 eunsukkim@localhost
ssh는 기본적으로 포트를 22를 쓰는구나 하고 생각
웹서버는 기본적으로 80번 포트를 쓰는구나 생각
웹브라우저도 80번으로 찾아감 웹서버가 80번에서 만나기로 약속했으니까
sudo nano /etc/ssh/sshd_config
Ssh -p 22 eunsukkim@localhost
공유기 안쪽에서만 통용되는 ip를 defaultgateway라고 한다.
curl ifconfig.me
$ifconfig | grep inet
$ipconfig getifaddr en0
Curl http://ipinfo.io/
내부아이피랑 공유기 아이피 다름. 공유기에서 흘러나와서 내 컴까지 가고 내 아이피를 정해줌
118.220.129.171
google.com으로 들어간다고 구글로 들어가는게 아니라
아이피로 들어가는거임
이미 알고있는 dns서버에서 아이피로 접속을 함
어떤 마법으로 dns에서 google.com의 아이피 어드레스가 뭐인지 내 컴에 알려주고
그걸 내가 연결할수 있는거임
Sudo nano /etc/hosts
인터넷에 참여하는 각각의 컴퓨터를 호스트
호스트를 묶은거를 네트워크라고함
전체를 인터넷
호스트들의 아이피들을 적어놓는게 호스트파일
자기컴퓨터에 호스트파일 적어놓고 만듬
어떤아이피는 어떤아이피다
고대의방식
도저히 적을수가 없다. 호스트가 너무 없어서
그래서 그 거대한 이름을 관리하기 위해 dns를 만듬
cat /etc/resolv.conf
dns의 서버 이름이다
dns서버에서 아이피를 알아와서 접속하는거
dns에 egoing.ga서버를
Host gogole.com
Dig +trace egoing.ga
Mkdir src
Mkdir dest
Touch text{1..10}
Resync -a src dest
Rm -rf dest/src
Rsync -a src/dest
Ls -al dest
Src/ 밑에 있는 아이들
Rsync -av src/ dest
Rsync -azP ~/rsnc/src/ k8805@192.168.0.65:~/rsync/dest
Ssh-keygen
Cd .ssh
Ls -al
Cd ~/ .ssh
ssh-copy-id kim@localhost
rsync -avz . kim@localhost:~/haha
공개 비공개키로 자동 로그인을 해놓은거임
그리고 크론을 써서 편하게 쓴다.
Rsa
Encrypt
암호화, 복호화
Decrypt
Key 키를 이용해서 암호화를 하고, 키를 이용해서 복호화를 할 수 있다.
그럼 키 가진사람만이 암호화 할 수 있음
대칭적인 방식
키를 이용해서 암호화하고 복호화하니까 대칭
프라이빗키로 암호화됨. 복호화할때는 퍼블릭키로씀
이걸 비대칭적이라고 함
이거 대표주자가 RSA이다
내꺼는 프라이빗키 퍼블릭키
저기는 퍼블릭키
퍼블릭키를 가지고 있는 사람은 이 컴퓨터에 접속하는걸 허용하겟다
https://opentutorials.org/module/2538/15818
댓글 영역