본문 바로가기
서버/Linux

[Linux] 기본 명령어 (2)

by 느링 2017. 9. 14.

쉘 메타문자 (Shell metacharacter)

리눅스 쉘은 다양한 특수문자를 이용하여 명령어를 처리하며,

메타문자를 적절히 사용하면 반복되는 작업이나, 인자를 다양하게 확장 할 수 있습니다.

 

    ~ 홈디렉토리를 나타냄

       '  작은따옴표는 모든 문자나 특수문자들을 일반문자로 취급

 " 큰따옴표는 $,`(Backquotes), \(Backslash)를 제외한 모든 문자들을 일반문자로 취급

 `  명령 대체(command substitution), Back quote라고 부름
    큰따옴표안에서 명령어들이 문자열이 아닌 명령어의 역할을 하도록 해줌

 # 주석(comment)

 $ Shell변수

 & 후면 작업(background job)

 * wildcard라고 부르며, 모든 문자를 뜻한다. 아무것도 없는 경우도 포함

 ? 한 문자를 대체할 때 사용하는 wildcard로 사용하고 특정명령에 대한 결과를 갖는 Return 변수로도 쓰임

   쉘상에서 내린 명령의 에러유무를 확인할 수 있음

     ( ) 부속shell(subshell)

\ escape문자. 바로 다음에 오는 특수문자의 기능을 없앰

       파이프 (pipe)

     [ ] bracket이라고 부르며 [ 과 ]사이에 선택할 수 있는 문자를 나열하여 '~중의 하나'라고 표현됨

   범위를 지정할 때는 -를 사용하며, 문자집합을 뜻함

 

 

와일드 카드 문자

* → 모든 와 일치하는 와일드 카드 문자

< 예제 >

 

? → 하나의 와 일치하는 와일드 카드 문자

< 예제 >

 

 

다중 명령 문자

; → 명령어의 을 나타내는 문자

< 예제 >

 

$ → 쉘 변수 문자

< 예제 >

 

&& → 이전 명령이 에러 없이 정상 종료했을 때 0의 값을 반환

  이럴 경우에만 다음 명령 실행

  즉, 둘 다 참이여야 실행

 

|| → 이전 명령이 에러 나며 비정상 종료했을 때 1의 값을 반환

     이럴 경우에 각각의 명령을 실행

     즉, 둘 다 참이 아니어도 참을 실행

 

기타

[ ] → 문자의 범위를 지정

 

#touch

- 기존 파일의 시간 정보 변경

- 파일이 존재하지 않을 경우 0Byte 크기의 빈 파일 생성

옵션 (명령의 세부 기능)

-t (timestamp) CCYY년 MM월 DD일 hh시 mm분 ss초

 

※ 파일에 적용되는 시간

ls -lu [file] 접근 시간 : 파일을 열거나 접근한 시간

ls -l [file] 수정 시간 : 파일의 내용이 변경된 시간

ls -lc [file] 변경 시간 : 파일의 정보가 변경된 시간

 

3가지 시간정보기록

- atime

- mtime

- ctime

 

※ touch로 빈 파일 생성

 

#date

시스템 시간 확인 및 수정

#date -s "CCYY-MM-DD hh:mm:ss"

 

#cal

달력 출력

ex)  #cal

#cal [year]

#cal [month] [year]

 

#file [file]

파일 형식 확인

ex)  #file /bin/ls

#file /etc/passwd

#file /root

 

#which [file]

명령어(실행파일)경로 및 alias 확인

ex)  #which ls

#which cp

#which shutdown

 

#cat (conCATenate)

파일안에 있는 내용을 화면에 다 출력할수있음 (텍스트로되어있는경우)

→ 옵션 (명령의 세부 기능)

-b 공백 라인을 제외한 글자가 있는 모든 라인에 번호를 붙여 출력

-n 공백 라인을 포함하여 모든 라인에 번호를 붙여 출력

 

※ cat을 거꾸로 tac로 입력하면 내용을 거꾸로 출력해준다.

 

※ 리눅스에서는 #으로 주석 처리를 한다.

 

#nl

파일에 행 번호를 붙여 출력

< 예제 >

 

#more

화면 단위로 파일 내용 출력

space bar 다음 화면 출력

enter 한 줄씩 스크롤

b 이전 화면

f 다음 화면

/[pattern] 문자열 검색

q 종료

 

#head

파일의 내용 중 첫 10줄 출력

# head -[숫자] [file]

ex)  #head /etc/passwd         //파일의 처음 10줄 출력(기본 값)

#head -1 /etc/passwd     // 파일의 처음 1줄 출력

#head -3 /etc/passwd     //파일의 처음 3줄 출력

 

#tail**유용한 명령어임

파일 내용의 마지막 10줄 출력

#tail -[숫자] [file]

→ 옵션 (명령의 세부 기능)

-f 실시간으로 파일의 내용을 확인

ex)  #tail /etc/passwd

#tail -15 /var/log/messages

#tail -f /var/log/secure         //접속 정보 관련 로그 파일 실시간 확인

 

#sort

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

#sort [옵션] [파일]

→ 옵션 (명령의 세부 기능)

-n 숫자를 기준으로 정렬

-r 역순으로 정렬

-u 중복행 제거(#uniq)

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

 

※ 아래의 명령어들의 예시를 보여주기 위해 준비된 txt파일을 HostOS에서 가져와야 합니다.

 

1) 먼저 파일 전송 패키지를 설치해줍니다.

#yum -y install lrzsz //파일 전송패키지 설치

...........

설치완료

 

2) 파일을 전송해줍니다.

파일 전송하는 방법은 두 가지 방법이 있습니다.

HostOS(Windows7) → GeustOS(Server-A)

① 파일 선택 후 Drag해서 Xshell 화면에 Drop해주면

 현재 위치한 경로에 파일이 전송됩니다.

② #rz

탐색기 → 전송할 파일 선택해서 보내기

 

HostOS(Windows7) → GeustOS(Server-A)

1.#sz [파일명]

#sz /root/install.log

탐색기 -> 저장할 경로 선택

**파일을 전송해도 원본 파일은 없어지지 않습니다.

 

3) 두 개의 텍스트 파일 내용 확인해봅니다.

 

ex)  sort sort_test2.txt //영어를 기준으로 정렬하고 출력

sort -u sort_test2.txt //중복되는 문자는 제외하고 출력

sort -n sort_test1.txt  //숫자를 기준으로 정렬하고 출력

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

sort -n sort_test1.txt -o test //숫자를 기준으로 정렬하여 "test"라는 이름을 가진 파일로 저장

**원본 파일은 없어지지 않습니다.

 

#wc (Word Count)

단어, 라인, 문자 바이트 계산

#wc [option] [file]

→ 옵션 (명령의 세부 기능)

-l 라인 수 출력

-w 단어 수 출력

-m 문자 수 출력 *공백도 문자로 인식해서 맨 뒤에 null값도 문자로 인식

-c 몇 byte인지 계산해줌

< 예제 >

 

#cut

필드 잘라내기

→ 옵션 (명령의 세부 기능)

-c 잘라낼 글자 위치를 지정

-f 잘라낼 필드를 지정

-d 필드와 필드로 구분하는 문자를 지정 (기본은 tap(공백))

< 예제 >

#tty (TeleTYpewriter)

현재 사용 중인(표준입력에 연결되어있는) 터미널의 이름을 출력

   vmware     <---/dev/tty --->  server   <---/dev/pts--->  xshell

     콘솔                                서버                     원격 클라이언트

콘솔(console)

- 직접 서버와 연결되어 있는 디스플레이 모니터와 키보드가 조합된 장치

- 터미널이라고 부르며, 기본적으로 6개의 가상 터미널을 제공

pts (Pseudo-Terminal Slave)

- 원격지에서 서버에 접속 시 사용하는 가상 터미널, Telnet, SSH 등 연결 시 사용

 

#grep (Globally find Regular-Expression and Print) **아주아주 중요함

파일 내용 중 정규식 패턴에 일치하는 문자열을 찾아 화면에 출력 (원하는 결과만 뽑는 것)

#grep [Pattern] [file]

→ 옵션 (명령의 세부 기능)

-i (ignore-case) 대소문자를 구별하지 않는다.

-n (--line-number) 행 번호를 함께 보여준다.

-v (--revert-match) 정규식에 일치하지 않는 행만 보여준다.

-r (--recursive) 하위 디렉토리에 위치한 파일도 검색한다.

< 예제 >

※ grep 명령어 하이라이트 옵션 사용하기

alias grep="grep --color=auto"

grep 명령어 사용 시 패턴과 일치하는 부분은 하이라이트 처리하여 가동성을 높여준다.

 

※ 시스템 종료 명령어 ※

#shutdown    

옵션

-h (halt)       시스템 종료

-r (reboot)    시스템재부팅

-c (cancel)    예약 취소

 

시간

+N    N분후 명령어 실행(예약)

now  지금 즉시

ex) shutdown -h now        //지금 즉시 시스템 종료

ex) shutdown -r now        //지금 즉시 시스템 재부팅

 

시스템

재부팅 명령어 : #shutdown -r now, #reboot, #init 6

종료    명령어 : #shutdown -h now, #halt, #init 0, #poweroff

 

'서버 > Linux' 카테고리의 다른 글

[Linux] (기본명령어) grep / watch  (0) 2017.09.19
[Linux] Xshell 기능  (0) 2017.09.14
[Linux] 기본 명령어 (1)  (0) 2017.09.14
[Linux] 파일의 종류 / 절대경로와 상대경로  (0) 2017.09.13
[Linux] Bash Shell 명령어 기능  (0) 2017.09.13