먼저 귀하의 리눅스 우분투에 java가 올바르게 설치 되었는지 확인 하였다면(링크 바로 가기)


이제 본격적으로 리눅스 터미널에서 java 파일을 만들고 컴파일 해보자.




    ## 먼저 간단히 텍스트 편집기를 이용하여 텍스트 출력 형태의 간단한 java 소스 코드 파일을 만들어 보자.

    $ gedit hello_world.java
   
        ! 만일 gedit 가 설치 되어 있지 않다면
       
            $ sudo apt install gedit
       
        ! 혹은

            $ nano hello_world.java
             (nano: 나노 에디터)   




 다음과 같이 소스 코드를 만들고 저장한다.


< hello_world.java >         


class hello_world {
    public static void main( String[] args ) {
        System.out.println( "Hello world" );
    }
}


hello_world.java




    ## 만든 java 파일을 컴파일 한다.

    $ javac hello_world.java
      (javac: java 컴파일 명령)   

    ## 컴파일이 정상적으로 완료 되었다면 해당 디렉터리에 hello_world.class 클래스 파일을 생성 되었을 것이다.
       그것을 실행토록 해보자.


    $ java hello_world
        ( 파일명.class를 붙이지 않는다.)

    ## "Hello world"가 뜨고 리턴 하였다면 컴파일과 실행에 성공한 것이다.


 


 

인터넷에서 JAVA 프로그래밍에 대한 예제를 찾아서 막상 컴파일 해 보면 안되는 경우가 허다 할 것이다.

그 요인은 전체적으로 두 가지 요인으로 볼 수 있는데

하나는 소스 구성이 이전 버전으로 구성 되어 있는 것이며

또 하나는 파일의 인코딩이 다르기 때문이다.

먼저 인코딩을 설명 한다면 JAVAC(JAVA 컴파일러)는 기본적으로 UTF-8을 우선적으로 지원하기 때문이다.

만일, 해당 소스 파일이 'EUC-KR'로 되어 있다면 JAVAC가 인식하지 못하면서 컴파일에 실패 한다.

먼저 만약 소스 코드 구성은 최신 버전에 맞지만 인코딩만 다를 경우를 컴파일을 시도해 보자.


< 해당 'a.java' 소스 파일이 'EUC-KR'인코딩일 경우 >

$ JAVAC -encoding euc-kr a.java
        (euc-kr : 인코딩 지정)

< 컴파일에 성공했는지 확인해 본다. >

$ ls

a.java a.class




< 이번에는 이전 버전의 소스코드와 인코딩이 다른 경우 두가지를 모두 포함하고 있는 경우를 해결해 볼 것이다. >


그러는 이유는 이 방법에는 순서가 있기 때문이다.


물론 프로그래머 스스로가 소스를 수정하여 해결할수도 있겠지만 javac는 이전 버전의 소스 형식도 잡아주는 기능이 있기 때문에 그것을 최대한 활용 하는 것이 훨씬 더 수월 할 것이다.


그리고 이번에는 본 필자가 소스 파일을 제공해 줄 것이다.


a.java


< 위의 파일을 직접 다운 받거나 본 블로그에서 제공하는 예제 파일을 터미널에서 wget을 활용하여 원하는 폴더에  다운로드 한다. >

$ wget http://cosmosproject2015.tistory.com/attachment/cfile21.uf@246C454257AD51422E2D22.java


// 받은 파일을 a.java로 변경한다.

< 받은 파일을 a.java로 변경한다. >


$ mv cfile21.uf@246C454257AD51422E2D22.java a.java


< 제대로 변경 되었는지 확인해 본다. >


$ ls


a.java


* a.java 가 있다면 다운로드와 변경에 성공한 것이다.


< 먼저 해당 java 파일에 대한 타겟 버전을 설정한다. >

$ javac -target 1.4 a.java
       (타겟 옵션 : 버전 1.4)

javac: target release 1.4 conflicts with default source release 1.9

    * 현재 버전 1.9에 의해 1.4 문제를 타겟 배포 했다는 문구가 출력 된다.

< 이제 인코딩과 컴파일을 같이 실행한다. > >>

$ javac -encoding euc-kr a.java

< 실행해 본다. > >

$ java a


Hello World
성공했습니다!


* 위와 같이 나온다면 성공한 것이다.


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


