리눅스 명령어

Jongwon·2021년 11월 30일
0

Linux Programming

목록 보기
7/25

리눅스 명령어

포어그라운드와 백그라운드 명령어

포어그라운드는 단 한개로, 현재의 터미널 입출력 권한을 가짐.
백그라운드는 여러개 존재할 수 있고, 입력은 포어그라운드한테만 간다.

참고
리눅스 명령어는 ; 로 여러 명령어를 실행시킬 수 있다.

ls : 디렉토리 내용 출력

-1 : 파일이나 디렉토리 한 줄씩 출력
-a : 숨겨진 파일과 디렉토리도 출력
-b : 안보이는 글자(ungraphic chars)에 '\'를 넣어줌
-c : -t나 -l 출력 시 ctime 변경시간을 출력
-C : 복수 개의 칼럼으로 출력(기본 ls와 동일)
-d : 디렉토리 정보만 표시(-l과 함께 사용)
-f : sort를 하지 않고 출력, -l, -t, -s, -r옵션은 무시되고, -a옵션은 자동실행
-F : 파일명 뒤에 파일 종류를 표시(* : 실행파일, / : 디렉토리, = : 소켓파일, | : FIFO, @ : 심볼릭링크)
-g : 파일 소유자 제외한 -l 옵션
-h : 파일의 크기를 k, m, g단위로 표현해줌
-H : 1024단위로 -h 실행
-i : inode 번호 표시
-l : 권한/링크의 수/소유자/그룹/크기/마지막 갱신시간 출력
-L : Symbolic Link 파일이 참조하는 파일에 대한 정보 출력
-m : 파일 사이를 콤마(,)로 구분
-n : -l과 비슷하지만 소유자와 그룹 id 번호가 출력
-o : -l과 비슷하지만 그룹 항목이 제외됨
-p : 디렉토리 파일 뒤에 /를 붙여줌
-q : 비텍스트 파일을 ?로 출력
-r : 파일이나 디렉토리 정렬을 역순으로 함
-R : 서브디렉토리까지 재귀적으로 호출
-s : 512바이트 블록단위로 파일 앞에 크기도 같이 출력
-t : 최근 갱신시간 우선으로 출력
-u : 최근 access time 순으로 출력
-x : -C와 같지만 가로로 채움

ls는 와일드카드 사용 가능

* : 영 또는 연속적인 모든 문자  |  ? : 하나의 문자  |  [] : 문자 영역  |  {} : 여러 패턴

cd : 쉘 프로세스의 작업 디렉토리 변경

pwd : 현재 작업 디렉토리(current working directory) 출력

cat : STDIN으로 입력을 받아 STDOUT으로 출력

쉘이 처음 실행시 stdin, stdout, stderr를 dev/tty에서 open하고 main함수 실행

mkdir dir1 [dir2] ... : 새로운 디렉토리 생성

디렉토리명만 주면 현재 작업 디렉토리에 생성

rmdir dir : 디렉토리 삭제

rm : 파일 삭제

-r : 하위 디렉토리가 존재해도 삭제
-f : 강제로 명령 실행
-d : 빈 디렉토리만 삭제
-i : 각 파일을 지울때마다 prompt로 물어봄
-v : 파일 지우는 정보 자세하게 알려줌

find path [검색option][동작option]: 특정 조건 가지는 파일 검색

  • 검색 옵션
    -name : 이름 검색
    -type : 파일 종류(regular, directory, link)
    -user : 특정 소유자의 파일
    -size [+,-]n: 파일크기, +면 n보다 큰, -면 n보다 작은, 없으면 크기 n의 파일 검색
    -newer : 지정한 파일보다 이후에 생성된 파일
    -empty : 빈 파일
  • 동작 옵션
    -exec [명령어] {}: 검색된 파일들에 대해 명령어 실행
    -print : 찾아낸 파일의 전체 경로 표시
    -ok : -exec과 동일하나 수행 전 수행 여부를 물어봄

touch : 파일 수정시간을 현재로 바꿈, 없는 파일명은 빈 파일 새로 생성

source파일들이 실행파일보다 수정 시간이 늦다면 다시 빌드하는 것처럼 시간은 개발 tool의 동작에 영향

