Linux 기본명령어
로그인 사용자 홈 디렉토리 로그인 사용자명 패스워드 Linux는 대소문자를 구분 사용자가 로그인하여 맨 처음 연결된 장소 사용자만이 알고 있는 사실이며 나중에 passwd 명령을 이용하여 변경 가능 Linux는 대소문자를 구분 login과 password를 입력할 때 대소문자를 정확하게 구분하여 입력 필요 가급적이면 사용자의 로그인명을 소문자로 하는 것이 혼동을 피할 수 있음
암호변경(passwd) 시스템 관리자에 의해 사용자 계정이 부여된 후 사용자가 처음으로 시스템에 로그인하면 새로운 암호를 물어 본다. 이를 입력하면 다시 한번 입력하도록 요구하고 사용자가 처음 입력했던 암호와 정확하게 일치하게 입력하면 시스템과의 연결을 완료하고 프롬프트를 보여준다.
암호변경(passwd) "passwd" 명령을 이용하여 암호를 변경 가능 대부분의 시스템 관리자들은 시스템 보안(security) 측면을 고려하여 입력한 암호의 적합성을 체크하는 프로그램을 설치 암호를 선택할 때 다른 사람이 추측하여 알아낼 수 없는 것으로 하는 것이 좋음.
사용자확인(identity) Linux 시스템은 시스템 관리자가 각 사용자에게 부여한 사용자번호(userid)와 그룹번호(groupid)에 의해 사용자를 확인 일반적으로 시스템이 사용자명과 userid, 그룹명과 groupid를 자동으로 바꾸어주기 때문에 사용자는 이를 알 필요는 없음 사용자는 id와 groups 명령을 이용하여 자신의 userid와 groupid를 볼 수 있음 기본 그룹은 패스워드 파일에 있는 사용자명과 연관된 그룹명이 되며, 이것 역시 시스템 관리자가 부여
연결 끊기(exit) 원격 시스템과의 연결을 끊는 방법들 ^D - 데이터 스트림(stream)의 끝을 의미. 또한 사용자와의 연결을 끊음(log off). 이 명령을 이용하여 연결을 끊는 것을 막아주는 것도 가능 ^C – 인터럽트 logout - 시스템 종료 exit - 쉘 종료
명령어 구조 명령어(command) Linux 시스템에서 명령어는 대소문자를 구분하여 인식 명령어 [옵션][인자] 인자(argument)란 명령어가 동작을 취할 대상(예: 파일)을 의미 옵션(option)은 명령의 내용을 여러 가지 방식으로 다르게 적용시킬 수 있도록 함 Linux 시스템에서 명령어는 대소문자를 구분하여 인식 예: command와 Command는 다르다. 일반적으로 옵션은 하이픈(-)이 앞에 오며, 대부분의 명령에서 하나 이상의 옵션이 함께 사용 가능 명령어 -[옵션][옵션][옵션] 예를 들어, [/home1/gildong]%ls -alR은 현재 디렉토리는 물론 모든 서브 디렉토리까지 순환적으로 모든 파일에 대한 상 세정보를 보여 줌
도움말 얻기 Linux 매뉴얼(man 페이지라고 함) 온라인으로 Linux 시스템과 명령어 사용법을 설명 man 페이지를 사용하려면 프롬프트에서 man을 친 후 설명을 원하는 명령을 타이핑 명령 구조: man [옵션] 명령어 옵션 설명: -k 키워드 키워드와 매칭된 명령어 요약 줄을 열거한다 -M 패스 man 페이지에 대한 패스를 보여준다 -a 매칭되는 모든 man 페이지를 보여준다 (SVR4)
man의 사용 예 괄호 안의 번호는 man 페이지에서 이들이 찾아진 절을 의미
디렉토리 이동 및 관리 명령(1/9) Linux 파일 시스템 루트(root)부터 시작하여 트리 모양의 구조 루트 디렉토리는 슬래시(/) 기호로 나타냄 시스템 디렉토리와 사용자 디렉토리는 루트 밑에 포함 일반적으로 사용자는 루트 디렉토리를 갖지 않으며 자신의 홈(home) 디렉토리를 가짐 사용자는 자신의 홈 디렉토리 아래에 다른 서브 디렉토리를 생성 가능
디렉토리 이동 및 관리 명령(2/9) pwd - print working directory 현재의 작업 디렉토리를 보여 줌. pwd 명령은 언제든지 파일시스템의 계층구조 상에서 자신이 어디에 있는지를 알려준다. cd - change directory cd 명령은 디렉토리를 변경. cd 명령은 절대경로명과 상대경로명 모두 사용할 수 있다. 절대경로명과 상대경로명에 대한 자세한 설 명은 5.2절에서 다루기로 한다. 명령 구조: cd [디렉토리]
디렉토리 이동 및 관리 명령(3/9) cd의 사용 예 cd 사용자의 홈 디렉토리로 변경 cd / 시스템의 루트 디렉토리로 변경 cd /full/path/name/from/root 지정된 절대경로명으로 변경 (반드시 슬래시(/)가 먼저 나와야 한다) cd path/from/current/location 현재 위치에서 지정된 상대경로명으로 변경 (선행 슬래시(/)가 없다) cd ~사용자명/디렉토리 지정된 사용자명의 해당 디렉토리로 변경
디렉토리 이동 및 관리 명령(4/9) mkdir - make a directory 사용자는 자신의 홈 디렉토리 아래에 서브 디렉토리를 생성하여 계층 디렉 토리 구조 생성 가능 디렉토리의 절대경로명 혹은 상대경로명을 지정 가능 명령 구조: mkdir [옵션] 디렉토리 옵션 설명: -p 지정된 디렉토리에서 중간의 디렉토리도 같이 생성 -m mode 접근권한을 지정된 mode로 부여(SVR4)
디렉토리 이동 및 관리 명령(5/9) 현재의 디렉토리가 /home1/gildong 이라면 [/home1/gildong]% mkdir data 다음 예는 -p 옵션을 사용한 것으로 디렉토리 부분에 지정 된 경로에서 중간의 디렉토리까지 동시에 생성하는 예를 보이고 있다.
디렉토리 이동 및 관리 명령(6/9) rmdir - remove directory 사용자가 어떤 디렉토리를 제거하려면 먼저 그 디렉토리의 내용부터 제거 해야 하고, 또한 현재 위치가 제거하고자하는 디렉토리에 있다면 그 디렉 토리를 제거 불가 먼저 상위 디렉토리로 옮겨가서 명령 구조: rmdir 디렉토리 또 다른 방법으로 rm 명령(이장의 뒷부분에서 설명한다)을 사용하여 제거 가능 이 명령을 사용하면 디렉토리가 비어있지 않더라도 디렉토리를 제거할 수 있다. 현재의 위치가 /home1/gildong에 있을 때 비어있는 디렉토리 /home1/gildong/data를 제거하고자 한다면 [/home1/gildong]% rmdir data 혹은 [/home1/gildong]% rmdir /home1/gildong/data
디렉토리 이동 및 관리 명령(7/9) ls - list directory contents Linux 사용자가 가장 자주 사용하는 명령 ls 명령은 사용자의 디렉토리와 파일의 목록을 보여 줌. 옵션을 이용하면 파일의 형식, 크기, 접근권한, 파일생성 날짜, 수정날짜 등에 대한 정보를 볼 수 있음 명령 구조: ls [옵션][인자] 옵션 설명: -a 모든 파일을 열거. 히든 파일(.으로 시작하는 파일)도 함께 열거 -d 디렉토리명만 열거 -F 끝 부분에 항목의 유형을 표시 디렉토리 / 소켓 = 심볼릭 링크 @ 실행가능 파일 * -L 파일이 심볼릭 링크이면 그 링크가 참조하는 파일 혹은 디렉 토리에 대한 정보를 보여 줌 -l 상세 정보를 보여 줌
디렉토리 이동 및 관리 명령(8/9) 인자(argument)를 사용하지 않는 경우 현재 디렉토리의 목록을 보여 줌 인자에는 파일 혹은 디렉토리 등이 올 수 있고, 메타문자(*, ?)를 이용한 매칭 이용 가능
디렉토리 이동 및 관리 명령(9/9) mode 필드 나머지 9개의 문자는 3문자씩 3개의 세트로 구성 -l 옵션을 이용하여 볼 수 있으며 10개의 문자로 구성 첫 번째 문자는 다음 기호중의 하나가 된다: 문자 항목 유형 d 디렉토리 c 문자 유형의 특수 파일 - 일반 파일 l 심볼릭 링크 b 블록 유형의 특수 파일 s 소켓 나머지 9개의 문자는 3문자씩 3개의 세트로 구성 이것은 파일 접근권한을 의미: 처음 3문자는 사용자 자신(user)의 접 근권한을 나타내고, 두 번째 3문자는 그룹(group)에 대한 접근권한 을, 마지막 3문자는 시스템 상의 기타 다른 사용자(other)들의 접근 권한을 의미 각 문자에 대한 의미는 다음과 같다: r 읽기(read) 권한 w 쓰기(write) 권한 x 실행(execute) 권한 - 접근 불가
파일관리 명령(1/6) 파일 관리 명령 cp - copy a file 파일을 생성하고 복사하고 삭제하고 접근권한을 변경하는 명령들을 말한다. cp - copy a file 한 파일의 내용을 다른 파일에 복사 명령 구조: cp [옵션]이전_파일명 새로운_파일명 옵션 설명: -i 대화방식으로 진행한다 (확인을 기다려서 요청에 따라 진행한다) -r 디렉토리를 순환적으로 복사한다 (서브 디렉토리도 모든 내용과 함께 복사한다)
파일관리 명령 (2/6)
파일관리 명령 (3/6) mv - move a file 파일의 이름을 변경 또한 지정된 파일 혹은 디렉토리가 현재의 경로가 아니라 면 이것은 그 파일 혹은 디렉토리를 다른 장소로 옮겨주 는 효과를 가진다. 명령 구조: mv [옵션]이전_파일명 새로운_파일명 옵션 설명: -i 대화식으로 진행 -f 목적지에 같은 이름의 파일이 존재해도 묻지 않고 수행 이 명령은 파일의 내용은 있던 곳에 그대로 두고 디렉토리 테이블의 항목만 변경
파일관리 명령 (4/6)
파일관리 명령 (5/6) rm - remove a file 파일을 삭제 명령 구조: rm [옵션]파일명 옵션 설명: 서브 디렉토리를 제거 -f 확인을 하지 않는다
파일관리 명령 (6/6) ls 명령으로 디렉토리의 목록을 보면 파일이 더 이상 존재하지 않는다는 것을 볼 수 있다. 이것은 실제로 그 내용까지 삭제한 것이 아니라 단지 디렉토리 테이블에서 그 항목을 제거한 것뿐이며 해당 inode를 사용하지 않는다는(unused) 표시를 한 것뿐이다.
파일 접근권한(File Permissions) 각각의 파일과 디렉토리는 자신만의 읽기 권한, 쓰기 권한, 실행권한을 가짐 파일의 접근권한을 보려면 ls 명령의 -l 옵션을 사용 ls -l" 명령을 주면 다음과 같은 형태의 결과를 보여준다. -rwxr-x--- user unixgroup size Month nn hh:mm filename 위에서 첫 번째 열의 문자와 하이픈(-)에 의해 지정된 부분(-rwxr-x---)은 파일의 유형과 접근권한을 보여준다. 예를 들어, -rwxr-x---와 같이 주어진다면 사용자(owner)는 그 파일에 대해 읽기, 쓰기, 실행이 가능한 반면에, unixgroup의 사용자들은 읽기와 실행이 가능하고, others는 전혀 그 파일을 접근할 수 없다.
파일 접근권한(2/6) chmod - change file modes 명령 구조는 3개의 문자(user, owner: u, group: g, other: o)와 관련 각 접근권한 유형은 대응되는 숫자로 표현: read=4, write=2, execute=1 혹은 read=r, write=w, execute=1 4 혹은 r의 접근권한은 read 접근권한을 지정 원하는 접근권한이 read와 write라면, 4(read)와 2(write)가 더해져 서 6의 접근권한으로 표현. 따라서 접근권한을 6으로 표현하면 read와 write의 접근권한을 가지게 됨
파일 접근권한(3/6) + 접근권한 부여 - 접근권한 제거 = 접근권한 설정 예: 각 사용자를 의미하는 기호 표현도 가능 사용자 유형과 함께 다음과 같은 연산자를 통하여 접근권한을 부 여 + 접근권한 부여 - 접근권한 제거 = 접근권한 설정 예: 소유자에게 read와 write의 접근권한을 부여하고자 한다면 "u=rw" 라고 기술 명령 구조: chmod nnn [아규먼트_목록] 숫자 모드 chmod [who]op[perm][아규먼트_목록] 기호 모드 옵션 설명: -i 강제로 수행(변경이 되지 않더라도 오류 메시지를 보여주지 않는다) -R 디렉토리 구조를 따라 내려가면서 서브 디렉토리의 모드도 순환적으로 모드를 변경 여기서 nnn은 user, group, other의 접근권한을 의미하는 3 문자들이고, who 는 u, g, o, a 중의 어느 하나를, 그리고 perm은 r, w, x 중의 어느 하나를 의미
파일 접근권한(4/6) chmod의 사용 예 public_html 디렉토리의 접근권한을 아래와 같이 부여하고 싶을 때 owner: read, write, execute group: read, execute other: read, execute
파일 접근권한(5/6) chown - change ownership chown 명령을 사용하여 파일의 소유권을 변경 대부분의 Unix 시스템에서 이 명령은 관리자만이 수행 가능 명령 구조: chown [옵션] user[:group] 파일 (SVR4) chown [옵션] user[.group] 파일 (BSD) 옵션 설명: -R 디렉토리 구조를 따라 아래로 순환적으로 수행 -f 강제로 수행. 오류 메시지를 보여주지 않는다
파일 접근권한(6/6) chgrp - change group 명령 구조: chgrp [옵션] group 파일 옵션 설명: -R 디렉토리 구조를 따라 아래로 순환적으로 수행 -f 강제로 수행.오류 메시지를 보여주지 않는다
디스플레이 명령(1/6) 파일의 내용을 보는데 사용할 수 있는 명령은 많다. 물론 부록에 설명되어 있는 vi 나 emacs 편집기를 사용하여 파일의 내용을 보거나 편집할 수 있다. 여기서는 일반적으로 파일의 내용을 볼 수 있는 명령들에 대해 알아본다.
디스플레이 명령(2/6) echo echo 명령은 사용자가 입력한 내용을 그대로 표준출력 장치에 다시 보여주는 명령. 일반적으로 라인 피드에 의해 종료하지만, 이것을 변경할 수 있는 옵션은 많다. 명령 구조: echo [텍스트_문자열] 옵션 설명: -n <new-line>을 프린트하지 않는다(BSD) \c <new-line>을 프린트하지 않는다(SVR4) \0n n: 8-비트 ASCII 문자 코드(SVR4) \t 탭(SVR4) \f 폼피드(SVR4) \n 새로운 줄(SVR4) \v 수직 탭(SVR4)
디스플레이 명령(3/6) Cat 파일의 내용을 보여주거나 파일들을 연결할 때 사용 명령 구조: cat [옵션] 파일 옵션 설명: -n 각 줄에 줄 번호를 붙여준다 -v 탭, 새로운 줄, 폼피드를 제외하고 프린트할 수 없는 문자를 보여준다 -e 각 줄의 끝에 $ 기호를 보여준다(-v와 함께 사용할 때)
디스플레이 명령(4/6) more, less, pg - page through a file more, less, pg 명령은 한번에 한 페이지씩 파일의 내용 을 보여준다. 이들 명령중에 사용자의 Unix 시스템에서 수행되지 않는 명령이 있을 수 있다. 명령 구조: more [옵션][+/pattern][파일명] less [옵션][+/pattern][파일명] pg [옵션][+/pattern][파일명] 이들 명령은 한 화면을 보여주고 나서 화면 하단에 프롬프트를 보인다 more의 경우 --계속--(6%) pg 의 경우 :
디스플레이 명령(5/6) head - 파일의 시작부분을 보여준다 head 명령은 파일의 시작부분을 보여준다. 명령 구조: 옵션 설명: -n number 파일의 처음부터 시작하여 보여줄 줄 수를 지정한다 -number 위와 같다
디스플레이 명령(6/6) tail tail 명령은 파일의 끝부분을 보여 줌 명령 구조: tail [옵션] 파일 옵션 설명: -number 파일의 끝에서부터 보여줄 줄 수를 지정