인터넷에서 JAVA 프로그래밍에 대한 예제를 찾아서 막상 컴파일 해 보면 안되는 경우가 허다 할 것이다.

그 요인은 전체적으로 두 가지 요인으로 볼 수 있는데

하나는 소스 구성이 이전 버전으로 구성 되어 있는 것이며

또 하나는 파일의 인코딩이 다르기 때문이다.

먼저 인코딩을 설명 한다면 JAVAC(JAVA 컴파일러)는 기본적으로 UTF-8을 우선적으로 지원하기 때문이다.

만일, 해당 소스 파일이 'EUC-KR'로 되어 있다면 JAVAC가 인식하지 못하면서 컴파일에 실패 한다.

먼저 만약 소스 코드 구성은 최신 버전에 맞지만 인코딩만 다를 경우를 컴파일을 시도해 보자.


< 해당 'a.java' 소스 파일이 'EUC-KR'인코딩일 경우 >

$ JAVAC -encoding euc-kr a.java
        (euc-kr : 인코딩 지정)

< 컴파일에 성공했는지 확인해 본다. >

$ ls

a.java a.class




< 이번에는 이전 버전의 소스코드와 인코딩이 다른 경우 두가지를 모두 포함하고 있는 경우를 해결해 볼 것이다. >


그러는 이유는 이 방법에는 순서가 있기 때문이다.


물론 프로그래머 스스로가 소스를 수정하여 해결할수도 있겠지만 javac는 이전 버전의 소스 형식도 잡아주는 기능이 있기 때문에 그것을 최대한 활용 하는 것이 훨씬 더 수월 할 것이다.


그리고 이번에는 본 필자가 소스 파일을 제공해 줄 것이다.


a.java


< 위의 파일을 직접 다운 받거나 본 블로그에서 제공하는 예제 파일을 터미널에서 wget을 활용하여 원하는 폴더에  다운로드 한다. >

$ wget http://cosmosproject2015.tistory.com/attachment/cfile21.uf@246C454257AD51422E2D22.java


// 받은 파일을 a.java로 변경한다.

< 받은 파일을 a.java로 변경한다. >


$ mv cfile21.uf@246C454257AD51422E2D22.java a.java


< 제대로 변경 되었는지 확인해 본다. >


$ ls


a.java


* a.java 가 있다면 다운로드와 변경에 성공한 것이다.


< 먼저 해당 java 파일에 대한 타겟 버전을 설정한다. >

$ javac -target 1.4 a.java
       (타겟 옵션 : 버전 1.4)

javac: target release 1.4 conflicts with default source release 1.9

    * 현재 버전 1.9에 의해 1.4 문제를 타겟 배포 했다는 문구가 출력 된다.

< 이제 인코딩과 컴파일을 같이 실행한다. > >>

$ javac -encoding euc-kr a.java

< 실행해 본다. > >

$ java a


Hello World
성공했습니다!


* 위와 같이 나온다면 성공한 것이다.


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


본 필자가 리눅스, 유닉스 개뿔 아는 것도 없으면서 고지식한 척 글을 쓰다가 갑자기 쌩뚱 맞게 외계인 음모론을 써갈겨 배포 하는 것에 대해 다들
좀 아이러니 하실 겁니다.


솔직히 말해서 이 글 은 어그로 이며,


어그로를 끄는 이유는 당연히 블로그 방문 손님과 구독자 수를 높이기 위함 이겠죠.


자 아셨으면 이제 시작하겠습니다.  (미국식 개그)



먼저, 프로그래밍 처럼 변수를 정하죠.


여기서 제가 말하는 외계인 이란, 인류의 문명을 훨씬 뛰어 넘은 좀 더 높은 차원으로의 이동을 꾀하여 우주를 유영하는 인류보다 훨씬 앞서나간 '선각자들' 을 말합니다.


외계인 = 선각자


사실 '선각자' 라는 말도 솔직히 말해서 제가 거창한척 게임을 참고해서 지은 거죠.


전문 게이머들은 이미 아시겠지만 '선각자' 라는 단어는 게임 '헤일로' 에서 가장 많이 등장하는 단어 입니다.



그 선각자들은 한 종이 아닐수 있습니다.


우리와 똑같이 생긴 종 도 있을 것이고 많이 알려진 것처럼 '그레이' 외계인들도 있을 것입니다.


