쉘 환경변수의 종류

1. 지역 환경 변수 (쉘 변수)

2. 전역 환경 변수 (환경 변수)

 

예약되어 있는 환경 변수

 

$PATH         실행파일을 찾을 경로

$HOME        현재 로그인한 사용자의 홈 디렉토리 경로

$LANG         쉘에서 사용하는 언어

$SHELL         로그인 시 사용하는 쉘

$PS1            프롬프트

$HISTSZIE     히스토피 파일에 저장되는 명령어 개수

$HISTFILE      히스토리 파일 경로

#echo $SHELL

 

변수 값 확인

#echo [변수명]

#echo $PATH

#echo $HOME

#echo $SHELL

 

$PATH 변수 테스트

# cp /bin/ls ./
# mv ls 123    // ls 파일의 이름을 123으로 변경

#123

-bash: 123: command not found

PATH=$PATH:/root

 

이제 123이 실행 된다.

 

'리눅스 ' 카테고리의 다른 글

계정생성  (0) 2017.04.01
환경 변수  (0) 2017.04.01
다중 명령어  (0) 2017.03.26
리다이렉션  (0) 2017.03.26
파이프,메타문자  (0) 2017.03.26

다중 명령어

1. [명령어1] ; [명령어2]

- 첫 번째 명령어 부터 순차적으로 실행

-첫 번째 명령어가 실패하여도 반드시 실행

 

2. [명령어1] && [명령어2]

- 첫 번째명령이 에러가 아닐 시 두번째 명령을 실행

 

CMD = 정상 명령어     EX) #pwd, #ls, #date

ERR = 오류 명령어        EX) #qwer

 

[CMD1] && [CMD2] -> CMD1,2 정상 출력

[CMD1] && [CMD2] && [CMD3] -> CMD1,2,3 정상 출력

[ERR1] && [CMD2] && [CMD3] -> 에러메세지

[CMD1] && [ERR2] && [CMD3] -> CMD1 정상 출력후 에러메세지

   CMD3 실행 조차 안됨

- 에러가 발생하는 시점에서 명령 실행 종료

 

3. [명령어1] || [명령어2]

[ CMD1 ] || [ CMD2 ]        //CMD1 실행

[ ERR1] || [CMD2]        //오류메세지 발생후 CMD2 실행

 

[ CMD1 ] || [ CMD2 ] [CMD3]       //CMD1 실행

[ CMD1 ] || [ ERR2 ] [CMD3]         //CMD1 실행

[ ERR1 ] || [ ERR2 ]  [CMD3]        //ERR1,2 출력 후 CMD3 실행

 

-즉, 명령어가 정상으로 실행된 시점까지만 실행(출력)

 

 

'리눅스 ' 카테고리의 다른 글

환경 변수  (0) 2017.04.01
쉘 환경변수 종류  (0) 2017.03.26
리다이렉션  (0) 2017.03.26
파이프,메타문자  (0) 2017.03.26
Server-B Client-Linux 둘다 Xshell연결  (0) 2017.03.26

리다이렉션(Redirection)

 

파일 리스크립터 (File Discriptor, fd)

-리눅스의 일반 파일과 장치파일을 포함한 모든 파일을 관리하는 방식

-파일을 열거나 실행할때 혹은 명령어를 입력하면은 커널이 프로세스를 실행시켜 기본적으로 사용하는 장치들과 추가로 실행한 프로세스가 있다면 이정보를 파일디스크립터 테이블이라는 곳에 저장하는데, 이대 파일 디스크립터 테이블에 비어있는 0번부터 순차적으로 지정하고 가장 기본적으로 사용되는 장치에 대해서는 디스크립터 테이블에 미리 예약되어 있다.

 

-표준 입력장치 (키보드) fd/0 stdin

-표준 출력장치 (모니터) fd/1 stdout

-표준 에러장치 (모니터) fd/2 stderr

 

리다이렉션

-표준입력과 출력의 방향을 재지정하는 방법

 

명령어 입력 (키보드/표준입력) -> 명령어 결과 (모니터/표준출력)

 

출력 리다이렉션

- 화면에(표준출력)나오는 결과를 파일 내용으로 전달

#echo 'show me the money' 1> echo_test

 

fd번호 1은 생략 가 능

 

#cat > [파일명]

내용입력 후, 엔터 한번 치고

Ctrl + D ( 저장 ) 

 

# mkdir /practice/day4
# cd /practice/day4
# cp /etc/resolv.conf ./
# cat resolv.conf

ex) nameserver 8.8.8.8

#cat resolv.conf 1> redirection_test    //표준입력 후 결과를 출력아닌 파일로 재지정

 

#cat > cat_test1     //표준입력은 1은 생략 가능

//기존 파일이 없다면 생성

cat_test!!!! [Enter]    //개행 후

