'tasksel' 소프트웨어는 간편하게 x-windows 데스크탑 환경을 원하는 것으로 바꾸어 줄수 있으며 콘솔환경에서 작동한다.


원래는 새롭게 바꿀 환경에 필요한 패키지들을 일일이 찾아 설치를 해야 하지만 tasksel은 그 수고를 완전히 덜어 준다.


사용자가 할 일은 그저 재로그인 할때에 원하는 세션을 선택 하기만 하면 된다.


설치는 기존 우분투 레파시토리에 있음으로 간단하다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 설치


root@test:~$ sudo apt-get install tasksel


// 실행 - 관리자 권한으로 실행


root@test:~$ sudo tasksel





위와같은 화면이 나오면 원하는 작업을 스페이스바로 '*' 표시하고 엔터키를 눌러 작업을 진행 하면 된다.



lubuntu로 환경을 바꾸어 보기로 하고 시작해 보자.






재부팅 후 로그인 할때에 세션을 lubuntu로 바꾸어 시작해 보자.



데스크탑 환경을 쉽게 바꾸는데에 성공했다.



다음 영상을 통해서 쉽게 배워 보도록 하자.



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.



 

아무래도 리눅스를 접하게 되면 터미널 다음으로 가장 많이 쓰이는 프로그램이 바로 '에디터' 이다.


여기서 필자가 말하는 '에디터' 라는 것은 워드프로세서를 말하는 것이 아닌 '소스 에디터'를 의미힌다.


소스 에디터는 기본적인 텍스트 작성 뿐만이 아니라 스니펫(구문 자동화) 및 자동 완성 그리고 소스에 대한 구문 컬러 구분을 그 기본으로 한다.


콘솔에서 쓰는 가장 대표적인 에디터는 아무래도 'vi'일 것이다.


하지만 이제 더 이상 vi나 vim 그리고 그 유명한 emacs는 구세대 적이다.


아직까지도 많은 프로그래머들이 고집적으로 위에 언급한 고전 에디터를 사용하고 있지만 구식적이며 편집에 많은 시간이 소모 되는 것이 명백한 사실이다.


솔직히 까고 말해서 콘솔 터미널에서 가장 간편한 에디터는 'nano' 이다.



'에디터 nano'



nano는 유저가 가장 간편해 하는 화살표를 사용하여 이동하고 그  자리에서 바로 편집할수 있는 간편성 인터페이스를 제공한다.

뿐만 아니라 ctrl 단축키를 이용한 바로 설정을 적용시켜 콘솔에서 가장 빠르게 편집할수 있는 에디터 이며 동시에 해당 소스에 맞는 컬러 프린트를 별다른 설정 없이 다양하게 제공한다.


다음은 gui 환경에서 유명한 심플 에디터를 말하자면 대표적으로 gedit 들수 있다. 그 밖에 mousepad등 여러가지가 있겠지만 옵션과 플러그 기능을 포함해서 그 중 gedit가 가장 뛰어나다. 그렇기에 gedit 만 소개할 것이다.



'에디터 gedit'


지에디트는 위 사진과 같이 각종 플러그인을 적용하면 파일관리자에 개인사전 스니펫, 자동완성기능, 파이썬 콘솔, 터미널 콘솔 플러그인 까지 내장 시킬수 있는 강력한 소프트웨어 이다. 이와 같이 각종 플러그인을 적용 시키는 방법에 대해서는 다음에 설명 블로깅 하도록 할 계획이다.


마지막으로 소개할 에디터는 'Atom' 이라는 에디터 이다.


아톰은 꽤 전문적인 에디터 툴 로서 범위가 상대적으로 다른 에디터들 보다 가장 크다고 볼 수 있다.



'에디터 Atom'


아톰 에디터는 대체적으로 지에디트와 구성이 흡사 하지만 스케일 면에서 그것을 훨씬 뛰어 넘는다. 수많은 개발자들이 자신이 만든 플러그인을 공유&배포 하기도 하고 소프트웨어 자체에서 이것을 검색 하여 설치가 가능하다. 뿐만 아니라 자신에게 간편한 소스코드 스니펫을 구성할수 있으며 이것을 백업하는 것이 자유롭다.


그리고 자동완성 기능이 현존하는 모든 에디터 중에서 가장 뛰어나다.


뿐만 아니라 지에디트처럼 파일관리자나 터미널 플러그인 그리고 파이썬 인터프리터 까지 내장이 가능하다.


무엇보다 이 소프트웨어의 가장 훌륭한 점은 바로 '색'의 표현일 것이다.




지금까지 이렇게 대표적인 잘나가는 에디터 세가지를 소개해 보았다.


그 밖에 geany, vscode 등이 있다.


에디터를 처음부터 잘 고르는 것이 중요한 이유는 자신에게 가장 편리한 에디터를 써야 코딩하는데 가장 빠르며 간편하며 한번 그 에디터를 쓰면 거의 오랫동안 단골로 사용하기 때문이다.


자~ 당신은 이제 어떤 에디터 소프트웨어를 사용할 것인가?


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


wine을 기본 설치 하는 방법에 대하여 알아보자.


우선 그 순서를 먼저 나열 하자면


WINE 설치 순서


1. 기본 레파시토리에 있는 wine을 우선 설치 한다. (우선 기본적으로 1.6 버전이 설치될 것이다.)

2. wine-gecko와 wine-mono 패키지를 설치한다.

3. wine을 32비트로 재구성한다.

4. wine cfg 명령으로 wine을 라이브러리를 본격적으로 구성된다. (/home/user/.wine 폴더 생성됨) -> win7우로 설정 변경 추천

5. winetricks로 설치 가능한 라이브러리들을 설치한다.




하지만 먼저 그 이전에 wine이 설치 되어 있다면 그것을 삭제하고 기존 폴더도 같이 삭제 해야 한다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

//  wine을 삭제한다.


root@test:~$ sudo apt-get purge wine*



//  wine 폴더를 삭제한다.


root@test:~$ rm -rf ~/.wine








1. 기본 레파시토리에 있는 wine을 우선 설치 한다.
(우선 기본적으로 1.6 버전이 설치될 것이다.)


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


root@test:~$ sudo apt-get install wine





2. wine-gecko와 wine-mono 패키지를 설치한다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


root@test:~$ sudo apt-get install wine-gecko wine-mono




3. wine을 32비트로 재구성한다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 변수지정을 ~/.bashrc에 등록하여 소스 리로딩 한다.


root@test:~$ echo "export WINEARCH=win32" >> ~/.bashrc



root@test:~$ source ~/.bashrc


-> bashrc 소스 리로딩



4. wine cfg 명령으로 wine을 라이브러리를 본격적으로 구성된다.

(/home/user/.wine 폴더 생성됨) -> win7우로 설정 변경 추천


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 주석


root@test:~$ winecfg


-> 라이브러리를 구성하는 gui가 나타난다.





5. winetricks로 설치 가능한 라이브러리들을 설치한다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>



root@test:~$ winetricks 7zip comctl32 corefonts d3dcompiler_43 d3dx10 d3dx11_42 d3dx11_43 d3dx9 d3dx9_26 d3dx9_28 d3dx9_31 d3dx9_35 d3dx9_36 d3dx9_39 d3dx9_42 d3dx9_43 d3dxof devenum dirac directmusic directplay directx9 dmsynth dotnet20 dsound dxdiag dxdiagn dxsdk_jun2010 dxsdk_nov2006 ie8 mfc42 msls31 msvcirt ogg physx quartz vcrun2008 vcrun2010 vcrun6 vcrun6sp6 xact xact_jun2010


-> 라이브러리들 설치가 끝나면 winecfg 를 실행하여 라이브러리 내장을 확인한다.







도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


대부분 파이썬(python)은 소스코드 그대로를 실행해서 사용하는 것이 일반적이다.

그렇다면 가장 중요하게 생각해야 할 점은 이썬을 굳이 컴파일 해야 하는 이유는 무엇인가? 일 것이다.

C언어의 경우는 소스코드를 해당 시스템의 바이너리로 변환해주는 컴파일 과정을 반드시 거쳐야만 실행이 가능한 구조를 가지고 있다.

