2022 데이터 사이언스/Linux

06. 기초 명령어(3)

gool 2022. 5. 19. 20:05
more, less, nl, wc, cal, date, rdate, find, man,
시스템 종료 명령어, 시스템 재부팅 명령어

 

 

 

기초 명령어 마지막 포스팅이다.

 

 

 

more

 

내용이 너무 많아지면 파일의 처음과 마지막을 조금씩 보는 head, tail로도 한계가 발생한다.

이에 more 명령어는 출력되는 내용이 많을 때 내용을 화면 높이에 맞춰 나눠서 출력해준다.

 

more 명령어는 파일만 대상으로 받는다.

예를 들어 more /etc/를 실행하면 디렉토리의 정보 대신 /etc/: directory라는 안내가 뜬다.

 

CLI 환경에는 스크롤 바가 없어 화면이 내려오면 위의 내용을 볼 수 없는데,

more를 사용할 때도 줄 단위로 내려가거나 화면을 넘어가면 지나간 내용을 다시 볼 수 없다.

 

 

아래 그림은 more 명령어로 sshd_config 파일을 화면 크기에 맞춰 출력한 것이다.

 

more /etc/ssh/sshd_config 실행 화면

 

 

more 명령어 실행 후 다음과 같은 추가 동작을 취할 수 있다.

  • enter : 한 줄 넘어가기
  • spacebar : 한 화면 넘어가기
  • q : more 실행 화면 종료(파일을 끝까지 내리면 자동 종료)

 

 

more 명령어는 일반적으로 파이프 기호 ' | '를 사용하여 다른 명령어와 함께 쓰인다.

shift + 역슬래시(\)로 파이프 기호를 입력할 수 있다.

 

ls -l /etc/ | more 명령어로 아래처럼 ls -l /etc/의 내용을 화면에 맞게 잘라서 볼 수 있다.

 

 

 

파이프라고 불리는 ' | ' 기호는 하나의 대상에 여러 명령어를 동시에 적용시키기 위해 사용한다.

A | B 는 B ( A ), 즉 B 명령어의 대상으로 A의 결과물이 들어감을 의미한다.

 

위의 예시를 보면, ls -l /etc/ | more에서 ls -l /etc/의 출력 결과는 more 명령어의 대상이 된다.

 

 

 

기호 정리

 

이쯤에서 지금까지 다뤘던 기호들을 정리해보자.

  • . : 현재 디렉토리
  • .. : 상위 디렉토리
  • ~ : 홈 디렉토리
  • * : 모든 종류와 모든 길이의 문자를 대체(= 모든 것)
  • >, >> : 기호 왼쪽 명령이 동작하면서 화면에 출력될 내용을 기호 오른쪽에 저장
  • | : 하나의 대상에 여러 명령어를 동시에 적용시키기 위해 사용

 

 

 

less

 

more 명령어와 동일한 역할을 하지만, 지나간 내용을 다시 볼 수 있다.

지나간 내용을 볼 수 없는 more 명령어의 단점을 해결해주는 명령어이다.

따라서 내용을 다 보면 자동으로 종료되는 more와 달리 less는 무조건 직접 종료해주어야 한다.

 

less 명령어 실행 후에도 다음과 같은 추가 동작을 취할 수 있다.

  • enter, j, 아래 방향키 : 한 줄 넘어가기
  • k, 위 방향키 : 한 줄 돌아가기
  • spacebar, page down : 한 화면 넘어가기
  • page up : 한 화면 돌아가기
  • g : 첫 줄로 이동
  • G : 마지막 줄로 이동
  • q : less 실행 화면 종료(파일을 끝까지 내려도 자동 종료되지 않음)

 

아래 그림은 ls -l /etc/ | less 실행 후 G를 입력해 마지막 줄로 이동한 화면이다.

 

 

 

 

nl

 

nl 명령어는 출력되는 내용에 줄 번호를 함께 출력해준다.

