우분투 공부중/Command

리눅스 명령어

RuDas 2013. 9. 28. 23:47

시작&종료

#shutdown -h now, halt, init 0 : 시스템 종료

#shutdown -h +10m : 10분 후에 종료 (h : halt)

#shutdown -r 22:00 : 오후 10시에 재가동 (r : reboot)

#shutdown -c : 진행중인 shutdown 취소 (c : cancel)

#shutdown -k now : 현재 접속된 사용자에게 종료된다는 메시지만 보내고, 실제 종료하지 않음.


init  : 런레벨(Runlevel) 시스템이 가동되는 방법 

0번 : 종료 모드

1번 : 단일 사용자 모드 (시스템 복구 시에 사용)

2번 : 사용 안함

3번 : 다중 사용자 모드 (텍스트 로그인)

4번 : 사용 안함

5번 : 다중 사용자 모드 (X 윈도우 로그인) 

6번 : 재가동 모드 (재부팅)

컴퓨터 부팅시 런레벨 : "/etc/inittab" 파일에 정의 됨.

"id:5:initdefault:" 숫자 5는 runlevel 5번을 뜻함. 변경 가능


logout, exit : 로그아웃


root 사용자 로그인시 읽어 들이는 환경 설정 파일 순서

1. /etc/profile

2. <사용자 홈 디렉토리>/.bash_profile

3. <사용자 홈 디렉토리>/.bashrc

4. /etc/bashrc

"." 는 숨김 파일을 의미. "ls -a" 로 확인 가능


가상 콘솔 : 리눅스는 7개의 가상 콘솔 제공. 한 컴퓨터에서 모니터 7개 달려 있는 효과.

ctrl + alt + F1 ~ F7 으로 이동

"/etc/inittal"에 정의됨.

"/sbin/mingetty" 라는 프로그램이 각각의 가상 콘솔에 "login:" 프롬프트를 뜨게 하는 역할을 함

"x:5:respawn: /etc/X11/prefdm -nodaemon" : 런레벨이 5일 경우 X 윈도우로 부팅 시 로그인 창 뜨도록 설정


adduser <사용자명> : 사용자를 생성

adduser -d <홈 디렉토리> <사용자명> : 별도로 사용자의 홈 디렉토리를 지정

adduser -u <사용자 id> <사용자명> : 사용자 id를 순차 번호가 아닌 임의로 지정

adduser -g <그룹명> <사용자명> : 별도의 그룹을 지정

adduser -s <셸 파일명> <사용자명> : /bin/bash 외의 별도의 셸을 지정


passwd <사용자명> : 생성한 사용자의 비밀번호 지정

passwd : 자신의 비밀번호 변경


userdel : 사용자 삭제

userdel -r <사용자명> : 사용자가 사용하던 홈 디렉토리까지 삭제


usermod -s /bin/false : 사용자가 로그인 할 수 없게 만든다.

usermod -s /bin/bash : 다시 로그인 할 수 있게 함.

groupdel : 그룹 삭제


Kernel 관련

$finger @finger.kernel.org : 현재 커널의 최신 버전을 알아 본다.

http://www.kernel.org/kdist/finger_banner 에서 확인 가능.


관리자 권한

$su : root 사용자의 권한을 얻는다.

명령 프롬프트가 "#" 이면 root 사용자, "$"이면 일반 사용자임.

 

vi 에디터 명령어

i : 현재 커서 앞에서부터 입력

a : 현재 커서 뒤에서부터 입력

h (←), j(↓), k(↑), l(→)

ctrl + f : 다음 화면으로 이동 page down

ctrl + b : 전 화면으로 이동 page up

x : 커서가 있는 문자 삭제

X : 커서가 있는 문자의 앞문자 삭제

dd : 현재 커서의 행 삭제

숫자 + dd : 현재 커서부터 숫자만큼의 행 삭제

yy : 현재 커서가 있는 라인을 복사

숫자 + yy : 현재 커서부터 숫자만큼의 행을 복사

p : 복사한 내용을 현재 라인 이후에 붙여넣기

P : 복사한 내용을 현재 라인 이전에 붙여넣기

/텍스트 : "텍스트"의 내용을 검색

n : 다음 찾은 곳으로 커서 이동

":set number" : 행 번호 표시