하지만 파이썬의 경우에는 시스템에 파이썬 라이브러리가 깔려 있다면 자체 인터프리터 프로세스 기능을 활용하여 소스코드 그 자체로써의 실행이 가능해 진다.

물론 이 과정에서 시스템은 이미 해당 바이너리에 일치하는 파이썬 라이브러리 모듈을 가지고 있기 때문에 바이너리가 틀려도 얼마든지 실행될수 있다는 장점을 가지고 있다.

하지만 프로그래밍을 한 번 이상 해 본 사람은 뭔가 애매모호한 파이썬의 결점에 대해서 생각해 볼 수 밖에 없어 진다.

바로 해당 시스템에 소스코딩에 사용된 임포트(IMPORT) 라이브러리와나 기존의 베이스 기반은 파이썬 모듈이 없다면...

이것은 매우 중요한 문제이다.

예를 들어 기초 파일시스템을 설계 할때나 즉 파이썬이 설치 되지 않은 상태에서는 해당 소스코드 파일이 실행이 불가능 하기 때문이다.

즉 그 자체로서는 소프트웨어가 될수 없는 반드시 부모 프로세스인 파이썬이 있어야만 실행이 되는 비운의 운명인 것이다.

일부 의견들 중에는 파이썬을 컴파일 하는 이유가 '암호화'의 목적이 있다고 하는 경우가 있는데 그것은 매우 비전문적인 의견 이라고도 볼 수가 있다.

컴파일의 목적은 암호화가 목적이 아니라 독자적인 아키텍쳐로써의 실행을 가능케 하기 위한 바이너리화를 그 목적으로 두고 있으며 컴파일된 파일은 아스키 문자와 16진수로의 리딩이 가능하다. 뿐만 아니라 C언어나 파이썬은 디컴파일러를 수행할수 있는 소프트웨어가 존재한다.

또 파이썬의 컴파일의 장점을 또 한가지 예를 든다면 예를 들어 똑같은 GTK+(Gimp tool kit for gui)를 수행하는 각각의 컴파일 된 C언어와 파이썬 파일을 보았을때 용량에서 부터 큰 차이를 가진다.

즉 파이썬이 C언어 보다 컴파일된 크기가 훨씬 가볍다.


그렇다면 다음 장에서 부터 직접 적으로 파이썬을 컴파일 해보도록 하자.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


리눅스 우분투는 언어 패키지를 손쉽게 설치 할 수 있는 레파시토리를 가지고 있다.

뿐만 아니라 폰트 패키지도 보통 패키지 인스톨로도 손쉽게 설치가 가능하다.


그럼 여러분의 운영체제의 현재 언어와 인코딩 확인과 변경 그리고 언어팩 설치와 폰트 수동 설치를 해 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>


// 먼저 여러분의 운영체제가 어떤 언어가 기본으로 되어 있는 지를 확인해 보자.


root@test:~$ locale


LANG=ko_KR.UTF-8
LANGUAGE=ko
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=


-> 한글과 인코딩이 utf8로 설정 되어 있을 경우





만일 한글로 설정이 되어 있지 않는다면 다음과 같이 명령을 내린다.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// 한글 언어팩과 나눔 폰트를 설치 한다.


root@test:~$ sudo apt install language-pack-ko fonts-nanum



// 언어를 전역 설정한다.


root@test:~$ sudo locale-gen ko_KR.UTF-8


Generating locales (this might take a while)...
  ko_KR.UTF-8...hash collision (1701936715) ko_KR.utf8, es_CO.utf8
 done
Generation complete.






그렇다면 이번에는 폰트(.ttf)를 수동으로 직접 설치 하는 방법에 대하여 알아 보도록 하자.


-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// ls 명령으로 폰트 파일들이 있는 경로부터 확인해 보도록 하자. l


root@test:~$ ls /usr/share/fonts


X11  cmap  eot  kopub  opentype  svg  truetype  type1  woff


-> 폴더들은 폰트 패키지 폴더 들이다.


// 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.
 그렇다면 이제는 원하는 ttf 파일들이 있는 폴더를 통째로 저 폴더에 가져다 넣는다.


root@test:~$ cp -r newfont /usr/share/fontssudo cp -r newfont /usr/share/fonts



// 이제 수동으로 복사한 폰트를 시스템에서 업데이트 한다. l


root@test:~$ fc-cache -f -v


    
-> 폰트들이 재구성 되는 것을 볼 수가 있다.
 




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

리눅스에서 아주 쉬운 콘솔에서의 환경변수에 대해서 알아보자.

'환경변수' 라는 것은 그럴듯하게 어렵게 들릴수도 있겠지만 매우 쉬우며 어렵지 않다.

그냥 단순하게 환경의 조건을 정하는 것이다.

어떤 운영체제를 다룬다면 그 체제의 왕은 절대적으로 여러분이다.

그렇다. 여러분이 왕이 되어서 어떤 여러가지 문자를 함축적으로 정하는 것이다.

예를 들어,

"she=my love" 라고 정하고 싶다면 보통 프로그래밍 에서는 변수를 이렇게 설정한다.

she="my love"

그냥 바로 이거다. 이것이 변수라는 것이다.

얼마나 쉬운가?

여기에서 변수에 환경이란 말을 더하여 콘솔에서의 '환경변수'를 절대적으로 정한다고 한다면 터미널에 그저 'export'를 앞에 갖다 붙히기만 하면 되는 것이다.

자 그러면 터미널에서 그것을 한번 시험해 보도록 하자.




// 환경변수를 지정한다.


root@test:~$ export she="my love"



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love

-> 'she'에 대한 환경변수가 출력 되는데 성공했다.





보시는 바와 같이 "my love" 라는 글이 출력 되는 것을 볼 수가 있다.

그리고 중요한 것은 그것을 불러오는 명령에서 she 앞에 '$'를 붙였다는 것이다.
'$' 문자는 유닉스 시스템의 쉘 스크립트 에서 변수를 불러오는 매우 중요한 담당 역할을 하는 문자 이다.

하지만 이와 같은 단순한 환경변수 지정은 여러분이 연 그 터미널에서만 변수로 동작하며 다른 터미널 콘솔 에서는 변수로 지정 되지 않는다.

그렇다면 변수를 계속 유지되도록 전역설정을 하려면 어떻게해야 할까?

이는 '$/HOME/.bashrc' 파일에 해당 스크립트를 입력하여 처리가 가능하다.
($HOME = /home/user)


// 먼저 만일을 대비해서 bashrc의 백업을 만든다. (물론 부팅시를 기준으로 한 백업 파일인 '$HOME/.bashrc~'가 존재 한다.) 


root@test:~$ cp ~/.bashrc ~/.bashrc.bak



// .bashrc 파일에 추가할 환경변수를 삽입 한다.


root@test:~$ echo 'export she="my love"' >> ~/.bashrc



// 재부팅 할 필요 없이 '~/.bashrc' 파일의 소스를 로드한다.


root@test:~$ source ~/.bashrc



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love


-> 'she'에 대한 환경변수가 출력 되는데 성공했다.




이와 같은 환경변수는 전역 bash 프로그래밍에서 활용되며 여러 소프트웨어들이 이러한 환경변수를 활용한다.
대표적으로 많이 사용되는 환경변수들은 다음과 같다.

$HOME     사용자의 홈 디렉토리
$PATH     실행 파일 경로
$LANG     환경변수에 설정된 언어
$PWD         사용자의 현재 작업중인 디렉토리
$SECONDS     해당 콘솔이 실행된 경과를 초 단위 시간으로 나타냄
$SHLVL     사용되는 쉘 레벨
$SHELL     사용되는 쉘 이름($BASH와 같게 나옴.)
$PPID     부모 프로세스의 PID
$BASH     BASH 실행 파일 경로
$BASH_VERSION     설치된 BASH 버전
$MAIL     환경변수에 설정된 메일주소
$OSTYPE     운영체제 종류
$TERM     현재 사용되는 터미널 이름
$HOSTNAME     호스트 전체 이름
$HOSTTYPE     시스템의 아키텍처
$MACHTYPE     PC의 아키텍쳐와 운영체제표시
$LOGNAME     로그인 사용자 이름
$UID         사용자 UID
$EUID     su 명령에서 사용하는 사용자의 유효 아이디 값(UID와 EUID 값은 다를 수 있음)
$USER     사용자의 이름
$HISTFILE     history파일의 경로
$DISPLAY     현재 사용되는 X 디스플레이 이름

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