이미 아주 오래전 그들은 이 지구를 방문 했을 가능성이 있을 것이며


우리는 어쩌면 지구의 태생이 아니라 그들의 종 중 후손일수도 있습니다.


혹은 어쩌면....... 우리가 원래 그들 이었을 수도 있습니다.


진화론은 맞지만 이 '지구'에서 인류가 자체적으로 침팬치로부터 진화하여 등장 하려면 아직 '수 만년' 가까이 남았다고 저는 개인 적으로 생각하고 있습니다.



즉 어쩌면, 우리 인류는 이 지구의 주인이 아니라 잠시 있다 가는 '망각한 선각자들' 일수도 있습니다.


아마도 그 정황증거를 댄다면 문명을 발빠르게 성장함과 동시에 오랜 역사 때부터 집착하듯 우주를 동경하고 관찰하고 개발하는데 박차를 가했기 때문이며


그것이 우주로 나아가기 위한 하나의 기억으로부터의 본능이 아닌가 하는 것,



두번째 정황증거는 바로 '종교' 입니다.


왜 인류는 아주 오래전 부터 종교에 집착하는가?


동물들은 종교 같은 것을 가지지 않습니다.


동물이 인류처럼 진화하여 종교를 가지기 까지는 최소 1억년 이하 가 걸릴수 있다고 봅니다.


즉 인류처럼 진화하고서도 우주 개발에 돌입하고도 우주에 대해 많은 것을 알았을때 라고 봅니다.


즉 하고 싶은 말은 인류처럼 문명에 따라 진화를 한다고 하더라도 무조건 종교를 갖는 다는 보장이 없다는 것입니다.

내심 속에 신앙을 가질수 있겠지만 확신이 없기 때문에 구체화 하지는 않을 것입니다.


즉..... 인류가 종교에 가장 먼저 집착 하는 이유는 어쩌면 아주 오래전 수많은 우주에 대한 개발과 우주 속 심연의 지식 습득으로 인해 그 중요한 사실을 알고 깨달았기 때문 일지도 모른다고 저는 생각 합니다. 


그래서 본능적으로 그것을 우선 첫째로 여기고 그것에 집착하는 것이 아닌가 합니다.


여기까지는 제 생각 입니다.




그렇다면 본격적으로 20세기 중반 부터 외계인과 UFO가 자주 출몰하는 결정적인 이유에 대하여 추론해 보겠습니다.



20세기 초, 중반 부터 외계인 음모론에서 가장 많이 등장하는 외계인들은 대부분 '그레이' 형태의 외계인들 입니다.


전체적인 형태는 사람과 비슷하지만


눈, 코입 머리 모양, 전체적 생김새 등 우리와 심하게 다릅니다.


그들은 겉보기에도 우주 유영에 쪄들어 있습니다.


우리와 비슷한 유전자도 있을수 있겠지만 인류와 다른 종 즉 같은 조상을 두고 있지 않을 가능성이 큽니다.


그들은 왜 그때부터 이 지구에 집착하는가?


이것은 매우 중요한 문제 일수도 있습니다.


20세기는 초, 중반은 격동의 세월 이었다는 것을 모두들 알고 계실 겁니다.


세계대전, 핵실험, 핵전쟁, 많은 나라들의 구속과 독립, 내전과 냉전, 종교 전쟁의 촉발


여기서 가장 중요한 것은 무엇일까요?


바로 '핵무기' 입니다.


그리고 '핵실험' 일 것입니다.



가장 결정적으로 그들이 가장 중요시 여겼던 것은 최초 맨하튼 프로젝트로 촉발되었던1945년 7월에 시행한 핵실험인 트리니티 핵실험 일지도 모른다고 생각 합니다.


즉 핵실험을 통하여 우리가 알지 못하는 또 다른 에너지가 빛 보다 빠른 속도로 우주로 퍼져나가 그들에게 포착 되었을 가능성이 있습니다.


그래서 어쩌면... 우주의 한 작은 구석에 있는 지구에서 숨죽이고 있던 우리 인류는 그들에게 그 이후로 포착 된 것인지도 모른다고 생각하며


그 이후로 그들은 집중적으로 감시 및 관찰 그리고 관리 까지 '오지라펴' 역을 톡톡히 맡고 있는지도 모른다고 생각합니다.




