arp

# arp [옵션]

arp는 커널의 ARP 테이블을 조작하기 위한 명령이다. ARP 테이블은 네트워크를 통해 연결되어 있는 호스트의 IP 주소와 실제 물리적인 이더넷 MAC 주소가 대응되어 있는 지도라고 할 수 있다. 실제로 네트워크를 통해 컴퓨터끼리 데이터를 주고받는 데에는 네트워크 카드 제조사에 부여된 하드웨어 주소인 MAC(Media Address Control) 주소를 사용한다. 특정 IP 주소에 대한 네트워크 전송 요청이 생기면 리눅스는 이 ARP 테이블을 보고 물리적인 주소인 MAC 주소를 알아낸다.

-a [IP주소] : ARP 테이블을 표시한다. 명령 뒤에 IP 주소가 지정되면 컴퓨터의 IP 주소와 MAC 주소만 표시된다.

-d [IP주소] : ARP 테이블에서 주소의 호스트를 지운다.

-s : ARP 테이블에 강제로 호스트를 추가하고 호스트의 IP 주소와 MAC 주소를 연결할 때 사용한다.

yum

# yum [명령] [옵션] [패키지이름]

yum은 온라인 패키지 관리 도구이다. yum은 레드햇 패키지 관리 도구인 rpm을 기반으로 한다. 시스템 관리자는 yum을 이용하여 네트워크로 연결되어 있는 패키지 저장소에서 패키지를 검색하거나 내려받아 설치할 수 있다.

check-update : 패키지 저장소의 패키지 정보를 업데이트한다.

search [검색어] : 패키지를 검색한다.

install [패키지이름] : 패키지를 설치한다.

update [패키지이름] : 패키지의 버전을 판올림한다. 특정 패키지 이름을 지정하지 않는다면 시스템에 설치되어 있는 모든 패키지의 버전을 판올림할 것이다.

remove [패키지이름] : 패키지를 없앤다.

smbpasswd

# smbpasswd [옵션]

smbpasswd는 삼바 사용자 계정의 비밀번호를 변경하는 명령이다. 루트 계정에서 smbpasswd 명령을 수행하면 리눅스 서버의 사용자 계정(/etc/passwd에 등록되어 있는 사용자)을 삼바 사용자 계정으로 등록할 수 있다. 이렇게 추가된 삼바 사용자 계정은 /etc/smbpasswd에서 확인할 수 있다.

-r [원격호스트이름] : 비밀번호를 변경할 삼바 서버의 이름을 지정한다.

-a [사용자이름] : 삼바 사용자 계정을 추가한다.

-d [사용자이름] : 삼바 사용자 계정을 비활성화(disabled)한다.

-e [사용자이름] : 삼바 사용자 계정을 활성화(enabled)한다.

-n : 사용자 계정의 비밀번호가 없도록 설정한다.

usermod

# usermod [옵션] [사용자계정]

usermod는 리눅스 사용자 계정의 정보를 변경하기 위한 명령이다.

-c [사용자에대한설명] : 사용자에 대한 설명 필드의 내용을 수정한다.

-d [홈디렉터리] : 사용자의 홈 디렉터리를 변경한다.

-e [계정만료일] : 사용자의 비밀번호 만료 날짜를 변경한다.

-G [그룹] : 사용자의 그룹을 변경한다.

-u [UID] : 사용자의 UID(User ID)를 변경한다.

-l [사용자계정] : 사용자의 계정 이름을 변경한다.

smbclient

# smbclient //[서버이름]/[공유자원이름] [비밀번호] [옵션]

smbclient는 SMB 프로토콜을 통해 네트워크 공유 자원에 접근할 수 있는 클라이언트 프로그램이다. ftp 클라이언트와 같이 명령 행을 바탕으로 한 서버와의 상호작용을 제공한다. '//[서버이름]/[공유자원이름]'과 같은 형식으로 네트워클 공유 자원에 접근할 수 있으며 자원에 비밀번호가 설정되어 있는 경우 직접 명령 행에서 비밀번호를 입력할 수 있다. smbclient로 로그인에 성공하면 smbclient 프롬프트('smb:\=')가 나타나며 ftp 클라이언트와 비슷한 여러 가지 명령을 사용할 수 있다.

