We are Architect

10. Bash 소개 본문

Cloud/Azure

10. Bash 소개

the best infra 2024. 12. 11. 15:42

* Bash 란?

  • 리눅스를 관리하는데 중요한 도구이다. Bourne Again Shell의 약어이다. 
  • 운영체제에 작업을 수행하게 명령하는 프로그램이다. 
  • 컴퓨터의 콘솔에 명령어를 입력하고 직접 실행하고 쉘 스크립트를 사용하여 일괄 처리를 실행할 수 있다. 
  •  다른 Shell도 존재하지만 리눅스의 표준은 Bash이 되어 버렸다. 
  • Bash이 성공한 이유는 간편성이다.
    • 프로그램은 한 가지 작업을 수행하며 이 작업을 잘 처리합니다.
    • 프로그램은 함께 작동합니다.
    • 프로그램들은 서로 정보를 주고받을 때 글자 형태의 데이터(텍스트) 를 사용.

 

 

* Bash 문 구문

commnad [options] [argument]

 

bash 명령어 의미
ls 현재 디렉터리의 파일들 출력.
man (명령어) 명령어의 메뉴얼을 볼 수 있다.
ls  * .text 확장자가 .text 로 끝나는 파일들을 출력. ( * 은 와일드카드로 모든 내용 포함시킨다.)
ls *\** 와일드카드 문자 중 하나를 일반 문자로 사용해야 하는 경우 \ 사용.

 

 

 

* ls 명령

  • ls는 현재 디렉터리에 존재하는 파일들 목록을 출력하는 명령어.
명령어 의미
ls  현재 디렉터리 또는 명령의 인수에 지정된 디렉터리 내용 나열. 
ls -a  현재 디렉터리에 존재하는 모든 파일을 출력, 숨겨진 파일도 포함. 
ls -l 현재 디렉터리에 존재하는 파일들의 내용을 디테일하게 보려면 사용.
ls -al 현재 디렉터리에 존재하는 모든 파일들의 내용들을 디테일하게 출력.

 

 

 

* cat  명령어 

  • 파일안에 혹은 경로밑에 있는 파일 안에 있는 내용을 출력하는 명령어이다.

 

 

* sudo 명령어

  • 루트 권한이 필요할 때 사용하는 명령어
  • superuser do 의 약자이다. 
sudo cat /etc/at.deny

 

 

* cd, mkdir 및 rmdir, cp 명령어

  • cd : change directory의 약어로 말 그대로 디렉터리를 바꿀 때 사용한다. 
    • cd .. : 현재 디렉터리에서 상위 디렉터리로.
    • cd /etc : 현재 디렉터리에서 원하는 디렉터리로. 예시에는 /etc 디렉터리로 전환.
    • cd ~ : 현재 디렉터리에서 홈 디렉터리로.
  • mkdir : 디렉터리 생성.
    • mkdir orders : orders라는 디렉터리 생성.
    • mkdir --parents orders/2024 : orders 밑에 하위 디렉터리인 2024 디렉터리까지 생성.
  • rm 명령어
    • remove의 약자. 파일을 삭제한다. 
  • cp 명령어
    • cp test1.txt test2.txt : test1.txt의 파일내용을 test2.txt 라는 이름으로 복사
    • cp -i test1.txt test2.txt : test1.txt의 파일내용을 test2.txt 라는 이름으로 복사하기 전에 경고.
    • cp * photo : 현재디렉터리에 있는 모든 파일을 photo디렉터리 밑에 전부 복사하기.
    • cp photo/* cute : photo디렉터리 밑에 있는 모든 파일들을 cut이라는 디렉터리 밑으로 복사.
    • cp -r photos images : photos와 밑에 존재하는 하위 디렉터리들이 통째로 images 밑으로 들어간다.

 

* ps 명령어

  • 현재 실행되는 프로세스를 출력하는 명령어.
  • ps -e : 시스템에서 실행 중인 모든 프로세스를 표시.
  • ps -ef : 시스템에서 실행 중인 모든 프로세스상세표시.

 

 

* w 명령어

  • 현재 서버에 존재하는 인원들을 확인하기 위해서 사용하는 명령어.
  • 사용자 이름, 해당 IP 주소, 로그인한 시간, 현재 실행 중인 프로세스, 해당 프로세스를 사용하는 기간을 표시.
# 이런식으로 출력
10:15:42 up 1 day,  2:30,  2 users,  load average: 0.15, 0.10, 0.09
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.0.2     09:00    1:30   0.02s  0.01s bash
user2    pts/1    192.168.0.3     09:30       -   0.10s  0.03s w

 

 

* Bash i / o 연산자

  • 명령어와 옵션만 사용해도 많은 것들을 할 수 있지만 연산자까지도 사용해서 활용이 가능하다. 
  • > 연산자 :
    • 명령어가 수행되면 어떤 이름의 파일로 해당 출력된 내용을 저장 맟 덮어쓰기.
    • ls > test.txt : 현재 폴더에 목록을 출력하고 test.txt에 저장.
  • < 연산자 :
    • 원하는 내용의 키워드를 찾아서 명령어를 실행.
    • cat < test.txt : test.txt 파일 내용을 출력해라.
  • >> 연산자 : 
    • 명령어가 수행되면 어떤 이름의 파일로 해당 출력된 내용을 추가한다. 
    • ls >> listening.txt : 현재 폴더의 파일 목록에 listening.txt라는 파일을 추가함. 없으면 새로 만듦.
  • <<연산자 :
    • 직접 입력해서 명령어에 전달할 때 사용
    • << 의 예시 : 
# 출력된 내용을 file.txt에 저장한다.
cat << EOF > file.txt
Line 1: This is the first line.
Line 2: This is the second line.
EOF

 

  • | 연산자 : 
    • 명령어를 이중으로 실행할 수 있게 하는 연산자이다. 
    • ps -ef | more : 프로세스를 좀 더 상세하게 보는 명령어에 대한 정보를 페이지 단위로 나눠서 보여줘라 라는 명령어.
    • 연속으로도 사용이 가능하다.