비정상 종료된 파일의 스왑(Swap) 파일명 : "." + 파일명 + ".swp"


"man <명령어>" : 매뉴얼을 본다.

"man [섹션 번호] 명령어" : man 페이지는 섹션을 1~9까지 9개로 나눔. ex) man 1 ls

page down / page up 또는 Space / B

/단어 : 단어 검색, n


mount -t <파일시스템 타입> <장치 파일> <마운트 포인트> :


df -T : mount 된 장치 확인


ls : 해당 디렉토리에 있는 파일의 목록을 나열

ls -a : 현재 디렉토리의 목록 (숨김 파일 포함)

ls -l : 현재 디렉토리의 목록을 자세히 보여줌

ls *.txt : 확장자가 txt인 목록을 보여줌

ls -il : inode 번호 젤 앞에 출력

ls -l /dev | more 


cd : 디렉토리 이동

cd ~root : root 사용자의 홈 디렉토리로 이동


pwd : 현재 디렉토리의 전체 경로 출력(print working directory)


rm : 파일이나 디렉토리 삭제

rm -i abc.txt : 삭제 시 확인

rm -r abc : 디렉토리 삭제

rm -rf abc : abc 디렉토리와 그 하부를 강제로 전부 삭제


cp : 파일이나 디렉토리 복사

cp -r abc cba : 디렉토리 복사


touch : 크기가 0인 새 파일을 생성하거나 이미 존재하는 파일인 경우 수정 시간을 변경

touch abc.txt : 파일이 없을 경우엔 abc.txt라는 빈 파일 생성하고, abc.txt가 있을 경우엔 파일의 수정 시간을 현재 시각으로 변경


mv : 파일과 디렉토리의 이름 변경이나 위치 이동 시 사용

mv abc.txt bcd.txt : 이름 변경


mkdir : 새로운 디렉토리 생성

mkdir -p def/fgh : 현재 디렉토리 아래에 def 디렉토리 생성하고 그 안에 fgh 디렉토리 생성


rmdir : 디렉토리 삭제


cat : 텍스트로 작성된 파일을 화면에 출력

cat install.log


more : 텍스트로 작성된 파일을 화면에 페이지 단위로 출력

Space 키는 다음 페이지, B 는 앞 페이지

more install.log


whoami : 현재 사용자가 누구인지 본다.


chmod : 파일 허가권 변경

chmod 777 install.log : install 모든 사용자 읽기,쓰기,실행 가능

소유자(u), 그룹(g), 그외 사용자(o)

r(read)w(write)x(execute)

chmod u+x <파일명> : 소유자(u)에게 실행(eXecute) 권한 허가(+)

chmod g-rx <파일명> : 그룹(g)에게 읽기(r),실행(eXecute) 권한 제거


chown : 파일의 소유권을 바꾸는 명령어

chown <새로운 사용자명> [.<새로운 그룹명>] <파일명>

chown fedora install.log : install.log 파일의 소유자를 fedora로 바꾸라

chown fedora.fedora install.log : 파일의 그룹도 fedora 로 바꾸라.


ln <링크 대상 파일명> <링크 파일명> : 하드 링크를 생성

ln -s <링크 대상 파일명> <링크 파일명> : 소프트 링크 파일


rpm (Redhat Package Manager)

Fedora/RPMS/ 많은 rpm 존재

<패키지 이름>-<버전>-<릴리즈 번호>.<아키텍처>.rpm

rpm -Uvh <패키지 파일> 설치

-U : 기존에 패키지가 설치되지 않았다면 i와 같이 일반적인 설치, 기존에 패키지가 설치되어 있다면 업그레이드

v : 설치 과정의 확인

h : 설치 진행 과정을 #마크로 화면에 출력함.

rpm -e <패키지 파일> : 삭제. e : Erase

rpm -qa <패키지 이름> : 시스템에 패키지가 설치되었는지 확인

rpm -qf <파일의 절대 경로> : 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인

rpm -ql <패키지 이름> : 특정 패키지에 어떤 파일들이 포함되었는지 확인

rpm -qi <패키지 이름> : 설치된 패키지의 상세 정보


yum (Yellowdog Update Manager)

