리눅스 기본 명령어 0



* 실행파일 경로

- 파일 실행시 참조되는 경로는 $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 에 설정되지 않는 디렉토리의 파일을 실행할 때 경로를 생략할 수 없다.

실행파일 경로를 재지정 하려면

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을 생략하면 표준입력을 사용한다.

tail

파일의 끝부분을 보여준다.

tail [-count] [file(s)]사용법은 head와 같다.

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 보다 많이 쓰이진 않는다.

* 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]# ls -l a.txt b.txt c.txtls: 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]* : 숫자가 들어 있거나 그렇지 않은 부분을 의미.

sort
알파벳 순서대로 또는 숫자 순서대로 정렬항목을 기준으로 오름차순, 내림차순으로 정렬한다.
보통 정렬은 사전적으로 순서화되는데 이때 주의할 점은 알파벳 순서는 소문자보다 대문자가 우선이고,
숫자들은 모든 문자보다 우선한다는 것이다. 옵션 없이 실행하면 보통 오름차순이고, -r 옵션을 사용하면 내림차순이다.

cut
데이터의 특정 열을 선택하거나, 파일내의 특정 필드만을 표시할 때 사용한다.

주요옵션

-c 목록 : 목록에 지정한 열을 출력

1,2번열을 출력하려면 -c1,2

1번에서 10번열까지 출력하려면 -c1-10

-f 목록 : 목록에 지정한 필드를 출력

-f1,3은 1번 필드와 3번 필드를 출력

-d 문자 : 문자로 지정된 문자를 필드 구분자로 사용

ex1) $cat test.txt

first second third

$ cut -c1-3 test.txt

fir

$ cut -f1 test.txt

first

$

ex2) $ cat /etc/passwd # 필드구분자를 “:”를 사용

root:x:0:1:Super-User:/root:/bin/bash

daemon:x;1:1::/:

bin:x:2:2::/usr/bin:

$ cut -f1 -d: /etc/passwd

root

daemon

bin

$

paste
수직으로 파일을 결합하여 보여준다.

ex)

$ cat a

kug

kang

su

$ cat b

222-222

333-333

$ paste a b

kug 111-111

kang 222-222

su 333-333

$

*. 파일을 결합할 때 중간에 특정한 구분자를 넣고자 할 때에는 -d옵션을 사용 한다

$ paste -d* a b

kug*111-111

kang*222-222

su*333-333

$

*. 또 다른 옵션 -s는 연속적인 라인을 1개 라인으로 결합한다. 1개 파일내의 라인이 모두 결합되고 나면
그 다음 파일의 라인들도 계속 결합된다.

$ paste -s a b

kug kang su

111-111 222-222 333-333

$

tr

표준입력에서 문자를 복사하여 표준출력에서 출력하는데, 지정된 대로 문자를 교체 또는 삭제한다.
보통은 소문자를 대문자로 바꾸거나 그 외 텍스트 처리작업을 할 때 주로 사용된다.

$cat c

kildong 111-1111

kang 222-2222

su 333-3333

$tr k A < c

Aug 111-1111

Aang 222-2222

$ tr \[a-z\] \[A-Z\] < c

KUG 111-111

KANG 222-2222

SU 333-3333

$

cat c | tr a-z A-Z

KUG 111-111

KANG 222-2222

SU 333-3333

또 다른 옵션 -d(delete)는 아래와 같이 특정한 칼럼을 제거할 수도 있다.

$ cat c

kug 111-111

kang 222-222

$tr -d [0-9] <c>

kug -

kang -

$

파일 검색 명령어

whereis

whereis command(s)
명령 인자로 준 명령을 $PATH로 지정된 경로에서 찾아 전체 경로명을 보여준다.예를 들어
whereis csh이라고 입력하면 다음과 같은 출력이 나온다. csh: /usr/bin/csh/usr/man/man1/csh.1

which

which command(s)

명령어를 입력했을 때 실행되는 파일의 경로명을 보여준다.
예를 들어 which tin이라고 입력하면 /usr/local/bin/tin이라고 출력된다. 만약 alias된 명령이 있다면 alias내용을 보여준다.
만약 ls가 alias되어 있을 때 which ls라고 입력하면 다음과 같이 출력된다.
ls aliased to ls -CF

find

find [path...][expression]

ex) find /tmp /etc -name passwd
find /etc -name pass*
find /etc -name *conf

Man Page. http://www.gentoo.org/doc/en/man-guide.xml <= 여기에 설명이 잘되어 있습니다.
man0p p가 POSIX를 뜻한다. 다른 디렉토리에서도 p로 끝나는 것은 같은 의미이다.
이 디렉토리의 맨페이지는 여러가지 POSIX 헤더 파일의 기능을 설명한다.
man1 일반적인 명령어

man1p POSIX버젼의 명령어를 설명한다. 기본적인 명령어만을 다루기 때문에 man1보다 훨씬 작다.
man2 리눅스 커널 시스템 호출이다.

man3 표준 C 라이브러리 함수를 설명한다.

man4 특별한 장치를 설명한다. 이 장치는 보통 커널에서 생성하는 것이지만,
Xorg-X11도 여기에 장치를 넣는다.

man5 시스템 설정파일을 위한 설명

man6 게임이나 다른 특별한 장난감을 소개한다.

man7 그 외의 여러가지 것들을 설명한다. 캐릭터셋이나 SQL 구문, ISO표준,
정규 표현식 등이 여기 포함된다.

man8 (대체로 root가 실행하는) 관리용 명령어들을 설명한다

man9 원래 커널의 여러 부분의 설명이 들어 있기로 되어 있는 곳이다.

mann 주로 Tcl/Tk에서 사용한다. n은 new를 뜻한다.</c>


덧글

댓글 입력 영역