리눅스에서 아주 쉬운 콘솔에서의 환경변수에 대해서 알아보자.

'환경변수' 라는 것은 그럴듯하게 어렵게 들릴수도 있겠지만 매우 쉬우며 어렵지 않다.

그냥 단순하게 환경의 조건을 정하는 것이다.

어떤 운영체제를 다룬다면 그 체제의 왕은 절대적으로 여러분이다.

그렇다. 여러분이 왕이 되어서 어떤 여러가지 문자를 함축적으로 정하는 것이다.

예를 들어,

"she=my love" 라고 정하고 싶다면 보통 프로그래밍 에서는 변수를 이렇게 설정한다.

she="my love"

그냥 바로 이거다. 이것이 변수라는 것이다.

얼마나 쉬운가?

여기에서 변수에 환경이란 말을 더하여 콘솔에서의 '환경변수'를 절대적으로 정한다고 한다면 터미널에 그저 'export'를 앞에 갖다 붙히기만 하면 되는 것이다.

자 그러면 터미널에서 그것을 한번 시험해 보도록 하자.




// 환경변수를 지정한다.


root@test:~$ export she="my love"



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love

-> 'she'에 대한 환경변수가 출력 되는데 성공했다.





보시는 바와 같이 "my love" 라는 글이 출력 되는 것을 볼 수가 있다.

그리고 중요한 것은 그것을 불러오는 명령에서 she 앞에 '$'를 붙였다는 것이다.
'$' 문자는 유닉스 시스템의 쉘 스크립트 에서 변수를 불러오는 매우 중요한 담당 역할을 하는 문자 이다.

하지만 이와 같은 단순한 환경변수 지정은 여러분이 연 그 터미널에서만 변수로 동작하며 다른 터미널 콘솔 에서는 변수로 지정 되지 않는다.

그렇다면 변수를 계속 유지되도록 전역설정을 하려면 어떻게해야 할까?

이는 '$/HOME/.bashrc' 파일에 해당 스크립트를 입력하여 처리가 가능하다.
($HOME = /home/user)


// 먼저 만일을 대비해서 bashrc의 백업을 만든다. (물론 부팅시를 기준으로 한 백업 파일인 '$HOME/.bashrc~'가 존재 한다.) 


root@test:~$ cp ~/.bashrc ~/.bashrc.bak



// .bashrc 파일에 추가할 환경변수를 삽입 한다.


root@test:~$ echo 'export she="my love"' >> ~/.bashrc



// 재부팅 할 필요 없이 '~/.bashrc' 파일의 소스를 로드한다.


root@test:~$ source ~/.bashrc



// 지정된 환경변수를 불러온다.


root@test:~$ echo $she

my love


-> 'she'에 대한 환경변수가 출력 되는데 성공했다.




이와 같은 환경변수는 전역 bash 프로그래밍에서 활용되며 여러 소프트웨어들이 이러한 환경변수를 활용한다.
대표적으로 많이 사용되는 환경변수들은 다음과 같다.

$HOME     사용자의 홈 디렉토리
$PATH     실행 파일 경로
$LANG     환경변수에 설정된 언어
$PWD         사용자의 현재 작업중인 디렉토리
$SECONDS     해당 콘솔이 실행된 경과를 초 단위 시간으로 나타냄
$SHLVL     사용되는 쉘 레벨
$SHELL     사용되는 쉘 이름($BASH와 같게 나옴.)
$PPID     부모 프로세스의 PID
$BASH     BASH 실행 파일 경로
$BASH_VERSION     설치된 BASH 버전
$MAIL     환경변수에 설정된 메일주소
$OSTYPE     운영체제 종류
$TERM     현재 사용되는 터미널 이름
$HOSTNAME     호스트 전체 이름
$HOSTTYPE     시스템의 아키텍처
$MACHTYPE     PC의 아키텍쳐와 운영체제표시
$LOGNAME     로그인 사용자 이름
$UID         사용자 UID
$EUID     su 명령에서 사용하는 사용자의 유효 아이디 값(UID와 EUID 값은 다를 수 있음)
$USER     사용자의 이름
$HISTFILE     history파일의 경로
$DISPLAY     현재 사용되는 X 디스플레이 이름

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


여러분이 사용하는 리눅스 환경은 기본적으로 TTY (Teletypewriter) 위에 그러져 있다.
 
즉 데스크탑 gui (xwindows) 환경은 실질적으로 '콘솔' 위에 올려져 있는 형태 인 것이다.

콘솔(consol)은 CLI (Command line interface) 혹은 CUI라고도 불리우며 컴퓨터를 운용하기 위한 목적으로 텍스트를 사용자와 컴퓨터가 주고 받는 방식의 인터페이스를 말한다.

정확하게 말하자면 xwindows 데스크탑 환경에서 작동하는 콘솔은 pts/1에 올려져 있다.

이것이 무슨 말인지 지금부터 차근히 설명해 보겠다.

전체 콘솔은 다음과 같은 구성을 가지고 있다.

/dev (device)


    → TTY (일반 CLI 콘솔)

        → TTYs (시리얼 tty)

        → PTS (기본 xwindows를 위한 가상 콘솔)

            → PTY ( 외부의 원격 접속을 위한 가상 콘솔)



이와 같은 환경은 파일시스템 에서도 확인이 가능하다.



// 현재 세션을 확인한다.

$ tty

/dev/pts/1

   
    * 보시다시피 xwindwos 상테의 CLI는 PTS에 속한다.

// /dev 폴더를 출력한다.

$ ls /dev

autofs           log                 ram8      tty21  tty58   ttyS8
block            loop-control        ram9      tty22  tty59   ttyS9
bsg              loop0               random    tty23  tty6    ttyprintk
btrfs-control    loop1               rfkill    tty24  tty60   uhid
bus              loop2               rtc       tty25  tty61   uinput
char             loop3               rtc0      tty26  tty62   urandom
console          loop4               sda       tty27  tty63   usb
core             loop5               sda1      tty28  tty7    userio
cpu              loop6               sda2      tty29  tty8    vboxdrv
cpu_dma_latency  loop7               sda3      tty3   tty9    vboxdrvu
cuse             lp0                 sda4      tty30  ttyS0   vboxnetctl
disk             mapper              sdb       tty31  ttyS1   vboxusb
dm-0             mcelog              sdc       tty32  ttyS10  vcs
dri              mem                 sdc1      tty33  ttyS11  vcs1
ecryptfs         memory_bandwidth    sdc2      tty34  ttyS12  vcs10
fb0              mqueue              sdc5      tty35  ttyS13  vcs2
fd               net                 sg0       tty36  ttyS14  vcs3
full             network_latency     sg1       tty37  ttyS15  vcs4
fuse             network_throughput  sg2       tty38  ttyS16  vcs5
fw0              null                shm       tty39  ttyS17  vcs6
hidraw0          parport0            snapshot  tty4   ttyS18  vcs8
hidraw1          port                snd       tty40  ttyS19  vcsa
hidraw2          ppp                 stderr    tty41  ttyS2   vcsa1
hpet             psaux               stdin     tty42  ttyS20  vcsa10
hugepages        ptmx                stdout    tty43  ttyS21  vcsa2
hwrng            pts                 tty       tty44  ttyS22  vcsa3
i2c-0            ram0                tty0      tty45  ttyS23  vcsa4
i2c-1            ram1                tty1      tty46  ttyS24  vcsa5
i2c-2            ram10               tty10     tty47  ttyS25  vcsa6
i2c-3            ram11               tty11     tty48  ttyS26  vcsa8
i2c-4            ram12               tty12     tty49  ttyS27  vfio
i2c-5            ram13               tty13     tty5   ttyS28  vga_arbiter
i2c-6            ram14               tty14     tty50  ttyS29  vhci
i2c-7            ram15               tty15     tty51  ttyS3   vhost-net
initctl          ram2                tty16     tty52  ttyS30  zero
input            ram3                tty17     tty53  ttyS31
kfd              ram4                tty18     tty54  ttyS4
kmsg             ram5                tty19     tty55  ttyS5
kvm              ram6                tty2      tty56  ttyS6
lightnvm         ram7                tty20     tty57  ttyS7