-l [IP주소] : 접속 대상 호스트의 IP 주소를 입력한다.

-p [포트번호] : 클라이언트가 요청을 받아들일 포트 번호를 입력한다.

-L [서버이름] : 컴퓨터가 제공하는 공유 자원과 서비스에 대한 목록을 표시한다.

-t [터미널코드] : 한글 파일 이름을 보기 위한 문자 세트를 지정할 수 있다.

-s [환경설정파일] : 삼바 환경설정 파일의 위치를 지정한다.

-l [로그파일] : 지정된 파일로 로그 기록을 내보낸다.

-W [작업그룹이름] : 클라이언트가 연결을 원하는 작업그룹을 지정한다.

wget

# wget [옵션] [주소]

wget는 텍스트 환경에서 인터넷을 통해 파일을 받아오기 위한 명령이다. 인터넷의 기본 프로토콜인 HTTP, FTP 프로토콜을 지원한다. 단순히 파일의 주소만 입력해주기만 하면 파일을 내려받기 시작한다.

-b : 내려받는 파일의 용량이 많을 때 wget 명령을 백그라운드 프로세스로 실행한다.

-o [파일이름] : 파일을 받아오는 동안의 로그 정보를 남길 파일을 지정한다.

-i [파일이름] : 받아올 파일이 많을 경우 파일의 목록을 하나의 파일로 만들어서 wget 명령에 전달할 수 있다. 받아올 파일의 목록이 기록되어 있는 파일을 지정한다.

sort

# sort [옵션]

sort는 텍스트 파일의 문자를 줄 단위로 정렬하는 명령이다. 명령 뒤에 [파일이름]이 없다면 정렬 결과를 표준 출력(모니터)으로 출력할 것이다.

-c : 이미 정렬된 상태인지 검사하고 정렬된 상태라면 정렬하지 않는다.

-b : 정렬을 할 때 행의 앞부분에 있는 공백을 무시한다.

-d : 정렬의 기준으로 영어 알파벳 대소문자와 숫자만을 고려한다.

-o [파일이름] : 정렬 결과를 지정된 파일로 출력한다.

-r : 내림차순으로 정렬한다.

ssh

# ssh [사용자]@[SSH서버주소]

# ssh -l [사용자] [SSH서버주소]

ssh는 명령 행에서 사용할 수 있는 OpenSSH 클라이언트 프로그램이다. 리눅스의 명령 프롬프트에서 원격 접속을 위해 사용된다.

-l [사용자계정] : 서버에 로그인할 사용자 계정을 지정한다.

-p [포트번호] : SSH 서버의 포트 번호를 지정한다.

-F [환경설정파일] : ssh 클라이언트의 기본 환경설정 파일을 지정된 설정 파일로 대체한다.

logout

# logout

logout은 현재의 세션을 끝내기 위한 명령이다. X 윈도우 세션에서 로그아웃을 하면 X 윈도우 사용자의 세션을 끝내고 처음 로그인 화면으로 돌아가는 것과 같은 원리로 원격 터미널에서 로그아웃하면 터미널 접속을 끝낸다.

ssh-keygen

# ssh-keygen [옵션]

ssh-keygen은 리눅스에서 SSH 접속에 사용되는 인증 키를 만드는 명령이다. 명령을 입력하고 키가 저장될 파일을 지정한 다음 키에 접근하기 위해 필요한 passphrase를 지정하면 SSH 인증 키가 만들어진다.

-t [rsa 또는 rsa1] : 인증 키 형식을 지정한다. rsa는 SSH 프로토콜 버전 2로, rsa1은 SSH 프로토콜 버전 1로 저장한다.

-f [파일이름] : 인증 키를 저장할 파일을 지정한다.

init

# init [옵션(실행단계)]

