3 분 소요

📍 해당 게시글은 사물인터넷을 위한 리눅스 기본을 공부하며 정리한 글입니다.


1. 에러 메시지 파일 저장 방법

명령어 2> error.txt
  • 명령어에 대한 오류를 error파일에 저장한다
  • 여기서 2는 파일 디스크립터이다. [파이프]
  • 앞명령어의 출력을 뒤의 명령어의 입력으로 전달하는 방법
  • ex) process1 process2 process3 ..
  • ex) cat a.txt head -2

[목 차]


1.파일 입출력

1) 종류

  • cat
  • more
  • head (-n)
  • tail (-n)
  • diff 파일1 파일2

2) 리다이렉션

  • 명령어 > 파일 : 기존 파일 덮어씌우기
  • 명령어 >> 파일 : 기존 파일에 추가
  • 명령어 < 들어오는파일 > 나가는 파일

<에러처리>

  • 명령어 2> error.txt
  • 명령어에 대한 오류를 error파일에 저장한다
  • 여기서 2는 파일 디스크립터이다.

<파이프>

  • 앞명령어의 출력을 뒤의 명령어의 입력으로 전달하는 방법
    • ex) process1 process2 process3 ..
    • ex) cat a.txt head -2

2. vi 에디터

1) 3가지 모드

  • 명령모드 : delete, J(줄병합), 방향키 이동(hjkl)
  • 편집모드 : 입력, 방향키이동x
  • ex모드 : 저장&종료(:x), 탐색(:n)

vi에디터는 명령모드로 시작한다. i를 눌려 편집 모드로 전환 후 편집이 가능하며

Esc키로 명령모드로 전환하여 Delete키(삭제), J(줄병합)으로 명령이 가능하다.

명령모드에서 :를 입력하면 ex모드가 되고, x를 이어서 입력 후 Enter를 하면 저장하고 종료한다.

https://github-production-user-asset-6210df.s3.amazonaws.com/88031549/252938414-12ef93f9-5383-4e75-8cfd-74a9e3f7d9e8.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230712%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230712T102651Z&X-Amz-Expires=300&X-Amz-Signature=57e9daeb5ae95d7e8342f50f7e3d2db645705d77087b4f2b36624495bfbb86af&X-Amz-SignedHeaders=host&actor_id=88031549&key_id=0&repo_id=663330333

2) 실행 방법

vi 파일명 으로 vim에디터를 실행하여 bash에서 파일 수정이 가능하다

  • 커서 이동 : 명령모드에서는 hjkl(왼,아래,위,오)로 이동가능하다.

3. 환경변수

1) 출력방법

  • 전체 환경변수 : env
    • env -u 환경변수 : 입력한 환경변수 값만 출력.( grep 환경변수)는 값을 안보여줌)
  • 하나씩 출력 : echo $환경변수 ← 출력시에는 $를 꼭 붙혀야한다.

ex) 사용자이름을 출력

  • echo $USER ← echo는 쉘 내장 명령어라 메모리 차지가 적다
  • (= who am i)
  • (= users)

참고 : rc 설정 파일이란?

rc는 Resource Configuration을 의미한다

  • 저장 위치 : 시스템 설정파일(/etc), 사용자 설정 파일(홈다이렉토리의 히든파일)
  • 종류
    • .bashrc : 셸을 위한 셸 스트립트. 셸 실행마다 실행됨
    • .bash_profile : 로그인할 때 읽어들이는 설정파일
    • .bash_logout : 셸이 종료될 때 수행

2) 변수 생성과 삭제

  • 환경변수 생성 : env 변수명=값
  • 지역변수 생성 : 변수명=값
    • 환경변수로 바꾸려면 export 변수명
  • 삭제(해제) : unset 변수명

주의! 변수 생성 시 =(등호) 전후로 공백이 존재하면 안된다. 공백이 있으면 변수명을 명령어로 인식함!

3) bash 환경변수 등록

위에서 bashrc파일은 셀 실행마다 실행된다고 하였다. 셀실행마다 사용하고 싶은 환경변수가 있다면?

$ vi ~/.bashrc
exprot VAR=123

4) 별칭(alias)

파일에 링크가 있듯이, 명령어도 같은 기능 다른 이름으로 생성가능하다.

주의 : 명령어는 작은 따옴표로 묶는다.

  • alias 별칭='명령어
    • ex) alias copy=’cp’

4. 유저 정보

1) 유저 정보 확인

  • /etc/passwd
  • 위 경로에 각 유저의 7가지 정보가 존재
  • 계정:비밀번호:UID:GID:GECOS:홈디렉터리:기본셀

2) 사용자명

  • users : 현재 시스템이 로그인하고 있는 사용자명
  • w users : 사용자명 + 작업 정보까지 출력
  • who
  • who am i : who에서 자기 자신의 정보만

3) 비밀번호 변경

  • passwd 로 변경 가능
  • 설정에서도 변경 가능하지만, 현재는 리눅스를 교육용으로 사용하고 있으니 비밀번호가 짧은 것이 편하다 이를 위해 터미널에서 sudo를 사용해 짧게 변경가능함!
  • sudo passwd 사용자 root, 일반유저 둘 다 바꿔서 통일하자.

4) sudo 그룹에 추가

  • usermod -aG sudo 유저명

5. 프로세스

1) PCB(Process Control Block)

프로세스는 운영체제에서 PCB로 표현된다. 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 완료시 같이 제거된다.

  • 프로세스 상태 5가지 : 생성, 준비, 실행, 대기, 종료 상태
  • 구분
    1. 부모 : 자식을 만드는 프로세스
    2. 자식 : 부모 프로세스에 의해 생성
    3. 고아 : 실행 도중 부모 프로세스가 먼저 종료된 프로세스
    4. 좀비 : 종료되지 않고 살아있는 부모
    5. 데몬 : 눈에 보이지 않지만 백그라운드에서 실행되는 프로세스

2) 프로세스 정보 출력

  • ps : 실행 중인 프로세스의 상태 출력(process status)
  • ps aux : 실행 중인 “모든” 프로세스의 상태 출력
  • 특정 프로세스 검색
    • ps -e | grep 프로세스명 ps -e는 커널 프로세스를 제외한 프로세스를 표시하고, 파이프를 통해 이를 grep이 입력받아 해당 프로세스의 정보만 출력한다.
  • top : 실시간 프로세스 리스트 확인(table of process)
    • 3초 간격으로 갱신하며 프로세스를 모니터링
    • shift + p : CPU 사용률 내림차순
    • q : top 종료

3) 프로세스 실행 제어

  • Ctrl + C : 강제 종료
  • Ctrl + Z : 실행 중지
  • jobs : 현재 중지 되었거나 백그라운드로 실행되는 프로세스(데몬) 표시
    • 여기서 작업번호를 확인할 수 있음 ex) [1], [2]..
  • 종료 : kill %작업번호 or kill 프로세스 번호 ← PID는 ps에서 확인가능!

태그:

카테고리:

업데이트:

댓글남기기