위의 /dev 폴더의 출력을 보면 tty들이 상당히 많은 것을 볼수가 있으며 pts 폴더 또한 확인이 가능하다.

다른 tty의 접근은 키보드로써 바로 접근이 가능하다.

'Alt + Ctrl + F1' 키를 눌러 보도록 하자.

그러면 화면이 바뀌면서 tty1 콘솔 모드로 진입 하게 된다.

그렇다면 차례 차례 F6까지 눌러 보도록 하자.

'Alt + Ctrl + F7' 까지 눌러보면 다시 원래의 XWINDOWS(pts/n)환경으로 돌아온 것을 알수가 있다.

사용 가능한 콘솔은 tty6 까지이고 xwindows 부터 사용하는 콘솔은 pts 에 속한다.

※ 하지만 만약 보안 툴인 selinux 를 'ecforce'로써 작동하여 사용하고 있다면 사용자도 다른 tty로 접근이 불가할 뿐만이 아니라 다른 pts, pty에 외부에서의 접근이 불가 하다.

즉 사용자도 tty를 사용하기 위해서는 selinux를 'permissive'로 정책을 바꿔줘야 한다.


해당 방법은 다음 포스트 에서 확인 할수 있다.

물론 tty에서 xwindwos 진입이 불가 한 것은 아니다.


// 먼저 'Alt + Ctrl + F1' 키를 눌러 tty1에 진입 하고 로그인 한다.

// tty를 확인한다.

$ tty

/dev/tty1

    * tty가 1로 정상적으로 뜨고 있다.

// tty1 콘솔에서 xwindows로 진입해 본다.

$ startx

// 새로운 xwindows에서 터미널을 열고 tty를 확인한다.

$ tty

/dev/pts/(number)
   
    * xwindows로 진입하자 tty가 아닌 마찬가지 다른 pts로 뜨는 것을 확인 할 수 있다.



 
앞서 말했듯이 xwindows에서 작동하는 가상 콘솔은 pts로써 동작 한다고 말했지만 이것은 꼭 다른 xwindows 에서만 추가 되는 것이 아니라
동일한 xwindows 데스크탑 에서 터미널-gui 을 열때 마다 추가 된다.

그렇다면 한 번 실험을 해보도록 해보자. ( 환경은 tty7-pts/1 그대로 한 곳에서만)


// 터미널 창을 여러개 띄운다.

$ ps -leat
    (-t 옵션은 terminal 현황 출력을 의미한다.)

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 273452 56188 -      Rsl+ tty7       0:09 /usr/lib/xo
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agett
0  1000  2578  2573  20   0  31320  4992 wait   Ss   pts/1      0:00 bash XDG_SE
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl s
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSO
0  1000  3843  2573  20   0  31320  4812 wait_w Ss+  pts/7      0:00 bash XDG_SE
0  1000  3860  2573  20   0  31320  4828 wait_w Ss+  pts/8      0:00 bash XDG_SE
0  1000  3876  2573  20   0  31320  4868 wait_w Ss+  pts/9      0:00 bash XDG_SE
0  1000  3909  2578  20   0  37684  1540 -      R+   pts/1      0:00 ps -leat X

    * 현재 pts가 1, 7, 8, 9 총 4개가 있다. 이것은 사용자가 터미널 창을 4개를 띄웠다는 것을 의미한다.
 
// 이번에는 터미널 창 하나를 놔두고 나머지는 전부 종료 한다.

$ ps -leat

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 277424 59612 -      Ssl+ tty7       0:13 /usr/lib/xorg/Xorg -core :0 -seat seat0
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agetty --noclear tty1 linux
0  1000  2578  2573  20   0  31328  5000 wait   Ss   pts/1      0:00 bash XDG_SEAT_PATH=/org/freedesktop/Dis
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl status ssh.service LESSOPEN=|
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSOPEN=| /usr/bin/lesspipe %s G
0  1000  3924  2578  20   0  37684  1488 -      R+   pts/1      0:00 ps -leat XDG_VTNR=7 XDG_SESSION_ID=c1

    * pts가 1 하나 밖에 남지 않은 것을 확인 할 수 있다.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.






여러분이 사용하는 리눅스 환경은 기본적으로 TTY (Teletypewriter) 위에 그러져 있다.
 
즉 데스크탑 gui (xwindows) 환경은 실질적으로 '콘솔' 위에 올려져 있는 형태 인 것이다.

콘솔(consol)은 CLI (Command line interface) 혹은 CUI라고도 불리우며 컴퓨터를 운용하기 위한 목적으로 텍스트를 사용자와 컴퓨터가 주고 받는 방식의 인터페이스를 말한다.

정확하게 말하자면 xwindows 데스크탑 환경에서 작동하는 콘솔은 pts/1에 올려져 있다.

이것이 무슨 말인지 지금부터 차근히 설명해 보겠다.

전체 콘솔은 다음과 같은 구성을 가지고 있다.

/dev (device)


    → TTY (일반 CLI 콘솔)

        → TTYs (시리얼 tty)

        → PTS (기본 xwindows를 위한 가상 콘솔)

            → PTY ( 외부의 원격 접속을 위한 가상 콘솔)



이와 같은 환경은 파일시스템 에서도 확인이 가능하다.



// 현재 세션을 확인한다.

$ tty

/dev/pts/1

   
    * 보시다시피 xwindwos 상테의 CLI는 PTS에 속한다.

// /dev 폴더를 출력한다.

$ ls /dev

autofs           log                 ram8      tty21  tty58   ttyS8
block            loop-control        ram9      tty22  tty59   ttyS9
bsg              loop0               random    tty23  tty6    ttyprintk
btrfs-control    loop1               rfkill    tty24  tty60   uhid
bus              loop2               rtc       tty25  tty61   uinput
char             loop3               rtc0      tty26  tty62   urandom
console          loop4               sda       tty27  tty63   usb
core             loop5               sda1      tty28  tty7    userio
cpu              loop6               sda2      tty29  tty8    vboxdrv
cpu_dma_latency  loop7               sda3      tty3   tty9    vboxdrvu
cuse             lp0                 sda4      tty30  ttyS0   vboxnetctl
disk             mapper              sdb       tty31  ttyS1   vboxusb
dm-0             mcelog              sdc       tty32  ttyS10  vcs
dri              mem                 sdc1      tty33  ttyS11  vcs1
ecryptfs         memory_bandwidth    sdc2      tty34  ttyS12  vcs10
fb0              mqueue              sdc5      tty35  ttyS13  vcs2
fd               net                 sg0       tty36  ttyS14  vcs3
full             network_latency     sg1       tty37  ttyS15  vcs4
fuse             network_throughput  sg2       tty38  ttyS16  vcs5
fw0              null                shm       tty39  ttyS17  vcs6
hidraw0          parport0            snapshot  tty4   ttyS18  vcs8
hidraw1          port                snd       tty40  ttyS19  vcsa
hidraw2          ppp                 stderr    tty41  ttyS2   vcsa1
hpet             psaux               stdin     tty42  ttyS20  vcsa10
hugepages        ptmx                stdout    tty43  ttyS21  vcsa2
hwrng            pts                 tty       tty44  ttyS22  vcsa3
i2c-0            ram0                tty0      tty45  ttyS23  vcsa4
i2c-1            ram1                tty1      tty46  ttyS24  vcsa5
i2c-2            ram10               tty10     tty47  ttyS25  vcsa6
i2c-3            ram11               tty11     tty48  ttyS26  vcsa8
i2c-4            ram12               tty12     tty49  ttyS27  vfio
i2c-5            ram13               tty13     tty5   ttyS28  vga_arbiter
i2c-6            ram14               tty14     tty50  ttyS29  vhci
i2c-7            ram15               tty15     tty51  ttyS3   vhost-net
initctl          ram2                tty16     tty52  ttyS30  zero
input            ram3                tty17     tty53  ttyS31
kfd              ram4                tty18     tty54  ttyS4
kmsg             ram5                tty19     tty55  ttyS5
kvm              ram6                tty2      tty56  ttyS6
lightnvm         ram7                tty20     tty57  ttyS7



