300 likes | 484 Views
기본 Unix 명령어. SPARCS 10 이 가 영. 일단 로그인 !. Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다 . 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd 패스워드 변경 시 : ~$ passwd 예전 패스워드 입력 후 새로운 패스워드를 입력한다. 셸 (S hell ) 사용.
E N D
기본 Unix 명령어 SPARCS 10 이 가 영
일단 로그인! • Linux login 시 계정을 입력하거나 root를 입력 • Root -> # 일반 사용자 -> $ • 패스워드 : echo기능을 꺼서 볼 수 없다. 대소문자 구분 • 패스워드 처음 설정 시 : ~$ passwd • 패스워드 변경 시 : ~$ passwd 예전 패스워드 입력 후 새로운 패스워드를 입력한다.
셸(Shell) 사용 • 셸(Shell) : 사용자가 입력하는 명령어를 기계어로 변역하여 커널에 전달하는 역할을 하는 명령해석기 • 자신이 사용하고 있는 셸의 확인 $echo $shell • 로그인 셸을 바꿀 때 : $chsh입력 Enter password: (암호 입력) … Login Shell [현재 셸] : (바꿀 셸 입력)
UNIX 명령어의 기본적인 사용 • $ls-l -a bobby 쉘 구문의 일반적인 사용법은 명령어뒤에 공백을 두고 옵션들이 따라온다. • $ls-la bobby 옵션들은 다음과 같이 한꺼번에 쓸 수도 있다. • $ls -l bobby joe maria 대상으로 하는 파일명이 하나이상 주어질 경우, 공백으로 구분을 해주어 입력할 수도 있다.
엄청난 종류의 명령어들 • 외워두면 좋지만 이 많은 명령어를 기억하기에는 무리수 • man과 help 라는 명령어가 있다. $man (명령어) 또는 $info (명령어) $(명령어) –help • 어떠한 주제에 관한 명령어를 찾고 싶을 때 $apropos [주제어]
일일히 찾기 귀찮으므로 기본적인 것들은외워두자.
디렉토리 만들기, 삭제 • 디렉토리 만들기 $mkdir[디렉토리 이름] : 현재 디렉토리에서 $mkdir위치/디렉토리이름 • 비어있는 디렉토리 삭제 $rmdir[디렉토리 이름]
내 위치(디렉토리) 보기, 바꾸기 • $ pwd : 내 위치를 볼 수 있다. • $ cd [하부 디렉토리] : 하부 디렉토리로 이동 • $ cd .. : 상위 디렉토리로 이동 • $ cd : 홈 디렉토리로 이동 • $ cd /[디렉토리] : 현재 위치한 디렉토리의 상위나 하위 디렉토리가 아닌 별개의 디렉토리로 이동 –절대경로 지정
ls : 파일 목록을 보여주는 명령어 • $ ls [옵션] • [옵션] : -a 디렉토리 안에 있는 모든 파일과 디렉토리를 보여준다. -l 파일에 대한 자세한 정보를 보여준다. • 첫번째 글자의 의미 d : 디렉토리 l : 링크 그 외에 c(특성 장치, 파일), b(블럭 장치, 파일), p(파이프), f(스택) • 파일의 소유주/ 그룹 / 나머지 그룹
각 그룹을 이루고 있는 • 첫번 째 문자 : - : 파일을 읽을 수 있는 권한이 없다. 만약 디렉토리라면 디렉토리에 들어있는 파일의 목록을 볼 수 없다. r : 읽을 수 있는 권한이 있다. • 두번째 문자: -: 파일에 덮어 쓰거나 정보를 추가할 수 없다. 만약 디렉토리라면 파일을 그 디렉토리에 새로 만들거나 지울 수 없다. w: 쓸 수 있는 권한을 가지고 있다. • 세번째 문자: -: 파일을 실행할 권한이 없다. 만약 디렉토리라면 접근할 수 없다. x: 실행할 수 있는 권한을 가지고 있다. s: 이 속성은 실행할 수 있는 파일에만 있다. 사용자의 권한대신에 파일 소유자의 권한으로 파일을 실행할 수 있다.
chmod : 권한을 변경하는 명령어 • ex) $ chmodug+rwsample • 레퍼런스 u : 사용자 g : 그 파일의 그룹 멤버 o : 나머지 사람들 a : 위의 셋 모두다 • 연산자 + : 권한을 부여한다. - : 권한을 삭제한다. = : 정확한 모드 지정
사실 굳이 연산자를 쓸 필요가 없다. $ chmod644 sample -> rw_r_ _ r_ _ $umask숫자 : file은 666에서, Directory는 777에서 빼준 값으로 변경한다고 생각하면 된다.
setUID : 실행 시 파일 소유자의 권한을 임의로 가진다. $ chmod4xxx file/directory • setGID : 실행시 해당 그룹에 포함된 계정은 사용자 권한을 임의로 가진다. $ chmod 2xxx file/directory • Sticky bit : 이동, 삭제에 대한 권한은 root와 소유자만이 가진다. 그러나 수정은 가능하다. $ chmod 1xxx file/directory
파일의 복사, 이동, 삭제 • 복사 $ cp [파일명][목적지] • 이동 $ mv [파일명] [목적지] ** 목적지가 없으면 단순히 파일명의 복사와 고치기로 인식 • 삭제 $ rm [파일 이름] <옵션> -i : 지우기 전에 사용자에게 지울 파일인지를 확인을 받는다. -r : 디렉토리와 그 디렉토리가 가지고 있는 내용물들을 모두 지운다. -rf : 사용자에게 확인 받지 말고 디렉토리와 들어있는 파일들을 지운다.
ln : 다른 파일로의 연결 만들기 • $ ln[원본 파일] [목적 파일] : 하드링크 원본 파일을 삭제해도 하드링크는 원래의 내용을 가지고 있다. • $ ln–s [원본 파일] [목적 파일] : 심볼릭링크 원본 파일을 삭제하면 심볼릭링크는 무용지물
cat과 more : 파일 내용 보기 • $ cat [옵션] [파일명] • 파일의 내용을 확인할 때 사용 • 옵션 -b : 출력되는 각행에 행번호를 부여하여 출력. 공백행은 행번호를 부여하지 않음 -v : 출력할 수 없는 문자들이 있으면 출력할 수 있는 문자로 바꿔서 출력한다 -n: 행마다 앞에 행번호를 붙인다.
$ more : 파일 내용이 길 때 사용. • $ more [옵션] [파일명] • 한 화면이 출력되고, 다음 화면을 출력하라는 키를 눌렀을 때, 다음 화면을 출력하는 방식 • <키> 스페이스바 : 한페이지 다음 내용을 출력 b : 바로 앞 페이지의 내용을 본다. 엔터 : 한줄 다음으로 이동한다. /[문장] : 파일에서 현재 위치 다음에 [문장]이 나타나는 곳으로 이동 ?[문장] : [문장]들 중 파일의 제일 마지막에 위치한 곳으로 이동 q : 끝마친다. v: vi 편집기로 전환 h : 도움말
와일드카드 문자 • * : 모든 문자열 의미 $ rm * : 모든 파일을 지운다. $ rm a* : a로 시작하는 이름의 모든 파일을 지운다. $ rm hi*bat : hi로 시작하고 bat으로 끝나는 모든 이름의 파일을 지운다. • ? : 어떤 문자열 의미 $ cat c?t : c, 어떤 글자, t라는 이름을 가진 파일을 실행 • [그룹] : 문자 집합 $ mv *[a-z] hi : 소문자로 끝나는 모든 파일을 hi 디렉토리로 옮긴다. $ more [tp] ine : tine 과 pine 을 한 페이지씩 출력한다.
Redirection • 평상시 표준 출력과 표준 에러는 화면, 표준 입력을 자판으로 받는다. • 명령 >outfile : 출력을 outfile에 덮어쓴다. • 명령 >> outfile : 덮어쓰지 않고 outfile의 내용에 연결하여 출력한다. • 명령 < infile : 입력을 infile으로부터 받는다.
평상시의 모습 출력이 지정되었을 때 입출력이 지정되었을 때 입력이 지정되었을 때
표준 에러도 redirection 가능 • >& : 표준 출력, 표준 에러 모두 리다이렉트 $ gccinvinitjig.c >& error-msg • 2> : 표준 에러만 리다이렉트 $ gccinvinitjig.c 2> error-msg • 2> : 표준출력은 버리고, 표준에러 리다이렉트 (화면에 출력이 안뜬다) $ gccinvinitjig.c 2>error-msg >/dev/null
Pipe(|) : 명령의 출력과 입력의 연결 • 한 프로세스의 출력을 다른 프로세스와 연결하려면, 명령을 수직 막대(|)로 분리한다. • command1 | command2 | ... | commandN $ 명령1 > 중간파일 $ 명령2< 중간파일 이러한 두 개의 명령을 파이프를 이용해 하나로 쓸 수 있다. $ 명령1 | 명령2
foreground 와 background • 화면에 보여주면서 명령을 수행하는 것이 foreground, 보여주지 않고 뒤에서 작업하는 것이 background 프로그램이다. • 즉 background 상태는 입력이 불가능 • background로 실행시키기 : 명령어 끝에 &를 붙인다. • 정지된 작업을 foreground로 보내기 : $fg (%) 작업번호 background로 보내기 : $bg (%) 작업번호
$ jobs : fore/background 작업 수 확인 • $ kill [시그널] 작업번호 : 작업번호의 일에 시그널을 보낸다. 시그널의 예 HUP: 연결 끊기. 프로세스의 설정을 다시 읽을 때 사용 TERM: 소프트웨어 종료 시그널 CONT : 멈춤상태에서 다시 진행 KILL : 강제종료
Daemon Programs • background에서 돌아가고 있는 서버 프로그램 • 단독으로 실행되는 데몬이 있고, 여러가지 서비스를 한꺼번에 관리하는 슈퍼데몬이 있다. (standalone, inetd) • 단독 데몬의 실행 /중지/재시작: #service 데몬이름 start/stop/restart • 부팅 시 자동실행되는 데몬의 관리 # ntsysv : 현재 레벨의 데몬 관리 지정 #ntsysv–level3 : 3번 레벨의 데몬 관리 지정
데몬의 예 NetworkManager : 자동으로 최대 사용가능한 연결에 네트워크 연결을 스위칭한다. acpi: 커널로부터 ACPI 이벤트들을 받아서 처리한다. apmd: 베터리 상태를 모니터링하고 기록(syslog(8))한다. 고급 전원 atd: 백그라운드 작업을 수행하거나 예약 명령을 처리한다. cups : 프린터 데몬 daytime : 현재 시스템 시간을 가져와 프린트해주는 내부 xinetd데몬 (tcp버전) • $ nohup(command) & : 해당 명령을 데몬’처럼’백그라운드에서 지속적으로 동작하게 한다. 로그아웃 시에도 작업이 계속된다.
Process • 실행 중인 프로그램. 순차적으로 실행한다. • Process의 상태는 생성, 준비, 실행, 대기, 종료 중 하나이다. • $ ps [옵션] : 프로세서의 상태 점검 옵션 -l : 자세한 형태의 정보를 출력한다. -u : 각 프로세서의 사용자 이름과 시작 시간을 보여준다. -m : 메모리 정보를 출력한다. -a : 다른 사용자들의 프로세서도 보여준다. -x : 로그인 상태에 있는 동안 아직 완료되지 않은 프로세서 보기 • $ kill (process-id) : 실행 중인 프로세스를 중지한다.
출처 : 인터넷과 선배님의 세미나 자료 • 이상으로 세미나를 마치겠습니다 : )