그리고 그들이 유리를 공식적으로 조우 하지 않고 관찰 및 감시를 하는 이유는...   


결정적으로 우리를 믿지 못하기 때문이며


곧 그것은 적군도 아군도 아니라는 것이며 언제든지 그들과 적이 될 수 있다는 것을 의미 합니다.


이러한 발상은 매우 무서운 생각이죠.


또 다른 선각자인 그들로부터 우리가 안전 하려면 어쩌면 먼저 그들에 대해 최대한 많은 정보를 수집하고 그들에 대해 많은 것을 알고 이해 해야 할 지도 모른다고 저는 생각 합니다.



우리의 존재가 또 다른 선각자가 있을수 있다는 강력한 증거 인데도 불구하고


"외계인은 무조건 없다."


"중2병 같은 소리 하지 말고 발 닦고 잠이나 자라"


라며 타인에게 설교 하는 것 이야 말로 매우 무지하고 어리석은 행동일지도 모릅니다.




물론 그런 것들은 전부 거짓이며 현재 아직 다른 선각자들을 전혀 마주치지 않았는지도 모릅니다.


하지만 가능성을 열어두고 염두에 두어야 함이 현명하고 지혜로운 것이 아닌가 생각합니다.



뻘글 읽어 주신 여러분께 진심으로 감사 드립니다.






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




본 필자가 리눅스, 유닉스 개뿔 아는 것도 없으면서 고지식한 척 글을 쓰다가 갑자기 쌩뚱 맞게 외계인 음모론을 써갈겨 배포 하는 것에 대해 다들
좀 아이러니 하실 겁니다.


솔직히 말해서 이 글 은 어그로 이며,


어그로를 끄는 이유는 당연히 블로그 방문 손님과 구독자 수를 높이기 위함 이겠죠.


자 아셨으면 이제 시작하겠습니다.  (미국식 개그)



먼저, 프로그래밍 처럼 변수를 정하죠.


여기서 제가 말하는 외계인 이란, 인류의 문명을 훨씬 뛰어 넘은 좀 더 높은 차원으로의 이동을 꾀하여 우주를 유영하는 인류보다 훨씬 앞서나간 '선각자들' 을 말합니다.


외계인 = 선각자


사실 '선각자' 라는 말도 솔직히 말해서 제가 거창한척 게임을 참고해서 지은 거죠.


전문 게이머들은 이미 아시겠지만 '선각자' 라는 단어는 게임 '헤일로' 에서 가장 많이 등장하는 단어 입니다.



그 선각자들은 한 종이 아닐수 있습니다.


우리와 똑같이 생긴 종 도 있을 것이고 많이 알려진 것처럼 '그레이' 외계인들도 있을 것입니다.


이미 아주 오래전 그들은 이 지구를 방문 했을 가능성이 있을 것이며


우리는 어쩌면 지구의 태생이 아니라 그들의 종 중 후손일수도 있습니다.


혹은 어쩌면....... 우리가 원래 그들 이었을 수도 있습니다.


진화론은 맞지만 이 '지구'에서 인류가 자체적으로 침팬치로부터 진화하여 등장 하려면 아직 '수 만년' 가까이 남았다고 저는 개인 적으로 생각하고 있습니다.



즉 어쩌면, 우리 인류는 이 지구의 주인이 아니라 잠시 있다 가는 '망각한 선각자들' 일수도 있습니다.


아마도 그 정황증거를 댄다면 문명을 발빠르게 성장함과 동시에 오랜 역사 때부터 집착하듯 우주를 동경하고 관찰하고 개발하는데 박차를 가했기 때문이며


그것이 우주로 나아가기 위한 하나의 기억으로부터의 본능이 아닌가 하는 것,



두번째 정황증거는 바로 '종교' 입니다.


왜 인류는 아주 오래전 부터 종교에 집착하는가?


동물들은 종교 같은 것을 가지지 않습니다.


동물이 인류처럼 진화하여 종교를 가지기 까지는 최소 1억년 이하 가 걸릴수 있다고 봅니다.


즉 인류처럼 진화하고서도 우주 개발에 돌입하고도 우주에 대해 많은 것을 알았을때 라고 봅니다.


