linux class(new) 2 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class(new)

리눅스 명령어

페이지 정보

작성자 admin 작성일16-01-01 15:15 조회4,058회 댓글3건

본문

실행파일 경로

- 파일 실행시 참조되는 경로는 $PATH 변수에 설정되어 있다.
echo $PATH ; 경로변수 설정 확인
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin

- 파일 실행시 경로명 없이 파일명만 사용한 경우에는 shell 내장 명령어인지를 먼저 확인한다.
shell 내장 명령어가 아니면 $PATH 변수에 설정되어 있는 디렉토리 경로에서 파일을 찾는다.
파일을 실행할 경우 현재 디렉토리는 참조하지 않는다.
$PATH 에 설정되지 않는 디렉토리의 파일을 실행할 때 경로를 생략할 수 없다.
* 예를 들면 실행파일이 만약 /tmp 디렉토리에 test 라는 파일명으로 되어 있다면
/tmp/test 또는 cd /tmp --> ./test (이때의 ./ 기호는 생략할 수 없다)

실행파일 경로를 재지정 하려면
PATH=설정할 경로 명
*. logout 하게 되면 사용자가 설정한 변수값은 없어진다.
---------------------------------------------------------------------------------------------

파일관련 주요 명령어

cat
conCATenate에서 나온 말로 파일의 내용을 표준 출력으로 내보내어, 파일내용을 알아보거나,
여러 파일을 하나의 파일로 출력하여 연결한다.
또는 표준 입력으로부터 파일을 만들 수도 있다.

cat [options] [file(s)]
파일 이름이 주어지지 않으면, 표준 입력으로 입력 받는다.

자주 사용되는 옵션
-n : 행 번호를 붙여서 출력.
-b 행 번호를 보여주되 빈 줄은 행 번호를 붙이지 않고 출력

ex)
cat dict1 dict2 > dictionary => dict1 과 dict2 파일을 연결하여 dictionary라는 파일에 저장
cat > memo => 'control-d'를 입력할 때까지 키보드(표준 입력)로 입력한 내용을 memo라는 파일로 저장
---------------------------------------------------------------------------------------------
head
- 파일내용을 출력하는 명령어로서 전부 출력하지 않고 앞부분중 일부분을 보여준다.
head [-count] [file(s)] : count에 정해준 줄 수만큼 file(s)의 첫 부분을 보여준다.
count를 생략하면 파일의 첫 10줄을 보여준다.
file을 생략하면 표준입력을 사용한다.
ex) head /etc/passwd ; 앞에서 열줄을 출력한다.
head -n 5 /etc/passwd ; 앞에서 5줄츨 출력한다.
---------------------------------------------------------------------------------------------
tail
- head 와 반대되는 명령어, 파일끝의 일부분을 출력한다.
사용법:
tail [-count] [file(s)]
ex) tail /etc/passwd ; 끝에 열줄을 출력
tail -n 15 /etc/passwd ; 끝에서 15줄을 출력
---------------------------------------------------------------------------------------------
wc (word count)
- 파일,또는 표준 입력(키보드 입력)의 행, 단어, 문자의 갯수를 카운트하는 명령어
사용법:
wc [options] [file(s)]
자주 사용되는 옵션
-l : line 수 출력
-c : 문자(charater)수 출력
-w : 단어(word)수 출력
옵션을 생략하면 line수, 단어수, 문자수를 모두 출력한다.

ex)
[lee@river lee]$ wc /etc/passwd -->
109 125 4484 /etc/passwd
---------------------------------------------------------------------------------------------
more
- 파일의 내용을 화면 단위로 끊어서 보여준다.
more file(s) : file이 생략되면 표준 입력을 사용한다.
more에서 사용되는 명령어(more 가 실행중일때)

h 도움말
space 다음 페이지
RETURN 다음 한줄 스크롤
q,Q 종료
b,^B 이전 페이지
/pattem 검색
= : 현재 라인 번호 출력
:f : 현재 파일 이름과 라인 번호를 보여준다.
! 쉘 명령어를 실행한다.

*. more 와 유사한 명령어로 less 가 있으나 more 보다 많이 쓰이진 않는다.
(man 명령어 도움말을 출력할때는 less 가 사용된다)
--------------------------------------------------------------------------------------------
meta character
- shell 이 특별한 의미로 해석하는 문자를 메타 문자라고 한다. (대개 특수문자가 이에 해당된다)

redirection - 입출력 방향 재지정
file descriptor : 열려 있는 파일에 대한 식별자
0: 표준입력
1: 표준출력
2: 표준에러