YUM : 인터넷을 통하여 Fedora의 rpm 파일이 저장된 저장소(Repository)에서, 설치하려고 하는 RPM 파일과 해당 RPM 파일이 의존성을 가지는 다른 RPM 파일까지 모두 다운로드한 후에 자동으로 설치 해 줌.

저장소(Repository)의 URL 은 /etc/yum.repos.d/ 디렉토리 파일에 저장됨

yum install <패키지 이름>

yum -y install <패키지 이름> : 묻는 부분에서 무조건 "yes"를 입력한 것으로 간주

yum check-update : 시스템에 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력

yum update <패키지 이름> : 업데이트. yum install <패키지 이름> 을 실행하면 설치된 패키지는 자동 업데이트

yum remove <패키지 이름> : 삭제

yum info <패키지 이름> : 정보 확인

yum localinstall <패키지 이름> : 현재 디렉토리에 있는 rpm 파일을 설치


gzip : 확장명 gz 으로 압축하거나 풀어줌

gzip -d "<파일명>.gz" : "<파일명>.gz" 압축 파일을 일반 파일인 "<파일명>"으로 만들어줌. d(Decompress)


gunzip : 확장명 gz의 압축을 풀어줌


bzip2 : 확장명 bz2로 압축하거나 풀어줌

bzip2 -d "파일명.bz2" : "<파일명>.bz2" 압축 파일을 일반 파일인 "파일명> 으로 만들어줌.


bunzip2 : 확장명 bz2의 압축을 풀어줌


tar : 확장명 tar로 묶음 파일을 만들어 주거나 묶음을 풀어줌

동작 : c(새로운 묶음), x(묶인 파일을 풀어줌), t(묶음을 풀기 전에 묶인 경로를 보여줌)

옵션 : f(필수, 묶음 파일명 지정), v(visual 파일이 묶이거나 풀리는 과정을 보여줌), z(tar + gzip), j(tar + bzip2)

tar cvf xinetd.tar /etc/xinetd.d/ : 생성

tar cvfz xinetd.tar.gz /etc/xinetd.d/ : 생성 + gzip 압축

tar cvfj xinetd.tar.bz2 /etc/xinetd.d/ : 생성 + bzip2 압축

tar tvf xinetd.tar : 확인

tar xvf xinetd.tar : 풀기

tar xvfz xinetd.tar.gz : gzip 압축 해제 + tar 풀기

tar xvfj xinetd.tar.bz2 : bzip2 압축 해제 + tar 풀기


find [경로][옵션][조건][action]  : 위치 검색

[옵션] -name, -user(소유자), -newer(전,후), -perm(허가권)

[action] -print (GNU는 디폴트, 유닉스는 필수 입력), -exec

find /etc -name "*.conf" : /etc 디렉토리 하위에 확장명이 ".conf" 인 파일 검색

find /home -user fedora : /home 디렉토리 하위에 소유자가 "fedora" 인 파일 검색

find ~ -perm 644 : 현재 사용자의 홈 디렉토리 하위에 허가권이 644인 파일 검색


which <실행 파일 이름> : PATH에 설정된 디렉토리만 검색. 절대 경로를 포함한 위치 검색


whereis <실행 파일 이름> : 실행 파일 및 소스, man 페이지 파일까지 검색


locate <파일 이름> : 매우 빠르고 유용. 새로 설치된 파일들이 등록되어 있지 않을 때는 찾을 수 없음.


cron : 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것

데몬(서비스) crond, 관련 파일 : /etc/crontab

분,시,일,월,요일,권한,실행 명령 순


at : 일회성 작업을 예약. cron 은 주기적으로 반복

at 3:00am tomorrow : 내일 새벽 3시

at 11:00pm January 30 : 1월 30일 오후 11시

at now + 1 hours : 1시간 후

at>프롬프트에서 예약 명령어 입력 후 enter

완료되면 ctrl + D

확인 at -l

취소 atrm <작업번호>


ipconfig <장치이름> : 해당하는 장치의 IP 주소 설정 정보를 출력해 준다.


nslookup : DNS 서버의 작동을 테스트 하는 명령어


ping : 해당 컴퓨터가 네트워크에서 응답하는지를 테스트


파이프(pipe) : 두 프로그램을 연결해주는 연결 통로 "|"

ls -l /etc | more : 한 페이지씩 ls -l /etc 가 실행


