리눅스 스터디 - 2

2018. 1. 9. 20:20

오늘분 리눅스 내용정리

 

4장.

리눅스 화면 편집기 종류

 - vi(vim): 모든 UNIX에 있음

 - emacs: 많은 기능 제공, 설치해서 사용해야 함.

 - gedit: 윈도우의 편집기 화면과 비슷, 임베디드 환경에서 사용할 수 없을 경우가 있음.

 

vi 편집기

※ 필자가 개인적으로 쓰거나 필요하다고 여기는 위주로 정리하였습니다. 실제로는 더 많아요..

 

 - vi 동작모드 : 명령모드, 입력모드, 마지막행모드

 - vi에서는 대소문자를 별도의 명령으로 해석한다.

 - 파일 생성 방법: ①vi 파일명, ②vi - 파일 내용작성 - :w 파일명

 - 입력명령: i, 저장명령: :w, :w 파일명, 종료명령: :q, :q!(작업내용을 저장하지 않고 vi종료)

 - 커서 이동(명령 모드)

   

 

 

 - 범위지정방법(명령 모드에서 이용)

   

 

 - 편집기능

   

    =>응용으로 :10,20y(10~20행 복사), 10,20d(10~20행 삭제)등이 있다.

 

 - 탐색기능

   

 

 

 - 바꾸기기능

   

 

 - vi에서 잠시 빠져나와 쉘이용하기

    :sh(vi로 다시 돌아올때: 쉘에서 exit입력)

 

 - vi환경설정

   

 - vi default 환경설정의 경로

    각 사용자별로 환경설정이 다르다(위치는 ~/.vimrc)

    vim ~/.vimrc 명령으로 알맞은 환경설정을 한다(context highlighting을 켜는 설정: syntax on)

 

5장.

 - 정의: 사용자와 커널 사이의 중간 역할을 해줌, 사용자가 입력한 명령을 처리 하고 실행 결과를 알려준다

 - bash는 그 중에서 가장 많이 사용하는 쉘이며 리눅스의 기본 쉘이다

 - 종류: 본쉘, 콘쉘, C쉘, 배시쉘 등

 - 현재 사용중인 쉘 확인법: #grep user1 /etc/passwd

  =>user1:x:40577:1::/export/home/user1:/bin/bash 이렇게 사용중인 쉘이 무엇인지 나온다

 

로그인 쉴과 서브쉘

 - 사용자가 로그인한 직후 기본적으로 사용하는 쉘

 - 서브쉘 : 사용자가 직접 실행한 쉘

 - es: 로그인 직후 배쉬쉘이용-csh입력-c쉘로 로그인(사용하는 쉘변경)-ksh입력(사용하는 쉘변경)-exit입력(현재 사용중인 쉘을 끝내도 빠져 나온다. 여기서는 ksh을 쓰다가 csh로 변경됨)-exit입력(csh에서 bash로 변경)-exit입력(logout된다)

 