> ( = 1>) : 출력방향 전환 (표준출력 => file) 파일이 존재하는 경우는 overwrite
>>( = 1>>) : 출력방향 전환 (표준출력 => file) 파일이 존재하는 경우 append
<(= 0<) ; 입력방향 전환 (표준입력 => file) 입력을 키보드가 아닌 파일에서 받아들다.
<<_문자열; here document 라고 한다. 이 문자열까지만 입력을 받는다는 의미이다.
2> ; 에러방향 전환 (표준에러 => file) 표준에러의 방향은 모니터이다.
에러를 모니터 상에 출력하지 않거나 파일로 남길 때 사용한다.

ex 1)
cat > a.txt => 키보드 입력으로 파일을 만든다.
ctrl + d 를 입력하면 완료된다.
cat < a.txt => 키보드 대신 파일로부터 입력을 받아서 표준출력으로 출력한다.
cat => 키보드로 입력받은 내용을 모니터로 출력한다.

ex 2)
[root@river root]# touch a.txt b.txt
[root@river root]# ls -l a.txt b.txt c.txt
ls: c.txt: No such file or directory <= 이 부분이 표준에러이다.
-rw-r--r-- 1 root root 0 May 1 20:28 a.txt <= 이부분은 표준출력
-rw-r--r-- 1 root root 0 May 1 20:28 b.txt <= 이부분도 표준출력

[root@river root]# ls -l a.txt b.txt c.txt 2> /tmp/error.txt
-rw-r--r-- 1 root root 0 May 1 20:28 a.txt
-rw-r--r-- 1 root root 0 May 1 20:28 b.txt
=> 에러가 모니터로 출력되지 않고 /tmp/error.txt 파일에 저장되었다.
출력을 그냥 버리고 싶을 경우에는 /dev/null 로 보내면 된다.
--------------------------------------------------------------------------------------------
pipe
- pipe는 앞에 명령의 실행결과를 pipe 뒤의 명령어의 입력으로 전달한다.예를 들면

ls -l /etc | more
=> ls -l /etc 의 실행결과를 모니터로 출력하지 않고 more 명령의 입력으로 전달한다.
pipe를 사용하면 명령을 조합해서 사용할 수 있다는 점 때문에 매우 많이 사용된다.
--------------------------------------------------------------------------------------------
grep(get regular expression)
- 특정한 문자열을 포함하고 있는 라인을 찾기 위해 사용한다.

자주 사용되는 옵션
-v(invert) ; 찾고자 하는 문자열과 일치하는 라인을 제외한 모든 라인을 출력한다.
-n(number) ; 문자열이나 패턴을 일치시키는 라인들의 라인번호를 표시해준다.
-l(listfile) ; 특정한 패턴을 포함하고 있는 파일명을 검색
--------------------------------------------------------------------------------------------
정규표현식
정규 표현식이란 어떤 문자열의 집합을 표시하는 텍스트 스트링을 말하는 것으로 일반적으로
텍스트 형식 문서등에서 문자열을 찾아내고 치환하는데 많이 사용된다.
정규 표현식은 vi.ex,ed,sed,grep 등에서 사용되며 윈도우의 찾기 기능이나 바꾸기 기능과는 비교할
수 없는 편리함이나 강력한 기능을 갖고 있다.

“[문자열]”의 의미
정규 표현식에서 문자열이 “[ ]"로 둘러싸여 있으면 이문자열들중 하나를 의미하게 된다.
ex [0-9] : 숫자 한글자
[a-z] : 소문자 한글자
[A-Z] : 대문자 한글자
[a-zA-Z] : 대소문자 관계없이 한글자
[Oo]wl : Owl 또는 owl 그러나 Oowl 은 해당되지 않는다.

"[ ]"안에서 “^”는 문자열중 ^이하를 포함하지 않는 문자열을 말한다.
ex) [^0-9] : 숫자가 아닌 문자 하나를 의미한다.
[-0-9] : 숫자 한 개 또는 - 기호를 의미한다.
[^-0-9] : 숫자나 - 기호가 아닌 문자 하나를 의미한다
[^A-Z] : 대문자를 제외한 문자
c[a-z0-9]t : 두 번째 문자가 임의의 소문자나 숫자.

“^”와 $의 의미
“^”는 라인의 시작 부분을 의미하는 것인 반면 “$”는 라인의 끝 부분을 의미한다. 만약 “new"로
시작하는 부분을 찾고 싶다면 ”^new"라고 표현한다.

“\”
정규표현식에서는 특별한 의미를 지니고 있는 <>,()등의 기호들의 표현하기 위해 해당 문자의 바로
앞에 역슬래시를 사용하여 구분한다.
ex) \$$ : $로 끝나는 라인을 의미한다.

“.” : 아무문자나 한 개의 문자를 의미.

ex) [0-9]* : 숫자가 들어 있거나 그렇지 않은 부분을 의미.
--------------------------------------------------------------------------------------------
파일 검색 명령어

