리눅스

리눅스 명령어 1 (echo, ls, wc, head, cut)

Zino. 2024. 3. 11. 23:09

Shell

- 터미널 환경에서 입력한 명령어를 해석하고 관리하여 리눅스 커널과 사용자를 연결해주는 인터페이스

 

 

shell script

- 명령어를 한줄한줄 실행시키는 것은 번거롭기 때문에 이러한 명령어들을 한 파일에 담아놓은 파일을 말한다.(확장자명 .sh)

 

 

명령어의 기본 문법

<실행할 프로그램명> <실행할 내용>

위와같은 형태로 구성되어있다.

실행할 프로그램명은 이미 정해져 있는 명령어를 사용한다. 이러한 명령어를 내장명령이라 부르기도 한다.

 

 

echo

echo 라는 명령어를 사용하여 "Hello World" 라는 문장을 출력해보자

 

 

위 내용과 같은 명령어를 실행하면 Hello World가 출력된다.

echo 라는 명령어로 "Hello World" 를 출력하라는 말이다.

 

명령어에는 echo처럼 프로그램+내용 형태로 구성되는 simple command 와

프로그램+옵션+내용 으로 이루어진 combined command로 크게 구분 할 수 있다.

 

 

ls

ls 명령어는 현재 디렉토리에 있는 파일과 폴더들의 이름을 나열해주는 명령어이다.

 

 

위 사진처럼 ls 명령어를 실행하면 지금 위치에 어떤 폴더와 파일이 있는지 보여준다.

 

 

wc

wc 명령어는 Word Count , 줄 단어 문자 수 등을 출력하는 명령이다.

a.txt 파일의 내용이 위와 같을 때

a 라는 텍스트 파일에 대해 wc 명령어를 실행하면 위와 같은 결과가 나온다.

행 수가 총 2까지 있고

단어는 4개

문자는 21개 있다고 출력된 것이다.

 

텍스트 파일을 보면 총 3줄인데 왜  2줄로 나오는걸까

-> 행 수는 개행문자(\n)가 몇개 있는지로 판단한다. 한마디로 줄 바꿈이 몇번 일어났는지로 확인한다는 것이다.

만약 텍스트 파일이 아무내용없이 엔터만 5번 친 비어있는 6줄 짜리 텍스트 파일이면 어떻게 나올까

이런 텍스트 파일이면...?

엔터 = 개행문자 총 5번

5 0 0 a.txt 이렇게 나올거라 생각했는데

이렇게 나왔다,, 개행문자도 문자니까.... 꼭 기억하자

 

 - wc 옵션

-c : 전체 문자수만 출력

-l : 전체 라인의 수만 출력

-w : 전체 단어수만 출력

 

 

pipe line

명령어를 실행할 때 여러 프로그램을 사용하려면 | 기호를 사용하면 된다. 바로 파이프라인이다.

이전 명령의 출력을 다음 명령의 입력으로 보내는 역할을 한다.

두개의 명령어가 " | " 기호로 연속적으로 있다면 앞부분의 실행된 명령어가 화면에 출력하는 내용이 그대로 다음 명령어의 입력으로 보내지는 것이다.

 

위에서 확인한 ls, wc 명령어를 한번에 사용해보면 다음과 같다.

왜 이렇게 나왔는지 확인해보자

ls 를 실행하면 다음과 같다.

사실은 

이렇게 출력되어야 하는데 보기좋게 한줄로 나오는거라 생각하면 wc 출력이 왜 위 사진처럼 나왔는지 알 수 있다.

wc 명령어에서 개행문자를 잘 생각해줘야하는데 ls 의 출력값은 요소 하나를 출력하면 무조건 바로 개행문자가 있다고 생각하면 된다. 그래서 파일, 폴더가 총 6개인데도 총 6행이라고 출력되는 것이다.

 

특정 디렉토리의 파일, 폴더 갯수가 몇개인지 알고싶으면 어떻게 해야할까

/bin 위치에 몇개의 요소가 있는지 알려면 다음과 같이 작성하면 된다.

라인의 수가 결국 파일, 폴더의 수라고 생각할 수 있기 때문이다.

 

 

 

head

head 명령어는 텍스트 파일 내부의 내용을 볼 수 있도록 해주는 명령어이다. 내용 모두를 출력해주는 명령어는 아니고 일부분(10줄까지) 출력해주는 명령어이다.

정말 열번째 줄까지만 출력해주는지 확인하기 위해 11번째줄에 hi 를 써놓음

 

진짜 안나오네..

 

옵션으로 특정 줄까지 출력할 수 있다.

방금 txt 파일을 5번째 줄까지 출력해보자

 

다섯번째 줄 내용까지만 출력이 되는 것을 확인 할 수 있다.

 

현재 디렉토리의 내용물 중에 앞부터 원하는 갯수로 출력할 수 있다.

/bin 폴더의 앞의 5개 내용 출력하려면 다음과 같이 실행하면 된다.

" [ "&nbsp; 라는 폴더가 있는건가...?

여기서 [ 는 대부분의 시스템에서 test 폴더를 가르킨다고 한다.

 

 

 

cut

cut 명령어는 문자열을 잘라내서 새로운 문자열을 만드는 명령어이다.

문자열의 내용중 특정 부분을 지정해 출력할 수 있다는 것이 위에서 본 head 명령어와 다른점이다.

 

cut 옵션

-c : 문자열을 기준으로 잘라낸다.

-d : 지정한 문자를 구분자로 사용 (기본은  TAB)

-f : 필드를 기준으로 잘라낸다.

 

우선 -f 옵션에 대해 알아보자

animal.txt에는 다음과 같은 내용이 저장되어있다.

 

여기서 각 행의 세번째 필드인 연도만 출력하기 위해서는 다음과 같이 진행하면 된다.

 

 

첫번째 세번째 필드가 보고싶다면,

이런 명령어를 사용하면 된다.

 

 

이런 명령어도 가능하다.(1~3 필드 모두 보기)

 

 

-c 옵션을 사용해보자

맨 앞글자만 나온다.

 

첫글자부터 네번째 문자, 그리고 아홉번째 문자 출력

위처럼 범위 지정도 가능하다.

 

 

첫 필드의 마지막 문자를 출력해보자 (마지막 글자만 가져오는 명령어는 없어서 rev 명령어를 이용한다.)

첫번째 필드를 cut 으로 가져오고 rev 명령어로 뒤집고 , 첫문자만 가져오면 된다.

 

 

animals.txt 에서 각 줄의 이름중 두번째 이름을 출력해보자

animals.txt 의 네번째 필드를 가져온 후 " , " 를 기준으로 구분해 두번째 부분 출력