0부터 시작하는 Linux 공부 - Linux 명령어 돌아보기

Jaehong Lee·2022년 7월 19일
0
post-thumbnail

0. 시작하기 앞서

인스턴스 생성할 때 필요한 것

  1. 이미지 ( 템플릿 ) 선택
  2. Flavor ( 사양 ) 선택
  3. Ip ( 동적 Nat ) -> ( 정적 Nat / EIp 로 선택 가능 )
  4. Key-Pair ( 사용자 인증 ) / 인스턴스는 Public Key를 갖는다
    • AML 에서 USER는 ec2-user로 이 user는 wheel 그룹에 들어가 있으므로, sudo를 통해 필요할 때 마다 root의 권한을 사용할 수 있다

OS 의 구조

  • 컨테이너를 만들때는 리눅스 KERNEL의 네임스페이스 기능을 통해 각 작업 공간을 격리 시키고, C GROUP을 통해 각 공간마다 따로 자원을 할당해준다
  • 만약, KERNEL에 네임스페이스나 C GROUP 에 대한 코드가 없다면, 도커가 컨테이너를 생성할 때 물리 자원에 접근할 수 없으므로, 생성이 불가능하다. 이때는, 해당 기능이 있는 KERNEL로 UPDATE 해야 한다
  • 리눅스는 KERNEL이 오픈되어 있어서, 프로그램을 만들때 이 KERNEL에 맞게 만들 수 있다. 따라서, 리눅스 KERNEL에 맞게 만들어진 프로그램들은 서로 호환이 잘 되므로, 서비스 환경을 만드는데 유용하다

1. 리눅스 환경 변수

  • operator는 서비스 실행을 위한 계정으로 로그인이 불가능 해서 할당 받은 shell이 nologin이라고 표시된다. 이 계정은 파일 생성과 같은 작업은 불가능하며, 서비스 실행만을 위한 계정이다
  • 사용자는 로그인을 하게 되면 각 사용자 별로 별도의 시스템 환경 변수를 할당 받는다. printenv로 할당 받은 환경 변수를 확인 가능 하다

2. 명령 연속 실행

  • 연속된 2개 이상의 명령어를 한 번에 실행하고자 한다면
    1. 명령 ; 명령 : 앞 쪽 명령어에서 오류가 나도, 뒤 쪽 명령어를 실행한다
    2. 명령 && 명령 : 앞 쪽 명령어에서 오류가 나면, 뒤 쪽 명령어는 실행을 하지 않는다. 즉, 앞 쪽 명령이 잘 실행 됬을 경우에만 뒤 쪽 명령어를 실행 하고 싶을 때 사용한다

  • 명령 뒤에 \ 를 붙이면, 명령을 끝내지 않고, 밑에 줄에 명령을 계속 이어 갈 수 있게 한다

3. Redirection

  • redirection ( > , >> , < , << )
    • 표준 입력 : 키보드 ( 0 )
    • 표준 출력 : 화면 ( 1 )
    • 표준 에러 : 화면 ( 2 )
    • redirection 으로 입력과 출력의 방향을 변경할 수 있다. 즉, 입력은 키보드로 하되, 출력은 화면이 아닌, 생성한 파일로 보낼 수 있다

  • 다음과 같이 명령 실행 결과도 보낼 수 있다
  • 다음과 같이 에러만 담을 수 있게 2로 설정하면, 명령 결과가 화면에 출력된다. 이는, 에러만 담을 수 있게 설정했기에, 파일을 확인해보면 아무것도 담겨있지 않다
    • 입력 1> 파일명 : 정상 처리 결과 값만 파일에 저장
    • 입력 2> 파일명 : 오류 결과 값만 파일에 저장

4. TREE

  • 폴더를 두 개 동시에 생성한다. 이는 a 폴더 안에 b 폴더가 담겨져 있다. 만약 생성시 아래와 같이 /a를 하게 되면, 이는 절대 경로로 root 홈 디렉토리에서 작업하게 되므로 조심하자
  • tree를 설치해주자
  • tree를 통해 구조를 확인할 수 있다
  • 다음과 같이 안에 내용이 있는 폴더를 복사하면, 내용물도 같이 복사된다

5. MV

  • mv 는 파일이나 디렉토리를 이동하는 기능이 있으며, 동일 Directory 내에서 사용하게 되면 이름을 변경하는 효과가 있다

6. ls 옵션

  • 다음과 같이 ls 뒤에 a를 치면 a 폴더 안의 내용물을 보여준다
    • ls a : a 디렉토리 내에 있는 파일 / 디렉토리를 보여준다
    • ls | grep a : 현재 디렉토리 에서 a라는 이름의 디렉토리나 파일이 있다면 화면에 보여준다
    • 다음과 같이 txt라는 단어가 있는 파일 / 디렉토리만 보여준다

  • 다음과 같이 a*로 하면 a로 시작하는 파일 / 디렉토리를 모두 보여준다. 만약 해당하는 디렉토리가 있다면 내부의 내용물도 같이 보여준다
    • grep 은 특정 단어에 매치되는 파일이나 디렉토리 등을 출력시켜준다

7. 삭제

  • 디렉토리 삭제 -> rmdir : 비어있는 디렉토리 삭제 가능
  • 파일 삭제 -> rm ( alias rm = 'rm-i' 되있기에 삭제할 때 마다 물어본다 )
    • rm -f : force 옵션으로 물어보지 않고, 바로 삭제하게 한다
    • rm -r : 비어있지 않은 디렉토리 삭제
    • rm -rf : 파일이나 디렉토리를 물어보지 않고, 즉시 삭제 한다 ( 비어있지 않아도 삭제 )
    • 위와 같이 패턴을 추가해서, a로 시작하는 모든 파일 / 디렉토리를 삭제할 수 있다
    • 위와 같이 .txt로 끝나는 파일, 즉, 확장자가 txt인 파일들을 모두 삭제할 수 있다

8. 파일 내용 살펴보기

1. grep 이용

  • anaconda-ks.cfg 를 복사해 온다
  • 위 명령어는 grep으로 해당 파일 내용을 살펴봤을 때, root라는 단어가 있다면, 해당 행을 출력하는 것이다
    • 파일 내에서 특정 문자열이 있다면 해당 행을 출력하라

2. cat

  • 전체 내용을 화면에 출력

3. more / less

  • more : 페이지 단위로 출력하며, 전체 페이지에서 몇 % 까지 봤는지 알려준다. space / enter / b 키를 통해 조작 가능. q 로 나온다
  • less : 페이지 단위로 출력하며, 방향키 사용 가능. q 로 나온다

4. head / tail

  • head : 파일의 상단 10줄
  • tail : 파일의 하단 10줄, tail의 경우에는 실시간으로 특정 파일의 내용 / 로그 등을 확인할 때 유용하다
    • 일반적으로 로그는 /var/log 에 있다
    • httpd 를 실행시켜서 접속해보면, 다음과 같이 httpd 안에 log 파일들이 생긴다
    • log 파일의 내용을 살펴보면, 누가 접근했는지 알 수 있다
    • -f는 실시간 볼 수 있게해주는 의미다. - 3f는 마지막에서 3줄만 출력하게 해준 것 이다
    • 위와 같이 실시간으로 웹 접속 기록을 확인할 수 있다
profile
멋진 엔지니어가 될 때까지

0개의 댓글