[Ctrl+d]                //저장

#cat cat_test1        //cat_test1 내용 확인

cat_test!!!!

 

#cat > cat_test1        // 파일 내용입력 후 생성

cat_test????    //내용 입력 후 저장 (Ctrl +D)

 

#cat cat_test1        //기존에 있던 cat_test!!!! 없어지고

  새롭게 썼던 cat_test???? 만 존재

즉, 파일의 내용을 덮어쓴다.

 

Bash 쉘에서 파일 덮어쓰기 방지하기 위한 설정

# set -o noclobber    //덮어쓰기 방지 설정

#cat > cat_test1

 

 

-bash: cat_test1: cannot overwrite existing file (이런식으로 덮어쓰기를 방지한다.)

 

#set +o noclobber     //덮어쓰기 방지 설정 해제

 

 

추가 리다이렉션

[명령어] >> [파일] - 기존 파일에 내용 추가

 

#ls > ls_test

#date > ls_test

#ls > ls_test

#date >> ls_test

#pwd >> ls_test

#cal >> ls_test

 

오류 리다이렉션

#ls error_test        //오류메세지 발생

ls: cannot access error_test: 그런 파일이나 디렉터리가 없습니다

#ls error_test 1> err1

ls: cannot access error_test: 그런 파일이나 디렉터리가 없습니다

하지만 err1 파일은 만들어졌다. 그러나 안에 내용은 없다.

 

 

 

# ls error_test 2> err1        //표준 에러의 방향을 파일로 재지정
오류 출력메세지 x

# cat arr1

ls: cannot access error_test: 그런 파일이나 디렉터리가 없습니다

 

오류 메세지 출력하지 않기

/dev/null -리눅스 특수 파일로 파일의 내용을 지우거나, 오류메세지를 해당 파일로 리다이렉션하여 출력하지 않을 수 있다.

    (윈도우 쓰레기통과 비슷)

 

# cat ls_test 1> /dev/null            //출력결과를 null파일로 재지정

# cat ls_test 2> /dev/null            //출력에러결과를 null파일로 재지정

#ls / 1> /dev/null        //정상 결과 출력하지 않음

# ls / 2> /dev/null        //에러 결과 출력 하지 않음

입력 리다이렉션

 

[명령어] < [파일]

#sort < /etc/passwd    == sort /etc/passwd

#cat < /etc/passwd     == cat /etc/passwd

#head -1 < /etc/passwd == head -1 /etc/passwd

#tail -2 < /etc/passwd    == tail -2 /etc/passwd

 

 

tail <a.txt> b.txt

