본문 바로가기
자격증 및 시험/정보처리

[UNIX] 명령어

by 진현개발일기 2023. 4. 19.

■ 시스템, 프로세스 관련 명령어

명령어 설명
fork 새로운 프로세스 생성, 복제 (자식 프로세스 생성, 부모 프로세스를 복제)
* 프로세스 (Process)
: 주기억장치에 저장된 프로그램 (즉, 실행중인 프로그램)

(예시)
우리가 설치하는 게임, 툴 등의 모든 '프로그램'보조기억장치에 저장된다.
만약에 더블클릭하여 실행한다면 주기억장치에서 프로램을 적재하고 실행하여 '프로세스'로 활용한다.
그리고 그 프로세스를 처리하는 CPU는 '프로세서'라고도 불린다.
exec
(execute)
생성된 프로세스를 실행한다.
kill 현재 실행중인 프로세스를 종료/삭제한다.
* 프로세스 관련 기본 명령어 세 가지
fork (생성) -> exec (실행) -> kill (종료)
ps
(Process State)
현재 실행중인 프로세스의 상태 정보를 표시한다.

* 표시 종류 (문제 나왔었음)
(1) 프로세스 이름
(2) 프로세스 ID 번호
(3) 명령어
(4) 수행시간
(5) 소유주
(6) 단말기 번호
* 단말기
: 중앙에 있는 컴퓨터와 통신망으로 연결되어 데이터를 입력하거나 처리 결과를 출력하는 장치
finger 현재 시스템에 등록된 사용자 정보 조회
(Unix는 다수의 사용자가 존재한다. 그 사용자들의 ID 및 정보를 조회하는 기능이다.)
login 사용자가 시스템에 로그인한다.
passwd
(Password)
로그인 비밀번호 설정(변경)
passwd만 입력하면 현재 사용자의 비밀번호를 수정하고
passwd [option] 즉, 인자로 사용자의 ID를 넘길경우 해당 사용자의 비밀번호를 수정한다.
sudo passwd 는 Root 계정의 비밀번호를 수정한다.
who 현재 시스템에 로그인한 사용자들의 정보를 출력한다.

* 표시 종류 (문제 나왔었음)
(1) 단말기 명
(2) 단말기 번호
(3) 로그인 명
(4) 로그인 일시
logout, exit, 
[Ctrl + D]
사용자가 시스템에 로그 아웃을한다 (접속 종료)
ping 네트워크 상의 문제를 진단한다.
dd 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어
groups 현재 사용자가 속한 그룹 정보를 확인하는 명령어

■ 디렉토리 관련 명령어

명령어 설명
mkdir
(Make Dir)
디렉토리 생성
rmdir
(Remove Dir)
디렉토리 제거
cd
(Change DIr)
디렉토리 이동
pwd
(Print Working Dir)
(★) 현재 작업중인 디렉토리 출력
ls
(List)
(★) 파일 및 디렉토리 표시 (Dos의 Dir이라고 생각하면 된다.)

■ 파일 관련 명령어

명령어 설명
vi 파일 편집. 현재 디렉토리에 파일이 존재하지 않는다면 파일 생성.
(Dos의 Copy Con과 동일)
cp 파일 복사 (Copy)
rm (★) 파일 삭제 (Remove)
cat (★) 현재 파일 내용 출력 (Dos의 Type이다)
mv 파일을 이동하거나 이름을 변경할 수도 있다.
find 파일 찾기
cmp 바이트 단위로 파일 비교. 차이가 나는 위치와 해당 행 번호를 표시해준다. (Compare)
comm 행(줄) 단위 비교.
diff 파일 및 디렉토리를 비교하여 차이점을 표시해준다.
(CMP보다 직관적이고 명확하게 비교한다.)
(ex)
testOne.txt 내용 : apple, blue, car
testTwo.txt 내용 : apple, baby, car

===============
(입력1)
 cmp testOne.txt testTwo.txt

