[리눅스] 리눅스 기본 명령어
파일의 종류
- 일반 파일(ordinary file)
- 데이터를 가지고 있으면서 디스크에 저장된다.
- 디렉터리(directory)
- 디렉터리 자체도 하나의 파일로 여긴다.
- 계층 구조를 이룬다.
- 특수 파일(special file)
- 물리적인 장치에 대한 내부적인 표현
- 키보드(stdin), 모니터(stdout), 프린터 등도 파일처럼 사용한다.
리눅스 디렉터리 구조
홈 디렉터리
- 각 사용자마다 별도의 홈 디렉터리가 있다.
- 사용자가 로그인하면 홈 디렉터리에서 작업을 시작한다.
현재 작업 디렉터리 (current working directory)
- 각 프로세스마다 별도의 현재 작업 디렉터리가 있다.
- 현재 작업 중인 디렉터리
- 로그인을 하면 홈 디렉터리에서부터 작업이 시작된다.
디렉터리 관련 명령어
명령어 | 의미 |
---|---|
ls | 파일 및 디렉터리 리스트 |
ls -s | 파일 및 디렉터리 리스트 (size) |
ls -a | 모든 파일 및 디렉터리 리스트 (all) |
ls -l | 파일 및 디렉터리 리스트 자세히 (long) |
mkdir | 디렉터리 만들기 |
cd | 홈 디렉터리로 이동 |
cd ~ | 홈 디렉터리로 이동 |
cd .. | 부모 디렉터리로 이동 |
pwd | 현재 작업 디렉터리 출력 |
.txt 파일 관련 명령어
명령어 | 의미 |
---|---|
cat (enter+내용입력+^D) | 내용 입력+출력 |
cat 파일 | 파일 내용 출력 |
cat > 파일 | 입력한 내용을 파일에 저장 |
more 파일 | 한 번에 한 페이지씩 출력 |
head 파일 | 파일의 앞부분 출력 |
tail 파일 | 파일의 뒷부분 출력 |
wc 파일 | 줄/단어/문자 수 출력 |
cp 파일1 파일2 | 파일1을 파일 2로 복사 |
mv 파일1 파일2 | 파일1을 파일2로 이름 변경 |
mv 파일 디렉터리 | 파일을 디렉터리 내로 이동 |
rm 파일 | 파일 삭제 |
rm -r 디렉터리 | 디렉터리 내의 모든 파일 및 하위 디렉터리들을 단번에 지운다. |
rmdir 디렉터리+ | 디렉터리 삭제(주의: 디렉터리 내에 아무 것도 없어야 한다) |
grep 키워드 파일 | 파일에서 키워드 찾기 |
실습
파일 속성
$ ls -sl cs1.txt
> 4 -rw-r--r-- 1 ubuntu faculty 2088 4월 16일 13:37 cs1.txt
파일 속성 | 의미 |
---|---|
블록 수 | 파일의 블록 수(=1K 블록을 기준으로 물리적 블록(기본:4K)을 얼마나 사용하고 있나) |
파일 타입 | 일반 파일(-), 디렉터리(d), 링크(l), 파이프(p), 소켓(s), 디바이스(b 혹은 c) 등의 파일 종류를 나타낸다. |
사용권한 | 소유자, 그룹, 기타 사용자의 파일에 대한 읽기/쓰기/실행 권한 |
소유자 및 그룹 | 파일의 소유자 및 소유자가 속한 그룹 |
크기 | 파일을 구성하는 블록 수 |
수정 시간 | 파일을 최후로 생성 혹은 수정한 시간 |
사용 권한
권한 | 파일 | 디렉터리 |
---|---|---|
r | 파일에 대한 읽기 권한 | 디렉터리 내에 있는 파일명을 읽을 수 있는 권한 |
w | 파일에 대한 쓰기 권한 | 디렉터리 내에 있는 파일명을 생성하거나 삭제할 수 있는 권한 |
x | 파일에 대한 실행 권한 | 디렉터리 내로 탐색을 위해 이동할 수 있는 권한 |
- 파일의 사용권한은 소유자(owner), 그룹(group), 기타(others)로 구분하여 관리한다.
<디렉터리에 대한 r,w,x의 의미는?>
r: 파일 이름 리스트에 접근할 수 있다, 디렉터리를 삭제할 수 있다.
w: 파일 이름 리스트를 변경할 수 있다.
x: cd로 디렉터리에 접근할 수 있다.
chmod(change mode)
파일 혹은 디렉터리의 사용권한을 변경하는 명령어
$ chmod [-R] 사용권한 파일
-R 옵션은 디렉터리 내의 모든 파일, 하위 디렉터리에 대해서도 적용
사용권한: rw- rw- r--
2진수: 110 110 100
8진수: 6 6 4$ chmod 664 cs1.txt
chown(change owner)
파일이나 디렉터리의 소유자를 변경할 때 사용한다.
$ chown 사용자 파일
$ chown [-R] 사용자 디렉터리
chgrp(change group)
파일의 그룹을 변경할 수 있다.
$ chgrp 그룹 파일
$ chgrp [-R] 그룹 디렉터리
입출력 재지정 및 파이프
출력 재지정(output redirection)
명령어의 표준출력 내용을 모니터에 출력하는 대신에 파일에 저장한다.
$ 명령어 > 파일
출력 추가
명령어의 표준 출력을 모니터 대신에 기존 파일에 추가
$ 명령어 >> 파일
입력 재지정(input redirection)
명령어의 표준 입력을 키보드 대신에 파일에서 받는다.
$ 명령어 < 파일
파이프
명령어1의 표준출력을 명령어2의 표준입력으로 바로 받는다.
$ 명령어1 | 명령어2
후면 처리
처리 종류 | 설명 | 입력 |
---|---|---|
전면 처리(foreground processing) | 명령어를 입력하면 명령어가 전면에서 실행되며 명령어 실행이 끝날 때까지 쉘이 기다려준다. | 표준입력 가능 |
후면 처리(background processing) | 명령어들을 후면에서 처리하고 전면에서는 다른 작업을 할 수 있으면 동시에 여러 작업을 수행할 수 있다. | $ 명령어 & |
$ (sleep 50; echo done1) &
[1] 8320
> '[n] m' 형태로 n은 job번호, m은 프로세스 번호이다.
$ (sleep 50; echo done2) &
[2] 8325
$ jobs // 백그라운드를 돌고 있는 모든 프로세스를 보여줌
[1] - Running (sleep 50; echo done1) &
[2] + Running (sleep 50; echo done2) &
> 백그라운드 프로세스는 스택처럼 쌓이게 된다.
> +는 스택의 가장 위에 있는 프로세스를 말한다.
> -는 그 아래에 았는 프로세스를 말한다.
$ fg
> 스택의 꼭대기 프로세스, 즉 job번호가 1인 프로세스를 foreground로 실행시킨다.
$ fg %job번호 // background에 있는 프로세스를 foreground로 실행시키는 명령어
> job번호에 해당되는 프로세스를 foreground로 실행시킨다.
후면처리 입출력
표준입력은 x
표준출력은 o
출력은 되도록 파일로 하는 것이 좋다.
$ ls -al >find.txt &
$ cat a.txt | mail chang &
$ wc < inputfile &
명령어 실행 중단
명령어 중단 (후면 + stop)
$ ^z
재실행
$ fg
프로세스(process)
프로세스: 실행 중인 프로그램
- 각 프로세스는 유일한 프로세스 번호 PID를 갖는다.
- ps 명령어를 사용하여 나의 프로세스들을 볼 수 있다.
- ps는 현재 쉘에서 실행 중인 프로그램을 보여준다.
$ ps
> PID TTY TIME CMD
> 8695 pts/0 00:00:00 bash
> 8720 pts/0 00:00:00 ps
TTY: 터미널 번호
프로세스의 자세한 정보를 보여주는 명령어
$ ps aux
> USE PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
$ ps -elf
프로세스를 강제적으로 종료시키는 명령어
$ kill 프로세스번호
$ kill %job번호
어떤 프로세스는 kill 명령을 받아도 안 죽지 않는다.
다음은 기본 kill 시그널로 안 죽는 프로세스를 죽이는 명령이다.
$ kill -9 프로세스번호
> '-9' 라는 시그널을 프로세스에게 보낸다.
> 프로세스를 무조건 종료하게 하는 시그널이다.
Author And Source
이 문제에 관하여([리눅스] 리눅스 기본 명령어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@im-shung/리눅스-리눅스-디렉터리-파일저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)