init 명령은 시스템 초기화 프로세스 init를 시작(재시작)하는 명령이다. 이때 init 명령의 옵션으로 실행 단계를 지정하면 현재 세션을 끝내고 inittab에 설정되어 있는 각 실행 단계로 전환합니다. 예를 들면 잠깐 동안 X 윈도우 환경에서 콘솔 환경으로 전환할 때 유용하게 사용할 수 있다. /etc/inittab을 편집하여 기본 실행 단계를 3으로 지정하고 시스템을 재부팅할 필요 없이 터미널에서 'init 3'이라는 명령을 입력하면, X 윈도우를 끝내고 바로 콘솔 환경으로 전환될 것이다.

init 0 : 시스템을 끝낸다.

init 1 ~ init 5 : 지정한 실행 단계로 부팅한다.

init 6 : 시스템을 다시 재부팅한다.

init S 또는 init single : 단일 사용자 모드로 부팅한다.

telnet

# telnet [옵션] [접속대상호스트] [포트번호]

telnet 명령은 원격 접속을 위한 TELNET 프로토콜을 통해서 다른 호스트에 접속하기 위한 명령이다. telnet 클라이언트 명령으로서 접속 대상 호스트에 telnet 서버가 운영되고 있어야 접속할 수 있다. 호스트 다음에 특정 포트 번호(텔넷의 기본 포트 번호는 23번으로 예약되어 있음)를 입력함으로써 다른 포트 번호를 사용하는 호스트에 접속할 수 있다.

-a : 자동 접속을 시도한다. 환경 변수 USER에 설정되어 있는 현재 로그인해 있는 사용자 계정을 접속 대상 호스트로 전송할 것이다.

-l : 접속 대상 호스트에 로그인할 사용자 계정을 지정한다.

grub-install

# grub-install [옵션] [장치이름]

grub-install은 부트로더 GRUB를 지정한 영역에 설치하는 명령이다. 장치 이름에는 디스크 파티셔느이 장치 파일 이름을 입력한다. 이때 일반적인 리눅스 시스템 장치 파일 이름인 /dev/hdXX와 같은 형식으로 입력할 수도 있지만, GRUB 형식의 이름 hd0과 같이 사용하는 것도 허용된다.

--root-directory=[디렉터리] : 루트 디렉터리 대신 GRUB 이미지를 설치할 디렉터리를 명시할 수 있다.

--force-lba : 오래되거나 버그와 같은 문제가 있는 바이오스 환경에서 GRUB를 설치하기 위해 LBA 모드를 활성화한다.

mke2fs

# mke2fs [옵션] [장치이름]

mke2fs는 디스크 장치에 리눅스 파일 시스템을 만들기 위한 명령이다. 장치 이름에는 /dev/hdXX와 같이 디스크 파티션의 장치 파일 이름을 입력한다.

-b [블록크기] : 바이트 단위로 만들어지는 파일 시스템의 블록 크기를 지정한다.

-c : 파일 시스템을 만들면서 배드 블록이 있는지 물리적으로 점검한다.

-v : 파일 시스테이 만들어지는 과정을 자세하게 표시한다.

startx

# startx [클라이언트] [옵션] [--서버] [옵션]

startx는 X 윈도우를 실행하는 명령 스크립트이다. '스크립트'라는 말에서 알 수 있듯이 단순히 X 윈도우를 실행하는 명령뿐만 아니라 X 윈도우를 실행하기 위해 등록되어 있는 다양한 환경설정 명령을 먼저 내리고 최종적으로 X 윈도우를 실행한다.

-- -depth [색상] : X 서버의 색상수를 지정한다.

-- -dpi [해상도] : X 서버의 해상도를 지정한다.

export

# export [환경변수]=[값]

export 명령은 환경 변수를 지정, 변경하거나 현재 정의되어 있는 환경 변수를 보여주는 명령이다. 환경 변수를 변경함으로써 명령 프롬프트에서 실행한 프로그램에 영향을 미치게 된다. 다만 export 명령에 의해 변경되 환경 변수는 export 명령을 실행한 사용자의 로그아웃 전까지만 유효하며 영구적으로 변경하기 위해서는 환경 변수를 정의하는 설정 파일(/etc/profile 등)을 직접 수정해야 한다.

uname

# uname [옵션]

uname 명령은 현재 시스템에 대한 정보를 표시하는 명령이다. 다양한 옵션을 이용해서 원하는 정보를 확인할 수 있다.

