1. 셸의 기능과 종류
- 셸의 기능: 명령어 해석기 기능, 프로그래밍 기능, 사용자 환경 설정 기능
2. 셸 기본 사용 법
2-1. 셸 지정하고 바꾸기
- 사용자가 로그인을 하면 자동으로 생성되는 기본 셸을 로그인 셸이라고 부름.
chsh: 사용자 로그인 셸을 바꾼다.
- 형식: chsh [옵션] [사용자명]
- 옵션
• -s shell: 지정한 셸(절대 경로)로 로그인 셸을 바꾼다.
• -l: /etc/shells 파일에 지정된 셸을 출력한다.
2-2. 출력하기
echo: 화면에 한 줄의 문자열을 출력 (자동 줄 바꿈)
- 형식: echo [-n] [문자열]
- 옵션
- 변수의 값을 출력할 경우에는 변수명 앞에 $를 붙여야 함.
• -n: 마지막에 줄 바꿈을 하지 않음
printf: 자료를 형식화하여 화면에 출력
- 형식: printf [옵션] [인수]
- 옵션: %d, \n 등 C 언어 printf 함수의 형식을 지정
- \n 없이 출력할 경우 줄 바꿈이 되지 않음
2-3. 특수문자 사용하기
- *: 파일명을 넣어야 하는 자리에 사용하면 모든 파일을 나타냄
- ?와 [] : ?는 길이가 1인 임의의 한 문자를, []는 괄호 안에 포함된 문자 중 하나를 나타냄
- ~와 - : ~만 사용하면 현재 작업 중인 사용자의 홈 디렉터리를, 다른 사용자의 로그인 ID와 함께 사용하면 해당 사용자의 홈 디렉터리를 나타냄. -는 cd 명령으로 이전 작업 디렉터리로 이동.
- ;과 |: ;은 연결된 명령을 왼쪽부터 차례로 실행, |는 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달
- ‘’와 “” : ‘’는 모든 특수문자를, “”는 $, `, \을 제외한 모든 특수문자를 일반 문자로 간주하여 처리, 셸 변수에 저장된 값을 출력할 때 셀 변수 앞에 $를 붙임.
- ``: 감싸인 문자열을 명령으로 해석하여 명령의 실행 결과로 바뀌게 됨
- \: 특수문자 바로 앞에 사용하며, 해당 특수문자의 효과를 없애고 일반 문자처럼 처리
- >, <, >> : 입출력의 방향을 바꾸는 특수문자
- $: 변수 이름 앞에 붙이며 변수 내용을 의미
3. 입출력 방향 바꾸기
3-1 표준 입출력 장치
- 표준 입출력 장치를 파일로 바꾸는 것을 리다이렉션이라고 함
- 표준 입출력 장치의 파일 디스크립터: 입력 = 0, 출력 = 1, 오류 = 2
3-2. 출력 리다이렉션
파일 덮어쓰기
- > : 파일 리다이렉션 (덮어쓰기)을 한다
- 형식: 명령 1> 파일 or 명령 > 파일
- cat 명령은 표준 입력으로부터 입력을 받아 표준 출력으로 보낼 수도 있음. ex) cat > out1
- 표준 출력과 표준 오류를 한 파일로 리다이렉션하기: ls . /abc > ls.out 2>&1
파일 내용 추가하기
- >> : 파일에 내용을 추가
- 형식: 명령 >> 파일
- 파일이 없으면 파일을 생성, 해당 파일이 있으면 끝에 명령의 실행 결과를 추가
3-3. 오류 리다이렉션
- 오류 메시지는 표준 출력이 아니기 때문에 리다이렉션 되지 않는다.
- 2> : 표준 오류 메시지를 파일에 저장한다.
- 형식: 명령 2> 파일
3-4. 입력 리다이렉션
- < : 표준 입력을 바꿈
- 형식: 명령 0<파일 , 명령 < 파일
- cat 명령이 파일을 읽어서 출력하는 기능은 <를 생략한 것
4. 배시 셸 환경 설정
4-1. 셸이 제공하는 변수 및 출력
- 셸이 사용하는 변수에는 셸 변수, 환경 변수
- 셸 변수는 현재 셸에서만 사용이 가능한 지역 변수이고,, 환경 변수는 현재 셸뿐만 아니라 서브 셸에서도 사용할 수 있는 전역 변수임.
set , env : set은 셸 변수와 환경 변수를 모두 출력하고, env는 환경 변수만 출력.
주요 셸 환경 변수
- HISTSIZE: 히스토리 저장 크기
- HOME: 사용자 홈 디렉터리의 절대 경로
- LANG: 사용하는 언어
- LOGNAME: 사용자 계정 이름
- PATH: 명령을 탐색할 경로
- PWD: 작업 디렉터리의 절대 경로
- SHELL: 로그인 셸
특정 변수 출력하기: echo 명령을 사용하고 변수명 앞에 특수문자 $를 붙임
4-2. 셸 변수와 환경 변수 설정하기
- 형식: 변수명=문자열 (변수명과 문자열 사이에 공백이 있으면 안 됨))
환경 변수 설정하기: export 명령
export: 지정한 셸 변수를 환경 변수로 바꿈
- 형식: export [옵션] [셸 변수]
- 옵션: -n: 환경 변수를 셸 변수로 바꿈
- 환경 변수 출력 ex) env | grep [셸 변수]
4-3. 변수 해제
unset: 지정한 변수를 해제
- 형식: unset 변수
5. 에일리어스와 히스토리
5-1. 에일리어스: 기존의 명령을 대신하여 다른 이름을 붙일 수 있도록 하는 기능
alias: 에일리어스를 생성
- 형식: alias 이름=‘명령’ (= 좌우에 공백이 있으면 안 됨))
- 아무것도 지정하지 않고 alias 명령을 실행하면 현재 설정되어 있는 에일리어스가 출력
- 옵션 등을 지정하여 공백이 있는 경우에는 작은따옴표로 묶어야 함
- 에일리어스에 인자를 전달하려면 ;으로 명령을 연결한다.
에일리어스 삭제하기: unalias
unalias: 에일리어스를 삭제
- 형식: unalias 에일리어스
5-2. 히스토리
- hisory: 히스토리를 출력
- 형식: history
명령 재실행하기: !
- !!: 바로 직전에 실행한 명령을 재실행
- !번호: 히스토리에서 해당 번호의 명령을 재실행
- !문자열: 히스토리에서 해당 문자열로 시작하는 마지막 명령을 재실행
6. 프롬프트 설정
- 환경 변수 PS1에 프롬프트로 사용할 문자열을 저장
7. 환경 설정 파일
- 환경 설정 파일이 존재하는 이유는 매번 환경변수나 alias 함수 등을 정의하는 것이 비효율적이기 때문에 자동적으로 정의되어 실행하기 위해서이다.
7-1. 시스템 환경 설정 파일
- 전체 사용자의 공통 환경을 설정하는 파일로 모든 사용자가 로그인할 때마다 무조건 실행
- 배시 셸의 시스템 환경 설정 파일은 /etc 디렉터리에 있다.
배시 셸의 시스템 환경 설정 파일
- /etc/profile: 모든 셸에 공통으로 적용되는 .profile 파일로 배시 셸의 경우 /etc/bash.bashrc파일과 /etc/profile.d/*.sh 파일을 실행한다.
- etc/bash.bashrc: 시스템 공통으로 적용되는 .bashrc 파일로 기본 프롬프트를 설정한다.
- /etc/profile.d/*.sh: 언어나 명령별로 각각 필요한 환경을 설정한다. 필요시 설정 파일을 추가한다.
7-2. 사용자 환경 설정 파일
사용자가 로그인 하면 제일 먼저 시스템 환경 설정 파일이 실행되어 시스템 공통 환경을 만들고, 이후 사용자 환경 설정 파일을 순서대로 실행하여 사용자별 환경을 설정
- ~/.profile: 사용자가 정의하는 환경을 설정, .bashrc파일이 있으면 실행
- ~/.bashrc: 히스토리의 크기를 설정, 기본 에일리어스나 함수 등을 설정
- ~/.bash_aliases: 사용자가 정의한 에일리어스를 별도 파일로 저장
- ~/.bash_logout: 로그아웃 시 실행할 필요가 있는 함수 등을 설정
사용자 환경 설정 파일 적용하기
- 사용자 환경설정 파일을 수정했을 때 source 또는 .(마침표) 명령을 사용하여 환경 설정 파일을 실행
'대학교 2학년 1학기 > 리눅스 프로그래밍' 카테고리의 다른 글
프로세스 관리하기 (0) | 2022.05.01 |
---|---|
파일 접근 권한 관리하기 (0) | 2022.04.04 |
문서 편집하기 (0) | 2022.04.04 |
디렉터리와 파일 사용 (0) | 2022.04.04 |
리눅스 입문 (0) | 2022.04.04 |