즉 하고 싶은 말은 인류처럼 문명에 따라 진화를 한다고 하더라도 무조건 종교를 갖는 다는 보장이 없다는 것입니다.

내심 속에 신앙을 가질수 있겠지만 확신이 없기 때문에 구체화 하지는 않을 것입니다.


즉..... 인류가 종교에 가장 먼저 집착 하는 이유는 어쩌면 아주 오래전 수많은 우주에 대한 개발과 우주 속 심연의 지식 습득으로 인해 그 중요한 사실을 알고 깨달았기 때문 일지도 모른다고 저는 생각 합니다. 


그래서 본능적으로 그것을 우선 첫째로 여기고 그것에 집착하는 것이 아닌가 합니다.


여기까지는 제 생각 입니다.




그렇다면 본격적으로 20세기 중반 부터 외계인과 UFO가 자주 출몰하는 결정적인 이유에 대하여 추론해 보겠습니다.



20세기 초, 중반 부터 외계인 음모론에서 가장 많이 등장하는 외계인들은 대부분 '그레이' 형태의 외계인들 입니다.


전체적인 형태는 사람과 비슷하지만


눈, 코입 머리 모양, 전체적 생김새 등 우리와 심하게 다릅니다.


그들은 겉보기에도 우주 유영에 쪄들어 있습니다.


우리와 비슷한 유전자도 있을수 있겠지만 인류와 다른 종 즉 같은 조상을 두고 있지 않을 가능성이 큽니다.


그들은 왜 그때부터 이 지구에 집착하는가?


이것은 매우 중요한 문제 일수도 있습니다.


20세기는 초, 중반은 격동의 세월 이었다는 것을 모두들 알고 계실 겁니다.


세계대전, 핵실험, 핵전쟁, 많은 나라들의 구속과 독립, 내전과 냉전, 종교 전쟁의 촉발


여기서 가장 중요한 것은 무엇일까요?


바로 '핵무기' 입니다.


그리고 '핵실험' 일 것입니다.



가장 결정적으로 그들이 가장 중요시 여겼던 것은 최초 맨하튼 프로젝트로 촉발되었던1945년 7월에 시행한 핵실험인 트리니티 핵실험 일지도 모른다고 생각 합니다.


즉 핵실험을 통하여 우리가 알지 못하는 또 다른 에너지가 빛 보다 빠른 속도로 우주로 퍼져나가 그들에게 포착 되었을 가능성이 있습니다.


그래서 어쩌면... 우주의 한 작은 구석에 있는 지구에서 숨죽이고 있던 우리 인류는 그들에게 그 이후로 포착 된 것인지도 모른다고 생각하며


그 이후로 그들은 집중적으로 감시 및 관찰 그리고 관리 까지 '오지라펴' 역을 톡톡히 맡고 있는지도 모른다고 생각합니다.




그리고 그들이 유리를 공식적으로 조우 하지 않고 관찰 및 감시를 하는 이유는...   


결정적으로 우리를 믿지 못하기 때문이며


곧 그것은 적군도 아군도 아니라는 것이며 언제든지 그들과 적이 될 수 있다는 것을 의미 합니다.


이러한 발상은 매우 무서운 생각이죠.


또 다른 선각자인 그들로부터 우리가 안전 하려면 어쩌면 먼저 그들에 대해 최대한 많은 정보를 수집하고 그들에 대해 많은 것을 알고 이해 해야 할 지도 모른다고 저는 생각 합니다.



우리의 존재가 또 다른 선각자가 있을수 있다는 강력한 증거 인데도 불구하고


"외계인은 무조건 없다."


"중2병 같은 소리 하지 말고 발 닦고 잠이나 자라"


라며 타인에게 설교 하는 것 이야 말로 매우 무지하고 어리석은 행동일지도 모릅니다.




물론 그런 것들은 전부 거짓이며 현재 아직 다른 선각자들을 전혀 마주치지 않았는지도 모릅니다.


하지만 가능성을 열어두고 염두에 두어야 함이 현명하고 지혜로운 것이 아닌가 생각합니다.



뻘글 읽어 주신 여러분께 진심으로 감사 드립니다.






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




여러분이 사용하는 리눅스 환경은 기본적으로 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



    


이전 포스팅에서 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


 
     

이전 포스팅 에서는 간단하게 문자를 출력 시키는 JAVA 프로그램을 만들어 보았다.