쉘 특수문자

 - 정의: 쉘에서 특수한 의미를 가진 문자들, 적절히 사용하면 명령의 입력을 편리하게 할 수 있다.

 - 사용자가 입력한 명령을 실행하기 전에 쉘이 먼저 해독하여 적절한 형태로 변경

 

 - 파이프(|)

    한 명령의 실행결과를 다음 명령의 입력으로 전달

    ex: $ ls /etc | more

 

 - 리다이렉션(<,>,>>,2>)

    입력 혹은 출력장치를 표준 입출력장치(키보드, 모니터)에서 변경하고 싶을 때 사용

 

     출력 리다이렉션: 표준출력을 모니터에서 파일로 변경

      - 명령 > 파일명: 새로운 파일로 생성, 기존 파일의 내용은 없어짐

      - 명령 >> 파일명: 기존 파일의 끝에 내용 추가

      - ex: $ ls –al > ls.out ->ls.out라는 파일을 만들고 ls -al의 결과를 ls.out에 저장한다.

 

     오류 리다이렉션

      - 명령 2> 파일명: 표준 오류메시지를 파일에 저장

      - ex: $ ls ttt 2> err ->ttt라는 파일이나 디렉이 없을경우 오류가 출력되는데, 이출력을 err이라는 파일을 만들고 저장

 

     입력 리다이렉션

      - 명령 < 파일명: 표준 입력을 키보드에서 파일로 변경

      - ex: $ mailx root < aa ->aa라는 파일을 root계정으로 메일을 보낸다

 

 - 기타 쉘 특수문자

    ; / 한 줄에 여러 개의 명령 입력 / ex: $ date;ls

    * / 임의의 문자 또는 문자들 / ex: $ ls h*

    ? / 임의의 한 문자 / ex: $ ls dir?

    [] / 임의의 한 문자의 범위 표시/ ex: $ ls [a-f]*

    ~ / 홈 디렉토리 / ex: $ cd ~

    '' / 모든 쉘 문자 무시 / ex: $ echo ‘$SHELL’

    "" / $, `, \를 제외한 모든 쉘 문자 무시 / ex: $ echo “$SHELL”

    `` / 쉘 명령 수행 / ex: $ echo `date`

    \ / 특수문자 기능 제거 / ex: $ echo “\$SHELL”

 

배쉬 쉘 환경변수

 - 시스템이나 사용자에 의해 사용되는 환경을 저장하기 위한 저장소

 - 쉘 변수는 관례적으로 대문자를 사용한다

 - 지역변수: 현재의 쉘에서만 사용 가능한 변수(ex: set)

 - 전역변수: 전체 쉘에서 사용 가능한 변수(ex: env, set, exprot)

=>나머지는 따로 찾아보자

    http://throughkim.kr/2016/12/22/linux-4/

    http://se.uzoogom.com/83

    정도 참조하면 될 것 같다.

 

배시 쉘 명령

 - history

    사용자가 입력한 명령을 기록, 재사용 할 수 있도록 함

    사용된 명령어는 ~/.bash_history 파일에 저장된다

 - alias [ 별칭=명령 ] / unalias 별칭

    긴 명령어 대신 짧은 별칭을 사용할때 쓴다.(혹은 컬러 같은 옵션을 자동으로 넣기 위해 사용한다)

    alias: 현재 설정값 보기

    alias 별칭=명령: 내가 원하는 별칭을 입력한 명령으로 대체한다.

    unalias 별칭: 설정된 별칭을 해제한다.

 

6장.

파일의 접근권한

 - 시스템에서 사용자 자신의 파일 및 디렉토리를 다른 사용자로부터 보호하기 위해 접근권한을 변경할 수 있다.

 - ls -l명령으로 파일과 디렉토리의 속성을 알 수 있다.

   

    접근권한: r: 읽기 허가, w: 쓰기 허가, x:실행 허가, -: 허가x

 

chmod [옵션] 모드 파일 또는 디렉토리명

 - 자신이 소유한 파일의 사용권한을 변경

 - -R : 하위 디렉토리 포함

 - 기호모드

    기호를 이용하여 허가권 변경(r:읽기, w:쓰기, x:실행)

    u: 소유자, g: 그룹, o: 외부사용자, a: 모든사용자

    +:허가권 부여, -:허가권제거, =:허가권 초기화

 - 숫자모드

    3자리의 8진수를 이용하여 권한 표시

    8진수 3자리 순서대로, 소유자, 그룹, 외부사용자를 의미한다.(1: 허가, 0: 제거)

    ex: rwxrwxrwx->777, rw-r--r-->644

 

umask [마스크값]

 - 기본사용권한을 변경하거나 현재 설정된 mask값을 출력할때 사용한다.

 - umask: 현재 설정된 마스크값, umask 077: 마스크 값을 077로 설정

 - 실질적 접근권한=기본사용권한-마스크값

 - ex: umask 022일 경우, 666-022=644

 

※ 리눅스에는 새로운 파일이나 디렉토리를 만들때 기본적으로 설정되는 접근권한은 다음과 같다.

 - 실행할 수 없는 일반 파일(문서 편집기로 생성한 파일): 666

 - 실행할 수 있는 일반 파일: 777

 - 디렉토리: 777

 => 마스크 값을 000으로 설정하면 리눅스에서 설정할수 있는 최대 권한이 된다.

 => 하지만 설정된 마스크 값으로 인해 실질적으로 설정되는 접근 권한은 다음과 같다.

     - 마스크값(022): 실행할 수 없는 일반 파일(644), 실행할 수 있는 일반 파일(755), 디렉토리(755)

     - 마스크값(077): 실행할 수 없는 일반 파일(600), 실행할 수 있는 일반 파일(700), 디렉토리(700)

 

+ Recent posts