-a : 시스템의 모든 정보를 표시한다. -s : 시스템의 커널의 이름을 표시한다.

-n : 시스템의 호스트 이름을 표시한다. -r : 커널의 릴리스 정보를 표시한다.

-v : 시스템의 커널 버전을 표시한다. -m : 하드웨어의 아키텍처 정보를 표시한다.

-i : 하드웨어 플랫폼 정보를 표시한다.

init

init는 실행 단계를 변경할 수 있는 명령이다.

setkeycodes

# setkeycodes [스캔코드] [키코드]

setkeycodes 명령은 스캔 코드를 키코드에 대응시키는 명령이다. 명령의 첫 번째 인자는 스캔 코드로서 키마다 정해져 있는 키 값을 뜻한다. 키코드는 커널에서 키보드의 각 키마다 부여한 키 값으로 setkeycodes는 스캔 코드 값을 두 번째 인자인 키 코드 값으로 커널에 등록할 것이다.

showkey

# showkey [옵션]

showkey는 키보드로부터 입력된 키를 테스트하기 위한 명령이다. 키보드 키를 누르는 순간 해당 키 코드에 대한 press 메시지가 출력되고 키에서 손을 떼는 순간 release 메시지가 출력될 것이다.

-s : 키보드의 스캔 코드 값을 출력한다.

-k : 키보드의 키 코드 값을 출력한다.

-a : 키보드의 아스키 값을 출력한다.

xev

# xev [옵션]

xev는 X 윈도우에서 벌어지는 이벤트를 출력하는 명령이다. xev 명령을 실행하면 창이 하나 뜨는데 이 창에서 벌어지는 키보드 입력, 마우스의 이동, 마우스 클릭 등 모든 이벤트를 수치 정보로 보여준다.

-display : 이벤트 정보를 출력할 X 윈도우 서버를 지정한다.

-geometry : 이벤트 정보를 받아들일 창의 크기, 위치를 지정한다.

-bw : 이벤트 정보를 받아들일 창 테두리선의 두께를 지정한다.

xmodmap

# xmodmap [옵션] [파일이름]

xmodmap은 X 윈도우에서 키보드의 키 코드를 해당하는 키와 대응시키는 명령이다. 현재 키보드에 설정되어 있는 키코드 값을 변경하거나 새로운 키코드 값을 추가한다. 옵션 keycode를 이용해서 하나의 키에 대한 키코드를 지정할 수도 있지만, 예제에 나온 것처럼 Xmodmap이라는 파일로 여러 키의 키코드를 일괄적으로 등록하는 것이 일반적이다.

-e : 특정 키 코드를 해당 키와 대응시킨다.

-pk : 현재 키 코드에 대응되어 있는 키 값을 보여준다.

locale

# locale [옵션]

locale은 현재 로케일 상태를 확인하는 명령이다. locale 명령으로 확인할 수 있는 환경 변수는 LANG(언어), LC_CTYPE(문자), LC_COLLATE(문자 정렬 순서), LC_MESSAGE(메시지 표현을 위한 특별한 설정), LC_NUMERIC(숫자), LC_MONETARY(화폐 단위), LC_TIME(시간과 날짜) 등이 있다.

-a : 로케일을 확인한다.

dmesg

# dmesg [옵션]

dmesg는 커널의 상태 정보를 확인하기 위한 명령이다. 리눅스가 부팅될 때의 각종 메시지를 다시 볼 때 이 명령을 사용한다.

-n [실행단계] : 해당 실행 단계의 상태 정보만 보여준다.

lsmod

# lsmod

lsmod는 커널 메모리에 올라가 있는 모듈들의 목록을 보여주는 명령이다. 모듈의 이름(Module), 모듈의 크기(Size), 모듈이 사용되고 있는 횟수(Used), 해당 모듈을 참조하고 있는 다른 모듈(by)를 표시한다. 이 명령의 결과는 /proc/modules에서도 확인할 수 있다.

modprobe

# modprobe [모듈이름] [옵션]

