입력명령

-       i : 커서 앞에 삽입

-       a : 커서 뒤에 삽입

-       I : 현재 줄 첫 칸에 삽입

-       A : 현재 줄 끝에 삽입

-       o : 현재 줄 다음에 삽입

-       O : 현재 줄 앞에 삽입

 

커서이동

-       k : , j : 아래, l : 오른쪽, h : 왼쪽

-       ^ 또는 0(숫자) : 줄의 시작으로 이동

-       $ : 줄의 마지막

-       + : 다음 줄의 처음, - : 이전 줄의 처음

 

화면이동

-       H : 키 화면 맨 위로, M : 중간으로, L : 아래로

-       w : 다음 단어 첫 문자, b : 이전 단어의 첫 문자, e : 다음 단어의 끝 글자

-       G 또는 :$ : 파일의 마지막 줄로 이동

-       :n 또는 nG : 줄 번호 n으로 이동

-       n+ : n줄만큼 앞으로 이동, n- : n줄만큼 뒤로

-       ( : 현재 문장의 처음으로, ) : 다음문장의 처음으로

-       { : 현재 문단의 처음으로, } : 다음문단의 처음으로

-       ^u : 반 화면 위로, ^d : 반 화면 아래로

-       ^b : 한 화면 위로, ^f : 한 화면 아래로

-       ^y : 한 줄만 위로, ^e : 한 줄만 아래로

-       ^l : 파일내용 다시 출력

 

내용삭제 및 취소 생략(x, dw, dd, D, u, U)

 

내용수정

-       r : 현재 커서위치의 한 문자 변경

-       R : 현재 커서부터 ESC 입력까지 변경

-       cw : 커서 위치부터 현재 단어의 끝까지 내용변경

-       cc : 커서가 위치한 줄의 내용 변경

-       s, ns : 현재 커서부터 내용변경(ex:5s)

-       C : 커서 위치에서 줄 끝까지 내용 변경

 

편집기능-복사, 잘라내기, 붙이기 생략(yy, dd, p, P)

 

검색

-       /문자열 : 현재위치부터 다음줄 쪽으로 문자열 탐색

-       ?문자열 : 현재위치부터 이전줄 쪽으로 문자열 탐색

-       n : 다음 문자열 탐색, N : 역방향으로 탐색

 

바꾸기 기능

-       :s/문자열1/문자열2/ : 커서가 위치한 줄에서만 문자열 1을 문자열 2로 바꿈

-       :<범위>s/문자열1/문자열2 : 범위 안에서 각 줄의 첫번째 문자열1->2로 바꿈

-       :<범위>s/문자열1/문자열2/g : 범위 안에서 모든 문자열1->2로 바꿈

-       :<범위>s/문자열1/문자열2/gc : 범위 안에서 모든 모든 문자열1->2로 치환할 때 묻고 바꿈

 

파일 읽어오기

-       :r 파일명 : 지정한 파일의 내용을 커서위치 뒤쪽에 삽입

-       :e 파일명 : 지정파일을 연다 (기존파일은 버퍼로 들어감)

-       :n : vi 시작 시 여러 파일을 열었을 경우 다음파일로 이동

 

쉘 명령 실행

-       :!명령어 : 해당 명령어를 쉘에서 실행함

-       :sh : vi를 잠시 빠져나가 쉘로 간다. 돌아올때는 exit(!bash 랑 같음)

 

기타

-       :f 파일명 : 파일이름을 지정한 이름으로 변경

-       :w %.old : 현재 파일을 .old 이름으로 저장해 둘 때

-       ^g : 기본적인 파일정보 출력(파일명, 현재 줄/전체 줄, 현재 칸, 전체 몇 %의 영역에 위치)

-       J : 현재 줄과 다음 줄 연결

-       . : 바로 이전에 수행한 명령 재 실행

-       ~ : 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환(->, ->)

 

vi환경 설정(생략, 따로 정리)


 

 

쉘 명령어

 

Touch [옵션] 파일

