현재 디렉토리 내의 파일과 디렉토리 정보를 출력한다.
옵션
-a : 디렉토리에 있는 모든 파일들(.으로 시작하는 파일 포함)을 출력한다.
-i : 파일의 아이노드(inode, 색인번호) 번호를 출력한다.
-h : 파일 크기를 사람이 보기 쉬운 단위로 출력한다.(k : 킬로바이트, m : 메가바이트)
-l : 파일의 다양한 정보(상세정보)를 함께 출력한다.(소유자, 권한, 크기, 날짜)
-m : 파일을 쉼표로 구분하여 가로로 출력한다.
-s : kb 단위의 파일 크기를 출력한다.
-t : 최근 생성된 시간 순으로 파일을 출력한다.
-F : 파일 종류 별로 파일 끝에 특수 문자 표시.(일반파일 : 표시없음, 실행파일 : *, 디렉토리 : /, 심볼링크 : @, FIFO파일 : |, 소켓파일 : =)
-R : 지정한 디렉토리 아래에 있는 하위 디렉토리와 파일들을 포함하여 출력한다.
-S : 파일 크키가 큰 순서대로 출력한다.
--help : 도움말을 출력한다.
디렉토리를 이동할 때 사용한다.
옵션
cd [엔터], cd ~, cd ~/, cd $HOME : 사용자의 홈 디렉토리로 이동한다.
cd . : 현재 디렉토리로 이동한다.
cd / : 최상위 디렉토리로 이동한다.
cd $변수명 : 변수에 지정된 경로로 이동한다.
cd ~계정명 : 입력한 사용자의 홈디렉토리로 이동한다.
cd - : 이전 경로로 이동한다.
하나 이상의 원본파일을 대상파일이나 디렉토리로 복사한다.
옵션
-i : 파일 복사 시, 동일한 파일명이 있을 경우 사용자에게 덮어 쓸 것인지 물어본다.
-f : 동일한 파일명이 있을 경우에도 강제로 지우고 복사한다.
-p : 원본 파일 소유주, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사한다.
-r : 원본파일명이 경로일 경우, 그 경로에 있는 모든 하위 디렉토리들을 포함하여 모두 복사한다. 일반 파일일 경우는 그냥 복사한다.
-u : 복사 대상이 이미 존재하며 파일의 날짜가 같거나 더 최신이면 복사하지 않는다.
새로운 디렉토리를 생성한다.
읽기 권한이 허용되어야 디렉토리를 생성할 수 있다.
옵션
-m : 디렉토리의 권한을 지정한다.(기본값 : 755) ex) mkdir -m 700 dir -> dir 디렉토리의 권한을 700으로 설정하여 생성한다.
-p : 생성하려는 디렉토리의 상위 디렉토리가 없는 경우 상위 디렉토리까지 같이 만든다.
빈 디렉토리를 제거한다.
읽기 권한이 있어야 디렉토리를 제거할 수 있다.
옵션
-p : 상위 경로도 삭제한다.
파일이나 디렉토리를 삭제할 때 사용한다.
옵션
-i : 파일이나 디렉토리가 삭제될 때마다 확인한다.(y : 삭제, n : 취소)
-f : 사용자에게 확인하지 않고 삭제한다.
-v : 각각의 파일 지우는 정보를 자세하게 모두 보여준다.
-r : 해당 디렉토리의 하위 디렉토리까지 모두 삭제
-r 을 제외하고는 디렉토리를 제외한 파일만 삭제가 가능하다.
파일의 이름이나 위치를 변경할 때 사용한다.
옵션
-f : 이동할 위치에 파일 이름이 겹치면 강제로 이동한다.
-i : 이동할 위치에 파일 이름이 겹치면 사용자에게 물어본다.
파일을 이름, 수정 날짜, 소유주, 허가 같은 기준으로 검색하게 해준다.
옵션
-empty : 비어있는 파일을 찾는다.
-user [사용자명] : 지정한 사용자가 소유하고 있는 파일을 찾는다.
-group [그룹명] : 지정한 그룹이 소유하고 있는 파일을 찾는다.
-nouser : 소유주가 없는 파일을 찾는다(사용자 계정을 삭제했을 경우 사용자가 생성한 파일들을 남기는 경우가 있다).
-nogroup : 소유그룹이 없는 파일을 검색한다.
-name [파일명] : 지정한 패턴을 갖는 파일을 찾는다(파일명 또는 확장명을 기준으로 검색한다).
-newer [파일명] : 파일명보다 최근에 생성된 파일을 찾는다.
-anewer [파일명] : 파일명보다 최근에 읽기(접근)가 수행된 파일을 찾는다.
-cnewer [파일명] : 파일명보다 최근에 상태가 변경(수정)된 파일을 찾는다.
-perm [권한] : 권한과 일치하는 파일을 찾는다.
-type [파일타입] : 파일타입에 맞는 파일을 찾는다. 파일타입은 아래와 같다.
d : 디렉토리(Directory)
c : 캐릭터 특수 파일(Character Device)
f : 일반파일(File)
b : 블록 특수 파일(Block Device)
l : 심볼릭 링크(Link)
p : 파이프(Pipe)
s : 소켓(Socket)
-atime [+n/-n/n] : 최근 n일 이전에 access된 파일을 찾는다(Access Time).
+n : n일 전부터 접근하지 않은 파일
-n : n일 동안 접근한 파일
n : n일 전에 접근한 파일
-ctime [+n/-n/n] : 파일의 퍼미션(권한)을 마지막으로 변경한 파일을 찾는다(Changed Time).
+n : n일 전부터 퍼미션을 변경하지 않은 파일
-n : n일 동안 퍼미션을 변경한 파일
n : n일 전에 퍼미션을 변경한 파일
-mtime [+n/-n/n] : data를 마지막으로 수정한 파일을 찾는다.(Modified Time).
+n : n일 전부터 수정하지 않은 파일
-n : n일 동안 수정한 파일
n : n일 전에 수정한 파일
-size : 저장한 파일 크기로 파일을 찾는다.
-depth : 별도로 지정할 필요가 없으며 서브 디렉토리까지 찾는 옵션이다.
-mount : 다른 파일 시스템의 디렉토리는 검색하지 않는다.
-prune : 서브 디렉토리로 내려가지 않고 현재 디렉토리에서만 검색한다.
-samefile [파일명] : 링크된 파일을 찾는다(하드 링크).
-lname "*이름" : 링크된 파일을 찾는다(심볼릭 링크).
-inum [inode번호] : inode 번호로 파일을 찾는다.
head [-count][파일이름] : 첫 번째 라인부터 number 라인까지 출력한다. 설정하지 않을 경우 10번째 라인까지 출력한다.
tail [-count][파일이름] : 마지막 라인부터 number 라인까지 출력한다. 설정하지 않을 경우 10번째 라인까지 출력한다.
tail -f [파일이름] : 실시간으로 파일에 추가되는 내용을 확인한다. 보통 log파일을 관찰할 때 자주 사용한다.
파일의 내용을 볼 수 있는 명령어이다.
cat [파일명] | more : 엔터키를 입력할 때마다 한 줄씩 내려가면서 확인이 가능하다.
cat [파일명] | less : 화살표 위, 아래키로 페이지 올림, 내림이 가능하다.
more과 less 상태에서 q를 누르면 종료가 된다.
여러 파일을 하나로 묶을 경우 사용되는 명령어이다. 확장자는 .tar
옵션
-c : 파일을 tar로 묶어 생성한다.
-x : 기존의 tar파일의 압축을 해제할 경우 사용한다.
-v : 압축할 때나 압축을 해제할 때, 과정을 화면으로 출력한다.
-f : 파일 이름을 지정한다.
-C : 파일 경로를 지정한다.
-z : gzip으로 압축하거나 해제한다.
실행중인 프로세스를 종료시킬 때 사용한다.
옵션
-i : 프로세스 종료 전 사용자에게 물어본다.
-v : 진행 현황을 확인 할 수 있다.
-w : 지정한 프로세스들이 모두 종료 될 때까지 종료 시도를 한다.
시스템을 종료하는 명령어 중 하나이다.
옵션
-r : 시스템 종료 후 재 부팅한다.
-h : shutdown이 완료된 후 시스템을 종료한다.
-c : 진행 중인 shutdown 명령어를 취소한다.
-k : 경고 메시지만 출력하고 실제로는 shutdown 하지 않는다.
홈 디렉토리로 이동
cd~
새 디렉토리에 디렉토리명을 생성
mkdir [디렉토리명]
[디렉토리명]으로 이동
cd [디렉토리명]
부모 디렉토리로 이동
cd ..
현재 경로를 출력
pwd
디렉토리의 내용을 출력
ls
디렉토리의 폴더 상세 정보까지 출력
ls - l
디렉토리의 숨김파일과 디렉토리까지 출력
ls -a
ls-al
처럼 합쳐서 사용할 수도 있다.
파일이 있는 디렉토리를 내용물과 함께 삭제
rm -r [디렉토리명]
vi 편집기로 [파일명.확장자명] 파일을 작성
vim [파일명.확장자명]
터미널 창의 내용을 지우기
clear
터미널 창을 종료
exit
현재 위치에서 지역 저장소를 생성
git init
깃 환경에서 사용자 이름을 [사용자명]으로 지정
git config --global user.name "[사용자명]"
깃 환경에서 사용자 이메일을 [사용자 이메일명]으로 지정
git config --global user.email "[사용자 이메일명]"
깃의 상태를 확인
git status
[파일명.확장자명]을 스테이지에 올리기
git add [파일명.확장자명]
커밋 메시지 [메시지명]을 붙여서 커밋하기
git commit -m "[메시지명]"
메시지[메시지명]을 붙여서 스테이징과 커밋을 동시에 진행하기
git commit -a -m "[메시지명]"
커밋 내역 확인
git log
git log --pretty=oneline
# 이 명령어는 한줄로 표시해줌
git show [커밋 id]
# 특정 커밋 내역을 확인
최근 버전과 작업폴더의 수정파일 사이 차이를 출력하기
git diff
git diff [이전커밋 id] [이후커밋 id]
지정한 커밋 해시로 이동
git checkout [커밋 해시]
가장 최근 커밋을 취소
git reset HEAD^
# 현재 HEAD의 이전 커밋으로 되돌리기
git reset HEAD~n
# 현재로부터 n번째 이전 커밋으로 되돌리기
지정한 커밋 해시로 이동하고 커밋을 취소
git reset [커밋 해시]
- reset의 3가지 옵션
git reset --soft [커밋 id]
# head만 바뀐다
git reset --mixed [커밋 id]
# staging도 그 때로 바뀐다
git reset --hard [커밋 id]
# working 디렉토리/staging 모두 그 때로 바꾼다
지정한 커밋 해시의 변경이력을 취소
git revert [커밋 해시]
커밋 수정하는 법
파일을 수정한 뒤
git add .
git commit --amend
# 최신 커밋 수정
새로운 브랜치 [브랜치명]을 생성
git branch [브랜치명]
git branch
# 브랜치 조회하기
[브랜치명]으로 체크아웃(이동)
git checkout [브랜치명]
git checkout -b [브랜치명]
# 브랜치만들고 바로 이동
git branch -d 브랜치명
# 브랜치 삭제
커밋 로그에서 한 줄에 한 커밋씩 출력
git log --oneline
수정한 전체 파일을 스페이지에 올린다.
git add .
커밋 로그에 각 브랜치의 커밋을 그래프로 표시
git log --branches --graph
[브랜치명]을 master 브랜치와 병합
git merge [브랜치명]
git merge [브랜치명] --edit
# 병합 후 바로 vi 편집기가 나오면서 커밋 메시지 수정 가능
git merge [브랜치명] --no-edit
# 커밋 메시지 수정없이 바로 병합
merge 취소하기
git merge --abort
원격 저장소에 연결
git remote add origin [github 레포지 주소]
git remote add origin [branch 이름]
# 없으면 생성됨
원격 저장소에 연결됐는지 확인
git remote -v
지역 저장소의 커밋을 맨 처음 원격 저장소에 올리는 경우
git push -u origin master
맨처음 이후 지역 저장소의 커밋을 원격 저장소에 올리는 경우(업로드)
git push
git push origin master
원격 저장소의 커밋을 지역 저장소로 가져옴
git pull
git pull origin master
SSH 키를 생성함
ssh-keygen
원격 저장소 복제하기
첫번째 커밋이 아니라면 풀 먼저하기
git remote remove origin
git clone [원격 저장소 주소]
# 원격 저장소를 [지역저장소명]에 복제하기
원격 저장소의 커밋을 가져오기만 하고 merge하지 않는다
가져온 branch 내용은 origin/[브랜치] 로 저장됨
git fetch
이후엔 diff 로 비교
git diff test origin/test
# 브랜치 이름이 test일 경우 예시
패치로 가져온 정보가 있는 브랜치[FETCH_HEAD]로 이동
```git
git checkout FETCH_HEAD
패치로 가져온 정보가 있는 브랜치[FETCH_HEAD]를 master 브랜치에 병합한다
git merge FETCH_HEAD
[브랜치명]을 만드는 것과 동시에 체크아웃한다
git checkout -b [브랜치명]
원격 저장소에 [브랜치명]의 브랜치의 커밋을 올린다
git push origin [브랜치명]
원격저장소 삭제
git remote remove origin
파일 내용 출력
cat [파일명.확장자명]
디렉토리를 만드는 동시에 지역저장소 생성
cd init [디렉토리명]
현재 커밋을 다른 브랜치에 있는 [커밋메시지] 커밋으로 되돌림
git reset [커밋메시지] [커밋해시]
병합이 끝난 [브랜치명]을 삭제
git branch [브랜치명] -d
작업 트리의 수정 내용 stash에 따로 보관하기
git stash
git stash save
보관한 내용을 목록을 출력
git stash list
보관한 내용을 적용
git stash apply
git stash apply stash@{1}
보관한 내용 중 가장 최근 항목을 삭제
git stash drop
git stash drop stash@{1}
stash를 apply하고 제거(drop) 하기
git stash pop
긴 명령어 짧게 이름 붙여 사용하기
ex) git log --pretty=oneline을
->git history 라는 별명으로 바꾸기.
git config alias.[별명] '원하는 명령어'
git config alias.history 'log --pretty=oneline'
tag 설정 하기
git tag [태그이름][커밋 ID]
git tag Version_2 86a99
# tag 달기
git tag
#tag 조회하기
git show Version_2
https://www.youtube.com/watch?v=jDINUSK7rXE
https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line
https://sdevstudy.tistory.com/29
https://gorokke.tistory.com/22