(1) a.txt 내용을 tail 명령어 입력 값으로 리다이렉션 (#tail a.txt)

(2) tail 명령어는 입력은 a.txt의 내용에서 마지막 10줄 출력

(3) tail 명령어의 출력결과를 b.txt파일에 리다이렉션

(4) 화면에 출력이아닌 b.tx t파일 안에 결과가 저장

 

cat < a.txt > b.txt 와 동일한 명령어는??

#cp a.txt b.txt


 

 

 



 

'리눅스 ' 카테고리의 다른 글

쉘 환경변수 종류  (0) 2017.03.26
다중 명령어  (0) 2017.03.26
파이프,메타문자  (0) 2017.03.26
Server-B Client-Linux 둘다 Xshell연결  (0) 2017.03.26
텍스트 편집기의 종류,vi사용법  (0) 2017.03.26

 파이프

-프로세스(프로그램)간에 실행되는 입출력을 다음 프로세스에게 전달하는 방식

 

    출력                입력

#cat /etc/passwd | grep root

#cat /etc/services | more

#cat /etc/services | tail -1

#cat /etc/services | head -5

 

 

정규식에서 사용하는 메타문자

^                    -행의 시작

$                    -행의 끝

.                     -하나의 문자와 대응

[]                    -[]사이의 문자 하나와 대응

[^]                  -[]사이의 문자를 제외한 문자와 대응

\<                  -단어의 시작

\>                  -단어의 끝

A\{N\}              -문자A를 N번 반복

A\{N,\}             -문자A가 적어도 N번 반복

A\{N,n\}            -문자A가 N번이상 n번이하 반복

 

grep '문자열' 파일

grep 'root' /etc/passwd

 

#grep -i 'the' grep_test     //대소문자 구별 없이 the가 포함된 라인

#grep '^#' grep_test        //'#' 으로 시작하는 라인

#grep 't$' grep_test         //'t'로 끝나는 라인

#grep 's.n' grep_test       //s와n사이의 임의의 문자하나를 포함한 라인

#grep -i 'c...y' grep_test        //c와y사이 임의의 문자3개를 포함한 라인

#grep '[tT]' grep_test        // t혹은 T가 포함된 라인

#grep '[AB]' grep_test       // A혹은 B가 포함된 라인

#grep '[AB]r' grep_test       //A혹은 B이후에 r을 포함된 라인

#grep '[a-z]' grep_test      //a부터 z를 포함한 라인, 즉 소문자 영어  와 모두 매칭

#grep '[a-zA-Z]' grep_test     //영어를 포함한 라인

#grep '[^0-9]'    grep_test    //숫자를 제외하고 매칭

#grep '\<F.....'                    //F로시작하고 총6글자인 단어

#grep 'd\{2\}' grep_test    //d가 2번이상 반복되는 라인

#grep 'e\{1,2\}' grep_test    //e가 1번또는 2번 반복되는 라인

 

 

현재 위치한 곳에 디렉토리 개수 확인 하기

#cd /

#ls -l | grep '^d'

#ls -l | grep '^d' | wc -l

 

/bin 에 파일 개수 확인

#ls -l | grep '^-' | wc -l

 

현재 디렉토리에서 파일 크기가 가장 큰 파일 '만' 출력 

# ls -S | head -1

 

'리눅스 ' 카테고리의 다른 글

다중 명령어  (0) 2017.03.26
리다이렉션  (0) 2017.03.26
Server-B Client-Linux 둘다 Xshell연결  (0) 2017.03.26
텍스트 편집기의 종류,vi사용법  (0) 2017.03.26
watch 명령어  (0) 2017.03.26

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=100.100.100.130
NETMASK=255.255.255.0
GATEWAY=100.100.100.2
DNS1=8.8.8.8
DNS2=8.8.4.4

'리눅스 ' 카테고리의 다른 글

리다이렉션  (0) 2017.03.26
파이프,메타문자  (0) 2017.03.26
텍스트 편집기의 종류,vi사용법  (0) 2017.03.26
watch 명령어  (0) 2017.03.26
sort 명령어  (0) 2017.03.26

텍스트 편집기의 종류

 

- 모드(mode)형

입력 모드와 명령모드가 구분

입력 모드는 텍스트를 입력 할 수 있는 모드

명령 모드는 텍스트를 수정(삭제/복사/붙여넣기)등 편집 하는 모드

vi는 모드형 편집기

 

-비모드(mode)형

입력 모드와 명령모드가 구분되어 있지 않음

ex)한글, 워드, 메모장 

 

vi (VIsual editor) & Vim (VI iMproved)(모르면 안되는 것)

vim - vi 기능을 향상 시킨 모드형 편집기

 

#vi [파일명]        ->기존에 파일이 있을때 ->파일을 열거나 수정

                        ->기존에 파일이 없을때 ->파일을 생성하여 수정

 

 

 

명령모드 상태(a,i,o를 누르면 입력모드로 변경)

(esc를 누르면 다시 명령모드로 바뀜)

명령모드 ->입력모드

i,a,o

입력모드 ->명령모드

ESC

 

명령모드->실행모드

:  / ?

u             : (undo) 작업 했던 내용 취소

Ctrl + r     : (redo) 작업 내용 되돌리기

 

yy: 커서가 위치한 라인 복사

p : 붙여넣기

dd : 라인 삭제

 

[숫자]yy : 입력한 숫자만큼 라인 복사

[숫자]dd: 입력한 숫자만큼 라인 삭제

 

shift + 4 ($) : 라인의 마지막으로 커서 이동

shift + 6 (^) : 라인의 처음으로 커서 이동

 

저장(w)/종료(q)/강제(!)

:w         :문서 저장

:w!        :문서 저장 (강제)

:q          :종료

:q!        :강제 종료

:wq         :저장 후 종료

:wq!        :강제 저장 후 종료

:w [파일이름] :새로운 파일이름으로 문서 저장

:e!    :편집한 내용을 저장하지 않고 파일 다시 열기

 

vi /etc/services         //저장x

 

:set nu            행번호 출력

:set number

[숫자]G : [숫자]행으로 이동

ex) 100G  -> 100번째 라인으로 이동

 200G -> 200번째 라인으로 이동

gg :파일의 처음으로 이동

G :파일의 마지막으로 이동

:[숫자]    :[숫자]행으로 이동

 

ex) /filenet

 /ftp

 /domain

n : 다음으로 일치하는 단어 검색

N : 이전으로 일치하는 단어 검색

 

치환

:%s/[OLD]/[NEW]/g    파일 전체에서[OLD]를 [NEW[로 치환

 

ex) 해당문서에 udp를 tcp로 변경

:%s/udp/tcp/g

 

vim 설치

 

#yum -y install vim        //vim 설치

alias vi='vim'                //알리아스 설정

vi /etc/passwd            //vim으로 파일 확인시 필드를 색으로 구분해주어 가독성이 높아져 vi보다 쉽게 작업 가능

 

로그인 시 자동으로 alias 설정되도록 xshell에 설정

ex) alias grep='grep --colore=auto';alias vi='vim'

 

