아요 개발 일기

Linux 명령어 모음 본문

GitHub

Linux 명령어 모음

소진이 2023. 1. 27. 18:33

안녕하세요!

GitHub을 활용할 때 주로 terminal을 사용하는데, 그때 Linux 명령어를 알아두면 정말 편리할 것 같더라구요!

어느정도 알고 있긴 하지만... 잘 안 쓰는 것들은 자꾸 까먹어서 오늘 정리해보았습니다 ㅎㅎ


ls (List segments)

: 현재 위치의 파일 목록 조회

 

  • ls -l : 파일의 상세정보
  • ls -a : 숨김 파일 표시
  • ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시
  • ls -rt : 파일들을 생성시간순(제일 오래된 것부터)으로 표시
  • ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시
    ('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등등,,,)

 

cd (Change directory)

:  디렉터리 이동

 

  • cd [디렉터리 경로] : 이동하려는 디렉터리로 이동 (경로 입력 시 '[', ']'부분은 빼고 입력!)
  • cd ~ : 홈 디렉터리로 이동
  • cd / : 최상위 디렉터리로 이동
  • cd . : 현재 디렉터리 
  • cd .. : 상위 디렉터리로 이동
  • cd - : 이전 경로로 이동

 

pwd (print working directory)

: 현재 작업중인 디렉토리 정보 출력

 

touch

: 0바이트 파일 생성, 파일의 날짜와 시간을 수정

 

  • touch filename : filename의 파일을 생성
  • touch -c filename : filename의 시간을 현재시간으로 갱신
  • touch -t 202110291608 filename : filename의 시간을 날짜 정보(YYYYMMDDhhmm)로 갱신
    (20211029160 => 2021.10.29.16:08)
  • touch -r oldfile newfile  : newfile의 날짜 정보를 oldfile의 날짜 정보와 동일하게 변경
 

mkdir (Make dirctory)

: 디렉터리 생성

 

  • mkdir dirname : dirname이라는 디렉터리 생성
  • mkdir dir1 dir2: 한 번에 여러 개의 디렉터리 생성
  • mkdir -p dirname/sub_dirname : dirname이라는 디렉터리 생성, sub_dirname이라는 하위 디렉터리도 생성
  • mkdir -m 700 dirname : 특정 퍼미션(권한)을 갖는 디렉터리 생성

 

<파일의 퍼미션>

8진수 2진수 권한 의미
0 000 --- 아무 권한 없음
1 001 --x 실행 권한만 있음
2 010 -w- 쓰기 권한만 있음
3 011 -wx 쓰기,실행 권한 있음
4 100 r-- 읽기 권한만 있음
5 101 r-x 쓰기,실행 권한 있음
6 110 rw- 읽기,쓰기 권한 있음
7 111 rwx 모든 권한 있음

 

cp (Copy)

: 파일 복사

 

  • cp file1 file2 : file1을 file2라는 이름으로 복사
  • cp -f file1 file2 : 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)
  • cp -r dir1 dir2 : 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사

 

mv (Move)

: 파일 이동

 

  • mv file1 file2 : file1 파일을 file2 파일로 변경
  • mv file1 /dir : file1 파일을 dir 디렉터리로 이동
  • mv file1 file2 /dir : 여러 개의 파일을 dir 디렉터리로 이동
  • mv /dir1 /dir2 : dir1 디렉터리를 dir2 디렉터리로 이름 변경

 

rm (Remove)

: 파일 삭제

 

  • rm file1 : file1을 삭제
  • rm -f file1 : file1을 강제 삭제
  • rm -r dir : dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)

 

cat (Catenate)

: 파일의 내용을 화면에 출력, 리다이렉션 기호('>')를 사용하여 새로운 파일 생성

 

  • cat file1 : file1의 내용을 출력
  • cat file1 file2 : file1과 file2의 내용을 출력
  • cat file1 file2 | more : file1과 file2의 내용을 페이지별로 출력
  • cat file1 file2 | head : file1과 file2의 내용을 처음부터 10번째 줄까지만 출력
  • cat file1 file2 | tail : file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력

 


redirection ('>', '>>')

: 화면의 출력 결과를 파일로 저장

'>' 기호 : 기존에 있는 파일 내용을 지우고 저장
'>>' 기호 : 기존 파일 내용 뒤에 덧붙여서 저장
'<' 기호 : 파일의 데이터를 명령에 입력

 

  • cat file1 firle2 > file3 : file1, file2의 명령 결과를 합쳐서 file3라는 파일에 저장
  • car file4 >> file3 : file3에 file4의 내용 추가
  • cat < file1 : file1의 결과 출력
  • cat < file1 > file2 : file1의 출력 결과를 file2에 저장

 


find

특정 파일이나 디렉터리를 검색한다

$ find [검색경로] -name [파일명]

find 명령어는 여러가지 옵션이 많은데, 간단하게 살펴보겠습니다.

 

타입으로 찾기 (-type)

# 현재 디렉토리에서 모든 디렉토리 찾기
find . -type d

# 현재 디렉토리에서 test가 들어가는 디렉토리 찾기
find . -name "*test*" -type d

# 현재 디렉토리에서 모든 파일 찾기
find . -type f

 

type 을 사용해서 특정 파일 타입만 따로 추출

  • d : 디렉터리
  • f : 일반적인 파일
  • l : 심볼릭 링크

 

파일 크기로 찾기 (-empty, -size)

# 현재 디렉토리에서 빈 디렉토리이거나 크기가 0인 파일 검색
find . -empty

# 현재 디렉토리에서 test가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제
find . -name "*test*" -empty -delete

# 현재 디렉토리에서 1024byte인 파일 검색
find . -size 1024c

# 현재 디렉토리에서 1024byte보다 큰 파일 검색
find . -size +1024c

# 현재 디렉토리에서 1024byte보다 작은 파일 검색
find . -size -1024c

# 현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색
find . -size +1k -size -10k

empty를 사용하여 빈 디렉터리의 크기가 0인 파일을 찾을 수도 있고 size를 사용하여 파일의 크기로 대상을 찾을수도 있습니다.

  • b : 블록단위
  • c : byte
  • k : kbyte
  • w : 2byte 워드

 

검색된 파일에서 추가 명령 실행하기 (-exec)

# 현재 디렉토리에 "test"가 들어가는 파일을 찾아서 상세정보 출력
find . -name "*test*" -exec ls -l {} \;

# 현재 디렉토리에 있는 파일에서 "test"가 들어가는 내용 찾기 
find . -type f -exec grep "test" {} \;

# 현재 디렉토리에 ".txt" 확장자를 찾아서 모두 삭제
find . -name "*.txt" -exec rm {} \;

 


 

간단 요약

ls - 현재 위치의 파일 목록 조회

cd - 디렉터리 이동

pwd - 현재 작업중인 디렉터리 정보 출력

touch - 0바이트 파일 생성, 파일의 날짜와 시간을 수정

mkdir - 디렉터리 생성

cp - 파일 복사

mv - 파일 이동

rm - 파일 삭제

cat - 파일의 내용을 화면에 출력, 리다이렉션 기호('>')를 사용하여 새로운 파일 생성

find - 특정 파일이나 디렉터리 검색