-       지정한 파일이 존재하지 않으면 생성, 있으면 현재 혹은 지정시간으로 변경

   -a : 접근 시간만 변경

   -c : 지정한 파일이 없는 경우 새로 생성하지 않음

   -m : 수정시간만 변경

   -r ref_file : 시간을 ref_file에서 읽음

   -t 시간입력 : 시간 직접입력 ( [[CC]YY]MMDDhhmm[.ss]  형식으로 입력)

 

쉘 특수문자(몇 가지 너무 흔한 건 생략)

-       ;     한 줄에 여러 개의 명령입력 (ex : date;cal;ls)

-       [ ]    한 문자 위치를 위한 문자 범위표시(ex ls [a-f])

-       |     명령어 파이핑 (ex : ls | grep home)

-       -     이전작업 디렉토리 (ex : cd -)

-       ‘ ‘    모든 쉘 문자 무시(ex : printf ‘$SHELL’)

-       ` `    쉘 명령 수행 (ex : printf “today : `date`”)

-       \    특수문자 기능 제거 (ex : printf”\$SHELL”)

 

입출력 방향 바꾸기

-       > : 새로운 파일로 생성, 기존파일 사라짐

-       >> : 기존 파일의 끝에 내용 추가

-       2> : 표준 오류 출력

-       < : 입력을 키보드에서 파일로 변경(ex : mailx user1 < loveletter)

 

쉘 환경변수

-       set : 쉘 변수(지역)

-       env : 환경변수(전역)

 

-       쉘 변수 정의 : 변수 = (MYENV=KSH)

-       환경 변수 : export 변수=

-       변수 값 확인 echo $변수(또는 printf)

-       변수 정의 해제 : unset 변수

 

프롬프트 설정

PS1에 저장된 값을 프롬프트로 사용함

echo $PS1으로 값을 확인

