PowerPoint 프레젠테이션

Similar documents
<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Linux SHELL

Microsoft PowerPoint - comp_prac_081223_2.pptx

Microsoft PowerPoint UNIX Shell.ppt

Microsoft PowerPoint - u5.pptx

Microsoft PowerPoint UNIX Shell.pptx

Linux SHELL

Microsoft PowerPoint - u5.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 05_(Linux)_(Fundamental)_Shell_Programming

Microsoft PowerPoint - 04_UsingShell

PowerPoint 프레젠테이션

Chapter 05. 파일접근권한관리하기

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint - 02-Shell-Programming

chap2

PowerPoint 프레젠테이션

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

제2장 리눅스 사용

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

ksh프로그램문법.ppt

untitled

Microsoft PowerPoint - 07-EDU-LinuxUser-3.ppt

Microsoft PowerPoint - u3.ppt [호환 모드]

/chroot/lib/ /chroot/etc/

단계

벤처연구사업(전동휠체어) 평가

Microsoft PowerPoint Unix3.ppt [호환 모드]

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (t

PowerPoint 프레젠테이션

교육지원 IT시스템 선진화

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

제2장 유닉스 사용

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Chapter 06. 프로세스관리하기

PowerPoint 프레젠테이션

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다고가정하자. / /bin/ /home/ /home/taesoo/ /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자가터미널에서다음 ls 명령입력시화면출력

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Adobe Flash 취약점 분석 (CVE )

PowerPoint 프레젠테이션

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

PowerPoint 프레젠테이션

제 1604 회리눅스마스터 2 급 2 차 A 형정답

제1장 Unix란 무엇인가?

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

작성자 : 기술지원부 김 삼 수

PowerPoint 프레젠테이션

Content Shell 이란? Redirection & Pipes Shell Programming 변수 조건 프로그램제어 리스트 함수 Shell 에내장된명령 Here documents Page 2

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft Word ARM_ver2_0a.docx

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint 통신 및 압축 명령어.ppt

Discrete Mathematics

슬라이드 1

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

슬라이드 1

Sena Technologies, Inc. HelloDevice Super 1.1.0

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

PowerPoint 프레젠테이션

Solaris 9 (x86) Installation Guide for VMware 7 Writer : 이경호

Microsoft Word MetOne237Bmanual

Microsoft PowerPoint - chap06-1Array.ppt

리눅스 프로세스 관리

3. 다음그림은프로세스의 file table 과 v-node 테이블의연결관계예제이다. 위그림을참고하여두개의서로다른프로세스가같은파일을 open 명령을사용하여열었을때의연결관계를도시하시오. 4. 메모리영역은 low-address 부터 high-adress 까지순서대로나열했을

슬라이드 1

Microsoft PowerPoint - 01_Overview

PowerPoint 프레젠테이션

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft Word - PLC제어응용-2차시.doc

chap 5: Trees

Microsoft PowerPoint - 02-Development-Environment-1.ppt

01Àå

PowerPoint 프레젠테이션

(SW3704) Gingerbread Source Build & Working Guide

Unix & Linux 개요 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( Thanks to: cancho & facewhite from SPARC/KAIST, Bruce La Plante fro

INDEX 1. 개요 데이터백업스크립트작성 crontab 을이용한자동백업예약 활용 - 다른서버에백업하기

PowerPoint 프레젠테이션

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

C 프로그램의 기본

<30392E31322E303320C1F6B1B8C1F6C1A420B9D720C1F6C7FCB5B5B8E920B0EDBDC E706466>

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft Word - Lab_080104A.docx

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint 프레젠테이션

Transcription:

Chapter 04. 셸사용하기

00. 개요 01. 셸의기능과종류 02. 셸기본사용법 03. 입출력방향바꾸기 04. 배시셸환경설정 05. 에일리어스와히스토리 06. 프롬프트설정 07. 환경설정파일

셸의기능을설명하고주요셸의종류를나열할수있다. 로그인셸을다른셸로바꿀수있다. 셸특수문자의종류를이해하고필요에따라적절하게사용할수있다. 표준입출력장치를이해하고입출력방향바꾸기를할수있다. 셸변수와환경변수의차이를이해하고변수를정의하여사용할수있다. 새로운에일리어스를만들거나필요없는에일리어스를해제할수있다. 히스토리기능으로명령을재실행할수있다. 이스케이프문자를이해하고프롬프트를원하는형태로바꿀수있다. 시스템환경설정파일과사용자환경설정파일을구분하고사용자환경을설정할수있다.

리눅스실습스터디맵

00 개요 [ 그림 4-1] 4 장의내용구성

01 셸의기능과종류 셸의기능 명령어해석기기능, 프로그래밍기능, 사용자환경설정기능 명령어해석기기능 사용자와커널사이에서명령을해석하여전달하는해석기 (interpreter) 와번역기 (translator) 기능 사용자가로그인하면셸이자동으로실행되어사용자가명령을입력하기를기다림 -> 로그인셸 로그인셸은 /etc/passwd 파일에사용자별로지정 프롬프트 : 셸이사용자의명령을기다리고있음을나타내는표시 프로그래밍기능 셸은자체내에프로그래밍기능이있어반복적으로수행하는작업을하나의프로그램으로작성가능 셸프로그램을셸스크립트 사용자환경설정기능 사용자환경을설정할수있도록초기화파일기능을제공 초기화파일에는명령을찾아오는경로를설정하거나, 파일과디렉터리를새로생성할때기본권한을설정하거나, 다양한환경변수등을설정

01 셸의기능과종류 셸의종류 본셸, 콘셸, C 셸, 배시셸, 대시셸 본셸 (Bourne shell) 유닉스 V7 에처음등장한최초의셸 개발자의이름인스티븐본 (Stephen Bourne) 의이름을따서본셸이라고함 본셸의명령이름은 sh 임 초기에본셸은단순하고처리속도가빨라서많이사용되었고, 지금도시스템관리작업을수행하는많은셸스크립트는본셸을기반으로하고있음 히스토리, 에일리어스, 작업제어등사용자의편의를위한기능을제공하지못해이후에다른셸들이등장 C 셸 (C shell) 캘리포니아대학교 ( 버클리 ) 에서빌조이 (Bill Joy) 가개발 2BSD 유닉스에포함되어발표 본셸에는없던에일리어스나히스토리같은사용자편의기능을포함 셸스크립트작성을위한구문형식이 C 언어와같아 C 셸이라는이름을가지게되었음 C 셸의명령이름은 csh

01 셸의기능과종류 콘셸 (Korn shell) 1980 년대중반 AT&T 벨연구소의데이비드콘 (David Korn) 이콘셸을개발 유닉스 SVR 4 에포함되어발표 C 셸과달리본셸과의호환성을유지하고히스토리, 에일리어스기능등 C 셸의특징도모두제공하면서처리속도도빠름 콘셸의명령이름은 ksh 배시셸 (bash shell) 본셸을기반으로개발된셸로서 1988 년브레인폭스 (Brain Fox) 가개발 본셸과호환성을유지하면서 C 셸, 콘셸의편리한기능도포함 배시셸의명령이름은 bash 배시셸의모든버전은 GPL 라이선스에의거하여자유롭게사용가능 리눅스의기본셸로제공되고있어리눅스셸로도많이알려짐 대시셸 (dash shell) 본셸을기반으로개발된셸로 POSIX 표준을준수하면서보다작은크기로개발 암키스트셸 (ash, Almquist Shell) 의 NetBSD 버전으로 1997 년초에허버트슈가리눅스에이식 우분투 6.10 부터본셸대신대시셸을사용 user1@myubuntu:~$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 2 월 20 21:12 /bin/sh -> dash user1@myubuntu:~$

02 셸기본사용법 기본셸확인 프롬프트모양참조 본셸, 배시셸, 콘셸의기본프롬프트 : $ C 셸의기본프롬프트 : % 사용자정보확인 : /etc/passwd 파일 사용자정보의가장마지막에나온 /bin/bash가기본셸 user1@myubuntu:~$ grep user1 /etc/passwd user1:x:1000:1000:user1,,,:/home/user1:/bin/bash user1@myubuntu:~$

02 셸기본사용법 기본셸바꾸기 바꿀수있는셸의종류 : /etc/shells 파일에지정 user1@myubuntu:~$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash user1@myubuntu:~$

02 셸기본사용법 기본셸바꾸기예 바꾸려는셸은절대경로로지정 user1@myubuntu:~$ chsh -s sh user1 암호 : user1 계정의암호를입력한다. chsh: sh is an invalid shell 절대경로로입력하라는메시지가출력된다. user1@myubuntu:~$ chsh -s /bin/sh user1 암호 : user1@myubuntu:~$ tail /etc/passwd ( 생략 ) user1:x:1000:1000:user1,,,:/home/user1:/bin/sh sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin user1@myubuntu:~$ 로그인셸과서브셸 프롬프트에서다른셸을실행할수있는데이를서브셸이라함 서브셸은또다른서브셸생성가능 서브셸을종료하는명령은 ^d( +d), exit 등사용 서브셸이종료되면서브셸을실행했던이전셸환경으로복귀 로그인셸에서로그아웃하면접속해제

02 셸기본사용법 셸내장명령 셸은자체적으로내장명령을가지고있음 셸내장명령은별도의실행파일이없고셸안에포함 셸명령예 : cd 일반명령 ( 실행파일 ) 의경우 실행파일은바이너리파일이므로 cat 명령으로파일의내용을확인할수없음 user1@myubuntu:~$ file /bin/pwd /bin/pwd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5bc8aca164f8696 1368a41a06a0f7487f853d9d2, stripped user1@myubuntu:~$

02 셸기본사용법 배시셸의출력명령 echo user1@myubuntu:~$ echo linux linux user1@myubuntu:~$ echo "ubuntu linux" ubuntu linux user1@myubuntu:~$

02 셸기본사용법 배시셸의출력명령 printf % 지시자와 \ 문자를이용하여출력형식을지정가능 user1@myubuntu:~$ printf linux linuxuser1@myubuntu:~$ printf "ubuntu linux\n" ubuntu linux user1@myubuntu:~$ printf "%d + %d = %d\n" 10 10 20 10 + 10 = 20 user1@myubuntu:~$

02 셸기본사용법 특수문자사용하기 사용자가더욱편리하게명령을입력하고실행할수있도록다양한특수문자를제공 주요특수문자는 *,?,, ;, [ ], ~,,, ` `` 등 명령을입력하면셸은먼저특수문자가있는지확인하고이를적절한형태로변경한후명령을실행 특수문자 *( 별표 ) 임의의문자열을나타내는특수문자로 0 개이상의문자로대체

02 셸기본사용법 특수문자? 와 [ ] 하나의문자를나타내는데사용? 는길이가 1 인임의의한문자를, [ ] 는괄호안에포함된문자중하나를나타냄

02 셸기본사용법 특수문자 ~ 와 ~( 물결표 ) 와 -( 붙임표 ) 는디렉터리를나타내는특수문자 ~ 만사용하면현재작업중인사용자의홈디렉터리를표시하고다른사용자의로그인 ID 와함께사용하면 (~ 로그인 ID) 해당사용자의홈디렉터리표시 - 는 cd 명령으로디렉터리를이전하기직전의작업디렉터리표시

02 셸기본사용법 특수문자 ; 과 ;( 쌍반점 ) 과 ( 파이프 ) 는명령과명령을연결 ; 은연결된명령을왼쪽부터차례로실행 는왼쪽명령의실행결과를오른쪽명령의입력으로전달

02 셸기본사용법 특수문자 와 ( 작은따옴표 ) 와 ( 큰따옴표 ) 는문자를감싸서문자열로만들어주고, 문자열안에사용된특수문자의기능을없앰 는모든특수문자를, 는 $, ``, \ 을제외한모든특수문자를일반문자로간주하여처리 특수문자 ` ` 셸은 ``` ` 로감싸인문자열을명령으로해석하여명령의실행결과로전환

02 셸기본사용법 특수문자 \ \( 역빗금, \ 와동일함 ) 은특수문자바로앞에사용되는데해당특수문자의효과를없애고일반문자처럼처리 특수문자 >, <, >> 입출력의방향을바꾸는특수문자

03 입출력방향바꾸기 표준입출력장치 표준입력장치 : 셸이작업을수행하는데필요한정보를받아들이는장치 -> 키보드 표준출력장치 : 실행결과를내보내는장치 -> 모니터 표준오류장치 : 오류메시지를내보내는장치 -> 모니터 파일디스크립터 파일관리를위해붙이는일련번호 입출력장치를변경할때는이파일디스크립터를사용 표준입출력장치를파일로바꾸는것을 리다이렉션 (redirection) 이라고함

03 입출력방향바꾸기 출력리다이렉션 > : 기존파일의내용을삭제하고새로결과를저장 >> : 기존파일의내용뒤에결과를추가 파일덮어쓰기 : > 1: 파일디스크립터 1 번 ( 표준출력, 화면 ) 셸은 > 를사용한리다이렉션에서지정한이름의파일이없으면파일을생성해서명령의수행결과를저장 파일이있으면이전의내용이없어지고명령의수행결과로대체

03 입출력방향바꾸기 파일덮어쓰기 : > 예 user1@myubuntu:~$ mkdir linux_ex/ch4 user1@myubuntu:~$ cd linux_ex/ch4 ls out1 out1이있는지확인한다. ls: out1에접근할수없습니다 : 그런파일이나디렉터리가없습니다 ls -al 명령의결과가화면 ( 표준출력 ) 으로출력된다. 합계 8 drwxrwxr-x 2 user1 user1 4096 2월 23 15:53. drwxrwxr-x 5 user1 user1 4096 2월 23 15:53.. ls -al > out1 명령의결과를 out1 파일에저장한다. cat out1 파일내용을확인한다. 합계 8 drwxrwxr-x 2 user1 user1 4096 2월 23 15:55. drwxrwxr-x 5 user1 user1 4096 2월 23 15:53.. -rw-rw-r-- 1 user1 user1 0 2월 23 15:55 out1 date > out1 명령의결과를 out1 파일에저장한다. cat out1 ls 명령의실행결과가없어진다. 2014. 02. 23. ( 일 ) 15:56:45 KST

03 입출력방향바꾸기 예상치않게파일의내용이겹쳐쓰이는상황을예방하기 set -o noclobber ls > out1 -bash: out1: cannot overwrite existing file 설정해제 set +o noclobber ls > out1 cat 명령으로파일생성하기 cat > out1 표준입력을받아 out1 에저장한다. Ubuntu Linux 내용을입력한다. I love Linux. ^D 입력을종료한다. cat out1 파일내용을확인한다. Ubuntu Linux I love Linux.

03 입출력방향바꾸기 파일에내용추가하기 : >> 지정한파일이없으면파일을생성하고, 파일이있으면기존파일의끝에명령의실행결과를추가 cat out1 기존파일내용을확인한다. Ubuntu Linux I love Linux. date >> out1 리다이렉션한다 ( 내용추가 ). cat out1 파일내용을확인한다. Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST 추가된내용이다.

03 입출력방향바꾸기 오류리다이렉션 표준오류도기본적으로화면으로출력되며표준출력처럼리다이렉션가능 표준출력과표준오류예 ls out1 정상실행 ( 표준출력 ) ls /abc ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다오류메시지 ( 표준오류 ) 표준출력리다이렉션 : 오류메시지는리다이렉션안됨 ls > ls.out 표준출력리다이렉션 ls /abc > ls.err 표준출력리다이렉션 ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다출력된다. cat ls.err 오류메시지가저장되지않았다. cat ls.out 표준출력내용이출력된다. ls.out out1 오류메시지가화면에

03 입출력방향바꾸기 오류리다이렉션 오류리다이렉션에서는파일디스크립터번호를생략불가 ls /abc 2> ls.err 표준오류를리다이렉션한다. cat ls.err ls: /abc에접근할수없습니다 : 그런파일이나디렉터리가없습니다파일에저장된메시지이다. 표준출력과표준오류를한번에리다이렉션하기 ls. /abc > ls.out 2> ls.err

03 입출력방향바꾸기 오류리다이렉션 오류메시지버리기 ls /abc 2> /dev/null 표준출력과표준오류를한파일로리다이렉션하기 명령의정상실행결과를파일로리다이렉션 (>). 그명령전체의오류메시지를 1 번파일 ( 표준출력파일, &1 이라고표현함 ) 로리다이렉션 (2>). ls. /abc > ls.out 2>&1 cat ls.out ls: /abc 에접근할수없습니다 : 그런파일이나디렉터리가없습니다오류메시지를저장한다..: 현재디렉터리내용이다. ls.err ls.out out1

03 입출력방향바꾸기 입력리다이렉션 입력리다이렉션예 : cat 명령 cat out1 파일내용을출력한다 (< 생략 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST cat < out1 표준입력을리다이렉션한다 (< 사용 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST cat 0< out1 표준입력을리다이렉션한다 (0< 사용 ). Ubuntu Linux I love Linux. 2014. 02. 23. ( 일 ) 16:02:25 KST

04 배시셸환경설정 셸변수와환경변수 셸의환경을설정하기위한값을저장할수있도록셸변수와환경변수를제공 셸변수 : 현재셸에서만사용이가능하고서브셸로는전달되지않음 ( 지역변수 ) 환경변수 : 현재셸뿐만아니라서브셸로도전달 ( 전역변수 ) 전체변수출력 : set, env set: 셸변수와환경변수모두출력 set BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:hist append:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d ( 생략 ) quote_readline () { local quoted; _quote_readline_by_ref "$1" ret; printf %s "$ret" }

04 배시셸환경설정 전체변수출력 : set, env env: 환경변수만출력 env XDG_SESSION_ID=3 TERM=xterm SHELL=/bin/bash SSH_CLIENT=192.168.0.17 9912 22 SSH_TTY=/dev/pts/1 USER=user1 ( 생략 ) LESSOPEN= /usr/bin/lesspipe %s XDG_RUNTIME_DIR=/run/user/1000 LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env OLDPWD=/home/user1

04 배시셸환경설정 주요셸환경변수 특정변수출력하기 : echo 변수의값을출력할때는변수이름앞에특수문자 $ 를붙임 echo $SHELL /bin/bash

04 배시셸환경설정 셸변수설정하기 변수이름과문자열사이에공백이있으면안됨 SOME=test echo $SOME test

04 배시셸환경설정 환경변수설정하기 : export 먼저셸변수를정의하고, export 명령을사용하여이를환경변수로변경 export SOME env ( 생략 ) SHELL=/bin/bash SOME=test ( 생략 ) 변수를설정하면서바로 export 명령을사용하여한번에환경변수로전환도가능 export SOME1=test1 echo $SOME1 test1

04 배시셸환경설정 환경변수를다시셸변수로바꾸기 : export n 예 : SOME 은보이지만 SOME1 은보이지않음 export -n SOME1 env ( 생략 ) SOME=test ( 생략 ) 변수해제하기 unset SOME unset SOME1 echo $SOME echo $SOME1

05 에일리어스와히스토리 에일리어스 에일리어스 (alias) 는우리말로 별명 을의미 기존의명령을대신하여다른이름 ( 별명 ) 을붙일수있도록하는기능 긴명령대신짧은명령을만들어사용가능 여러명령을연결하여하나의명령으로만들수도있음 자주사용하는옵션을포함하여새로운이름을붙여서사용가능

05 에일리어스와히스토리 기존에일리어스확인 : alias 아무것도지정하지않고 alias 명령을실행하면현재설정되어있는에일리어스가출력 alias alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal echo error)" "$(history tail -n1 sed -e ' ''s/^ s*[0-9] + s*//;s/[;& ] s*alert$//' '')"' alias egrep='egrep --color=auto alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alf' alias ls='ls --color=auto' 에일리어스실행예 ll 합계 20 drwxrwxr-x 3 user1 user1 4096 2월 23 16:40./ drwxrwxr-x 5 user1 user1 4096 2월 23 15:53../ -rw-rw-r-- 1 user1 user1 60 2월 23 16:02 out1 drwxrwxr-x 2 user1 user1 4096 2월 23 16:40 temp/ -rw-rw-r-- 1 user1 user1 33 2월 23 16:40 u.out

05 에일리어스와히스토리 에일리어스설정하기 : alias 에일리어스이름 = 명령 형식사용 에일리어스설정예 : ls mkdir tmp ls out1 temp tmp u.out alias ls='ls -F' 공백이있으면작은따옴표를사용한다. ls 에일리어스의 ls를실행한다. out1 temp/ tmp/ u.out ls -F의결과를출력한다. 에일리어스설정예 : rm alias rm='rm -i' rm out1 rm: 일반파일 'out1' 를제거할까요? n

05 에일리어스와히스토리 에일리어스에인자전달하기 배시셸에서는에일리어스로인자를전달할수없음 배시셸에서인자를전달하려면프로그래밍기능에서함수를사용 인자전달함수예 user1@myubuntu:~$ unalias cd user1@myubuntu:~$ function cdpwd { 함수입력을시작한다. > cd $1;pwd 프롬프트가 > 로바뀐다. 내용을입력한다. > } 함수입력을종료한다. user1@myubuntu:~$ cdpwd /tmp /tmp user1@myubuntu:/tmp$ 에일리어스해제하기 : unalias user1@myubuntu:/tmp$ unalias ls user1@myubuntu:/tmp$ unalias rm user1@myubuntu:/tmp$

05 에일리어스와히스토리 히스토리 사용자가이전에입력한명령을다시불러사용하는것 user1@myubuntu:/tmp$ history ( 생략 ) 370 function cdpwd { cd $1;pwd; } 371 cdpwd /tmp 372 unalias ls 373 unalias rm 374 history user1@myubuntu:/tmp$

05 에일리어스와히스토리 명령재실행하기 :! 직전명령재실행예 user1@myubuntu:/tmp$ cd ~/linux_ex/ch4 ls out1 temp tmp u.out!! 바로직전의명령을재실행한다. ls out1 temp tmp u.out

05 에일리어스와히스토리 명령재실행하기 :! 이전에수행한명령을재실행예 history ( 생략 ) 376 cd ~/linux_ex/ch4 377 ls 378 history!377 히스토리번호로재실행한다. ls out1 temp tmp u.out!l 명령의앞글자로재실행한다. ls out1 temp tmp u.out

05 에일리어스와히스토리 명령편집하기와재실행하기 화살표키를사용하여오류가난명령을다시프롬프트로불러내서수정한뒤재실행가능 1 편집과재실행예 1 : 명령에오타를입력 man hisdory No manual entry for hisdory 2 프롬프트에서 키를누르면방금실행한명령이다시나타남 man hisdory 3 좌우화살표로커서를이동하여백스페이스키로삭제한후다시글자를입력하고엔터키를눌러서실행 man history 히스토리저장하기 로그아웃할때홈디렉터리아래의숨김파일인.bash_history 에히스토리저장 more ~/.bash_history ls ls -a ls /tmp ls -a /tmp ( 생략 )

06 프롬프트설정 프롬프트설정변수 : PS1 프롬프트를바꾸는것은환경변수 PS1 에새로운형태의문자열을지정하는것 echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 정값 PS1 의현재설 이스케이프문자와프롬프트설정하기 \ 으로시작하는특별한문자가이스케이프문자 \u와같이 \ 으로시작하는이스케이프문자는두글자가아니라한글자로처리 이스케이프문자는화면에문자그대로출력되지않고셸이문자의의미를해석하여실행

06 프롬프트설정 프롬프트에서 사용할수있는 이스케이프문자

06 프롬프트설정 프롬프트변경예제 1 간단한문자열로변경 : 프롬프트의끝을표시하기위해마지막에 ] 나 $ 같은표시를하고공백문자를둠 PS1='LINUX ] ' LINUX ] 2 환경변수를사용 : 프롬프트에현재작업디렉터리가출력 LINUX ] PS1='[$PWD] ' [/home/user1/linux_ex/ch4] cd.. [/home/user1/linux_ex] 3 명령의실행결과를사용 : 특수문자 `` ` 를이용, uname -n 명령은호스트이름을출력 [/home/user1/linux_ex] PS1='`uname -n` \! $ ' myubuntu 393 $ 4 이스케이프문자 \u, \T, \! 를사용 myubuntu 393 $ PS1='[ \u \T] \!$ ' [user1 05:22:09] 394$

06 프롬프트설정 컬러프롬프트설정하기

06 프롬프트설정 컬러프롬프트설정예 1 파란색으로설정하기 [user1 05:22:09] 394$ PS1="\e[34mLinux $ \e[0;0m Linux $ 2 파란색의볼드로설정하기 Linux $ PS1="\e[34;1mLinux $ \e[0;0m" Linux $ 3 밑줄친빨간색으로설정하기 Linux $ Linux $ PS1="\e[31;4mLinux $\e[0;0m" 4 배경은갈색, 글자는보라색, 프롬프트는 사용자이름 @ 호스트이름 $ 로설정하기 Linux $ PS1="\e[33;45;7m\u@\h $ \e[0;0m" user1@myubuntu $

07 환경설정파일 환경설정파일 사용자가로그인할때마다자동으로실행되는명령을저장한것이환경설정파일 시스템환경설정파일과사용자환경설정파일이있음 셸마다다른이름의파일을사용 시스템환경설정파일 시스템을사용하는전체사용자의공통환경을설정하는파일

07 환경설정파일 시스템환경설정파일 /etc/profile 파일 user1@myubuntu:~$ more /etc/profile # /etc/profile: system-wide.profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1),...). if [ "$PS1" ]; then if [ "$BASH" ] && [ "$BASH"!= "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1=' h: w $ ' if [ -f /etc/bash.bashrc ]; then. /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi ( 생략 )

07 환경설정파일 사용자환경설정파일 각사용자의홈디렉터리에숨김파일로생성 사용자가내용을수정하고관리가능

07 환경설정파일 사용자환경설정파일예 user1@myubuntu:~$ cat.profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include.bashrc if it exists if [ -f "$HOME/.bashrc" ]; then. "$HOME/.bashrc ( 생략 ) user1@myubuntu:~$ cat.bash_logout # ~/.bash_logout: executed by bash(1) when login shell exits. # when leaving the console clear the screen to increase privacy if [ "$SHLVL" = 1 ]; then [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q fi user1@myubuntu:~$

07 환경설정파일 사용자환경설정파일만들기 vi 로.bash_aliases 파일수정 user1@myubuntu:~$ vi.bash_aliases alias rm='rm -i' alias h=history alias c=clear ~ :wq 저장하고종료한다. user1@myubuntu:~$ 사용자환경설정파일적용하기 user1@myubuntu:~$..bash_aliases user1@myubuntu:~$ source.bash_aliases

07 환경설정파일 다른셸의환경설정파일