이번에는 변수와 상수를 배우고 지정하여 그것을 문자와 함께 같이 합하여 출력해 보도록 할 것이다.

먼저, 변수에 대해 말해 보자면

간단히 말해서 문자에 문자를 지정하여 사용하는 것이고

    예) when = "Saturday night";  

상수는 그것이 숫자로 활용 되어서 문자에 숫자를 지정하는 것이라고 할 수 있다.

    예) clock = 21;

여기서 다른 점은 변수 지정은 "_" 가 들어 가지만 상수 지정은 숫자 그 자체를 사용하기 때문에 그것이 필요치 않다는 것이다.

자 그렇다면 지금부터 본격적으로 프로그래밍을 해보도록 하자.




mybaby.java

// 클래스 이름을 선언 한다.
class mybaby {
    public static void main( String[] args ) {
        // 변수 지정        
        String baby = "My baby old is ";
       
        // 상수 지정
        int old = 3; 

        // 지정한 변수와 상수 그리고 문자를 같이 출력한다.
        System.out.println( baby + old + " years." );
    }
}

변수와상수.java변수와상수.java





// 저장하고 컴파일 & 실행 해 본다.

    $ javac mybaby.java

    $ java mybaby


    - 다음과 같이 출력 되면 성공한 것이다.

    My baby old is 3 years.




이전 포스팅 에서는 간단하게 문자를 출력 시키는 JAVA 프로그램을 만들어 보았다.

이번에는 변수와 상수를 배우고 지정하여 그것을 문자와 함께 같이 합하여 출력해 보도록 할 것이다.

먼저, 변수에 대해 말해 보자면

간단히 말해서 문자에 문자를 지정하여 사용하는 것이고

    예) when = "Saturday night";  

상수는 그것이 숫자로 활용 되어서 문자에 숫자를 지정하는 것이라고 할 수 있다.

    예) clock = 21;

여기서 다른 점은 변수 지정은 "_" 가 들어 가지만 상수 지정은 숫자 그 자체를 사용하기 때문에 그것이 필요치 않다는 것이다.

자 그렇다면 지금부터 본격적으로 프로그래밍을 해보도록 하자.




mybaby.java

// 클래스 이름을 선언 한다.
class mybaby {
    public static void main( String[] args ) {
        // 변수 지정        
        String baby = "My baby old is ";
       
        // 상수 지정
        int old = 3; 

        // 지정한 변수와 상수 그리고 문자를 같이 출력한다.
        System.out.println( baby + old + " years." );
    }
}

변수와상수.java





// 저장하고 컴파일 & 실행 해 본다.

    $ javac mybaby.java

    $ java mybaby


    - 다음과 같이 출력 되는 성공한 것이다.

    My baby old is 3 years.




이전 포스팅 에서는 간단하게 문자를 출력 시키는 JAVA 프로그램을 만들어 보았다.

이번에는 변수와 상수를 배우고 지정하여 그것을 문자와 함께 같이 합하여 출력해 보도록 할 것이다.

먼저, 변수에 대해 말해 보자면

간단히 말해서 문자에 문자를 지정하여 사용하는 것이고

    예) when = "Saturday night";  

상수는 그것이 숫자로 활용 되어서 문자에 숫자를 지정하는 것이라고 할 수 있다.

    예) clock = 21;

여기서 다른 점은 변수 지정은 "_" 가 들어 가지만 상수 지정은 숫자 그 자체를 사용하기 때문에 그것이 필요치 않다는 것이다.

자 그렇다면 지금부터 본격적으로 프로그래밍을 해보도록 하자.




mybaby.java

// 클래스 이름을 선언 한다.
class mybaby {
    public static void main( String[] args ) {
        // 변수 지정        
        String baby = "My baby old is ";
       
        // 상수 지정
        int old = 3; 

        // 지정한 변수와 상수 그리고 문자를 같이 출력한다.
        System.out.println( baby + old + " years." );
    }
}

변수와상수.java





// 저장하고 컴파일 & 실행 해 본다.

    $ javac mybaby.java

    $ java mybaby


    - 다음과 같이 출력 되는 성공한 것이다.

    My baby old is 3 years.



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



이전 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" 로 빠져 나올수가 있다.



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


 

+ Recent posts