whereis - 파일검색 명령어
사용법 :
whereis command(s)
whereis 로 파일을 찾기를 하면 $PATH 변수와 관계없이 대부분의 명령어을 모두 검색한다.
그리고 도움말 파일과 /etc 디렉토리 아래에 있는 파일을 검색한다.
(*. 그외에 stdio.h 등의 헤더파일도 검색한다)
---------------------------------------------------------------------------------------------
which - 파일검색 명령어
사용법:
which command(s)
winch 명령어는 $PATH 변수에 잡혀있는 명령어만 검색한다.
그리고 alias 설정되어있는것도 검색한다.
---------------------------------------------------------------------------------------------
find - 파일검색 명령어
사용법 :
find [path...][expression][action]
* action 은 찾은 결과를 어떻게 처리할것인가 하는것을 의미하며
action 을 생략했을때 default로 print action 이 적용된다.

ex) find /tmp /etc -name passwd ; [-print] action 이 생략되었음.
find /etc -name pass*
find /etc -name *conf
find /etc -type d ; 파일타입이 디렉토리를 검색
find /etc -type f ; 파일타입이 파일을 검색
find /home -user user1 ; 파일의 소유주가 user1 인파일을 검색

*. find 명령으로 파일명을 검색하는경우 file이름에 '*' 가 포함되어 있는경우는
* 가 메타문자로 번역되어 에러가 날수 있다.
이런경우에는 파일명에 작은 따옴표를 붙여줘야 한다.


기타 find 사용의 다른 예)
find /etc -name *.conf -print
*. print 는 디폴트 action
find /etc -name *.conf -exec cp {} /tmp/test \;
<-- print action 대신 exec action 이 사용되었으므로 검색된 파일을 출력하지 않고 복사.
(exec action 찾은 결과를 exec ation 뒤에 있는 명령어로 처리함을 의미한다)
find /etc -name *.conf -exec cp {} /tmp/test \; -print
<-- 검색된 파일을 지정된 디렉토리에 복사하면서 동시에 출력.
\; 은 exec action 이 영향을 미치는 리눅스 명령어의 끝을 의미한다.
find /etc -name *.conf -ls
ls action 은 출력결과를 파일속성정보까지 자세하게 출력하라는 의미.
--------------------------------------------------------------------------------------------
manual page 활용
Man Page Guide --> http://www.gentoo.org/doc/en/man-guide.xml <= 여기에 설명이 잘되어 있습니다.
man0p p가 POSIX를 뜻한다. 다른 디렉토리에서도 p로 끝나는 것은 같은 의미이다.
이 디렉토리의 맨페이지는 여러가지 POSIX 헤더 파일의 기능을 설명한다.
* POSIX란? --> POSIX 참조

*. manual page 를 출력할때 man 명령이 LANG(LANGUAGE)변수를 먼저 확인하여
한글이면 한글메뉴얼 페이지를 찾아서 출력하고 없으면 영어로 작성된 manual page를
출력한다.
LANG 변수 출력 -> echo $LANG
LANG 변수 변경 : 한글에서 영어로 --> export LANG=C
영어에서 한글로(utf 타입으로) --> export LANG=ko_KR.UTF-8
LANG 변수의 디폴트값은 설치할때 한글로 지정했다면 ko_KR.UTF-8 로 설정된다.

manual page 의 호출은 manual page 의 섹션번호가 작은번호에서 큰번호 순서대로
탐색된다.

man1 : 일반적인 명령어
man1p : POSIX버젼의 명령어를 설명한다. 기본적인 명령어만을 다루기 때문에 man1보다 훨씬 작다.
man2 :리눅스 커널 시스템 호출이다.
man3 : 표준 C 라이브러리 함수를 설명한다.
man4:특별한 장치를 설명한다. 이 장치는 보통 커널에서 생성하는 것이지만,
Xorg-X11도 여기에 장치를 넣는다.
man5 : 시스템 설정파일을 위한 설명
man6: 게임이나 다른 특별한 장난감을 소개한다.
man7 :그 외의 여러가지 것들을 설명한다. 캐릭터셋이나 SQL 구문, ISO표준,
정규 표현식 등이 여기 포함된다.
man8: (대체로 root가 실행하는) 관리용 명령어들을 설명한다
man9: 원래 커널의 여러 부분의 설명이 들어 있기로 되어 있는 곳이다.
mann:주로 Tcl/Tk에서 사용한다. n은 new를 뜻한다.

댓글목록

실타래님의 댓글

실타래 작성일

비밀글 댓글내용 확인

guest1님의 댓글

guest1 작성일

guest1님의 댓글

guest1 작성일

감사합니다.


접속자집계

오늘
48
어제
75
최대
611
전체
448,098
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로