리그캣의 개발놀이터

네트워크 - 유닉스 명령어 본문

프로그래밍 기본/네트워크 프로그래밍

네트워크 - 유닉스 명령어

리그캣 2018. 1. 25. 17:07

exit

터미널 종료 명령어.

pwd

print working directory  /가 디렉토리를 말함.

지금있는 디렉토리를 모르거나 다른 디렉토리에 대한 정보를 얻고자 한다면 "pwd"는 정확한 패스네임(pathname)을 알려준다.

사용자가 login 하자마자 "pwd"를 명령을 실행하면 시스템 관리자가 부여한 사용자의 작업디렉토리인 홈디렉토리(HOME DIRECTORY)를 나타내 준다.

예] $ pwd

/users/guest ☞ 현재디렉토리는 루트밑에 users $ 디렉토리밑에 guest 디렉토리임

list(ls:list)

디렉토리 내용 조회 ,명령형식 : ls [옵션] [화일명..] 현재 디렉토리나 특정 디렉토리에 포함되어 있는 파일이나 하위 디렉토리를 조회한다.  OPTION없이 "ls" 만 실행 시키면 화일및 디렉토리 이름만 보여준다.

[OPTION] -l "long form"으로 표시된다.

-t 수정한 시간별로 SORT해서 표시된다.

-a 모든 화일과 하위디렉토리가 표시된다.

-s 블럭크기가 표시된다.

-d 디렉토리의 상태를 알수가 있다. 그 디렉토리 밑에 있는 화일에 관한 정보는 표시되지 않는다.

-r "-t"와 같으나 SORT가 역으로 된다.

-u 최후에 수정한 시간이 아니고 최후에 ACCESS한 시간을 SORT하여 표시된다.

-f 각 인수를 디렉토리로 해석하고 화면에 나타내준다.

(이 옵션은 -l, -t, -s, -r을 무효로 하고, -a를 유효로 한다)

-g 소유자 ID 대신에, 그룹 ID를 출력한다.

예] $ ls -al ¿ ☞ 현재디렉토리의 모든화일및 하위 디렉토리를 long form으로 출력

디렉토리 이동 (cd : change directory)

예] $ ls -al ¿ ☞ 현재디렉토리의 모든화일및 하위 디렉토리를 long form으로 출력

다. 디렉토리 이동 (cd : change directory)

명령형식 : cd 디렉토리명

이 명령어에는 옵션(OPTION)이 없지만, 디렉토리 대신 몇개의 기호(Symbol) 를 사용 할 수 있다.

/ : "cd" 다음에 한칸 띄고 이 기호가 있으면 시스템루트디렉토리를 의미

. : 현재 디렉토리를 의미

.. : 현재 디렉토리 한 단계위의 디렉토리를 의미

예] $ pwd ¿ ☞ 현재 디렉토리를 조회하면 /usr/dick "/usr/dick" 임

$ ls ¿ ☞ 현재 디렉토리에 있는 화일및 A 하위디렉토리 조회

$ cd A ¿ ☞ 하위디렉토리인 "A" 로 이동

$ pwd ¿ ☞ 현재 디렉토리를 조회하면 /usr/dick/A "/usr/dick/A" 임

$ cd ../.. ¿ ☞ 현재디렉토리에서 상위디렉토리 "/usr/dick"으로 이동한 후 상위 디렉토리인 "/usr"로 이동

$ pwd ¿ ☞ 현재 디렉토리를 조회하면 /usr "/usr" 임

$ cd / ¿ ☞ 시스템루트디렉토리로 직접 이동

$ pwd ¿ ☞ 현재 디렉토리를 조회하면 / 시스템루트디렉토리인 "/" 임

디렉토리 작성(mkdir : make directory)과 삭제(rmdir : remove directory)

명령형식 : mkdir 디렉토리명 [디렉토리명...]

명령형식 : rmdir 디렉토리명 [디렉토리명...]

새로운 디렉토리를 만들거나 지울때에는 해당 디렉토리로 이동 한 후 이 명령어를 실행 한다.

이 명령어에는 옵션(OPTION)은 없고, 1개 또는 여러개의 디렉토리를 만들 거나 삭제 할 수 있다. 단, 삭제는 접근권한이 허가된 사용자만이 삭제 할 수 있다.

예] $ pwd ¿ ☞ 현재 디렉토리를 조회하면 /usr/dick "/usr/dick" 임

$ ls ¿ ☞ "/usr/dick"에 화일및 하위디렉 A 토리 조회

$ mkdir b c ¿ ☞ "/usr/dick"에 "b","c"라는 하위 디렉토리 작성

$ ls ¿ ☞ "/usr/dick"에 있는 화일및 디렉토리 조회해보면 "b","c" 디렉토리가 추가 됨

$ rmdir A ¿ ☞ "/usr/dick"에 있는 "A"디렉토리 삭제, 단 "A" 는 빈 디렉토리이어야 함

$ ls ¿ ☞ "/usr/dick"에 있는 화일및 디렉토리 조회해보면 "A" 디렉토리가 삭제 됨

이 명령의 실행이 정상 완료된 때에는 프롬프트($)가 나오지만, 명령이 이루어 지지 않았을 때에는 다음과 같은 진단메시지가 먼저 나온다.

◎ 해당하는 화일이 없을 경우