위의 /dev 폴더의 출력을 보면 tty들이 상당히 많은 것을 볼수가 있으며 pts 폴더 또한 확인이 가능하다.

다른 tty의 접근은 키보드로써 바로 접근이 가능하다.

'Alt + Ctrl + F1' 키를 눌러 보도록 하자.

그러면 화면이 바뀌면서 tty1 콘솔 모드로 진입 하게 된다.

그렇다면 차례 차례 F6까지 눌러 보도록 하자.

'Alt + Ctrl + F7' 까지 눌러보면 다시 원래의 XWINDOWS(pts/n)환경으로 돌아온 것을 알수가 있다.

사용 가능한 콘솔은 tty6 까지이고 xwindows 부터 사용하는 콘솔은 pts 에 속한다.

※ 하지만 만약 보안 툴인 selinux 를 'ecforce'로써 작동하여 사용하고 있다면 사용자도 다른 tty로 접근이 불가할 뿐만이 아니라 다른 pts, pty에 외부에서의 접근이 불가 하다.

즉 사용자도 tty를 사용하기 위해서는 selinux를 'permissive'로 정책을 바꿔줘야 한다.


해당 방법은 다음 포스트 에서 확인 할수 있다.

물론 tty에서 xwindwos 진입이 불가 한 것은 아니다.


// 먼저 'Alt + Ctrl + F1' 키를 눌러 tty1에 진입 하고 로그인 한다.

// tty를 확인한다.

$ tty

/dev/tty1

    * tty가 1로 정상적으로 뜨고 있다.

// tty1 콘솔에서 xwindows로 진입해 본다.

$ startx

// 새로운 xwindows에서 터미널을 열고 tty를 확인한다.

$ tty

/dev/pts/(number)
   
    * xwindows로 진입하자 tty가 아닌 마찬가지 다른 pts로 뜨는 것을 확인 할 수 있다.



 
앞서 말했듯이 xwindows에서 작동하는 가상 콘솔은 pts로써 동작 한다고 말했지만 이것은 꼭 다른 xwindows 에서만 추가 되는 것이 아니라
동일한 xwindows 데스크탑 에서 터미널-gui 을 열때 마다 추가 된다.

그렇다면 한 번 실험을 해보도록 해보자. ( 환경은 tty7-pts/1 그대로 한 곳에서만)


// 터미널 창을 여러개 띄운다.

$ ps -leat
    (-t 옵션은 terminal 현황 출력을 의미한다.)

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 273452 56188 -      Rsl+ tty7       0:09 /usr/lib/xo
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agett
0  1000  2578  2573  20   0  31320  4992 wait   Ss   pts/1      0:00 bash XDG_SE
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl s
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSO
0  1000  3843  2573  20   0  31320  4812 wait_w Ss+  pts/7      0:00 bash XDG_SE
0  1000  3860  2573  20   0  31320  4828 wait_w Ss+  pts/8      0:00 bash XDG_SE
0  1000  3876  2573  20   0  31320  4868 wait_w Ss+  pts/9      0:00 bash XDG_SE
0  1000  3909  2578  20   0  37684  1540 -      R+   pts/1      0:00 ps -leat X

    * 현재 pts가 1, 7, 8, 9 총 4개가 있다. 이것은 사용자가 터미널 창을 4개를 띄웠다는 것을 의미한다.
 
// 이번에는 터미널 창 하나를 놔두고 나머지는 전부 종료 한다.

$ ps -leat

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 277424 59612 -      Ssl+ tty7       0:13 /usr/lib/xorg/Xorg -core :0 -seat seat0
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agetty --noclear tty1 linux
0  1000  2578  2573  20   0  31328  5000 wait   Ss   pts/1      0:00 bash XDG_SEAT_PATH=/org/freedesktop/Dis
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl status ssh.service LESSOPEN=|
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSOPEN=| /usr/bin/lesspipe %s G
0  1000  3924  2578  20   0  37684  1488 -      R+   pts/1      0:00 ps -leat XDG_VTNR=7 XDG_SESSION_ID=c1

    * pts가 1 하나 밖에 남지 않은 것을 확인 할 수 있다.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.






여러분이 사용하는 리눅스 환경은 기본적으로 TTY (Teletypewriter) 위에 그러져 있다.
 
즉 데스크탑 gui (xwindows) 환경은 실질적으로 '콘솔' 위에 올려져 있는 형태 인 것이다.

콘솔(consol)은 CLI (Command line interface) 혹은 CUI라고도 불리우며 컴퓨터를 운용하기 위한 목적으로 텍스트를 사용자와 컴퓨터가 주고 받는 방식의 인터페이스를 말한다.

정확하게 말하자면 xwindows 데스크탑 환경에서 작동하는 콘솔은 pts/1에 올려져 있다.

이것이 무슨 말인지 지금부터 차근히 설명해 보겠다.

전체 콘솔은 다음과 같은 구성을 가지고 있다.

/dev (device)


    → TTY (일반 CLI 콘솔)

        → TTYs (시리얼 tty)

        → PTS (기본 xwindows를 위한 가상 콘솔)

            → PTY ( 외부의 원격 접속을 위한 가상 콘솔)



이와 같은 환경은 파일시스템 에서도 확인이 가능하다.



// 현재 세션을 확인한다.

$ tty

/dev/pts/1

   
    * 보시다시피 xwindwos 상테의 CLI는 PTS에 속한다.

// /dev 폴더를 출력한다.

$ ls /dev

autofs           log                 ram8      tty21  tty58   ttyS8
block            loop-control        ram9      tty22  tty59   ttyS9
bsg              loop0               random    tty23  tty6    ttyprintk
btrfs-control    loop1               rfkill    tty24  tty60   uhid
bus              loop2               rtc       tty25  tty61   uinput
char             loop3               rtc0      tty26  tty62   urandom
console          loop4               sda       tty27  tty63   usb
core             loop5               sda1      tty28  tty7    userio
cpu              loop6               sda2      tty29  tty8    vboxdrv
cpu_dma_latency  loop7               sda3      tty3   tty9    vboxdrvu
cuse             lp0                 sda4      tty30  ttyS0   vboxnetctl
disk             mapper              sdb       tty31  ttyS1   vboxusb
dm-0             mcelog              sdc       tty32  ttyS10  vcs
dri              mem                 sdc1      tty33  ttyS11  vcs1
ecryptfs         memory_bandwidth    sdc2      tty34  ttyS12  vcs10
fb0              mqueue              sdc5      tty35  ttyS13  vcs2
fd               net                 sg0       tty36  ttyS14  vcs3
full             network_latency     sg1       tty37  ttyS15  vcs4
fuse             network_throughput  sg2       tty38  ttyS16  vcs5
fw0              null                shm       tty39  ttyS17  vcs6
hidraw0          parport0            snapshot  tty4   ttyS18  vcs8
hidraw1          port                snd       tty40  ttyS19  vcsa
hidraw2          ppp                 stderr    tty41  ttyS2   vcsa1
hpet             psaux               stdin     tty42  ttyS20  vcsa10
hugepages        ptmx                stdout    tty43  ttyS21  vcsa2
hwrng            pts                 tty       tty44  ttyS22  vcsa3
i2c-0            ram0                tty0      tty45  ttyS23  vcsa4
i2c-1            ram1                tty1      tty46  ttyS24  vcsa5
i2c-2            ram10               tty10     tty47  ttyS25  vcsa6
i2c-3            ram11               tty11     tty48  ttyS26  vcsa8
i2c-4            ram12               tty12     tty49  ttyS27  vfio
i2c-5            ram13               tty13     tty5   ttyS28  vga_arbiter
i2c-6            ram14               tty14     tty50  ttyS29  vhci
i2c-7            ram15               tty15     tty51  ttyS3   vhost-net
initctl          ram2                tty16     tty52  ttyS30  zero
input            ram3                tty17     tty53  ttyS31
kfd              ram4                tty18     tty54  ttyS4
kmsg             ram5                tty19     tty55  ttyS5
kvm              ram6                tty2      tty56  ttyS6
lightnvm         ram7                tty20     tty57  ttyS7



위의 /dev 폴더의 출력을 보면 tty들이 상당히 많은 것을 볼수가 있으며 pts 폴더 또한 확인이 가능하다.