more, less와 마찬가지로 주로 | 기호를 활용해 다른 명령어와 함께 사용된다.

 

 

 

 

wc

 

wc는 파일의 내용이 몇 줄, 몇 단어, 몇 글자인지 출력해주는 명령어이다.

 

wc 명령어는 다음 세 가지 옵션과 함께 사용된다.

  • -l : 몇 줄인지만 출력
  • -w : 몇 단어인지만 출력
  • -c : 몇 글자인지만 출력

 

/etc/passwd 파일은 43줄, 87단어, 2263글자로 구성되어 있다.

 

wc 명령어와 -l, -w, -c 옵션

 

 

굉장히 간단하고 쓸 일이 많지는 않은 명령어이다.

다만, Linux는 줄, 단어, 글자를 세는 방식이 Windows와 다르기 때문에 짚고 넘어가려고 한다.

 

Linux에서 줄은 enter를 기준으로만 구분된다.

자동으로 줄이 넘어가도 줄이 바뀐 것으로 인식하는 Windows의 office나 메모장과 다르다.

위의 nl 명령어 예시에서 볼 수 있듯이 줄이 길어져 줄이 넘어가도 줄 번호는 바뀌지 않는다.

 

단어는 enter와 공백 문자로만 구분하며, 글자를 셀 때는 공백 문자도 하나의 문자로 계산한다.

또, 각 줄의 마지막에는 눈에 보이지 않는 마침표가 있는 것으로 간주한다.

 

예를 들어, 앞서 cat 명령어로 생성한 파일 b의 경우 11글자로 출력되는 것을 볼 수 있다.

 

5줄, 5단어, 11글자의 파일 b

 

이는 각 숫자(10은 1, 0 두 글자)와 각 줄 마지막의 보이지 않는 마침표를 모두 더한 값이다.

 

 

 

cal

 

cal은 달력을 출력하는 명령어이다.

명령어를 사용하는 형식에 따라 출력되는 내용이 달라진다.

 

 

(1) 단독 사용

 

장치에 설정된 날짜를 기준으로 현재 월의 달력을 출력한다.

 

 

(2) cal 숫자

 

숫자를 연도로 사용하여 해당 연도 전체 달력을 출력한다.

숫자를 그대로 연도로 사용하기 때문에 cal 1을 하면 기원 후 1년의 달력이 출력된다.

아래는 2022년의 달력이다.

 

 

(3) cal 숫자1 숫자2

 

숫자2를 연도로, 숫자1을 월로 받아 해당 연월의 달력을 출력한다.

 

 

 

 

date

 

date 명령어는 장치의 날짜와 시간을 출력하기도 하고,

숫자와 함께 사용하면 장치의 날짜와 시간을 변경해주기도 한다.

 

 

(1) 단독 사용

 

장치에 설정된 현재 날짜와 시간을 출력한다.

 

 

(2) date <숫자12자리>

 

연, 월, 일, 시, 분 지정하여 장치의 날짜와 시간을 변경한다.

숫자는 월 일 시 분 연도, mmddHHMMyyyy 형태로 입력한다.

 

 

 

 

rdate

 

rdate 명령어는 인터넷에 존재하는 time 서버의 시간을 출력해준다.

rdate 뒤에 time 서버의 주소를 입력해 사용한다.

 

 

-s 옵션을 사용하면 time 서버의 시간 값을 장치에 적용할 수 있다.

 

 

 

 

find

 

find 명령어는 검색(찾기) 기능을 제공한다.

기본적으로 검색 범위를 지정하고, 옵션을 사용해 검색 기준을 설정할 수 있다.

 

명령어 형식은 다음과 같다.

 

find     범위     [범위]     ...     [범위]     옵션     값     [옵션]     [값]     ...     [옵션]     [값]

 

 

