TEAM STUDY156 유닉스 쉘의 기능과 종류 쉘이란 사용자와 커널 사이의 중간 역할 명령을 해석하고 실행 결과를 알려주는 역할 사용자의 명령 입력 편의를 위한 환경 설정 쉘의 기능 명령어 해석기 기능 사용자와 커널 사이에서 명령을 해석하여 전달 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령을 입력하기를 기다림 → 로그인 셸 프롬프트: 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시 프로그래밍 기능 셸은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능 이러한 셸 프로그램을 셸 스크립트라고 지칭함 사용자 환경 설정 기능 사용자 환경을 설정할 수 있도록 초기화 파일 기능 제공명령을 찾아오는 경로 설정 파일과 디렉터리를 새로 생성할 때 기본 권한을 설정 다양한 환경 변수 ( 일반적으로 ex > $대.. TEAM STUDY/LINUX 2021. 1. 16. 유닉스 쉘의 기능과 종류 쉘이란 사용자와 커널 사이의 중간 역할 명령을 해석하고 실행 결과를 알려주는 역할 사용자의 명령 입력 편의를 위한 환경 설정 쉘의 기능 명령어 해석기 기능 사용자와 커널 사이에서 명령을 해석하여 전달 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령을 입력하기를 기다림 → 로그인 셸 프롬프트: 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시 프로그래밍 기능 셸은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능 이러한 셸 프로그램을 셸 스크립트라고 지칭함 사용자 환경 설정 기능 사용자 환경을 설정할 수 있도록 초기화 파일 기능 제공명령을 찾아오는 경로 설정 파일과 디렉터리를 새로 생성할 때 기본 권한을 설정 다양한 환경 변수 ( 일반적으로 ex > $대.. TEAM STUDY/LINUX 2021. 1. 16. [ 리눅스 마스터 ] 디렉토리 ? 디렉토리란 디렉토리란 파일을 보관하는 곳이다. 리눅스의 디렉토리는 최상위에 해당하는 루트(/)를 중심으로 하위 디렉토리에 다수의 디렉토리가 존재하는 트리 구조로 갖투어 계층적으로 관리된다. 리눅스에 존재하는 디렉토리는 리눅스 벤더나 버전에 따라 약간의 차이는 있으나 대체적으로 유사하다. 디렉토리 종류와 특징 / 최상위 디렉토리로 루트 디렉토리라 한다. /bin 일반적으로 bin 은 binary의 약자로, 실행 파일들이 들어있다. 우리가 흔히 말하는 명령어하는 것들이 들어있는 디렉토리로 보통 PATH가 설정되어 있다. 대표적인 명령어인 cp, mkdir, rmdir, mv, rm, cat 등이 이 디렉토리에 있다. /boot 부팅 이미지 파일이나 커널 등 시스템 부팅 시 필요한 파일이 들어 있는 디렉토리 .. TEAM STUDY/LINUX 2021. 1. 13. vi 입력과 수정 vi 입력 vi에디터는 명령 모드와 입력 모드가 명확이 나눠져 있다. 제일 처음은 명령모드 상태이다. 무언가를 입력하기 위해서는 입력모드로 전환이 필요하다. 입력 모드 전환 명령 키 i 커서 앞에 입력 현재 커서 자리에서 입력 a 커서 뒤에 입력 현재 커서 다음 자리에서 입력 o 커서가 위치한 행의 다음 행에 입력 I(대문자 i) 커서가 위치한 행의 첫 칼럼으로 이동하여 입력 A 커서가 위치한 행의 마지막 칼럼으로 이동하여 입력 O 커서가 위치한 행의 이전 행에 입력함 i 명령 키를 사용하여 입력 모드로 전환하기 vi를 실행한 뒤 명령 모드에서 i 명령 키를 입력하고 나서 다음 내용을 입력 입력 모드에서 다시 명령 모드로 전환하기 위해 Esc 키를 누르면 커서가 x 위로 이동 i와 a 명령 키의 차이 명.. TEAM STUDY/LINUX 2021. 1. 10. vi 에디터의 개요 학습내용 1. 유닉스의 텍스트 에디터 2. vi 사용법 3. vi 환경설정 학습목표 1. 유닉스의 텍스트 에디터의 종류를 설명할 수 있다. 2. vi 에디터의 모드형과 비모드형을 구분하고, vi 에디터를 시작할 수 있다. 3. vi 에디터를 편리하게 사용하기 위한 환경을 설정할 수 있다. 유닉스 편집기 텍스트 파일의 작성, 편집 및 저장에 필요한 유틸리티 프로그램 GUI 환경인 그놈에서 제공하는 gedit으로 간단하게 문서 작성이 가능 특징 커서와 화면 이동이 자유로움 파일의 편집 위치가 자유로움 편집 기능이 다양 vi에서 다루는 모든 자료는 일시적인 작업을 할 수 있도록 버퍼에 파일의 사본을 만드므로, 반드시 저장해야 함 구분 종류 행 단위 편집기 ed, ex, sed 화면 단위 편집기 vi, emac.. TEAM STUDY/LINUX 2021. 1. 9. 다중 루프 알아보기 이번주 계획 직사각형의 넓이로 변의 길이 구하기 반목문 건너뛰기와 여러 범위 스캔하기 다중 루프 알아보기 구구단 곱셈표 출력하기 print ( '-' * 27 ) for i in range ( 1, 10 ) : for j in range ( 1, 10 ) : print( f'{i*j:3}', end='' ) print( ) print ( '-' * 27 ) 바깥쪽 for 문은 i값을 1 부터 9 까지 증가 시킵니다. 각 반복은 1행,,,,9행에 해당합니다. 즉, 바깥쪽의 for 문은 세로 방향의 반복문 입니다. 세로 방향 반복문에서 다시 실행되는 안쪽 for 문은 j 값을 1~9 까지 1씩 증가 시킵니다. 즉, 각 행에서 가로 방향의 반복문 입니다. 정리하자면 i 값을 1부터 9까지 증가시키는 열 루프를.. TEAM STUDY/PYTHON 2021. 1. 9. 반목문 건너뛰기와 여러 범위 스캔하기 이번주 계획 직사각형의 넓이로 변의 길이 구하기 반목문 건너뛰기와 여러 범위 스캔하기 다중 루프 알아보기 for문을 스캔하는 과정에서 특정 조건일 때 반복문을 건너 뛰도록 만드는 것, 예를 들어 1~12까지 출력할 때 8을 건너 뛰게 하려면 ! for i in range(1, 13) : if i == 8 : continue print( i , end=' ' ) print() 좀 더 효율적인 방법 for i in list( range(1, 8) + range(9, 13) ) : print( i , end=' ' ) TEAM STUDY/PYTHON 2021. 1. 9. 직사각형의 넓이로 변의 길이 구하기 이번주 계획 직사각형의 넓이로 변의 길이 구하기 반목문 건너뛰기와 여러 범위 스캔하기 다중 루프 알아보기 변의 길이와 넓이가 모두 정수인 직사각형에서 변의 길이를 구하는 프로그램. 이 때 짧은 변과 긴 변의 길이는 구별하지 않습니다. 예를들어 직사각형의 넓이가 32면 변의 길이는 1 * 32 , 1 * 16 , 4 * 8 만 출력합니다. 2 * 16 은 이미 출력했으므로 16 * 2 는 출력하지 않습니다. area = int(input('직사각형의 넓이를 입력하세요 : ')) for i in range( 1, area+1 ) : if i*i > area : break if area % i : continue print( f'{i} * {area//i}' ) 첫번째 if 문 i * i 가 area를 초과하.. TEAM STUDY/PYTHON 2021. 1. 9. 양수만 입력 받기 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 음수를 입력하면 거절 하게끔 해야 하는 프로그램 ! 이건 뭐 당연한거지만 if 문을 걸어서 0보다 작으면 break를 걸어서 다시 입력 받게 끔 만든 코드이다. print('1부터 n까지의 정수의 합을 구합니다.') while True : n = int( input ('n의 값 : ') ) if( n > 0 ) : break sum = 0 i = 1 for i in tange ( 1, n+1 ) : sum += i i += 1 print ( f'1부터 \{n}까지 정수의 합은 {sum} 입니다.' ) while 문의 조건식에 True 가 들어간 점이, 이는 프로그래머가 의도적으로 while문이 무한 반복 되도록.. TEAM STUDY/PYTHON 2021. 1. 9. 반복 과정에서 조건 판단하기 3 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 # * 을 n 개 출력 하되 w 개마다 줄바꿈 하기 print('*을 출력합니다.') n = int(input('몇 개를 출력할까요 ? : ')) w = int(input('몇 개를 출바꿈할까요 ? : ')) for i in range(n) : print( '*', end='' ) if i % w == w- 1 : print() if n % w : print() i 를 1씩 증가 시키면서 * 를 출력하고 줄바꿈은 i를 w로 나눈 나머지가 w-1 일 때 줄바꿈합니다. 즉, w가 5이면 i가 4, 9, 14 일 때 줄바꿈합니다. 하지만 n이 w가 배수가 아니면 줄바꿈을 for문 밖에서 따로 수행해야 합니다. for.. TEAM STUDY/PYTHON 2021. 1. 7. 반복 과정에서 조건 판단하기 2 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 for문은 반복은 n번, 나눗셈도 n번, if문 판단은 n번 합니다. print('+와 -를 번갈아 출력합니다.') n = int(input('몇 개를 출력할까요? : ') for i in range(n) : if i % 2 : print('-', end='' ) else : print('+', end='' ) print() 위의 코드는 두가지의 문제점이 존재한다. 첫번째, for문이 반복할 때마다 if문을 수행한다는 것 입니다. 즉, n이 50,000 이라면 if 문도 50,000 번 수행됩니다. 두번쨰는 이 프로그램은 상황에 따라 유연하게 수정하기 어렵다는 것 입니다. 만약 i를 1부터 n까지 1씩 증가시키.. TEAM STUDY/PYTHON 2021. 1. 4. 반복 과정에서 조건 판단하기1 반복 과정에서 조건 판단하기1 print('a부터 b까지 정수의 합을 구합니다'); a = int(input('정수 a를 입력하세요 : ')); b = int(input('정수 a를 입력하세요 : ')); if a > b : a, b = b, a sum = 0 for i in range( a, b+1 ) : if i < b : print(f'{i} + ', end='') else : print(f'{i} =', end='' ) sum += i print(sum) 더하는 수가 n개이면 + 기호는 n-1개 출력해야 합니다. 예를 들어, a가 1이고 b가 10,000 이라고 가정해 봅시다. 그러면 for문에서 10,000 반복하는 동안 1~9,999 번은 i b : a, b = b, a sum = 0 for .. TEAM STUDY/PYTHON 2021. 1. 3. 이전 1 ··· 8 9 10 11 12 13 다음