다른 tty의 접근은 키보드로써 바로 접근이 가능하다.

'Alt + Ctrl + F1' 키를 눌러 보도록 하자.

그러면 화면이 바뀌면서 tty1 콘솔 모드로 진입 하게 된다.

그렇다면 차례 차례 F6까지 눌러 보도록 하자.

'Alt + Ctrl + F7' 까지 눌러보면 다시 원래의 XWINDOWS(pts/n)환경으로 돌아온 것을 알수가 있다.

사용 가능한 콘솔은 tty6 까지이고 xwindows 부터 사용하는 콘솔은 pts 에 속한다.

※ 하지만 만약 보안 툴인 selinux 를 'ecforce'로써 작동하여 사용하고 있다면 사용자도 다른 tty로 접근이 불가할 뿐만이 아니라 다른 pts, pty에 외부에서의 접근이 불가 하다.

즉 사용자도 tty를 사용하기 위해서는 selinux를 'permissive'로 정책을 바꿔줘야 한다.


해당 방법은 다음 포스트 에서 확인 할수 있다.

물론 tty에서 xwindwos 진입이 불가 한 것은 아니다.


// 먼저 'Alt + Ctrl + F1' 키를 눌러 tty1에 진입 하고 로그인 한다.

// tty를 확인한다.

$ tty

/dev/tty1

    * tty가 1로 정상적으로 뜨고 있다.

// tty1 콘솔에서 xwindows로 진입해 본다.

$ startx

// 새로운 xwindows에서 터미널을 열고 tty를 확인한다.

$ tty

/dev/pts/(number)
   
    * xwindows로 진입하자 tty가 아닌 마찬가지 다른 pts로 뜨는 것을 확인 할 수 있다.



 
앞서 말했듯이 xwindows에서 작동하는 가상 콘솔은 pts로써 동작 한다고 말했지만 이것은 꼭 다른 xwindows 에서만 추가 되는 것이 아니라
동일한 xwindows 데스크탑 에서 터미널-gui 을 열때 마다 추가 된다.

그렇다면 한 번 실험을 해보도록 해보자. ( 환경은 tty7-pts/1 그대로 한 곳에서만)


// 터미널 창을 여러개 띄운다.

$ ps -leat
    (-t 옵션은 terminal 현황 출력을 의미한다.)

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 273452 56188 -      Rsl+ tty7       0:09 /usr/lib/xo
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agett
0  1000  2578  2573  20   0  31320  4992 wait   Ss   pts/1      0:00 bash XDG_SE
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl s
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSO
0  1000  3843  2573  20   0  31320  4812 wait_w Ss+  pts/7      0:00 bash XDG_SE
0  1000  3860  2573  20   0  31320  4828 wait_w Ss+  pts/8      0:00 bash XDG_SE
0  1000  3876  2573  20   0  31320  4868 wait_w Ss+  pts/9      0:00 bash XDG_SE
0  1000  3909  2578  20   0  37684  1540 -      R+   pts/1      0:00 ps -leat X

    * 현재 pts가 1, 7, 8, 9 총 4개가 있다. 이것은 사용자가 터미널 창을 4개를 띄웠다는 것을 의미한다.
 
// 이번에는 터미널 창 하나를 놔두고 나머지는 전부 종료 한다.

$ ps -leat

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  1907  1862  20   0 277424 59612 -      Ssl+ tty7       0:13 /usr/lib/xorg/Xorg -core :0 -seat seat0
4     0  2229     1  20   0  24708  1860 -      Ss+  tty1       0:00 /sbin/agetty --noclear tty1 linux
0  1000  2578  2573  20   0  31328  5000 wait   Ss   pts/1      0:00 bash XDG_SEAT_PATH=/org/freedesktop/Dis
0  1000  3617  2578  20   0  34936  3232 signal T    pts/1      0:00 systemctl status ssh.service LESSOPEN=|
0  1000  3624  3617  20   0  18424   788 signal T    pts/1      0:00 pager LESSOPEN=| /usr/bin/lesspipe %s G
0  1000  3924  2578  20   0  37684  1488 -      R+   pts/1      0:00 ps -leat XDG_VTNR=7 XDG_SESSION_ID=c1

    * pts가 1 하나 밖에 남지 않은 것을 확인 할 수 있다.




도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.







이전 포스팅에서 dnscrypt-proxy 설치에 대해서 알아 보았다.


이전 포스팅 가기 ( [리눅스 우분투] DNS 간 트래픽 양중 암호화와 그 방법에 관하여 (DNScrypt) )


그리고 포스팅에서 dhcp에 의한 로컬 아이피 변경시에 발생되는 dnscrypt 오류 및 자동 해제에 관해서도 적었는데 당시에는 필자도 확고한 대책을 강구 하고 있었기에


정확하게 집필하지는 못하였다.

하지만 오늘은 그것에 대하여 확고히 집필하고 또 가이드를 처음부터 할 생각이다.



// 먼저 dnscrypt를 설치 한다.

   $  sudo apt install dnscrypt-proxy

// 다음은 dns server를 재설정 한다.


     gtk 설정이나 혹은

    ' /etc/resolv.conf ' 파일을 설정한다.

    "nameserver 127.0.2.1"

    로 바꾸어 준다. 


// 네트워크 서비스를 재시작 한다.

    $  sudo service network-manager restart

// DNS leaktest를 수행해 보자.

   $  firefox http://www.dnsleaktest.com
      (firefox: 파이어폭스 브라우저)

 
       -- 로 접속하여 open DNS 설정이 제대로 되어 있는지 확인하여 보자.


 

// 만일 사용자의 인터넷 아이피 할당 방식이 'dhcp' 인 경우 ' /etc/rc.local' 을 수정하여
부팅시 발생하는 dnscrypt 트러블 슈트를 pc 스스로가 해결할수 있도록 스크립트를 작성해 놓자.


  // 자동 변동 된 dns 주소 '127.0.1.1' 을 127.0.2.1로 다시 수정 하겠금 한다.
   

sudo sed -i 's/127.0.1.1/127.0.2.1/g' /etc/resolv.conf


// dnscrypt-proxy 서비스 모듈을 다시 재시작 한다.
  

$  sudo service dnscrypt-proxy --full-restart

   

// 네트워크 모듈을 다시 재시작 한다.
  

$  sudo service network-manager --full-restart



    

이전 ls 강의  에 이어서 마지막 ls 강의 02에 들어가 보도록 하겠다.

     $ ls -pR

.:
U           bp   else  get    getter       hz   op  ro  screen.png  testd2
autopoboot  bpt  f     geted  gettter.ods  odg  r   rt  testd       uu

./testd:
bp  get  getter  r  ro  rt  screen.png  uu

./testd2:

-- '-R' 은 하부 디렉토리 전부를 동시에 같이 보여준다.

// 그렇다면 이번에는 이전에 배운 명령어와 '-R' 를 조합해 사용해 볼 것이다.

    $ ls -RalphS

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6// 먼저 grep을 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -lap |grep hid
 

-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/


: 'hid' 문자가 들어간 파일과 폴더를 찾아 그것만 출력해 주는 것을 볼 수 있다.

// 이젠 less를 ls와 같이 조합해 명령을 내려 보도록 하자.

     $ ls -RalphS |less

-- 다음과 페이지를 나눠 첫번째 페이지에 멈추어 같이 출력 된다.

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
:

= 여기서 화살표키나 엔터키 혹은 'pagedown'로 내려가며 볼수가 있으며 'less 프로세스' 내에서 빠져 나오려면
키보드에서 "ctrl + z" 로 빠져 나올수가 있다.월  1 00:05 ro

-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt

./.hidf:
합계 8.0K
drwxrwxr-x. 2 tester tester 4.0K  8월  5 19:06 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../

./testd:
합계 444K
-rwxr-x---. 1 tester tester 343K  8월  5 16:30 screen.png
drwxrwxr-x. 2 tester tester 4.0K  8월  5 23:52 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../
-rwxr-x---. 1 tester tester 3.8K  8월  5 16:30 bp
-rwxr-x---. 1 tester tester  610  8월  5 16:30 rt
-rwxr-x---. 1 tester tester  181  8월  5 16:30 ro
-rwxr-x---. 1 tester tester  114  8월  5 16:30 get
-rwxr-x---. 1 tester tester  103  8월  5 16:30 getter
-rwxr-x---. 1 tester tester   85  8월  5 16:30 r
-rwxr-x---. 1 tester tester   47  8월  5 16:30 uu

