drwxr-xr-x
d는 디렉토리 폴더 의미
rwxr-xr-x
r은 read로 읽기 권한
w는 write로 쓰기 권한
x는 execute로 실행권한
-는 권한 없음
rwx r-x r-x로 나눌 수 있음
[파일 및 폴더를 소유하고 있는 유저가 가지는 접근 권한][그룹][다른 유저]
소유하고 있는 유저 - rwx - 읽고 쓰고 실행의 권한을 가짐
r-x - 읽고, 실행하는 권한만 가지며 쓰기의 권한은 없음
-r, -f 명령어 옵션
-r은 recursive로 특정 행동을 순환적으로 반복, 폴더 삭제나 복사 등에 사용
-f는 force로 어떤 행위를 강제, 보호되거나 존재하지 않는 파일도 강제로 삭제하므로 주의
-rf와 같이 합친 형태로 사용할 수 있음
cat 대신 사용할 수 있는 명령어
cat은 파일의 전체를 읽어오기 때문에 비효율적, 내용이 짤린다
파일 내용의 일부만 열람할 수 있는 명령어 head, tail, more, less
head :
head[ -n lines | -c bytes][file ...]
head 파일명 : 아무 옵션없이 사용하면 앞에서부터 10행까지만의 내용을 보여준다
head -n 100 : 앞에서부터 100행까지의 내용을 보여준다, -n은 생략가능하며 head -100과 같이 사용해도 된다.
head -c 100 : 100byte만큼의 내용을 보여준다
출력되는 파일의 내용을 파일로 출력하려면
head -100 파일명 > 저장 파일명 으로 사용하면 파일 입출력이 가능하다
head 명령어는 위에서 부터 읽어오기 때문에 파일의 앞부분, 윗부분을 활용할 때 사용하면 좋을 듯하다.
tail: head와 같이 -c -n 옵션은 동일, 해당 행부터 마지막 행까지 내용 출력
tail 파일명 옵션없이 사용할 경우, 디폴트값인 마지막 10개 행을 출력
tail -n 20 파일명 뒤에서 20번쨰 행부터 마지막 행까지 출력
tail +20 파일명 20행부터 마지막 행까지 출력
tail -c 200 파일명 byte기준
tail -f 파일명 오류나 파일 로그를 실시간으로 모니터링 할 경우에 -f 옵션을 사용한다. 마지막 행으로부터 10줄을 출력하며, 종료되지 않은채 표준입력을 읽어들여 출력한다
more : 파일을 위에서부터 읽어내려와, 화면 단위로 끊어서 출력한다. 지나간 내용은 볼 수 없다.
more 파일명 왼쪽 하단에 출력된 내용이 전체의 몇 %인지 표시하며, Enter키는 한줄씩, Space bar는 한 화면씩 출력된다.
more -n 파일명 입력한 값만큼 끊어서 화면에 출력한다
more +n 파일명 n에 입력한 행부터 화면에 출력
less : more와 비슷하게 동작하지만, less는 한 번에 보여지는 만큼만 읽어서 출력, Enter키는 한줄씩 출력, Space bar는 한 화면씩 출력하며, 방향키로 페이지 이동이 가능하다.
cat sample.txt | less 와 같이 파이프(|)를 사용하여 사용하기도 함
-h -help 도움말
버전 관리 시스템의 필요성
버전 관리를 사용하는 이유
Git은 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'
특정 시점에 생성된 백업 복사본을 스냅샷이라고 하며, 스냅샷을 만들어 주는 작업을 commit이라고 한다.
소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다.
Git vs Github
Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 Github로 부터 호스팅되고 있어, 누구든 자유롭게 기여할 수 있다.
Git repository
타 원격 저장소에서 내 원격 저장소로 가지고 오는 작업을 Fork라고 한다
Remote repository에서 내 컴퓨터로 가져오는 과정을 Clone 이라고 한다
소스코드 변경 작업이 완료하면 변경된 내용을 commit을 통해 저장
저장한 것을 다시 Remote repository에 올려주는 작업을 Push라고 한다
Push를 완료하면 Pull request라는 기능을 통해, 내가 제안한 코드 변경 사항에 대한 반영 여부를 요청할 수 있다
반대로 Remote repository에 변경 사항을 Local repository로 가져오는 Pull 작업
작업한 파일을 git 관리 하에 있는 상태로 올려줄 수있고, 이 영역을 staging area라고 한다
staging area에 있는 파일을 staged된 파일, 들어오지 않은 파일은 unstaged file이라고 한다
staging area에 들어온 파일은 commit이 가능하다
git add 명령어를 통해 untracked files(unstaged)을 commit 할 수 있는 상태로 만든다
restore 변경사항을 폐기
Tracked area
Local repository에 commit한 것을 취소 reset
Local repository에 commit 된것을 push 하기위해
git push origin branch, git push origin main, git push pair dev 등 상황에 따라 사용가능
git push origin branch : remote에 orgin의 master 브랜치에 push
git log : commit된 내용 확인
Pull Request : Remote Repository에 push해 놓은 내용을 다른 사람들에게 알리는 것, PR이라고 부름
git init : 디렉토리를 Git Repository로 변환하거나 새로운 Repository를 초기화하는데 사용
git remote add orgitn <Repository 주소>
정리