필터(filter) : 필요한 것만 걸러주는 명령어. (ex) grep, tail, wc, sort, awk, sed 등 )

ps -ef | grep bash : "bash"라는 글자가 들어간 프로세스만 출력

rpm -qa | grep bind : 설치된 패키지 중에서 "bind"라는 글자가 들어간 패키지 출력


리다이렉션(redirection) : 표준 입출력의 방향을 바꿔줌. 표준 입력은 키보드, 표준 출력은 모니터이지만 이를 파일로 처리하고 싶을 때 사용

ls -l > aa.lst : ls -l 의 결과를 화면에 출력하지 말고, aa.lst 라는 파일에 쓰도록 한다. aa.lst 가 있으면 덮어쓴다.

ls -l >> aa.lst : 위와 동일. 그러나 aa.lst 기존 내용이 있으면 내용에 이어 씀.

sort < aa.lst : aa.lst 파일을 정렬해서 화면에 출력

sort < aa.lst > bb.lst : aa.lst 파일을 정렬해서, bb.lst 파일에 쓴다.


ps : 현재 프로세스의 상태를 확인

ps -ef | grep <프로세스 이름>


kill : 프로세스를 강제로 종료

kill -9 <프로세스 번호> : 무조건 프로세스 종료


pstree : 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여줌.


jobs : 현재 백그라운드로 가동중인 작업 확인

fg <작업 번호> : 포그라운드 프로세스로 실행

gedit & : &는 백그라운드로 프로세스 실행


소스 컴파일 : 프로그램 소스를 gcc 컴파일러로 직접 컴파일해서 사용한다는 의미

configure : 환경 설정. 설치될 리눅스 환경이 다르고, 용도도 다르므로 자신이 원하는 다양한 설치 옵션을 지정. 결과는 Makefile 이라는 파일이 만들어 짐.

make : 실제 소스 파일을 컴파일 하는 과정. configure에서 만들어진 Makefile을 이용해서 컴파일

make install : 컴파일이 완료된 실행 파일 및 관련 파일들을 해당 디렉토리에 설치함.



데몬(daemon) : 서비스(service) 또는 서버 프로세스. 웹 서버, 네임 서버, DB 서버 등의 프로세스를 지칭하여 데몬이라 함.


Standalon 타입 데몬 : 독자적으로 프로세스가 구동되어 서비스를 제공. (웹서버 (httpd), DB서버(mysqld), 센드메일 서버(sendmail). "/etc/init.d/" 디렉토리에 실행 스크립트 파일 있다.

메모리에서 항상 구동되어야함.

service <서비스명> [실행옵션] 으로 실행 가능.

/etc/init.d/<서비스명> [실행옵션] 과 동일


inetd 타입 (xinetd 타입) 의 데몬 : 자신이 직접 서비스를 하지 않고, 외부에서 특정 서비스를 요청할 경우에 자신에게 종속된 데몬을 구동시킨 후 해당 데몬을 서비스 하도록 연결 시킴. 가끔 사용되는 데몬. "/etc/xinetd.d/" 디렉토리 안에 있음. xinetd 데몬이 서비스하는 포트는 "/etc/services" 파일에 설정.


GRUB 특징

부트 정보를 사용자가 임의로 변경하여 부팅 가능. 부트 정보가 올바르지 않더라도 수정하여 부팅 가능.

다른 여러 가지 운영체제와 멀티 부팅이 가능

대화식 설정을 제공해서 커널의 경로 및 파일명만 알고 있으면 부팅 가능

/boot/grub/grub.conf, /etc/grub.conf 는 링크 파일



/etc/passwd 

사용자 이름:비밀번호:사용자 ID:사용자가 소속된 그룹 ID:전체 이름:홈 디렉토리:기본 셸


/etc/shadow : 비밀번호 저장


/etc/group

그룹명:비밀번호:그룹 id:그룹에 속한 사용자명

반응형

'우분투 공부중 > Command' 카테고리의 다른 글

Oracle java7 설치  (0) 2013.10.23
우분투에서 자신의 공인아이피 보는법  (0) 2013.10.14
apt-get remove 사용  (0) 2013.10.12
ssh서버 설치  (0) 2013.09.27
vim 설치 & 설정  (0) 2013.09.27