" rmdir : 디렉토리명 : Directory does not exist "

◎ 허가된 디렉토리가 아닌 경우

" rmdir : 디렉토리명 : Search or write permission needed "

◎ 디렉토리안에 화일이 있을 경우

" rmdir : 디렉토리명 : Directory not empty "

화일 삭제 (rm : remove)

명령형식 : rmdir [옵션] 파일명 [화일명...]

하나 이상의 화일을 디렉토리 안에서 삭제하는 명령어로 해당 화일에 대해 허가된 사용자만이 삭제 할 수 있다.

화일 전체를 지우려면 화일명 대신 "*"를 입력하면 된다.

[OPTION] -f 화일 권한(Permission)에 "Write"가 지정 안되어 있을때 삭제 할 것이냐는 응답메시지를 출력시키는데 "-f" 옵션은 이것을 무시하고 삭제시킨다.

-r 모든 화일과 하위디렉토리를 삭제한다.

-i 각 화일을 삭제할 때 마다 응답메시지를 출력한다.

이때 "y"는 삭제, [ENTER]는 삭제취소이다.

예] $ ls ¿ ☞ 현재 디렉토리 내의 내용을 조회하여보니 "A" 디렉토리, "abc",

"pi.cbl"화일이 있음

$ rm -r A ¿ ☞ 현재 디렉토리내에 있는 "A"

디렉토리내의 파일과 하위 디렉토리 전부를 삭제, 디렉토리명까지 삭제됨

실행 결과 이상 종료 진단메시지는 다음과 같다.

◎ 해당하는 화일이 없을 경우

" rm : 화일명 : File does not exist "

◎ 허가된 화일이 아닌 경우

" rm : 화일명 not removed."

" Permission denied."

화일의 연결 (cat : Concatenation)

명령형식 : cat [-u] 파일명 [화일명...]

이 명령어에 의해 2개 이상의 화일을 연결하거나, 새로운 일반 화일을 생성하거나, 화일의 내용을 화면으로 출력 시킬 수 있다.

"-u" OPTION 한개만 있으며, 이 옵션을 지정하면 시스템의 임시기억장소에 화일내용을 기억시켜놓는 버퍼링(Buffering)을 하지 않는다.

예] $ cat > ab ¿

this is a test file. ¿

abcdefg ¿

☞ "ab"라는 파일안에 Ctrl + C를  동시에 눌러 끝내기 까지 입력된 내용을 담아 화일 생성

$ cat ab ¿

this is a test file.

abcdefg

☞ "ab" 화일의 내용을 화면에 출력

$ cat ab test.dat ¿

this is a test file.

abcdefg

1234567890abcdefg

가나다라

☞ "ab"화일과 "test.dat" 화일의 내용을 순서대로 화면에 출력

$ cat ab test.dat > ab.dat ¿

$ cat ab.dat ¿

this is a test file.

abcdefg

1234567890abcdefg

가나다라

☞ "ab"화일과 "test.dat" 화일의 내용을 합쳐 "ab.dat" 라는 새로운 화일로 병합

$ cat test.dat ab >> ab.dat ¿

$ cat ab.dat ¿

this is a test file.

abcdefg

1234567890abcdefg

가나다라

1234567890abcdefg ☜ 새로 추가된 부분

가나다라

this is a test file. ☜ 새로 추가된 부분

abcdefg

☞ "ab"화일과 "test.dat" 화일의 내용을 합쳐 기존"ab.dat" 화일내용 뒤에 추가시킴

화일의 복사 (cp : copy)

명령형식 : cp source-화일명 target-화일명

cp source-화일명 [source-화일명...] 디렉토리명

하나의 화일을 새로운 이름으로 복사하고 같은 이름의 화일이 있으면 기존 내용을 무시하고 복사된다. 또한 여러개의 화일을 하나의 디렉토리 안에 복사할 수 있다.

예] $ cp ab.dat AB ¿

☞ "ab.dat"화일의 내용이 "AB"라는 화일로 복사. 단, "AB"가 하위디렉명이라면 "AB"디렉토리내에 "ab.dat" 화일명으로 복사

$ cp ab.dat AB.DAT ../DATA ¿

☞ "ab.dat"화일과 "AB.DAT" 화일을 상위디렉토리에 있는 "DATA" 디렉토리에 같은 화일명으로 복사

화일의 이동 (mv : move)

명령형식 : mv source-화일명 target-화일명

mv source-화일명 [source-화일명...] 디렉토리명

mv 디렉토리명 디렉토리명

이 명령어는 복사명령어(cp)와 유사하나, "source-화일"이 없어지는 점이 다르다. 또한 어느 디렉토리의 내용을 그대로 다른 디렉토리로 옮길 수도 있다. 단, 디렉토리 이동시에는 같은 계층에 있어야 한다.

예] $ mv ab.dat AB ¿

☞ "ab.dat"화일이 "AB"라는 화일명으로 변경된다. 단,"AB"가 하위 디렉토리명이라면 "AB"디렉토리 밑으로 이동된다. 현재디렉토리에 "ab.dat" 화일은 없어진다.

$ mv tmp data ¿

☞ 현재 디렉토리 밑에 있는 "tmp" 디렉토리에 있는 모든 화일이 "data" 디렉토리로 이동된다. "tmp" 디렉토리내에는 화일이 없어진다.

Comments