아요 개발 일기
Linux 명령어 모음 본문
안녕하세요!
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 - 특정 파일이나 디렉터리 검색
'GitHub' 카테고리의 다른 글
[GitHub] 특정 branch만clone하는 방법 (0) | 2023.01.27 |
---|---|
[GitHub] Git commit 메세지 변경하기 (0) | 2023.01.27 |
[GitHub] Xcode에서 branch 가져오기 (0) | 2023.01.27 |
[GitHub_Error] token 인증 로그인 - remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. (0) | 2023.01.27 |
[GitHub] Git 기본 명령어 (0) | 2023.01.27 |