(출력1)
testOne.txt testTwo.txt differ: char 4, line 3
=> 3행에 4 번째 문자부터 다르다는 뜻임.
 
===============
(입력2)
comm testOne.txt testTwo.txt

(출력2)
                      apple
blue                                       
baby   
                    car 
chmod (★) 파일의 권한 모드 (읽기, 쓰기, 실행) 설정한다. 파일의 접근을 제한하는 것이다. (Change Mode)
* 파일 권한 (Permission)

10자리로 표시 하는데 1번째 자리는 디렉토리(d) 혹은 파일(-)을, 2~4번째는 소유자[사용자]의 권한, 5~7번째는 그룹 사용자들의 권한, 8~10번째는 다른 사용자의 권한을 의미한다.

 각 자리는 r(읽기, read), w(쓰기, write), x(실행, execute), -(권한 없음)으로 표시함.

(ex) -rwx-w-r-x

파일(-) 소유자는 읽기, 쓰기, 실행이 가능(rwx)하고 그룹은 쓰기(-w-)만 가능하고 기타 사용자는 읽기(r)와 실행(x)은 가능한데 쓰기는 불가능(-)하다.


파일이냐 디렉토리냐에따라 처음 시작은 d 또는 -로 시작

그다음 
(소유자)  (그룹)  (기타사용자)
    rwx        rwx          rwx
를 시작으로 권한이 없는 부분을 - 로 교체해주면 되는 것 같다.


또 다른 예는 drwxr-xr--
디렉토리 소유자는 읽기 쓰기 실행 모두 가능하고 그룹은 읽기와 실행이 가능하지만 기타 사용자는 읽기만 가능하다.


chown 소유자[사용자] 변경 (Change Owner)
tar 파일 압축 및 해제
[tar의 옵션]

(1) v : 압축 또는 압축 해제 중인 작업 파일들의 정보 표시
(2) x : 압축 파일의 압축을 해제한다.
(3) r : 기존 압축 파일에 새로운 파일을 추가한다.
(4) t : 압축 파일 내의 파일 목록을 조회한다.
wc '지정한' 파일의 내용의 문자 수, 단어 수, 라인 수를 표시해준다. (Word Count)
pipe 앞의 출력 결과가 뒤에 실행하는 명령어의 입력
lp 프린터 인쇄 명령어

 

■ chmod의 두 가지 모드

모드 설명
8진 모드
(8진수 표현)
(문제)

Unix 'chmod' 명령에서 'TESTFile' 파일을 사용자에게는 읽기/쓰기/실행, 그룹에게는 읽기/실행, 기타에게는 실행 권한을 부여하는 명령어를 한 줄로 쓰시오. (8진법 숫자, 8진 모드) 

8진법 숫자 즉 2진수를 8진법을 변환해야한다.

소유자 : RWX (111) => 7
그룹 : R-X (101) => 5
기타 : --X (001) => 1

(답)

chmod 751 TESTFile
기호모드
(기호 표현)
* 사용되는 문자 종류
1. u(소유자[사용자], User)
2. g(그룹 사용자, Group)
3. o(기타 사용자, Others)
4. a(모든 사용자, All)
5. +(허가)
6. -(cnlth)
7. r(읽기, Read)
8. w(쓰기, Write)
9. X(실행, Execute)

(ex)
u=rwx : 소유자에게 읽기, 쓰기, 실행 권한을 허가한다.
o+rx : 기타 사용자에게 읽기, 실행 권한을 허가한다.
go-w : 그룹 및 기타사용자는 쓰기 권한을 취소한다.


(문제)
UNIX에서 TestFile이라는 파일의 접근 허용 상태가 -rwxrrwxrwx일 때, 소유자만 파일을 수정할 수 있또록 하는 명령어로 옳은 것
① chmod u-w TestFile
② chmod u+w TestFile
③ chmod go-w TestFile
④ chmod o+W TestFile

(답)
③ chmod go-w TestFile

팔진모드로는  111(7) 101(5) 101(5) 이기 때문에
chmod 755 TestFile이 답이다.