실습 예제

 

 

 

 

 

'리눅스 ' 카테고리의 다른 글

파이프,메타문자  (0) 2017.03.26
Server-B Client-Linux 둘다 Xshell연결  (0) 2017.03.26
watch 명령어  (0) 2017.03.26
sort 명령어  (0) 2017.03.26
lrzsz 패키지 설치  (0) 2017.03.26

watch - 주기적으로 지정된 명령 재실행, 결과 출력

#watch [옵션] '[명령어]'

-n [N]    N초 주기로 명령을 실행

-d         변경된 부분에 음영 처리    

 

 

1번세션                                                 2번세션

watch -d -n 1 'ls /practice'                   # cd /practice/

#touch filetest1

#mkdir dirtest1

#touch file1234

이런식으로 세션1은 1초마다 계속 watch -d -n 1 'ls /practice' 1초마다 저 명령어를 쳐주고 세션2에서 저 폴더안에 생성을하면 추가 되는 것을 볼 수 있다.

 

 

 

'리눅스 ' 카테고리의 다른 글

Server-B Client-Linux 둘다 Xshell연결  (0) 2017.03.26
텍스트 편집기의 종류,vi사용법  (0) 2017.03.26
sort 명령어  (0) 2017.03.26
lrzsz 패키지 설치  (0) 2017.03.26
파일링크  (0) 2017.03.25

sort - 파일내의 내용을 알파벳 순서대로 정렬

#sort [옵션] [파일]

-n 숫자를 기준으로 정렬

-r 역순으로 정렬

-u 중복행 제거 (#uniq)

-o 출력 결과를 파일로 저장

 

#mkdir /practice/sort_test

#cd /practice/sort_test

- 해당경로에 공유 폴더에 업로드된 sort_test1, sort_test2 파일 다운로드

 

#cat sort_test1

#cat sort_test2

 

#sort sort_test2            //영어를 기준으로 정렬하여 출력

 

 

#sort -u sort_test2        //중복된 행은 제거하고 출력

 

#sort -n sort_test1        //숫자를 기준으로 정렬하여 출력

 

#sort -nr sort_test1       //숫자를 기준 역순으로 정렬하여 출력

 

#sort -n sort_test1 -o test    //출력 결과를 test파일로 저장

#cat /etc/passwd     (그냥 출력해줌)

#sort /etc/passwd    (정렬해서 출력해줌)

'리눅스 ' 카테고리의 다른 글

텍스트 편집기의 종류,vi사용법  (0) 2017.03.26
watch 명령어  (0) 2017.03.26
lrzsz 패키지 설치  (0) 2017.03.26
파일링크  (0) 2017.03.25
cut 명령어  (0) 2017.03.25

#yum -y install lrzsz

#rz        //HostOS -> GuestOS

#sz [파일명] //HostOS <- GuestOS

바탕화면의 있는 아이콘을 XSHell에 넣을수 있게 된다.

 

 

 

 

 

 

 

 

이런식으로 메모장을 옮겨서 XShell에서 실행한 것이다.

#rz        //HostOS -> GuestOS

이런식으로 옮긴다.

 

#sz [파일명] //HostOS <- GuestOS

이런식으로 XShell에있는 파일을 바탕화면에 옮길 수 있다.

 

 

 

'리눅스 ' 카테고리의 다른 글

watch 명령어  (0) 2017.03.26
sort 명령어  (0) 2017.03.26
파일링크  (0) 2017.03.25
cut 명령어  (0) 2017.03.25
wc 명령어  (0) 2017.03.25

링크파일 - 파일시스템 상에 존재하는 파일/디렉토리에 대한 바로가기(shortcut) 만들때 사용되는 파일

기존에 있는 파일에 새로운 파일명을 붙이는 것

 

1. 심볼릭 링크

- 파일을 가리키는 포인터가 있는 작은 파일을 생성(바로가기 아이콘)

- 원본 파일을 가리키는 새로운 파일을 생성

 

 #ln -s [대상파일명] [링크파일명]

 

 

 

이렇게 긴 대상파일경로를 명령어를 사용으로 줄인다.

 

2. 하드링크

-기존 파일에 새로운 파일의 이름을 추가로 생성

-동일한 inode 사용 (같은 파일)

-원본 파일 수정 시 하드링크도 함께 수정됨

-파일 복사와 차이는 하드디스크에 공간을 차지 하지 않음

 

 

 

 

'리눅스 ' 카테고리의 다른 글

sort 명령어  (0) 2017.03.26
lrzsz 패키지 설치  (0) 2017.03.26
cut 명령어  (0) 2017.03.25
wc 명령어  (0) 2017.03.25
;의 역할,grep 명령어  (0) 2017.03.25

+ Recent posts