뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (201)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (26)
      • Spring (17)
      • 데이터베이스 (6)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

리눅스마스터 2급 2차 [셸]
유용한 모든 것

리눅스마스터 2급 2차 [셸]

2020. 8. 25. 00:40
반응형

셸

# 개념 및 종류

◦개념

-셸은 커널과 응용 프로그램 사이에서 사용자가 입력한 명령어를 해석하여 커널에 전달하고 커널에서 수행한 것을 사용자에게 전달하는, 대화식 인터페이스를 제공하는 셈이다.

-로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 함. 즉, 사용자마다 사용하는 셸이 다를 수 있음!

-기능 : 강력한 스크립트언어(프로그래밍 기능) / 입출력 방향 재지정 & 파이프 기능 / 포그라운드&백그라운드 프로세스 실행.

 

◦종류 <본셸 vs C셸계열>

-사용자 프롬포트 : $(본셸) , %(C셸)

-대부분의 셸은 본셸 계열의 기능을 포함하여 확대발전한 형태!

(그래서, C셸은 본셸의 모든 기능+히스토리, 별명, 작업제어기능을 추가로 가지고 있음)

 

(1)본셸 계열

(2)C셸 계열

# 셸 확인 및 변경

◦ 로그인 셸 확인

1. 사용할 수 있는 셸들 확인: cat /etc/shells

2. 계정마다 할당된 셸 확인: vi /etc/passwd

3. 현재 로그인한 사용자가 사용하고 있는 셸 확인: echo $SHELL

2. grep user1 없애면 전체 사용자의 셸 확인 가능!

◦셸 변경

-로그인 셸 변경은 반영구적인 셸 변경방법!(일시적x) 관리자가 셸 변경 후 다음 변경을 하기 전까진 지정된 셸 계속 사용함!

 

(1)명령어 chsh – 일반 사용자 환경에서 셸 변경 시

<형식> $ chsh [옵션] 계정명 셸

àchsh -s /bin/sh user1 : user1의 로그인 셸을 본셸로 바꿔라.

*셸 변경 후에 재부팅 해야 명령어 인식됨.

àchsh -l : 시스템에서 사용가능한 셸의 목록 확인하는 명령어. (명령어 ‘cat /etc/shells’ 도 가능)

 

(2)명령어 usermod – 관리자 환경에서 지정 계정의 정보를 변경할 때 사용하는 명령어

<형식> # usermod [옵션] 계정명

àusermod -s /bin/dash user1 : user1의 로그인 셸을 dash셸로 바꿔라.

 

환경설정

# 환경 변수와 셸 변수

◦변수: 시스템 환경 정보 저장소. 환경변수(전역)와 셸 변수(지역)로 구분.

◦주요 환경 변수 – 무조건 대문자

PATH HOME HOSTNAME USER DISPLAY PS1 PS2 PWD SHELL

TERM TMOUT LANG PRINT MAIL

 

◦ 환경 변수 설정 명령어

-export : 환경 변수 리스트 확인

-export 변수명 = 변수값 : 해당 변수명에 변수값 등록하면서 셸à환경변수로 변경

-echo $변수명 : 변수값 확인

-export 변수명=$변수명:변수값 : (기존 변수값에)변수값 추가.

-unset 변수명 : 변수 정의 해제

Ex) 환경변수 YJ를 새로 정의하여 확인 후 해제.

# 프롬프트 설정 형식

셸의 프롬프트 형식을 사용자 임의대로 변경할 수 있음!

현재 셸의 프롬프트 형식을 확인하기 위해서는 echo $PS1

(PS1는 셸 프롬프트를 선언 시 사용하는 환경 변수)

현재 프롬프트 형식이 user1@server:~$ 이런식. 즉 PS1='[\u@\h: \W]\$'

이 프롬프트 형식을 바꿔줄 수 있는데,

<설정 형식> PS1='[\○]\$'

ex) 현재 사용자 이름과 마지막 작업 디렉터리만 표시하려고 할때의 설정

: PS1='[\u@ \W]\$'

3번의 시도를 해본 결과, 사실 [] 이런것은 없어도 괜찮다! 정말 내가 '' 안에 쓰는대로 프롬프트 형식이 바뀌기 때문에 몇번의 수정 끝에 내가 제일 보기 좋은 형태로 바꿔주었다. (바꾸고 나니 첫모습과 거의 유사하지만..ㅎㅎ)

 

# 환경 설정 파일

-셸 시작 시 자동으로 실행되는 고유 시작 파일 à 사용자 운영환경을 설정하는 파일!

-bash 셸의 시작 파일: /etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bashrc

-셸 파일

 

전역적 파일(사용자에게 공통으로 영향을 주는 내용) ; /etc 아래에 위치

지역적 파일(사용자 개개인을 위한 설정 내용) ; 사용자 홈 디렉터리아래 숨김파일 형태로 위치

 

(1)전역 설정 파일

(2)지역 설정 파일

# bash 셸의 주요 기능

(1)history 기능

!! : 마지막으로 실행했던 명령문 실행

!n : n번째 명령어 실행

!-n : 현재 명령행에서 n개수를 뺀 행의 명령어 실행

①가장 최근에 'grep'으로 시작하는 명령문 실행

②마지막 명령의argument

③마지막으로 실행된 명령에 사용된 모든 argument

④가장 최근에 'echo'를 포함한 단어(명령어를) 출력

⑤history 스택의 크기 지정 (명령어 개수)

⑥history 파일 위치(절대경로)

⑦물리적인 히스토리 파일 크기

⑧히스토리 명령어 수행시간 출력 형태 지정

⑨export명령어로 history 출력형태를 '년 월 일 시간' 으로 지정 후 history 출력.

 

 

: ignoreboth는 중복되는 명령어는 한번만 기록한다. 는 의미!!

 

(2) alias 기능 : 자주 사용하는 명령어를 특정 문자로 입력해두고 간편하게 사용o

- alias : 설정된 별명들 출력

- alias 별명='명령어' : 새로운 별명 정의

- unalias 별명 : 지정된 별명 해제

 

반응형
저작자표시 (새창열림)

'유용한 모든 것' 카테고리의 다른 글

리눅스마스터 2급2차 [네트워크]  (0) 2020.08.25
리눅스마스터 2급 2차 [프로세스]  (0) 2020.08.25
리눅스마스터 2급 2차 [파일 시스템]  (0) 2020.08.24
리눅스마스터 2급 2차 [다시 봐야 할 개념]  (0) 2020.08.24
리눅스마스터 2급 2차 [프로세스 유틸리티]  (0) 2020.08.11
    '유용한 모든 것' 카테고리의 다른 글
    • 리눅스마스터 2급2차 [네트워크]
    • 리눅스마스터 2급 2차 [프로세스]
    • 리눅스마스터 2급 2차 [파일 시스템]
    • 리눅스마스터 2급 2차 [다시 봐야 할 개념]
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바