./testd2:
합계 8.0K
drwxrwxr-x. 2 tester tester 4.0K  8월  5 16:30 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../


-- 디렉터리 하부의 모든 내용들을 전부 나누어 출력해 주고 있다.




지금까지 ls에 관한 여러 명령어 사용과 조합 방법에 대해 알아 보았다.

그렇다면 이제부터는 조금 더 고급 조합 사용 방법들에 대해서 알아 보도록 해 보자.

지금 부터 배울 것은 기존 ls 명령어 에다가 'less' 'grep'을 조합해 볼 것이다.

less는 less 자체 프로세스 내부로 진입하여 페이지를 나누어 볼 수 있게 해주는 시스템 명령어 소프트웨어 이며

grep 원하는 문자 행만 찾아 주는 역할을 하는 시스템 명령어 소프트웨어 이다.

시스템 명령 끼리 조합해 사용하기 위해서는 ' | ' 를 같이 사용해 줘야 하는데 ' | '는 키보드에서 "시프트키(Shift key) + \(₩)" 를 눌러 구현 할수 있다.


// 먼저 grep을 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -lap |grep hid
 
-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/


= 'hid' 문자가 들어간 파일과 폴더를 찾아 그것만 출력해 주는 것을 볼 수 있다.



// 이젠 less를 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -RalphS |less

-- 다음과 페이지를 나눠 첫번째 페이지에 멈추어 같이 출력 된다.

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
:

= 여기서 화살표키나 엔터키 혹은 'pagedown'로 내려가며 볼수가 있으며 'less 프로세스' 내에서 빠져 나오려면
키보드에서 "ctrl + z" 로 빠져 나올수가 있다.



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


 

이전 ls 강의  에 이어서 마지막 ls 강의 02에 들어가 보도록 하겠다.

     $ ls -pR

.:
U           bp   else  get    getter       hz   op  ro  screen.png  testd2
autopoboot  bpt  f     geted  gettter.ods  odg  r   rt  testd       uu

./testd:
bp  get  getter  r  ro  rt  screen.png  uu

./testd2:

-- '-R' 은 하부 디렉토리 전부를 동시에 같이 보여준다.

// 그렇다면 이번에는 이전에 배운 명령어와 '-R' 를 조합해 사용해 볼 것이다.

    $ ls -RalphS

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6// 먼저 grep을 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -lap |grep hid
 

-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/


: 'hid' 문자가 들어간 파일과 폴더를 찾아 그것만 출력해 주는 것을 볼 수 있다.

// 이젠 less를 ls와 같이 조합해 명령을 내려 보도록 하자.

     $ ls -RalphS |less

-- 다음과 페이지를 나눠 첫번째 페이지에 멈추어 같이 출력 된다.

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
:

= 여기서 화살표키나 엔터키 혹은 'pagedown'로 내려가며 볼수가 있으며 'less 프로세스' 내에서 빠져 나오려면
키보드에서 "ctrl + z" 로 빠져 나올수가 있다.월  1 00:05 ro

-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt

./.hidf:
합계 8.0K
drwxrwxr-x. 2 tester tester 4.0K  8월  5 19:06 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../

./testd:
합계 444K
-rwxr-x---. 1 tester tester 343K  8월  5 16:30 screen.png
drwxrwxr-x. 2 tester tester 4.0K  8월  5 23:52 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../
-rwxr-x---. 1 tester tester 3.8K  8월  5 16:30 bp
-rwxr-x---. 1 tester tester  610  8월  5 16:30 rt
-rwxr-x---. 1 tester tester  181  8월  5 16:30 ro
-rwxr-x---. 1 tester tester  114  8월  5 16:30 get
-rwxr-x---. 1 tester tester  103  8월  5 16:30 getter
-rwxr-x---. 1 tester tester   85  8월  5 16:30 r
-rwxr-x---. 1 tester tester   47  8월  5 16:30 uu

./testd2:
합계 8.0K
drwxrwxr-x. 2 tester tester 4.0K  8월  5 16:30 ./
drwxr-x---. 5 tester tester 4.0K  8월  5 19:23 ../


-- 디렉터리 하부의 모든 내용들을 전부 나누어 출력해 주고 있다.




지금까지 ls에 관한 여러 명령어 사용과 조합 방법에 대해 알아 보았다.

그렇다면 이제부터는 조금 더 고급 조합 사용 방법들에 대해서 알아 보도록 해 보자.

지금 부터 배울 것은 기존 ls 명령어 에다가 'less' 'grep'을 조합해 볼 것이다.

less는 less 자체 프로세스 내부로 진입하여 페이지를 나누어 볼 수 있게 해주는 시스템 명령어 소프트웨어 이며

grep 원하는 문자 행만 찾아 주는 역할을 하는 시스템 명령어 소프트웨어 이다.

시스템 명령 끼리 조합해 사용하기 위해서는 ' | ' 를 같이 사용해 줘야 하는데 ' | '는 키보드에서 "시프트키(Shift key) + \(₩)" 를 눌러 구현 할수 있다.


// 먼저 grep을 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -lap |grep hid
 
-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/


= 'hid' 문자가 들어간 파일과 폴더를 찾아 그것만 출력해 주는 것을 볼 수 있다.



// 이젠 less를 ls와 같이 조합해 명령을 내려 보도록 하자.

    $ ls -RalphS |less

-- 다음과 페이지를 나눠 첫번째 페이지에 멈추어 같이 출력 된다.

.:
합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 23:52 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 23:52 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
:

= 여기서 화살표키나 엔터키 혹은 'pagedown'로 내려가며 볼수가 있으며 'less 프로세스' 내에서 빠져 나오려면
키보드에서 "ctrl + z" 로 빠져 나올수가 있다.



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


 

'ls'유닉스 운영체제의 기초 시스템 툴 로써 파일 리스트를 출력해 주는 명령어로써 예를 들어 윈도우즈나 DOS에 있어서 dir과 같다.

하지만 그 기원은 dos의 dir 보다 유닉스 시스템의 ls가 훨씬 더 오래 되었고 1970년대에 이미 AT&T에 의해 유닉스가 처음 개발 되었을때 부터 존재했던 거의 운영체제의 뿌리와 같은 콘솔 툴 이다.

필자는 아직 접해 보지는 못했지만 혹자는 명령어 'ls' 에 관한 두꺼운 책이 있을 정도 라고 하니

ls는 단순해 보이지만 사실은 수많은 활용 방식과 조합 명령 시스템을 인지 할수 있는 기능을 가지고 있다.

즉, 특히나 소프트웨의 구동의 상위가 되는 BASH 스크립트 구동에 있어서 빠져서는 안되며 운영체제 운영에 있어서도 빠져서는 안되는 뿌리 기둥이나 마찬가지 인 소프트웨어라고 보면 될 것이다.

하지만 혹자들 중에는 ls가 사용하기 불편하다고 말하는 사람들도 있다.

왜냐하면 그냥 'ls'를 치면 단순 명료하지만 알아보기 힘들게 나온다는 것이다.



// ls를 그냥 쳐 보도록 한다.

$ ls
   