cp [option] file [file2 or dir] : file2나 dir로 파일 복사

-a : 원본 파일의 속성을 그대로 가져오고, 링크파일 복사라면 링크파일 자체를 복사한다.(-dR명령과 동일)
-b : 이미 존재하는 파일의 경우 [file2]~의 백업파일을 만들어 백업본 만든다.
-d : 링크 파일을 복사할 경우 링크파일 자체를 복사한다.
-f : 강제로 복사한다.
-i : 파일이 존재하면 어떻게 처리할지 묻는다.
-l : 하드링크 형식으로 복사한다.
-p : 원본 파일의 소유주, 그룹, 권한, 시간정보가 보존되어 복사
-P : -d와 동일하다.
-r : 경로 안의 하위 디렉토리까지 모두 복사
-u : 복사할 파일이 더 최신일때만 복사
-x : 원본과 대상 파일의 파일 시스템이 다르면 복사하지 않는다.

mv [option] oldname newname : 파일 이름 변경

mv [option] name dir : 파일을 dir로 이동

-b : 원본파일 덮어쓸 때 백업본 만든다.
-f : 프롬프트 실행 없이 바로 덮어쓴다.
-v : -f와 반대로 파일 옮기는 과정을 자세히 보여준다.
-i : 파일이 존재하면 어떻게 처리할지 묻는다.
-u : 복사할 파일이 더 최신일때만 복사
-S : -b에서 꼬리문자를 ~가 아닌 다른 문자로 할 때 지정

chmod [mode] file/dir : 파일의 접근권한 변경

8진수 숫자로 지정하거나, [u,g,o,a]로 사용자 지정하여 권한 변경 가능
+, -, =로 권한 추가 및 제거
만약 mode를 4자리 수로 한다면 맨앞에 2(setgid), 4(setuid) 설정 가능

setuid, setgid : 파일을 실행할 때, 파일의 소유자 권한으로 실행

umask : 파일 생성 시 부여하지 않을 권한 설정

chown, chgrp : 파일소유자, 그룹소유자 변경

ln [option] filename linkname : 링크파일 생성

-s : symbolic link 파일 생성
-b : 원본파일 덮어쓸 때 백업본 만든다.
-f : 파일 존재해도 프롬프트로 묻지않는다.
-l : 대상 파일이 있다면 어떻게 할지 물어본다.
-n : 심볼릭 링크 자체를 link할 때 사용
-v : 링크파일 생성과정을 자세히 보여준다.
하드링크는 inode번호가 원본파일과 같다.

more : 텍스트 파일을 화면 단위로 출력

b : 이전 페이지
d : 반 페이지 스크롤
f : 다음 페이지
q : 종료
/pattern : 패턴 검색
= : 현재 라인번호 출력
spacebar : 다음 페이지
enter : 라인스크롤

less : more와 동일하게 동작하고, 옵션만 다름

-? : 쓸 수 있는 하위 명령어 보여줌
-c : 화면 다시 갱신
-e : 두번째로 파일의 끝에 도달하면 종료
-E : 파일의 끝에 도달하면 자동 종료
-i : 대소문자를 구분하여 검색

cmp file1 file2 : file1과 file2를 비교

-l : [다른부분 바이트 번호][8진수로 내용] [8진수 내용] 형식으로 출력
-s : 아무런 결과물을 반환하지 않고, echo로 0이면 동일, 1이면 다름, 2면 비교실패

diff file1 file2 : file1과 file2를 줄 단위로 비교

-b : 중복된 띄어쓰기나 탭은 하나로 간주

grep : 파일 안에서 특정한 패턴을 찾아 STDOUT으로 출력

head, tail : 파일의 앞/뒷부분(기본10줄)을 STDOUT으로 출력

ps, pstree : 현재 실행중인 프로세스들 출력, 트리형태로 출력

jobs : 실행중인 작업 출력

w, who : 로그인한 사용자 출력

bg, fg : 백그라운드/포어그라운드로 실행

kill : 프로세스 죽이기

xterm : x-window 터미널 프로그램 실행

profile
Backend Engineer

0개의 댓글