modprobe 명령은 커널 모듈을 커널 메모리에 적재하는 데 사용하는 명령이다. 모듈 이름에는 커널에 올리려는 모듈을 /lib/modules 디렉터리에서 찾고 이를 입력한다.

rmmod

# rmmod [옵션] [모듈이름]

rmmod는 커널 메모리에서 해당 모듈을 내릴 때 사용하는 명령이다. 어떤 장치의 경우 모듈을 함부로 내릴 수 없는데, rmmod 명령을 입력하면 Device or resource busy라는 메시지가 나타날 것이다.

-r : 의존 관계에 있는 모든 모듈을 한꺼번에 내린다.

mysqladmin

# mysqladmin [옵션] [명령]

mysqladmin은 MySQL 데이터베이스 관리자 명령이다. 명령에 특정 키워드를 입력하면 데이터베이스에 직접 로그인하지 않은 리눅스 명령 프롬프트에서 데이터베이스 관리와 관련된 작업(MySQL 종료, 재시작, 새로운 데이터베이스 생성과 삭제 등)을 수행할 수 있다.

다음과 같은 명령을 사용할 수 있다.

status : 데이터베이스의 상태를 출력한다.

shutdown : 데이터베이스를 끝낸다.

reload : 데이터베이스를 재시작한다.

create [데이터베이스이름] : 새로운 데이터베이스를 만든다.

drop [데이터베이스이름] : 데이터베이스를 지운다.

-u [사용자 계정] : 데이터베이스에 접속하는 MySQL 사용자 계정을 지정한다.

-p [비밀번호] : 데이터베이스에 접속하기 위한 사용자 계정의 비밀번호를 지정한다(※ 주의 : -p 옵션 뒤에 공백 없이 비밀번호를 입력해야 한다).

--default-character-set=[문자세트] : 데이터베이스의 기본 문자 세트를 지정한다.

-h [호스트이름] : 접속할 대상 데이터베이스의 호스트 이름을 지정한다.

-P [포트번호] : 접속할 대상 데이터베이스의 포트 번호를 지정한다.

--protocol=[프로토콜] : 데이터베이스에 접속할 때 사용할 프로토콜을 지정한다.

mysql

# mysql [옵션] [데이터베이스이름]

mysql은 MySQL의 데이터베이스에 접속하기 위한 클라이언트 명령 행 도구이다. 로그인에 성공하면 MySQL 명령 프롬프트('mysql>')가 나타나는데 여기에서 데이터베이스를 조작할 수 있는 명령을 내릴 수 있다.

-D [데이터베이스이름] : 접속할 데이터베이스 이름을 지정한다.

-u [사용자계정] : 데이터베이스에 접속하는 MySQL 사용자 계정을 지정한다.

-p [비밀번호] : 데이터베이스에 접속하기 위한 사용자 계정의 비밀번호를 지정한다(※ 주의 : -p 옵션 뒤에 공백 없이 비밀번호를 입력해야 한다).

--default-character-set=[문자세트] : 데이터베이스의 기본 문자 세트를 지정한다.

-h [호스트이름] : 접속할 대상 데이터베이스의 호스트 이름을 지정한다.

-P [포트번호] : 접속할 대상 데이터베이스의 포트 번호를 지정한다.

--protocol=[프로토콜] : 데이터베이스에 접속할 때 사용할 프로토콜을 지정한다.

sh

# sh [셸스크립트 파일]

sh는 리눅스와 유닉스의 기본 셸 스크립트 언어로 짜인 스크립트 파일을 실행하는 명령이다.

ping

# ping [옵션]

ping은 네트워크 연결 상태를 검사하기 위한 도구이다. ICMP 프로토콜 형식의 패킷을 보내어 연결 상태를 확인한다.

-c [횟수] : ping을 통해 보낼 패킷의 수를 지정한다.

-i [초] : 정해진 시간 간격(초 단위)으로 패킷을 보낸다.

-l [네트워크 인터페이스] : 패킷을 보낼 네트워크 인터페이스를 지정한다.

-s [패킷크기] : 보낼 패킷의 크기(바이트 단위)를 지정한다.

-t [ttl] : 패킷의 ttl 값을 지정해서 보낸다.

※ttl(Time To Live) 값이란?