-- 다음과 같이 출력 된다.  (단순히 구분마다 색깔로 구분되어 있으며 이는 'ls -C'(Color)를 한 것과 같다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd  testd2  uu


// 색깔로 구분하는 명령을 내린다.

$ ls -C
        
  (Color: 색깔)
   
-- 이전과 똑같이 출력 된다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd  testd2  uu






이렇게 보면 기존의 ls 명령은 칼라 속성을 가지는 'ls -C'로 동작하는 것을 알 수가 있다.

여기서 색깔을 구분 하자면 초록색은 실행 파일 흰색(일반색)은 일반파일 파란색이 폴더(디렉토리) 이다.

하지만 이것도 알아보기 힘들다면 -p 로 하여금 폴더를 구분하는 명령을 줄수가 있다.


// -p 옵션을 준다.

$ ls -p

-- 폴더는 '/'가 붙는 것을 확인할수가 있다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd/  testd2/  uu

// 그렇다면 이제부터는 연달아서 ls의 기능을 활용해 보도록 해보자.

// '-a' 옵션으로 숨겨져 있는 폴더와 파일들을 확인하자.

$ ls -a

-- 앞에 '.'이 붙은 파일과 폴더들이 나타난 것을 살펴 볼 수 있다.

..        .hidf  autopoboot  bpt   f    geted   gettter.ods  odg  r   rt          testd   uu
.          .hid.txt  U      bp          else  get  getter  hz           op   ro  screen.png  testd2

// '-p' 옵션과 합하여 보자.

$ ls -pa

-- 숨긴 파일들 표시와 함께 '/'폴더 표시가 함께 표시된다.    

./   .hid.txt  U           bp   else  get    getter       hz   op  ro  screen.png  testd2/
../  .hidf/    autopoboot  bpt  f     geted  gettter.ods  odg  r   rt  testd/      uu

// 그렇다면 이제는 권한 속성까지 표현하는 '-l' 옵션을 함께 줘보자.



$ ls -pal


drwxr-x---.   5 tester tester   4096  8월  5 19:23 ./
drwxr-x---. 131 tester tester  45056  8월  5 15:22 ../
-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/
-rwxr-x---.   1 tester tester     10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester   3841  5월 21 18:25 bp
-rwxr-x---.   1 tester tester    110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester     72  6월 16 23:53 else
-rwxr-x---.   1 tester tester      5  6월  3 19:11 f
-rwxr-x---.   1 tester tester    114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  16897  6월 12 19:49 geted
-rwxr-x---.   1 tester tester    103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   9756  6월 12 16:44 gettter.ods
-rwxr-x---.   1 tester tester   3004  6월 12 22:30 hz
-rwxr-x---.   1 tester tester   1275  5월 29 21:37 odg
-rwxr-x---.   1 tester tester     45  5월 29 19:17 op
-rwxr-x---.   1 tester tester     85  5월 14 23:29 r
-rwxr-x---.   1 tester tester    181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester    610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester 350393  7월 30 14:43 screen.png
drwxrwxr-x.   2 tester tester   4096  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester   4096  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester     47  5월 30 11:00 uu

-- 속성결과 함께 이번에는 세로로 나열되어 출력된다.

// 이번에는 용량을 알아보기 쉽게 '-h 옵션을 같이 줘 보도록 하자.

$ ls -laph

합계 656K
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxr-x---. 131 tester tester  44K  8월  5 15:22 ../
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
 
-- 용량이 함께 표시되어 출력된다.

// 모든 결과를 용량순대로 정렬시켜 보자. ('-S' 옵션을 사용한다.)


dsad

$ ls -laphS


합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 15:22 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt

-- 모든 출력 결과가 용량과 함께 출력 된다.



'ls' 명령어 가이드는 다음 2화에 계속된다.
 

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

리눅스를 유닉스를 기반으로 하고 있고

유닉스는 파일의 속성 권한을 2진법으로 구분 하고 있다.

이는 시스템 보안에서 가장 첫번째로 중요한 부분 으로써 외부 애플리케이션 등이나 외부의 일반적인 친입 등으로 부터 파일의 변조나 리딩을 보호 할수가 있다.

뿐만 아니라 파일의 실행 속성 가능 여부 까지 제어 하는 것을 기본 원칙으로 하고 있다.

즉 유닉스 시스템 에서는 모든 파일들이 실행 가능한 스크립트를 내장 하고 있다고 하여 실행이 가능한 것이 아니다.

관리자 혹은 제작자가 실행 가능 여부를 권한 변경 설정을 해줘야만 실행이 가능한 것이다.

이러한 관리툴을 대표적으로 'chmod (Changes mod)' 라고 하며 이 chmod 명령을 사용하여 해당 폴더나 파일의 권한 속성을 변경 할수가 있다.

모드의 종류는

크게 세 가지인 'R, W, X'로 나뉜다.

R = Read (읽기 가능)

W = Write (쓰기 가능)

X = Excute (실행 가능)



먼저 현재 사용자의 홈 폴더의 파일이나 폴더들의 속성을 보도록 해 보자.


// ls의 -la 속성 명령어로 파일의 속성까지 전부 출력 한다.

    $ ls -la

    -- 다음과 비슷한 화면이 뜰 것이다.

    drwxrwxr-x.   3 tester tester      4096  5월 16 02:40 test7
    -rwx--x--x.   1 tester tester      1715  5월  8 18:11 tested
    -rwx--x--x.   1 tester tester         5  5월  8 21:17 testo
    drwx--x--x.   3 tester tester      4096  6월 10 19:35 tmp
    -rwx--x--x.   1 tester tester       442  5월 10 23:41 ustat
    -rwxrwxr-x.   1 tester tester        10  5월 15 02:54 vi
    -rwx--x--x.   1 tester tester         7  5월 15 03:16 vic
    drwxrwxr-x.   2 tester tester      4096  7월 25 13:57 video
    drwxrwxr-x.   2 tester tester      4096  8월  4 15:47 wine
    drwxrwxr-x.   2 tester tester      4096  7월 20 17:57 workspace
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 공개
    drwx--x--x.   2 tester tester     12288  8월  4 12:42 다운로드
    drwxrwx--x.   2 tester tester      4096  8월  4 14:43 문서
    drwxrwx--x.   2 tester tester      4096  8월  4 15:36 바탕화면
    drwx--x--x.   2 tester tester      4096  8월  4 02:09 비디오
    drwx--x--x.   2 tester tester      4096  8월  4 03:39 사진
    drwx--x--x.   2 tester tester      4096  5월 11 20:46 음악
    drwxrwxr-x.   2 tester tester      4096  5월 17 11:43 이름 없는 폴더
    drwxrwxr-x.   3 tester tester      4096  5월 17 11:37 이름 없는 폴더 2
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 템플릿

    (  속성    )          (사용자 이름)               (파일이나 폴더 이름)



   

여기서 '템플릿' 이라는 디렉토리의 속성 'drwx--x--x' 는 아래와 같이 3등분이 된다.

drwx / --x / --x :

사용자 / 그룹 / 외부(anonymous)


읽기,쓰기,실행/ 실행 / 실행

처음 drwx 의 'd'는 '디렉터리'를 의미 한다.

이것을 진수로 표기한다면


rwx / --x / --x =

111  / 001 / 001 =

(421) / (421) / (421) =

4+2+1 / 0+0+1 / 0+0+1 =

7    /     1    /   1


즉 해당 폴더에 대한 모드는 숫자표기로 '711'이 된다.


그렇다면 이제는 해당 '템플릿' 폴더를 'drwx/---/--- (절대 사용자만 읽기,쓰기,실행 가능)' 으로 속성 권한을 변경 하여 보자.



// 속성을 700으로 변경한다.

    $ chmod 700 템플릿

// 속성을 재확인 한다.

   $  ls -l |grep 템플릿
         (grep 은 출력에서 원하는 문자열이 있는 라인만 출력 시킨다.)
 
    - 다음과 같이 출력 되면 성공한 것이다.
 
    drwx------.  2 tester tester      4096  4월 29 17:59 템플릿



이와 같은 방법은 파일에서도 똑같이 적용 되며


* 만일 디렉터리일 경우 속성을 '6xx'로 할 경우

    $ chmod 600 폴더

    - 폴더 속성이 drw------- 으로 변경됨으로 x(실행) 속성 권한이 사라짐으로 폴더로 진입 할수 없게 된다.

    - 뿐만 아니라 그룹 속성까지 제로로 한다면 'ls' 같은 일반 프로그램도 타 소프트웨어들도 접근을 못하게 된다.
    (해당 폴더에 들어가서 ls를 실행할 경우 진행 되지 않는다.)   
즉, 그룹 권한을 생각하여 최소한 '750(rwxr-x---)' 이상으로 권한을 부여 하는 것이 일반적이다.





또한 해당 디렉토리 하부의 모든 파일과 폴더들을 전부 똑같이 적용 시키려면



// -R 속성으로 하부까지 전부 적용 시킨다.

   $ chmod -R 770 폴더
 
// 하위까지 속성을 한번에 확인해 본다.

   $ ls -lR 폴더



+ Recent posts