-       컬러 프롬프트 설정 : PS1=”^[[x;y;nm 프롬프트 ^[[x;y;0m”      (^[ctrl-v+[ 이다]

-       x,y는 색깔 번호를 뜻하고 n은 특수기능을 뜻함

-       특수기능 번호 - 0 : 기본색, 1 : 굵게, 4 : 흑백에서 밑줄, 5 : 반짝임, 7 : 역상, 10 : 기본폰트,

                   38 : 밑줄 사용가능, 39 : 밑줄 사용불가능

-       글자색 컬러번호 : 검정색30부터 시작->,,,,,청록,흰색으로 37까지

-       배경색 번호 : 검정색 40부터 시작->,,,,,청록,흰색으로 47까지

Ex) 프롬프트 파란색으로 : PS1=1”^[ [34;1mBlue! ^[ [0;0m”

 

 

 

파일의 사용권한 및 검색

 

파일의 종류

 ls –l 명령으로 파일과 디렉토리의 속성을 알 수 있다.

Ex) –rw-r—r—1 cn05777 2011 50 9 1 12:00 hello.c

다음과 같이 파일명이 나왔을 때, 맨 앞에(rw전에) 나오는 문자 하나는 파일의 종류를 의미

-       -   : 일반파일

-       d : 디렉토리 파일

-       b : 블록 단위로 읽고 쓰는 블록장치 특수 파일

-       c : 문자 단위로 읽고 쓰는 문자 장치 특수 파일

-       l : 기호적 링크

-       p : 파이프

-       s : 소켓

 

파일사용 권한

그 다음으로 나오는 rw-r—r—는 파일사용 권한을 의미한다.

-       읽기(r), 쓰기(w), 실행(x)

-       순서대로 rw-(소유자)r—(그룹)r—(기타사용자)를 의미

-       chmod [옵션] 모드 파일명       <-이렇게 사용 –R 옵션 주면 하위 디렉토리를 포함 싹 다

권한부여 방법들

1.     기호모드

n  u(소유자),g(그룹),o(기타사용자), a(모든 사용자)

n  +(허가권부여), -(허가권제거), =(허가권지정)

ex) u+w (소유자에게 쓰기 권한 부여)

ex) chmod go=rw first.dat 그룹과 기타에 읽기와 쓰기 권한 부여

ex) chmod +rwx first.dat 소유자는 rwx, 그룹과 기타사용자는 r-x

2.     숫자모드

n  rwx->111, rw- -> 110, r-x ->101 이런식으로 바꿔줌

그리고 8진수에 따라서 이 숫자를 써줌

ex) 755 ->rwxr-xr-x, 764->rwxrw-r—

 

3.     마스크

n  umask [마스크값]

n  umask를 치면 현재 마스크 값이 나온다

n  umask [8진수] (ex: umask 077)로 마스크값을 변경

n  허용하지 않을 값 umask 값으로 지정한다

n  Umask와 파일의 권한이 XOR되어 해당 권한이 제거된다

n  파일생성시 혹은 수정을 할 때 등에 umask가 자동으로 적용된다.

(그래서 chmod +rwx해도 그룹,기타에는 r-xr-x로 설정되는 것이다. 기본 mask 022)

 

 

파일내용 검색

 

grep : 지정한 파일에 패턴이 들어있는지 검색하는 명령어(해당 패턴이 있는 줄을 출력)

grep [옵션] 패턴 파일명들

 옵션 -i : 대소문자를 무시하고 검색

      -l : 해당 패턴이 들어있는 파일 이름을 출력

      -n : 각 라인의 번호도 함께 출력

      -v : 명시된 패턴과 일치하지 않는 줄을 출력

      -c : 패턴과 일치하는 라인수 출력

      -w : 패턴이 하나의 단어로 된 것만 검색

ex) grep –i hello hello.c   (hello.c안에있는 hello를 가져옴, 대소문자 무시)

 

메타문자

  ^ : 라인의 시작 해당 문자열로 시작하는 모든 행(ex : grep ^문자열 a.txt)

  $ : 라인의 끝 해당 문자열로 끝나는 모든 행(ex : grep 문자열$ a.txt)

  . : 한 글자 – .하나가 임의의 한글자로 대응됨(ex : grep a..b a.txt ->a로시작 b로 끝나는 4글자)

  ? : 없거나 한 글자 – ab?으로 쓰면 ab거나 ab다음 임의의 한 글자

* : 앞의 항목이 없거나 반복 – ab*쓰면 ab다음에 업거나 반복적라인 검색

[ ] : 괄호 안의 글자 중 하나 – [ab]d로 쓰면 ad혹은 bd검색

[^] : 괄호 안에 있는 글자가 아닌 글자 – [^a-m]att 쓰면 att앞에 a에서 m이 나오는 않는 라인 검색

 

 

egrep : grep의 확장판 명령

egrep [옵션] 패턴 파일명들

 메타문자

+ : 앞의 글자가 하나 이상 나옴 – [a-z]+ark하면 결과는 airpark, dark, bark, shark

x|y : x또는 y중 하나가 나옴

( | ) : 문자열 그룹 – (1|2)+하면 1또는 2가 하나이상, search(es | ing)하면 searches 또는 searching

 

fgrep : 문자열 검색

fgrep [옵션] 문자열 파일명들

-       이 명령어는 문자열에 들어가는 모든 문자를 일반 문자로 인식한다

*을 쓰거나 ?, + 등을 써도 특수한 메타문자대신 그냥 *,?,+로 인식함

 

find : 파일을 찾는 명령어

find 범위 표현식 동작

 범위설정 :  ~(홈 디렉토리에서 찾기 시작), .(현재 디렉토리에서 찾기 시작) 등등

 표현식

-       -name filename : 파일이름을 지정(메타문자사용 가능하나 “ “ 안에 있어야함)

-      -type : 파일종류(f : 일반파일, d : 디렉토리)

-       -mtime[+ | -]n : 수정(접근)시간으로 검색, +하면 n일보다 오래된거, -하면 n보다 짧거나 일치하는 파일 (atime도 있음) (여기서 n 24시간 단위, 2 48시간)

-       -user loginID : 해당 id가 소유한 파일 모두 검색

-       -size [+ | -]n : 파일크기 설정 +n보다 크거나 -n보다 작거나 크기 n인 파일검색(1=512bytes)

-       -newer : 기준시간, 기준시간보다 이후에 생성된 파일검색 (-newer 기준파일명)

-       -perm : 사용권한, 사용권한과 일치하는 파일검색(8진수로 입력)

동작종류

-       -exec 명령 {} \;   exec옵션은 \;으로 끝난다. 검색된 파일은 {}위치에 들어감

-       -ok 명령 {} \;     exec의 확인모드, 사용자의 확인을 받아야 명령적용

-       -print             화면에 경로명을 출력(기본동작임)

-       -ls                긴 목록형식으로 검색결과를 출력

결합기호

-       -a : and(기본임), -o : or, ! : not  <- 이 세가지 사용해서 결합가능

 

 

which : PATH 환경변수에 지정된 경로에서 명령을 찾음

which 명령 (ex : which ls   -> 결과는 /user/bin/ls)

 

whereis : 지정된 경로에서 명령검색(/usr/bin, /usr/sbin, /usr/game등등등)

whereis 명령

 

 

 

UNIX 프로세스의 종류

-       데몬 : UNIX커널에 의해 시작되는 프로세스로 서비스 제공을 위한 프로세스들

-       부모, 자식 프로세스(^^ 알겟지…)

-       고아 : 자식프로세스 종료 전에 부모가 종료된 프로세스, 고아는 1번 프로세스를 새 부모로 가짐

-       좀비 : 부모프로세스가 종료처리를 하지 않은 프로세스, 프로세스 테이블만 차지하고 있음

ps [옵션]

 옵션

-       -e : 시스템에 있는 모든 프로세스 목록 출력

-       -f : 프로세스에 대한 자세한 정보 출력

-       -u uid : 특정 사용자에 속한 모든 프로세스 출력

 목록보기

-       UID : 소유자의 사용자 ID

-       PID : 프로세스 번호

-       PPID : 부모 프로세스 번호

-       C : 프로세스 우선순위

-       STIME : 프로세스 시작시간

-       TTY : 터미널 번호( ? = 데몬 )

-       TIME : CPU 사용시간

-       CMD : 명령어 이름

 

pgrep : 프로세스 이름으로 찾아 정보를 출력(Solaris only라고 나와있지만 요즘 리눅스 다됨 - _-)

pgrep [옵션] 패턴

 옵션

-       -x : 패턴과 정확히 일치하는 PID 출력

-       -n : 패턴을 포함하고 있는 가장 최근의 PID출력

-       -U uid : 특정 사용자에 속한 PID출력

-       -l : PID와 프로세스 이름출력

-       -t term : 특정 터미널과 관련된 프로세스 출력

 

Kill : 프로세스 종료 (pkill)

kill [시그널] pid

 시그널 종류

-       1 (SIGHUP) : 터미널 연결이 끊어진 경우에 발생

-       2 (SIGINT) : 보통 ctrl-c에 의해 발생

-       9 (SIGKILL) : 프로세스 kill시킴, 무시불가능, 강제종료

-       15 (SIGTERM) : 프로세스 종료시킴, 무시될 수도 있음, 기본시그널(soft kill)

 

pkill [시그널] 프로세스명

-       사용방법은 kill와 같지만 프로세스명으로 사용가능

 

Foreground & background

-       Foreground는 사용자가 명령을 입력한 후 결과가 출력될 때까지 기다려야 하는 경우

-       Background는 처리결과 출력과 관계없이 다른 작업 계속함.(명령 실행 시 마지막에 &붙임)

 

Jobs : 백그라운드 작업을 모두 출력

Job은 쉘이 관리할 수 있는 프로세스(pid와 쉘이 할당한 job id있음)

Jobs [%작업번호] ->특정 작업의 정보만 출력

-       %+ 또는 %% 하면 작업순사가 +인 작업 정보 출력, %-하면 순서가 인 작업정보 출력

 

작업 전환 및 종료명령

bg [%작업번호] : 현재 작업 혹은 특정작업 백그라운드로 전환시켜 실행

fg [%작업번호] : 포그라운드로 전환시켜실행

ctrl+z : 포그라운드작업 중지시키고 백그라운드의 중지된 목록으로 보냄

stop %작업번호 : 백그라운드 수행중인 특정작업 중지

kill %n : 특정 작업을 종료

 

nohup 백그라운드명령

일반적으로 백그라운드 작업을 실행시킨 단말기나 사용자가 로그아웃 시 함께 종료된다.

로그아웃 후에도 작업이 완료될 때까지 실행해야 할 대 nohup사용

명령어 실행 결과와 오류메시지는 현재 디렉토리 nohup.out파일로 자동저장

 

users : 현재 시스템에 로그인하고 있는 사용자명을 출력

 

who : 시스템을 사용하고 있는 사용자의 정보를 출력

-       -q : 사용자명만 출력

-       -H : 출력항목의 제목도 함께 출력

-       -b :마지막으로 재부팅한 날짜와 시간을 출력

 

w [사용자명] : 로그인한 사용자정보와 현재하고 있는 작업정보를 출력

 

who am i whoami 명령의 차이

who am i는 자신의 정보를 출력한다(로긴ID, 시간, 아이피 등), whoami는 로긴ID만 출력

 

id [옵션] : 사용자의 로긴ID와 그룹정보를 출력

-       -a : 기본 그룹외에 2차 그룹정보도 출력

 

 

 

 

 

 

 

 

파일백업 및 압축명령

 

tar : 파일과 디렉토리를 묶어 하나로 만드는 것

tar 기능 [아카이브파일] 파일이름

기능

-       c : tar 파일 생성

-       t : tar 파일목록 보기

-       x : tar 파일 풀기

-       f : 아카이브파일이나 장치 등 지정

-       v : 표준출력으로 실행내용 출력

-       h : 심볼릭링크의 원본 파일 포함

 

jar : 여러 파일을 하나의 jar 아카이브 파일로 묶어서 압축

jar 옵션 [아카이브파일] 파일이름

 옵션

-       c : tar파일생성

-       t : 파일목록보기

-       x : tar파일풀기

-       f : 아카이브파일지정

-       v : 실행내용 출력

-       0 : 압축없이 아카이브 파일만 생성

 

pack / unpack : 확장자가 .z인 압축 파일 생성 및 해제

pack [옵션] 파일이름   /    unpack 파일이름

 옵션

-       - : 상세정보 출력

-       -f : 강제압축

 

pcat 파일이름          :   .z파일 내용을 화면에 출력

 

compress / uncompress : 확장자가 .Z인 압축파일 생성 및 해제

compress [옵션] 파일이름 / uncompress 파일이름

 옵션

-       -v : 압축관련 정보 출력

-       -c : 압축 결과를 화면에 출력. .Z 파일생성 안함

 

zcat 파일이름         : .Z파일 내용을 화면에 출력

 

gzip / gunzip : 확장자가 .gz인 압축파일 생성 및 해제

 옵션

-       -d : 압축해제

-       -l : 압축된 파일의 내용 출력

-       -r : 현재 디렉토리부터 하위 디렉토리까지 모두 압축

-       -t : 압축 파일 검사

-       -v : 압축정보 화면에 출력

-       -g : 최대한 압축

 

gzcat 파일이름    :   .gz파일 내용을 화면에 출력

 

zip / unzip  : 확장자가 .zip인 압축파일 생성 및 해제

zip [옵션] 파일이름   /  unzip 파일이름

-       -v : 압축정보 화면에 출력

 

 

통신명령

 

write 로그인ID [단말기명]       :  사용자에게 메시지를 보냄 작성 후 콘트롤+d누름 전송

wall [파일명]    :  로그인하고 있는 모든 사용자에게 메시지 전송,

파일명은 메시지를 파일로 저장했을 경우 지정

talk 사용자주소 [단말기명] : 다른 사용자와 1:1대화하기

(사용자명@호스트명, 같은 호스트면 사용자명만 지정)

mesg [y | n] : 메시지를 단말기로 출력하는 것을 허용 또는 거부

mailx [-sf] [사용자명@호스트]        / 내용작성 후 . 이나 ^D 입력하면 전송

 옵션

-       -s : 제목 지정

-       -f : mbox의 내용확인

 

hostname : 현재 시스템의 호스트명을 출력

ping 호스트명 또는 IP주소 : 시스템이 네트워크를 통해 연결되는지 확인

finger [id | id@host | @host] : 현재 로그인한 사용자 정보를 출력 

(who결과에 덧붙여 완전한 이름출력->/etc/passwd

@host하면 특정호스트의 사용자 목록 출력

ftp host명 또는 IP주소 : TCP/IP를 사용하는 파일송수신 명령

ftp명령어 생략 : bin, get, put, cd, bye pwd 등등)

 

 

 

 

유틸리티 명령

 

wc : 파일의 라인수, 단어수, 바이트, 문자수 출력

 옵션

-       -c : 바이트 수

-       -m : 문자수

-       -C : -m과 동일

-       -l : 라인수

-       -w : 공백이나 새로운 행으로 구분된 단어수

 

sort : 아스키 코드값을 기준으로 파일의 텍스트 내용을 정렬하여 화면에 출력

sort [옵션] 파일

 옵션

-       -b : 앞에 붙는 공백무시

-       -c : 정렬이 되지 않은 상태로 출력

-       -d : 사전식 순서로 정렬. 숫자, 문자, 공백만 비교(특수문자는 무시)

-       -f : 대소문자 구분안함

-       -m : 정렬된 파일을 통합

-       -n : 숫자를 산술값으로 전환해 정렬

-       -r : 역순정렬

-       -t 문자 : 지정한 문자를 필드 구분자로 사용

-       +번호 : 번호+1필드를 기준으로 정렬

-       +pos1 –pos2 : 정렬하고자 하는 필드의 열을 지정, pos1부터 pos2까지 정렬

 

split : 큰 파일을 일정한 크기의 여러 개 작은 파일로 분할

split [옵션] [파일]

 옵션

-       -b n : 크기가 n 바이트인 파일로 분할

-       -n : n줄씩 분할

(디폴트는 1000줄씩 분할),(파일을 지정하지 않으면 표준입력내용을 분할 저장)

 

uniq : 파일/표준입력으로 입력된 내용 중 중복된 내용의 줄이 연속으로 있으면 하나만 남김

uniq [옵션] [입력파일 [출력파일] ]

 옵션

-       -u : 중복되지 않는 줄만 출력

-       -d : 중복된 줄 중 1줄만 출력

-       -n : 원하는 필드 앞의 공백과 문자열 무시. n은 필드번호

-       -c : 앞에 붙어있는 라인번호는 그대로 유지한다

(파일을 지정하지 않으면 표준입력내용을 처리, 입출력 파일 이름은 달라야 함)

cut : 파일의 각 행에서 선택된 필드를 잘라햄

cut [옵션] [파일]

 옵션

-       -c 리스트 : 각 줄에서 잘라낼 문자 위치 지정

(ex : cut –c5-8 -> 5번째전까지 그리고 8번째이후 자름, cut –c5하면 5번째 문자 외 다 자름)

-       -f 필드수 : 지정한 필드 잘라냄

-       -d 문자 : 필드 구분자

 

paste : 사용자가 지정한 두 개 이상의 파일 내용 중 같은 줄을 붙이거나 파일 끝에 다른 파일의 내용을 추가

paste [옵션] [파일1 파일2 …]

 옵션

-       -s : 파일의 끝에 추가(split으로 나눈 파일을 원래대로 붙일 때, 수평붙이기)

-       -d문자 : 필드 구분자

-       - : 파일대신 표준입력 사용

 

dd : 지정한 입력파일을 지정한 옵션에 따라 변환하여 출력파일로 저장

dd [옵션] [if=입력파일] [of=출력파일]

 옵션

-       bs=n : 입출력 블록의 크기를 n바이트로 지정

-       conv=lcase : 알파벳을 소문자로 변환

-       conv=ucase : 알파벳을 대문자로 변환

 

 출처 - http://arings.tistory.com/entry/Unix-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC1

+ Recent posts