-> ttl은 ping으로 보낸 패킷이 네트워크에서 영원히 돌아다니는 것을 막기 위해(이렇게 되면 네트워크의 부하가 커질 것이다) 패킷이 자동으로 소멸하는 시간 간격을 말한다. ttl의 시간 간격은 일반적으로 라우터를 통과할 때마다, 패킷이 다른 네트워크로 넘어갈 때마다 줄어들어 ttl이 0이 되면 패킷은 소멸한다.

sestatus

# sestatus [옵션]

sestatus는 SELinux 시스템의 상태를 확인하기 위한 명령이다.

-v : /etc/sestatus.conf에 등록되어 있는 파일, 프로세스 보안 문맥을 확인한다.

chcon

# chcon [옵션] [보안문맥] [파일이름]

chcon은 파일의 보안 문맥을 변경할 때 사용하는 명령이다.

-r : 파일 보안 문맥 중 역할(role) 필드를 변경한다.

-t : 파일 보안 문맥 중 유형(type) 필드를 변경한다.

-u : 파일 보안 문맥 중 신분(identity) 필드를 변경한다.

-R : 하위 디렉터리의 파일과 디렉터리에 대해 보안 문맥을 적용한다.

setsebool

# setsebool [보안정책] [1 또는 0]

setsebool은 system-config-securitylevel에서 설정할 수 있는 SELinux의 보안 정책을 터미널 환경에서 제어하는 명령이다. 보안 정책은 각 항목별로 표시되는데 1은 활성, 0은 비활성 상태임을 나타낸다.

-P : -P 옵션이 주어지면 보안 정책을 디스크에 반영하게 된다. 다시 부팅을 하더라도 설정한 보안 정책이 유지될 것이다. -P 옵션이 없다면 현재 설정되어 있는 보안 정책에만 영향을 미칠 것이며, 시스템의 보안 정책이 정의되어 있는 파일 /etc/selinux/SELINUXTYPE/booleans은 수정되지 않을 것이다.

crontab

# crontab [-u 사용자] [파일] 옵션

crontab 명령은 작업할 내용을 작성하거나 현재 설정되어 있는 작업 스케줄을 확인하거나 이미 설정되어 있는 작업을 지우는 등의 스케줄 관리를 할 수 있다.

-u : 작업을 수행할 사용자를 지정한다.

-e : 작업할 내용을 작성한다.

-l : 현재 설정되어 있는 작업 내용을 확인한다.

-r : 설정되어 있는 작업 스케줄 정보를 지운다.

rdate

# rdate [옵션] [타임서버주소]

rdate는 네트워크를 통해 타임 서버에서 날짜와 시간 정보를 받아오는 명령이다.

-p : 타임 서버에서 받은 날짜와 시간 정보를 표시한다.

-s : 타임 서버에서 받은 날짜와 시간 정보를 시스템의 현재 시간으로 지정한다.

-u : 타임 서버에서 날짜와 시간정보를 받는 데 UDP 프로토콜을 사용한다.

hwclock

# hwclock [옵션]

hwclock는 하드웨어 시간(바이오스에서 받아온 시간 정보)을 현재 시스템의 시간으로 설정하는 명령이다.

-r : 받아온 하드웨어 시간을 표시한다.

-w 또는 --systohc : 받아온 하드웨어 시간을 시스템의 현재 시간으로 지정한다.

--utc : 시간 정보를 국제적인 시간 기준인 UTC(Universal Time Coordinated)로 지정한다.

--localtime : 시간 정보를 일반적인 지역별 시간대로 지정한다.

logrotate

# logrotate

logrotate는 시스템 로그를 순환시키기 위한 명령이다.

-d : logrotate를 디버그 모드로 실행한다.

-f : 로그 순환을 중지한다.

-s [상태파일] : 특정 상태 파일에 대한 순환을 지시한다. 다양한 형태의 로그를 순환시킬 때 필요한 옵션이다.


'먹고살기 > Unix' 카테고리의 다른 글

공백제거  (5) 2014.03.21
쉘 스크립트  (0) 2011.06.30
리눅스 실무 명령어  (0) 2011.04.29