아래 옵션을 find 명령어와 함께 사용해 검색 기준을 설정할 수 있다.

  • -name :  이름으로 검색
  • -type : 개체 형식으로 검색(f : file, d : directory)
  • -newer : 마지막으로 수정된 날짜와 시간을 기준으로 더 최근인 개체 검색
  • -exec(execute) : 앞에 입력한 find 명령으로 검색되는 개체를 대상으로 특정 명령을 동작

 

 

각각의 옵션을 사용한 예시를 살펴보자.

 

/ 디렉토리(시스템 전체)에서 이름이 itbank인 것 모두 검색

 

-type 옵션으로 파일과 디렉토리를 따로 검색

 

현재 위치(.)에서 test보다 날짜와 시간이 최근인 개체 검색

 

현재 위치에서 이름이 test인 모든 개체를 삭제

 

맨 밑의 예시에서 -exec 옵션을 사용한 것을 볼 수 있다.

-exec 옵션은 find 명령어와 사용 가능한 옵션 중에서 가장 마지막 옵션으로 사용된다.

 

-exec rm {} \; 명령어가 가장 많이 쓰이는데, 검색되는 내용을 바로바로 삭제하는 역할을 한다.

 

 

 

man

 

man은 매뉴얼을 확인하는 명령어이다.

명령어나 파일의 정보를 확인하는 용도로 사용된다.

 

 

검색(찾기) 기능이 추가되는 것을 제외하면 동작 방식은 less 명령어와 동일하다.

  • enter, j, 아래 방향키 : 한 줄 넘어가기
  • k, 위 방향키 : 한 줄 돌아가기
  • spacebar, page down : 한 화면 넘어가기
  • page up : 한 화면 돌아가기
  • g : 첫 줄로 이동
  • G : 마지막 줄로 이동
  • /Pattern : Pattern 검색(n : 다음 찾기, N : 이전 찾기)
  • q : less 실행 화면 종료(파일을 끝까지 내려도 자동 종료되지 않음)

 

 

find 명령어의 매뉴얼 확인

 

/-exec + enter로 -exec이 포함된 부분 검색

 

 

 

시스템 종료 명령어

 

  • shutdown -h now : 즉시 종료, now 대신 숫자 넣으면 해당 시간(분) 후 종료
  • poweroff
  • halt
  • init 0

 

 

 

시스템 재부팅 명령어

 

  • shutdown -r now : 즉시 재부팅, now 대신 숫자 넣으면 해당 시간(분) 후 재부팅
  • reboot
  • init 6

 

 

 

기초 명령어 실습

 

 

 

(풀이)

 

 

풀이에 사용된 경로는 모두 /로 시작하는 절대경로이다.

파일 생성의 경우 내용이 주어지지 않았으므로 'cat >'과 'touch' 모두 사용 가능하다.

 

cp 명령어로 파일의 이름을 변경하면서 복사할 때는 명령어를 두 줄로 나누어 적어야 한다.

 

마지막 단계에서 -type f 옵션은 붙여줘도 되고 생략해도 된다.

파일을 지우는 rm 명령어에 -r 옵션을 사용하지 않아 디렉토리는 어차피 삭제되지 않기 때문이다.

cannot remove 오류가 출력되는 것을 보기 싫다면 -type f 옵션을 붙여주면 된다.

 

 

 

여기까지 해서 기초 명령어 포스팅이 마무리되었다.

다음 내용으로 넘어가기 전에 명령어를 실습하면서 만든 불필요한 파일, 디렉토리를 삭제해준다.

 

 

 

 

'2022 데이터 사이언스 > Linux' 카테고리의 다른 글

08. vi 에디터(1): 명령 모드, 입력 모드  (0) 2022.05.22
07. FTP 서버 구축  (0) 2022.05.20
05. 기초 명령어(2)  (0) 2022.05.17
04. 기초 명령어(1)  (0) 2022.05.16
03. 기본 디렉토리와 경로  (0) 2022.05.14