명령어 | 의미 |
---|---|
ls | 파일 및 디렉터리 리스트 |
ls -s | 파일 및 디렉터리 리스트 (size) |
ls -a | 모든 파일 및 디렉터리 리스트 (all) |
ls -l | 파일 및 디렉터리 리스트 자세히 (long) |
mkdir | 디렉터리 만들기 |
cd | 홈 디렉터리로 이동 |
cd ~ | 홈 디렉터리로 이동 |
cd .. | 부모 디렉터리로 이동 |
pwd | 현재 작업 디렉터리 출력 |
명령어 | 의미 |
---|---|
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 | 파일에 대한 실행 권한 | 디렉터리 내로 탐색을 위해 이동할 수 있는 권한 |
<디렉터리에 대한 r,w,x의 의미는?>
r: 파일 이름 리스트에 접근할 수 있다, 디렉터리를 삭제할 수 있다.
w: 파일 이름 리스트를 변경할 수 있다.
x: cd로 디렉터리에 접근할 수 있다.
파일 혹은 디렉터리의 사용권한을 변경하는 명령어
$ chmod [-R] 사용권한 파일
-R 옵션은 디렉터리 내의 모든 파일, 하위 디렉터리에 대해서도 적용
사용권한: rw- rw- r--
2진수: 110 110 100
8진수: 6 6 4$ chmod 664 cs1.txt
파일이나 디렉터리의 소유자를 변경할 때 사용한다.
$ chown 사용자 파일
$ chown [-R] 사용자 디렉터리
파일의 그룹을 변경할 수 있다.
$ chgrp 그룹 파일
$ chgrp [-R] 그룹 디렉터리
명령어의 표준출력 내용을 모니터에 출력하는 대신에 파일에 저장한다.
$ 명령어 > 파일
명령어의 표준 출력을 모니터 대신에 기존 파일에 추가
$ 명령어 >> 파일
명령어의 표준 입력을 키보드 대신에 파일에서 받는다.
$ 명령어 < 파일
명령어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
프로세스: 실행 중인 프로그램
$ 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' 라는 시그널을 프로세스에게 보낸다.
> 프로세스를 무조건 종료하게 하는 시그널이다.