먼저 리눅스는 콘솔에서 작업을 하면서 날씨 정보를 바로  확인이 가능하며 그것도 총 3일간의 예보까지 확인하는 것이 가능하다. 

바로 'curl' 명령을 통해서 말이다.

그렇다면 두서 없이 바로 작업에 들어가 보도록 하자.

터미널을 열고 다음과 같은 명령을 내린다.

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

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

// curl 날씨정보서버/도시명


user@user-test:~$ curl wttr.in/seoul





이 뿐만 아니라 한글로 입력해도 불러 올수 있다.


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

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

// 한글로 도시 단위로 입력해 보자.


user@user-test:~$ curl wttr.in/대전






이 뿐만인가? 전세계의 날씨 정보를 단 한번에 받아올수 있을 뿐만이 아니라 달의 모습까지도 확인 가능하다.

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

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



user@user-test:~$ curl wttr.in/moon





다음 재미 있는 것은 바로 터미널에서 볼수 있는 달력 이다.

아주 간단하다.

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

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

// 터미널을 열고 'cal'을 내려보자.


user@user-test:~$ cal

4월 2017         
일 월 화 수 목 금 토  
                   1  
 2  3  4  5  6  7  8  
 9 10 11 12 13 14 15  
16 17 18 19 20 21 22  
23 24 25 26 27 28 29  
30



그럼 당연히 오늘짜 달력이 출력 된다. 

그렇다면 cal 명령어 뒤에 년도를 한번 붙여 보자.


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

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

// 광복절인 1945년 8월을 불러와보자.


user@user-test:~$ cal 08 1945


 8월 1945         
일 월 화 수 목 금 토  
          1  2  3  4  
 5  6  7  8  9 10 11  
12 13 14 15 16 17 18  
19 20 21 22 23 24 25  
26 27 28 29 30 31



보면 1945년 8월 15일이 수요일이란 사실을 바로 알 수 있다. 

그리고 만일 cal 명령을 그냥 년도와 같이 내린다면 그 년도의 모든 달을 한꺼번에 볼 수 있다. 


자 이처럼, 터미널에서는 실생활적인 정보들을 한번에 볼 수가 있다. 

이것이 어쩌면 마우스를 움직여 gui 프로그램으로 확인하거나 웹을 열어 확인 하는 것보다 정보를 얻어 오는 것이 훨씬 더 빠를 것이다. 

또 본 페이지에서 가장 중요한 점은 앞서 날씨예보를 불러왔던 'curl wttr.in' 명령이다.

'wttr.in'은 날씨 정보를 실시간 보유 하고 있는 단순한 웹서버 이다.

그리고 'curl'은 유닉스 시스템에서의 대표적인 웹크롤러 이며 본명은 'see url' 이다.

웹크롤러와 웹크롤링은 간단히 말해서 url홈페이지나 웹의 정보를 브라우저가 아닌 콘솔로 긁어올수 있는 방식을 말한다.

다음 장에선 curl과 같은 웹크롤링에 대해서 알아 보도록 하자. 

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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



리눅스에서 현재 가장 최고의 비디오 플레이어는 'vlc' 다음으로는 단언컨데 'smplayer' 이다. 

'Smplayer'는 윈도우 진영에서 가장 유명한 비디오 플레이어인 곰플레이어 못지 않은 뛰어난 프론트엔드를 자랑한다.

리눅스 자체의 의존성 패키지 활용을 통하여 수많은 코덱과 플러그인을 지원 할 수 있을 뿐만아니라 자막에서도 다양한 언어 및 인코딩을 지원 할 수 있다.

하지만 smplayer에서는 각가지 버그도 가지고 있는데 가장 큰 두가지가 출력 성능 저하와 한글 자막의 코딩깨짐이 그것이다. 

사실 리눅스에서 가장 잘 나가던 플레이어는 단언컨데 'vlc' 였다. 

'vlc' 는 안드로이드의 플레이 스토어에도 등재 되어 있을 정도로 기술력 뿐만아니라 인기도 높다. 

하지만 기능성 면 에서나 엔진 활용 면 에서 'smplayer'가 훨씬 더 뛰어난 것은 사실이다. 

 'smplayer' 가 활용하는 주요 엔진 의존성 패키지는 'mplayer' 를 주로 사용 하지만 

설치는 대부분 배포판 기본 레파시토리에 등재 되어 있기 때문에 터미널에서 바로 설치가 가능하다.

리눅스 우분투인 경우 설치는 다음과 같다.

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

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


user@user-test:~$ sudo apt-get install smplayer 



// 보통 여기서 의존성 패키지인 'mplayer' 가 자연히 설치 되겠지만 만약  'smplayer'  사용시 'mplayer' 오류가 뜬다면 


user@user-test:~$ sudo apt-get install mplayer 


-> 로써 설치를 따로 해줘야 한다.



그럼 이제부터  'smplayer'의 영상 출력 성능을 높여 보도록 하자. 

smplayer를 실행하고 설정 > 성능 > 디코딩 쓰레드를 최대한으로 올린다.

(물론 코어개수에 맞겠금 쓰레드 개수를 설정하는 것이 가장 바람직하다.) 


다음은 출력드라이버 설정이다.  
설정 > 비디오 

보통은 xv를 가장 많이 쓴다. 



다음은 간단한 설정으로 자막 깨짐을 고칠수 있는데 원리는 자막 인코딩 설정을 CP949(EUC-KR)로 맞추는 것이다.
설정 > 자막 > 인코딩



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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



가장먼서 해야될 말은 단순하게 터미널 콘솔에서 자동완성을 하려면 알파벳 몇개를 입력한 다음에 탭키를 '⇔' 키를 누르면 되며 이와 같은 소스는 홈 폴더의 'bashrc'에 구성되어 있다. 

그리고 원리는 간단하다.  
 
사용자가 입력한 스펠링을 기준으로 매칭되는 파일 이름을 프로세스가 스스로 찾아 내는 것이다.

한데 분명 파일이 있는데에도 자동완성 기능이 동작하지 않는다면 같은 스펠링을 가진 다른 파일들이 존재하기 때문이다.

그런 간단히 알아 보도록하자. 



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

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


user@user-test:~$ ls /usr/bin/se (까지만 타이핑 하고 엔터를 누르지 말고 탭'⇔'키를 여러번 눌러보자.) 


seahorsesensors-conf-convert

seapt   sepolgen-ifgen

seaudit-report    sepolgen-ifgen-attr-helper

sebstartseq

sechecker    serialver

secon   servertool

secutil sesearch

sediff  session-installer

sediffx session-migration

seesessreg

segetlogsetarch

seinfo  setfacl

select-default-iwrap   setfattr

select-editorsetkeycodes

semodule_depssetleds

semodule_expand   setlogcons

semodule_linksetmetamode

semodule_package  setpci

semodule_unpackagesetprop

sensible-browser  setreg

sensible-editor   setsid

sensible-pager    setterm

sensors setxkbmap


->  위와 같이 'se' 스펠링이 들어간 파일들이 전부 출력 된다.  (여러번 누르는 이유는 같은 스펠링을 가진 파일들이 존재 하기 때문이다.)


// 그렇다면 이번에는 'ls /usr/bin/sese' 까지 입력하고 탭'⇔'키를 눌러보자.


user@user-test:~$ ls /usr/bin/sese  ⇔  ls /usr/bin/sesearch   (자동완성 기입이 전부 이루어 진다. 'sese' 구문자가 명령이 하나밖에 없기 때문)


// 그렇다면 이번에는 's' 까지 입력하고 탭'⇔'키를 눌러보자.


user@user-test:~$ ls /usr/bin/s (⇔ 탭키 여러번)

Display all 239 possibilities? (y or n)


->  '그 s 문자가 포함된 후보 수가 많기 때문에 239가지의 파일들을 전부 보여줘도 될지를 사용자에게 물어본다.'




터미널에서 이와 같은 자동완성은 프로그램 명령어의 응용 에서도 이루어진다.

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

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


user@user-test:~$ apt i (⇔ 탭키 apt install ) 


-> 사용자가 하려하는 명령어 인자를 자동으로 완성 한다. 

마찬가지 여기서도 만약 해당 스펠링에 대한 예비 인자들이 많을 경우 탭키를 여러번 누르면 사용 가능한 출력 된다.


user@user-test:~$ apt (⇔ 탭키 여러번)

autoclean     depends       help          purge         showsrc
autoremove    dist-upgrade  install       rdepends      source
build-dep     download      list          remove        update
changelog     edit-sources  moo           search        upgrade
clean         full-upgrade  policy        show    
-> 사용 가능한 명령 인자들이 전부 출력 된다.



하지만 위와 같은 프로그램 명령어 인자의 자동완성 기능은 전부 되는 것은 아니다. 
각 프로그램 개발자가 해당 소스를 구성 하여 설치 되겠금 프로그램을 설계 했을 경우에만 해당된다. 


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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



plank는 리눅스에서 가장 심플한 독 프로그램이다.

독은 x-desktop에서 사용자 환경 편의와 디자인을 위하여 고안된 프로그램으로 애플의 운영체제인 mac에서 먼저 선을 보였던 프로그램 이다.

많은 리눅스 운영체제 커스터마이징에서 스스로만의 plank 아이템커스터마이징을 사용하는 경우가 많은데 그러한 방법을 알기 위하여
본격적으로 plank의 아이템들을 커스터마이징해 보도록 실습해 볼 것이다. 




가장 먼저 한가지 우선적으로 반드시 알아야 할 소스코딩 스크립트가 있다. 

소프트웨어 패키징 관리를 위하여 통합적인 재미난 스크립트를 하나 가지고 있다.

이미 아는 사람은 알겠지만 바로 그것은 .desktop 이라는 함축성 패키지 실행 관리 스크립트 파일이다.
스크립트이지만 그냥 config 파일이나 마찬가지이다. 

우선 그런 파일이 파일 시스템의 /usr/share/applications/* 에 수많이 각 소프트웨어 마다 존재 한다는 것을 알아 두자.

그리고 우선 plank가 설치되어 있다고 가정하고 터미널을 열고 다음 경로로 진입 하자.

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

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

// plank의 아이템 목록 경로를 들여다 보자.


user@user-test:~$ ls ~/.config/plank/dock1/launchers


atom.dockitem     gimp.dockitem         nix.dockitem


-> 확장자가 .dockitem 이라는 파일들이 보인다. 

          바로 이 파일들이 커스터마이징을 위한 item 파일 들이다.



// 그리고 dockitem 파일중 하나를 들여다 보자.


user@user-test:~$ cat ~/.config/plank/dock1/launchers/gimp.dockitem


[PlankDockItemPreferences]

Launcher=file:///usr/share/applications/gimp.desktop 


-> 파일을 들여다 보니 '/usr/share/applications/gimp.desktop'  의 .desktop 파일로 런처가 연결되어 있는 것을 확인 할 수가 있다.





이러한 방식으로 소스를 구성하여 .dockitem파일을 만들어 새로운 아이템 커스터마이징을 할 수가 있는 것이다. 


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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



웬만해선 각각의 desktop 에서는 프로세스들을 실시관 gui로 관리 할수 있는 task-manager를 제공한다.

하지만 리눅스 사용자라면 프로세스 확인과 종료에 대한 기본적인 원리를 알고 있어야 한다.

먼저 간단하게 프로세스를 볼 수 있는 명령어는 'ps' 이다.


// ps 명령어를 치면 나오는 것은 달랑 두개 이다.

$ ps

  PID TTY          TIME CMD
 2863 pts/1    00:00:00 bash
 2884 pts/1    00:00:00 ps

    # 이것은 현재 사용자가 콘솔로서 활용하고 있는 기초적인 CUI 현황을 나타내고 있는 TTY/PTS 정보 이다.

// 단도직입적으로 ps 정보를 포괄적으로 확인해 보자.

$ ps  -lea

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 29998 -      ?        00:00:02 systemd
1 S     0     2     0  0  80   0 -     0 -      ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 -      ?        00:00:00 ksoftirqd/0
1 S     0     4     2  0  80   0 -     0 -      ?        00:00:00 kworker/0:0
1 S     0     5     2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H
1 S     0     7     2  0  80   0 -     0 -      ?        00:00:00 rcu_sched
1 S     0     8     2  0  80   0 -     0 -      ?        00:00:00 rcu_bh
1 S     0     9     2  0 -40   - -     0 -      ?        00:00:00 migration/0
5 S     0    10     2  0 -40   - -     0 -      ?        00:00:00 watchdog/0
5 S     0    11     2  0 -40   - -     0 -      ?        00:00:00 watchdog/1
1 S     0    12     2  0 -40   - -     0 -      ?        00:00:00 migration/1
1 S     0    13     2  0  80   0 -     0 -      ?        00:00:00 ksoftirqd/1
1 S     0    15     2  0  60 -20 -     0 -      ?        00:00:00 kworker/1:0H
5 S     0    16     2  0 -40   - -     0 -      ?        00:00:00 watchdog/2
1 S     0    17     2  0 -40   - -     0 -      ?        00:00:00 migration/2
1 S     0    18     2  0  80   0 -     0 -      ?        00:00:00 ksoftirqd/2
1 S     0    20     2  0  60 -20 -     0 -      ?        00:00:00 kworker/2:0H
5 S     0    21     2  0  80   0 -     0 -      ?        00:00:00 kdevtmpfs
1 S     0    22     2  0  60 -20 -     0 -      ?        00:00:00 netns
1 S     0    23     2  0  60 -20 -     0 -      ?        00:00:00 perf
1 S     0    24     2  0  80   0 -     0 -      ?        00:00:00 khungtaskd
1 S     0    25     2  0  60 -20 -     0 -      ?        00:00:00 writeback
1 S     0    26     2  0  85   5 -     0 -      ?        00:00:00 ksmd
1 S     0    27     2  0  99  19 -     0 -      ?        00:00:00 khugepaged
1 S     0    28     2  0  60 -20 -     0 -      ?        00:00:00 crypto
1 S     0    29     2  0  60 -20 -     0 -      ?        00:00:00 kintegrityd
1 S     0    30     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    31     2  0  60 -20 -     0 -      ?        00:00:00 kblockd
1 S     0    32     2  0  60 -20 -     0 -      ?        00:00:00 ata_sff
1 S     0    33     2  0  60 -20 -     0 -      ?        00:00:00 md
1 S     0    34     2  0  60 -20 -     0 -      ?        00:00:00 devfreq_wq
1 S     0    35     2  0  80   0 -     0 -      ?        00:00:00 kworker/u6:1
1 S     0    38     2  0  80   0 -     0 -      ?        00:00:00 kswapd0
1 S     0    39     2  0  60 -20 -     0 -      ?        00:00:00 vmstat
1 S     0    40     2  0  80   0 -     0 -      ?        00:00:00 fsnotify_mark
1 S     0    41     2  0  80   0 -     0 -      ?        00:00:00 ecryptfs-kthrea
1 S     0    57     2  0  60 -20 -     0 -      ?        00:00:00 kthrotld
1 S     0    58     2  0  60 -20 -     0 -      ?        00:00:00 acpi_thermal_pm
1 S     0    59     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    60     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    61     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    62     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    63     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    64     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    65     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    66     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    67     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    68     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    69     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    70     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    71     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    72     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    73     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    74     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    75     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    76     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    77     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    78     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    79     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    80     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    81     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    82     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    83     2  0  80   0 -     0 -      ?        00:00:00 scsi_eh_0
1 S     0    84     2  0  60 -20 -     0 -      ?        00:00:00 scsi_tmf_0
1 S     0    85     2  0  80   0 -     0 -      ?        00:00:00 scsi_eh_1
1 S     0    86     2  0  60 -20 -     0 -      ?        00:00:00 scsi_tmf_1
1 S     0    91     2  0  60 -20 -     0 -      ?        00:00:00 ipv6_addrconf
1 S     0   105     2  0  60 -20 -     0 -      ?        00:00:00 deferwq
1 S     0   106     2  0  60 -20 -     0 -      ?        00:00:00 charger_manager
1 S     0   108     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   110     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   171     2  0  80   0 -     0 -      ?        00:00:00 kworker/2:2
1 S     0   257     2  0  60 -20 -     0 -      ?        00:00:00 kpsmoused
1 S     0   276     2  0  80   0 -     0 -      ?        00:00:00 kworker/0:2
1 S     0   546     2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:1H
1 S     0   548     2  0  80   0 -     0 -      ?        00:00:00 jbd2/sda1-8
1 S     0   549     2  0  60 -20 -     0 -      ?        00:00:00 ext4-rsv-conver
1 S     0   560     2  0  60 -20 -     0 -      ?        00:00:00 kworker/2:1H
1 S     0   589     2  0  80   0 -     0 -      ?        00:00:00 kauditd
4 S     0   593     1  0  80   0 -  7443 -      ?        00:00:00 systemd-journal
4 S     0   635     1  0  80   0 - 11312 -      ?        00:00:00 systemd-udevd
1 S     0  1101     2  0  60 -20 -     0 -      ?        00:00:00 iprt-VBoxWQueue
4 S   100  1110     1  0  80   0 - 25596 -      ?        00:00:00 systemd-timesyn
1 S     0  1302     2  0  60 -20 -     0 -      ?        00:00:00 kworker/1:1H
1 S     0  1464     2  0  60 -20 -     0 -      ?        00:00:00 ttm_swap
4 S     0  1634     1  0  80   0 -  9444 -      ?        00:00:00 cron
4 S   109  1636     1  0  80   0 - 91157 -      ?        00:00:00 whoopsie
4 S     0  1638     1  0  80   0 -  7157 -      ?        00:00:00 systemd-logind
0 S     0  1643     1  0  80   0 -  1100 -      ?        00:00:00 acpid
4 S     0  1649     1  0  80   0 - 71238 -      ?        00:00:00 accounts-daemon
4 S     0  1653     1  0  80   0 - 56870 -      ?        00:00:00 snapd
4 S   106  1675     1  0  80   0 - 11022 -      ?        00:00:00 dbus-daemon
4 S     0  1744     1  0  80   0 - 132990 -     ?        00:00:00 NetworkManager
4 S   104  1747     1  0  80   0 - 64099 -      ?        00:00:00 rsyslogd
4 S   111  1753     1  0  80   0 - 11197 -      ?        00:00:00 avahi-daemon
4 S     0  1759     1  0  80   0 - 84346 -      ?        00:00:00 ModemManager
4 S     0  1847     1  0  80   0 - 87593 -      ?        00:00:00 lightdm
5 S     0  1848     1  0  80   0 -  4868 -      ?        00:00:00 irqbalance
1 S   111  1850  1753  0  80   0 - 11197 -      ?        00:00:00 avahi-daemon
4 S     0  1853     1  0  80   0 - 68706 -      ?        00:00:00 cups-browsed
4 S     0  1858     1  0  80   0 - 69684 -      ?        00:00:00 polkitd
4 S     0  1884     1  0  80   0 -  6034 -      ?        00:00:00 vsftpd
4 S     0  1902  1847  0  80   0 - 67517 -      tty7     00:00:07 Xorg
4 S     0  1905  1744  0  80   0 -  4030 -      ?        00:00:00 dhclient
4 S 65534  1918  1744  0  80   0 - 15409 -      ?        00:00:00 dnsmasq
4 S     0  2085  1847  0  80   0 - 57059 -      ?        00:00:00 lightdm
4 S  1000  2091     1  0  80   0 - 11303 ep_pol ?        00:00:00 systemd
5 S  1000  2093  2091  0  80   0 - 15902 -      ?        00:00:00 (sd-pam)
4 S  1000  2096  2085  0  80   0 - 13751 poll_s ?        00:00:00 upstart
1 S  1000  2174  2096  0  80   0 - 10407 poll_s ?        00:00:00 upstart-udev-br
1 S  1000  2175  2096  0  80   0 - 10867 ep_pol ?        00:00:00 dbus-daemon
1 S  1000  2214  2096  0  80   0 - 10391 poll_s ?        00:00:00 upstart-dbus-br
1 S  1000  2216  2096  0  80   0 - 10391 poll_s ?        00:00:00 upstart-dbus-br
1 S  1000  2218  2096  0  80   0 - 12553 poll_s ?        00:00:00 upstart-file-br
1 S  1000  2221  2096  0  80   0 - 69742 poll_s ?        00:00:00 fcitx
1 S  1000  2225  2096  0  80   0 - 53571 -      ?        00:00:00 gnome-keyring-d
1 S  1000  2238  2096  0  80   0 - 43873 -      ?        00:00:00 gpg-agent
4 S     0  2260     1  0  80   0 -  6177 -      tty1     00:00:00 agetty
1 S  1000  2263  2096  0  80   0 - 10725 ep_pol ?        00:00:00 dbus-daemon
1 S  1000  2270  2096  0  99  19 -  6909 poll_s ?        00:00:00 fcitx-dbus-watc
0 S  1000  2284  2096  0  80   0 -  1127 wait   ?        00:00:00 sh
0 S  1000  2295  2284  0  80   0 - 82080 poll_s ?        00:00:00 xfce4-session
0 S  1000  2297  2096  0  80   0 - 11910 poll_s ?        00:00:00 xfconfd
0 S  1000  2305  2096  0  80   0 - 55231 poll_s ?        00:00:00 xfwm4
0 S  1000  2309  2096  0  80   0 - 70151 poll_s ?        00:00:00 xfce4-panel
0 S  1000  2311  2096  0  80   0 - 44770 poll_s ?        00:00:00 Thunar
0 S  1000  2313  2096  0  80   0 - 116333 poll_s ?       00:00:00 xfdesktop
0 S  1000  2314  2295  0  80   0 - 80764 poll_s ?        00:00:00 xfce4-clipman
0 S  1000  2315  2295  0  80   0 - 156346 poll_s ?       00:00:05 docky
1 S  1000  2318  2096  0  80   0 - 93629 poll_s ?        00:00:00 xfsettingsd
0 S  1000  2322  2096  0  80   0 - 70846 poll_s ?        00:00:00 gvfsd
0 S  1000  2325  2295  0  80   0 - 133445 poll_s ?       00:00:00 light-locker
0 S  1000  2329  2295  0  80   0 - 156116 poll_s ?       00:00:00 update-notifier
0 S  1000  2332  2295  0  80   0 - 145994 poll_s ?       00:00:01 blueman-applet
0 S  1000  2333  2295  0  80   0 - 61282 poll_s ?        00:00:00 applet.py
1 S  1000  2336  2096  0  80   0 - 80433 poll_s ?        00:00:00 xfce4-power-man
0 S  1000  2338  2295  0  80   0 - 167782 poll_s ?       00:00:00 nm-applet
1 S  1000  2339  2096  0  80   0 - 113693 poll_s ?       00:00:00 xfce4-volumed
0 S  1000  2342  2096  0  80   0 - 101715 futex_ ?       00:00:00 gvfsd-fuse
0 S  1000  2344  2295  0  80   0 - 112642 poll_s ?       00:00:00 polkit-gnome-au
4 S     0  2359     1  0  80   0 - 89005 -      ?        00:00:00 upowerd
0 S  1000  2365  2096  0  80   0 - 44633 poll_s ?        00:00:00 dconf-service
1 S  1000  2378  2096  0  69 -11 - 108894 poll_s ?       00:00:00 pulseaudio
4 S   117  2379     1  0  81   1 - 45886 -      ?        00:00:00 rtkit-daemon
0 S  1000  2399  2096  0  80   0 - 84440 poll_s ?        00:00:00 at-spi-bus-laun
0 S  1000  2404  2399  0  80   0 - 10692 ep_pol ?        00:00:00 dbus-daemon
0 S  1000  2406  2096  0  80   0 - 51744 poll_s ?        00:00:00 at-spi2-registr
0 S  1000  2422  2309  0  80   0 - 111246 poll_s ?       00:00:00 panel-1-whisker
0 S  1000  2428  2309  0  80   0 - 42015 poll_s ?        00:00:00 panel-4-systray
0 S  1000  2429  2309  0  80   0 - 81273 poll_s ?        00:00:00 panel-5-power-m
0 S  1000  2430  2309  0  80   0 - 116543 poll_s ?       00:00:00 panel-6-indicat
0 S  1000  2446  2096  0  80   0 - 17597 poll_s ?        00:00:00 gconfd-2
0 S  1000  2451  2096  0  80   0 - 13721 poll_s ?        00:00:00 upstart
0 S  1000  2453  2451  0  80   0 - 106798 poll_s ?       00:00:00 indicator-messa
0 S  1000  2454  2451  0  80   0 - 168211 poll_s ?       00:00:00 indicator-sound
0 S  1000  2456  2451  0  80   0 - 98985 poll_s ?        00:00:00 indicator-appli
0 S  1000  2477  2096  0  80   0 - 73649 poll_s ?        00:00:00 gvfs-udisks2-vo
4 S     0  2480     1  0  80   0 - 91898 -      ?        00:00:00 udisksd
0 S  1000  2494  2096  0  80   0 - 103144 poll_s ?       00:00:00 gvfs-afc-volume
0 S  1000  2500  2096  0  80   0 - 70163 poll_s ?        00:00:00 gvfs-gphoto2-vo
0 S  1000  2505  2096  0  80   0 - 67114 poll_s ?        00:00:00 gvfs-mtp-volume
0 S  1000  2510  2096  0  80   0 - 66623 poll_s ?        00:00:00 gvfs-goa-volume
0 S  1000  2518  2096  0  80   0 - 89922 poll_s ?        00:00:00 gvfsd-trash
0 S  1000  2525  2096  0  80   0 - 48726 poll_s ?        00:00:00 gvfsd-metadata
0 S  1000  2538  2096  0  80   0 - 37585 poll_s ?        00:00:00 obexd
1 S     0  2701     2  0  80   0 -     0 -      ?        00:00:00 kworker/1:0
1 S     0  2793     2  0  80   0 -     0 -      ?        00:00:00 kworker/u6:0
1 S     0  2797     2  0  80   0 -     0 -      ?        00:00:00 kworker/2:0
1 S     0  2818     2  0  80   0 -     0 -      ?        00:00:00 kworker/1:2
0 S  1000  2858  2096  0  80   0 - 108202 poll_s ?       00:00:00 xfce4-terminal
0 S  1000  2862  2858  0  80   0 -  3718 -      ?        00:00:00 gnome-pty-helpe
0 S  1000  2863  2858  0  80   0 -  7830 wait   pts/1    00:00:00 bash
5 S 65534  2885  1884  0  80   0 -  8670 -      ?        00:00:00 vsftpd
5 S  1000  2887  2885  0  80   0 -  8676 -      ?        00:00:00 vsftpd
1 S     0  2890     2  0  80   0 -     0 -      ?        00:00:00 kworker/u6:2
0 R  1000  2895  2863  0  80   0 -  9421 -      pts/1    00:00:00 ps

    # 현재 사용되고 있는 모든 프로세스 현황을 볼수가 있으며 마지막 프로세스에 방금전 수행한 'ps' 명령어 떠 있는 것을 확인 할수가 있다.

// 그렇다면 저 프로세스들 중 하나인 독 프로그램인 'docky' 애플리케이션을 종료 해보도록 하자.
( 종료는 pid 번호를 활용 하며 명령어는 kill 이다.)


// 먼저 grep을 활용하여 docky 하나만을 확인하자.

$ ps  -lea |grep docky

0 S  1000  2315  2295  0  80   0 - 156346 poll_s ?       00:00:06 docky

    # 여기서 'docky'의 PID는 2315 이다.

// docky를 강제 종료해 보자.

$ kill -9 2315
    (권한 문제로 종료 되지 않는 프로세스는 'sudo kill (pid)'로써 종료를 시도 하거난 루트 상태(sudo -s) 에서 종료를 시도한다.)

// 프로세스가 종료 되었는지 확인해 보자.

$ ps  -lea |grep docky

    # 아무것도 나오지 않는 다면 성공한 것이다.





 지금까지 프로세스 확인 방법과 PID를 이용한 프로세스 종료 방법을 알아 보았다.

그렇다면 이번에는 좀 더 수월한 방법인 프로세스 이름을 활용하여 해당 프로세스를 종료 보도록 해 보겠다.


// 'killall' 명령을 사용하여 해당 프로세스를 종료 시킨다.

$ killall -9 docky

    # 아무것도 나오지 않는 다면 성공한 것이다.



    // 만약 killall이 수행 되지 않는다면 'psmisc'패키지를 설치 해야 한다.

    $ sudo apt install psmisc


  



 

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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.




Linux WINE ( Wine is not an emulator ) 실험실



  • 고릴라 라디오

구동 여부 : 성공


구동 방법 :


1. 먼저 Adobe air를 설치 한다.

http://airdownload.adobe.com/air/win/download/latest/AdobeAIRInstaller.exe


2. 고릴라 라디오 최신버전을 설치한 adobe_air로 설치 한다.

http://gorealradown.sbs.co.kr/gorealra/g4/Gorealra.4.063.air


http://w3.sbs.co.kr/radio/gorealraMain.do

sbs 라디오


버그 : 한글 버그


구동 wine : wine1.8 -32bit architecture


구동 시스템 사양 :


CPU

4x AMD Phenom(tm)



GPU

Vendor        : NVIDIA Corporation
Renderer        : GeForce GTX 460 SE/PCIe/SSE2
Version        : 4.5.0 NVIDIA 367.44


OS

Linux 4.4.0-28-generic_ Ubuntu xenial 16.04


필요 내장 라이브러리

adobeair


필요 구성


xp




흔히들 리눅스에서 가장 쓸만한 오피스(Office)는 '리브레 오피스' 라고들 한다.


하지만 본 필자가 경험 하기로는 리브레 오피스가 잔 버그가 많고 writer 소프트웨어가 특히 문자 구문 표현 오류가 있는게 아닌가 싶다.


특히 램에 상주 되는 과정 또한 뭔가 많이 버겁다.


그래서 본 필자는 작년부터 대신 '오픈 오피스'를 사용 해왔는데 성능이나 안정성 그리고 문자 상호 호환성에 대해서도 오픈 오피스가 훨씬 더 낫다는 것을 깨달았다.


사실 오픈 오피스가 그 리브레 오피스의 모태가 되는 소스코드 소프트웨어다.


그리고 현재로서는 아파치 재단이 오픈 오피스의 판권을 보유 하고 있지만 그 이전에는 오라클이 또 그 이전에는 썬 마이크로시스템이 '스타 오피스' 라는 명칭의 소프트웨어였다.


그 이후 선 마이크로 시스템이 스타 오피스의 소스 코드를 공개하고 오라클이 상용화를 목적으로 썬마이크로 시스템을 인수 하는데 생각처럼 오픈 오피스의 개발과 상용화가 어려웠다.


여기서 많은 논쟁이 있는데 리브레 오피스가 탄생한 이유가 개발자들이 오픈 소스의 시대적 관념을 가지고 'The Document Foundation' (문서 재단)을 만들어 이후 libre office로 재개발 되었다는 의견도 있으며 단순히 오라클의 개발 부진 때문 이라는 얘기도 있는 등 여러 논쟁이 있다.


간단히 말하자면 흐름도는


스타 오피스 ⇒ 오픈 오피스 ⇒ 리브레 오피스 

로 볼수가 있다.



그 사실은 개발자들 스스로가 정확히 알고 있을 것이다.


어찌 되었던 간에 리브레 오피스와 아파치 오픈 오피스가 둘 다 공존하기 시작했다.


한 데 중요한 것은 오픈 오피스와 리브레 오피스가 (리눅스일 경우) 파일 시스템 내부적으로도 프로세스 파일의 공동 사용 즉 심볼릭 링크가 겹치기 때문에 사용자는 아쉽게도 둘 중 한가지를 양자 택일 해야 한다.


물론 두 소프트웨어를 같이 사용하는 것이 불가능 한 것은 아니다.

물론 리브레 오피스와 오픈 오피스 두가지를 같이 설치 하여 사용하는 것도 가능하다. [바로가기]



그리고 보통 대부분의 리눅스들은 기본적으로 오피스 소프트웨어를 리브레 오피스로 채택하고 있으며 우분투의 정식 레파시토리 또한 리브레 오피스 만을 지원한다.


아무래도 그것은 The Document Foundation 의 영향력이 크기 때문일 것이다.



다음 포스팅에서 설치 방법에 대해 알아 보도록 하자.



다음 페이지 (설치하는 방법 바로가기)










이 전 포스트에 이어서 이제는 우분투 리눅스에 '아파치 오픈 오피스'를 직접 설치해 보도록 하겠습니다.




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

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

// 다운받을 디렉토리를 만든다.


user@user-test:~$ mkdir office && cd office




// 오픈 오피스 최신판을 다운 받는다.


user@user-test:~/office$  wget http://sourceforge.net/projects/openofficeorg.mirror/files/4.1.3/binaries/ko/Apache_OpenOffice_4.1.3_Linux_x86-64_install-deb_ko.tar.gz


// 다운 받은 압축 파일을 풀어 낸다.


user@user-test:~/office$ tar -xvzf *.tar.gz




// 풀어낸 파일 .deb파일들을 설치 한다.


user@user-test:~/office$ sudo dpkg -i ko/DEBS/*.deb



// DEBS 폴더에 있는 'desktop-integration' 폴더 안에 있는 패키지 하나를 설치 한다. 


user@user-test:~/office$ sudo dpkg -i ko/DEBS/desktop-integration/*.deb



DEBS 폴더에 있는 'desktop-integration' 폴더 안에 있는 패키지 하나를 설치 한다.


물론 리브레 오피스와 오픈 오피스 두가지를 같이 설치 하여 사용하는 것도 가능하다. [바로가기]




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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



리브레 오피스가 깔려 있는 상태에서 오픈 오피스를 설치 하는 것은 가능하며 뿐만 아니라 사실상 두 소프트웨어를 동시에 실행 하는 것도 가능하다.


하지만 순서가 리브레오피스가 깔린 상태에서 오픈 오피스를 설치 하는 방식이 되어야 dpkg --remove 오류를 피할수가 있다.

원리는 이러하다.


원래 두 소프웨어가 완벽하게 공존하기 힘든 이유는 '/usr/bin/soffice' 로써 심볼릭링크를 똑같이 쓰고 있기 때문이다. 

하지만 리브레 오피스가 설치된 상태에서 오픈 오피스스를 desktop-integration 설치 없이 기본만 설치 했을 경우 정식 설치 폴더인 '/opt/openoffice4'에 들어 있는 소프트웨어를 직접 실행 하는 방식으로 두 소프트웨어를 같이 활용 할수가 있는 것이다.  

먼저 리브레 오피스가 설치 되어 있는 상태라 가장 하자.

먼저 오픈 오피스 최신판을 다운 받는다.


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

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

// 다운받을 디렉토리를 만든다.


user@user-test:~$ mkdir office && cd office




// 오픈 오피스 최신판을 다운 받는다.

user@user-test:~/office$  wget http://sourceforge.net/projects/openofficeorg.mirror/files/4.1.3/binaries/ko/Apache_OpenOffice_4.1.3_Linux_x86-64_install-deb_ko.tar.gz


// 다운 받은 압축 파일을 풀어 낸다.


user@user-test:~/office$ tar -xvzf *.tar.gz




// 풀어낸 파일 .deb파일들을 설치 한다.


user@user-test:~/office$ sudo dpkg -i ko/DEBS/*.deb




위 까지 작업을 끝내면 우선 오픈 오피스가 파일시스템 /opt에 설치가 된 것이다.

실행은 '/opt/openoffice4/program/soffice' 가능하다. 

하지만 터미널에서 간편하게 실행 하기 위해서 다음과 같은 코딩 작업을 하자.


Source_File name : openoffice

[Download]

Type : bash

클립보드로 복사 → (본문 클릭)

무제


파일을 만들었으면 '/usr/bin'으로 해당 파일을 카피 하자.

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

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

// 먼저 만든 파일에 대한 실행 속성을 추가한다.


user@user-test:~/office $ chmod +x openoffice



// 만든 파일을 $PATH예 복사한다.


user@user-test:~/office $ sudo cp openoffice /usr/bin



// 실행을 해보도록 하자.



user@user-test:~/office $ openoffice



// 워드 실행


user@user-test:~/office $ openoffice -writer



// 스프레드시트 실행


user@user-test:~/office $ openoffice -calc



// impress 실행


user@user-test:~/office $ openoffice -impress



// 그리기 실행


user@user-test:~/office $ openoffice -draw



위 사진과 같이 리브레 오피스와 오픈오피스 두 소프트웨어를 두개다 실행이 가능하다.


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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



Sometimes when you boot Linux, you will see a dialog box that reports the system error as shown in the following figure.

There are many reasons why.

The most common case is the Dpkg error issue with Linux Ubuntu

Or, security issues may arise after installing selinux.

Let's look at the principle of turning off system error reporting in earnest.

Usually on Linux Ubuntu, the following files are responsible for the configuration:


/etc/default/apport

The file is a configuration file about whether to report the error.



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

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

// cat 명령을 통하여 해당 파일을 들여다 보면


user@user-test:~$ cat /etc/default/apport


enable=1

-> 해당 파일이 'enable=1'로써 되어 있다면 오류보고를 하겠다는 설정이다. 이것을 'enable=0'로 바꾸어 주면 되는 것이다.




If the file is set to 'enable = 1', it will report an error. You can change this to 'enable = 0'.



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

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

// 에디터가 아닌 쉘에서 간편히 바꾸고 싶다면 다음과 같은 'sed' 명령어를 응용한 명령을 내리면 된다.


user@user-test:~$ sudo sed -i 's/enabled=1/enabled=0/g' etc/default/apport




If you are helpful, please press '♡' button.


And if there is something missing or wrong in the article, please let me know by comment.




가장 먼저 할 얘기는 현재 에버노트 측 에서는 공식적으로 리눅스 플랫폼을 지원하지는 않는다.

현재로써 리눅스 진영에서 가장 뛰어난 에버노트 플랫폼은 'nixnote2' 이다.

그 밖외 에도 'everpad'가 있지만 상위 커널 배포판 호환성이 떨어져 상위 배포판에서 구동 되지 않는다. (ubuntu - trusty : 즉 정부 프로젝트 하모니카에서 잘 구동 된다.)
 
nixnote2는 상위 커널 리눅스 배포판에서 잘 구동 되는 장점이 있는 가운데 개발팀 또한 활성적이다.
그리고 아직은 베타 버전 이기 때문에 정식 명칭은 'nixnote2-beta' 이다.다

원래는 ppa 런치패드의 vincent-c 팀에서 nevernote 라는 명칭의 소프트웨어로 출발 했으나 도중에 nixnote로써 정식 명칭을 바꾸게 된다.

그리고 물론 이렇게 말하는 사람이 있을 것이다.

     "굳이 에버노트를 소프트웨어로써 사용할 필요가 있나? 웹에서 작업해도 되지 않나?"

이런 질문을 한다면 당신이 모르는 것이 한가지가 있다.

에버노트 웹에서는 실시간적 타이핑 싱크가 적용 된다. 이것이 웹 기반에서 이루어지다 보니 리로딩 오류가 발생 된다.
즉 다시 말해 당신이 어느 시간 동안 타이핑한 내용들이 한 순간에 싱크 오류로 날라간다는 것이다.

본 필자도 웹에서 사용하다가 하두 기가 막혀서 에버노트는 반드시 소프트웨어를 사용해야 한다는 것을 뼈져리게 깨달았다.
뿐만 아니라 웹에서는 로딩이 상당히 느리다.

그리고 가장 정작 중요한 이유는 또 한가지 만일 웹서비스가 어느 날 갑자기 중지 된다면... 웹에서만 작업 했다면 당신은 작업 했던 모든 것들을 한번에 잃게 된다.
하지만 소프트웨어를 사용했다면 로컬 디스크에 저장 되는 형태로 데이타가 그대로 유지 되기 때문에 모바일이든 pc는 반드시 에버노트는 소프트웨어를 사용하는 것이 바람직 하다.

그 세가지가 에버노트를 소프트웨어로써 반드시 활용해야 하는 이유 이다.

자 그렇다면 본격적으로 당신의 리눅스 pc에 nixnote를 설치해 보도록 하자.

nixnote2는 리눅스 우분투에서 최적으로 지원되며 각 모든 운영체제 지원 된다고는 하지만 윈도우즈와 mac은 현재 소스코드 설치만 지원 된다. ( 즉 컴파일 설치를 할 줄 아는 중급 이상의 유저만 설치가 가능하다.)

뿐만 아니라 상위 커널 os에서 실행이 가능하며 우분투는 배포판 16.10 yakkety도 지원이 되고 있다.

하지만 또 한가지 기본적인 환경이 중요한데

     리브레 오피스 api가 의존성 패키지 이며 apt를 통해 설치를 시도 하게 되면 libreoffice-core 패키지가 depends로써 같이 설치가 진행된다.

     입력기는 fcitx가 최적이다.


그러면 ppa를 등록하고 패키지를 설치 하도록 하자.



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

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


user@user-test:~$ sudo add-apt-repository ppa:nixnote/nixnote2-daily



user@user-test:~$ sudo apt-get update

user@user-test:~$ sudo apt install nixnote2





실행을 하면 다음과 같은 화면을 볼 수 있는데 본격적으로 자신의 에버노트의 계정을 연결 하려면 'Sync' 버튼을 누르기만 하면 된다.



※ 몇 가지 유의 할 점은 계정 설정시 '재인증' 버튼이 뜨면 옆의 '인증 취소' 를 눌러 api 연동 상태를 해제 하고서 nixnote를 다시 실행해 '인증' 절차에 들어가야 한다.

※ 계정 연동이 잘 안되는 경우가 있다. 한번 성공 하면 실패하는경우는 거의 없기 때문에 연동이 잘 되는 지를 초반에 확인해야 나중에 데이타를 잃지 않을 수 있다.


연동이 성공적으로 이루어 지면 Sync때마다 바탕화면 메시지도 같이 뜨게 되지만 연동이 실패하면 그렇지 않다.


계정 연동이 초반에 오류가 발생한것 같다면 File > Add another user로 새로운 이름 아무거나로 만든 뒤 다시 File > Switch to (user)로 전체 환경을 체인지 한 다음에 위의 Sync버튼을 눌러 계정을 재설정 해야만 한다.

※ 마지막 유의할점은 완벽한 연동상태에도 불구하고 노트가 사라져 있다며 휴지통에 들어가 있는지 확인해 보자.

계정연동이 성공적으로 이루어 진 것 같다면 이제 편집을 하기 위해서 Tools > Disable editing 항목의 체크를 해제 하여 본격적인 편집을 해 보도록 하자.


그리고 계정 연동이 마무리 되면 연동할때 누른 버튼을 누르면 그 후로는 에버노트 서버와 동기화가 이루어 진다.



그리고 끝으로 솔직히 말하자면 에버노트의 api의 연동성은 아직 불안정 하다.


이에 대한 문제에 대해서도 에버노트 본사 스스로도 잘 알고 있는 사실이며 리눅스에 대한 공식앱도 절실히 필요한 시점이다.
하지만 지금의 기술 만으로도 사용자 스스로가 조그만 오류들을 확인하고 극복하고자 노력하자면 아주 멋지게 쓸 수 있는 활용 도구가 될 것이다.

 

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


그리고 글에 부족한 점이 있거나 틀린점이 있는 것 같다면 꼭 댓글로 알려 주시면 감사 하겠습니다.



요즘들어 개인 유튜브 영상들이 많아지고 동시에 그 용량도 평균적으로 커졌다.

아마 스마트폰으로 영상을 전부 보기에는 데이타 사용 문제와 베터리 감소 문제가 존재한다.


즉 집 pc에서 다운로드 해서 받아 놓는 것도 굉장히 편리한 방법이다.

리눅스에는 콘솔 환경에서 간편하게 유튜브 주소만 알면 인코딩 종류와 품질 까지 게다가 오디오 추출까지 골라서 다운로드 처리를 해주는 오픈소스 툴이 있다.

그것이 바로 'youtube-dl' 이라는 소프트웨어 이다.



먼저 리눅스 우분투 에서의 설치는 거의 기본 레파시토리에 등재되어 있기 때문에 간단하다.

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

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


user@user-test:~$ sudo apt-get install youtube-dl






자 패키지 설치가 완료 되었다면 사용방법은 안주 간단하다.

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

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

// -F 옵션으로 해당 유튜브 주소에서 다운 받을수 있는 각각의 인코딩 리스트를 볼 수가 있다.


user@user-test:~$ youtube-dl -F https://youtu.be/S2oR82ia8ys


(포맷 리스트 옵션)  (유튜브 주소 : 자로-세월x 영상 주소)

[youtube] S2oR82ia8ys: Downloading webpage
[youtube] S2oR82ia8ys: Downloading video info webpage
[youtube] S2oR82ia8ys: Extracting video information
[info] Available formats for S2oR82ia8ys:
format code  extension  resolution note
249          webm       audio only DASH audio   95k , opus @ 50k, 194.67MiB
250          webm       audio only DASH audio  112k , opus @ 70k, 259.37MiB
140          m4a        audio only DASH audio  158k , m4a_dash container, mp4a.40.2@128k, 480.79MiB
171          webm       audio only DASH audio  162k , vorbis@128k, 452.85MiB
251          webm       audio only DASH audio  180k , opus @160k, 513.73MiB
160          mp4        256x144    144p  219k , avc1.4d400c, 30fps, video only, 364.60MiB
278          webm       256x144    144p  259k , webm container, vp9, 30fps, video only, 213.72MiB
242          webm       426x240    240p  305k , vp9, 30fps, video only, 336.60MiB
133          mp4        426x240    240p  358k , avc1.4d4015, 30fps, video only, 816.85MiB
243          webm       640x360    360p  543k , vp9, 30fps, video only, 599.09MiB
134          mp4        640x360    360p  647k , avc1.4d401e, 30fps, video only, 803.24MiB
244          webm       854x480    480p  977k , vp9, 30fps, video only, 956.59MiB
135          mp4        854x480    480p 1187k , avc1.4d401f, 30fps, video only, 1.51GiB
247          webm       1280x720   720p 1938k , vp9, 30fps, video only, 1.87GiB
136          mp4        1280x720   720p 2353k , avc1.4d401f, 30fps, video only, 2.96GiB
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3,  mp4a.40.2
43           webm       640x360    medium , vp8.0,  vorbis@128k
18           mp4        640x360    medium , avc1.42001E,  mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)

   




반환출력된 리스트 중에는 위에쪽에는 오디오만 추출하는 포맷 형식도 있다.
다운로드를 하기 위해서는 F를 소문자 f로 바꾸고 리스트 앞 부분의 'format code'를 넣고 또 마찬가지 주소를 기입해 주면 된다.

그리고 본격적으로 다운로드 해 보자.

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

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


user@user-test:~$ youtube-dl -f 22 https://youtu.be/S2oR82ia8ys


youtube-dl -f best https://youtu.be/S2oR82ia8ys

[youtube] S2oR82ia8ys: Downloading webpage
[youtube] S2oR82ia8ys: Downloading video info webpage
[youtube] S2oR82ia8ys: Extracting video information
[download] Destination: SEWOLX 세월엑
스-S2oR82ia8ys.mp4
[download] 100% of 3.42GiB in 05:53  


-> 다운로드가 시작 되면서 퍼센티지가 올라가고 시간과 용량이 표시된다.


그렇다면 처음부터 리스트를 보지 않고 바로 최고의 인코딩 포맷 영상을 다운로드 받으려면?

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

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


user@user-test:~$ youtube-dl -f best https://youtu.be/S2oR82ia8ys


[youtube] S2oR82ia8ys: Downloading webpage
[youtube] S2oR82ia8ys: Downloading video info webpage
[youtube] S2oR82ia8ys: Extracting video information
[download] Destination: SEWOLX 세월엑스-S2oR82ia8ys.mp4
[download] 100% of 3.42GiB in 05:53 code



'youtube-dl' 은 소프트웨어는 복잡하게 이리저리 소프트웨어를 설치하거나 브라우저에 플러그인들을 다닥다닥 설치할 필요가 전혀 없이 쉘 형태의 터미널 콘솔에서 자유롭게 사용된다는 매력이 있다.

뿐만 아니라 위에 보시다시피 3.42기가 바이트의 영상을 불과 6분도 채 안되서 간편하게 받아내는 것을 볼 수 있다. (물론 이것은 실제 유튜브 서버 사용량에 따라 다를 것이다.)  

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



 

많은 클라우드 서비스 중에서 리눅스와 가장 궁합이 맞는 것은 다름 아닌 'dropbox' 이다.

그렇다고 말한 이유는 결정적으로 드롭박스 측 만이 현재로서 리눅스에 플랫폼을 공식적으로 지원하고 있기 때문이다.

구글 드라이브도 공식적으로 지원하지 않지만 여러 가지의 sync 소프트웨어가 존재한다.

하지만 리눅스가 다른 운영체제와 한가지 다른 버거운 결정적인 점은 바로 커널의 업그레이드 문제 이다.

그렇다.

이것은 분명 장점 이지만... 리눅스가 현존하는 모든 운영체제 중에서 업그레이드 지원과 발전성이 가장 뛰어나다.

이것은 분명 장점이다.

그만큼 보안 체제 방어 구상과 많은 디바이스 지원에 뛰어 나다는 이야기 이며 소프트웨어 개발 플랫폼 측 면에서도 가장 앞서간다는 이야기 이다.

처음에는 발전이 모든 운영체제 중에서 자장 디뎠지만 지금은 수많은 개발자들이 리눅스 진영에서 활동 하기 때문에 그 발전의 속도가 이제는 거의 빛의 속도에 가까워 지고 있다.

한데... 장점이긴 하나..


이것이 단점으로 작용하는 원인이 있는데 바로 상위와 하위 커널의 소프트웨어를 구동하는 각종 api의 호환성이 지나치게 떨어진다는 점이다.

이는 윈도우즈98과 윈도우즈10이 호환성이 맞지 않는 원리와 비슷하다면 비슷할수 있겠다.

그렇기에 구글 sync 개발자들이 업데이트 커널 지원 개발이 상당히 버거운 것이다. 그렇기에 개발을 중단하거나 기존의 GPL을 포기하고 유료화 되어있다.

grive 같은 경우 기존의 무료 소프트웨어 였던 것을 포기하고 OverGrive로 새로 유료 서비스를 시행하고 있다. (물론 상위 커널도 지원한다.)

서두가 지나치게 길었다.

그렇다면 본격적으로 dropbox를 설치하고 활용해 보도록 하자.

기존의 우분투 레파시토리에도 dropbox sync 소프트웨어가 있지만 현재 이 보다 홈페에지에서 지원하는 공식 소프트웨어가 훨씬 더 안정적이다.

홈페이지에서 해당 리눅스에 맞는 앱을 다운 받거나

리눅스 우분투라면 다음과 같인 진행한다.    

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

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



user@user-test:~$ mkdir -p download/dropbox



user@user-test:~$  cd download/dropbox



user@user-test:~/download/dopbox$ wget https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2015.10.28_amd64.deb



user@user-test:~/download/dopbox$  sudo gdebi *.deb





설치하고 실행하면 바로 계정연동절차를 밟을 수 있다. 계정 연동이 끝나면 곧바로 홈 디렉터리의 'Dropbox' 폴더가 생김과 동시에 클라우드에 있는 파일들이 자동으로 싱크 된다.


사용해 보면 구글 드라이브 보다 훨씬 더 빠르고 정밀하다는 것을 깨달을수 있다.

뿐만 아니라 연동 상태를 실시간으로 확인 가능한 호환성 높은 파일관리자 소프트웨어는 다름 아닌 'nautilus(노틸러스)' 이다.
노틸러스 파일관리자는 체크 표시를 통해 드롭 박스의 싱크상태를 정밀하게 파악 할수 있는 플러그인을 내장 하고 있기 때문이다.


노틸러스 파일관리자가 없다면 바로 설치하면 그만이다.

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

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


user@user-test:~$ sudo apt-get install nautilus




그리고 설치된 노틸러스를 실행하면 동기화된 'Dropbox' 폴더에 크게 체크 표시가 되어 있는 것을 확인 할 수가 있을 것이다.


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



지금까지 팀뷰어든 뭐든 간에 루팅 까지 해서 화면 원격제어를 하기 위해 아주 여러가지를 우리는 다 해보았을 것이다.

크롭 앱 격인 소프트웨어 vysor는 그 점에서 뻥 안치고 현존하는 모든 원격제어 앱 중에서 가장 간편하며 가장 뛰어나다.

무료와 유료의 기술적 격차를 둬서 그렇지. 뭐... 무료도 나름대로 쓸만하다고 볼 수 있다.

vysor는 크롬의 설정 > 확장 애플리케이션 설치 > 검색 'vysor' 로써 손쉽게 찾아 설치 할 수 있다.

가지고 있는 안드로이드 폰은 '개발자 모드'를 해제 하면 되는데 이는 폰의 환경설정 > 디바이스 정보 > 빌드번호를 연달아 클릭 하여 "개발자가 되셨습니다." 라는 메세지를 보게 되면 풀리기 마련이다.

그리고 새로 생긴 환경설정 > 개발자 옵션에 들어가서 ON으로 키고는 USB 디버그도 체크한다.

그리고 Pc에서 vysor 앱을 실행하고 usb를 연결하면 연결된 스마트폰에 디버깅 허가 메시지가 뜬다. 여가서 허용을 하게 되고 Vysor 앱에서 연결된 폰에 view 버튼을 누르게 되면 원격 화면이 뜨고 폰에 vysor접속앱이 설치된다.

그러면 잠시후 짜잔!~ 당신의 폰의 원격화면이 당신의 pc 모니터에 뜨게 되는 것이다.


    


이 뿐만이 아니다.

터미널에서 adb 툴을 활용해 해당 안드로이드 기기에 wifi-connecting을 한다면 vysor 앱에서 wifi를 통한 무료 원격 접속이 가능하다.

adb를 활용한 안드로이드 기기에 wifi 원격 접속은 다음 페이지를 통해 확인 할 수 있다.

[리눅스 임베디드 02] 리눅스에서 ADB 안드로이드를 WIFI 네트워크로 접속하기 - 바로가기




더 놀라운 점은 원격 클라이언트 pc와 클립보드 양 측간 연동이 된다. (단, 양중간 클립보드가 원할하게 동작 하려면 안드로이드기기의 입력방식 상태가 'vysor input' 이어야 한다.
 


     싱크율도 높기 때문에 클라이언트 pc에서 원격 제어로 opengl 3D 게임도 원할하게 할 수 있다.



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



awk는 기능이 무척 다양하기에 쉘에서 동작함에도 불구하고 'awk는 프로그래밍 이다!'라고 말하는 전문가 들이 많다.

그래서 이번강의 부터 재미있는 awk 프로그램을 활용하는 방법들에 대해 차근차근 알아 보도록 하자.

1. awk로 텍스트 파일의 원하는 열만 출력 하기

우선 텍스트 파일은 이렇게 구성 되어 있다고 가정하자.


file.txt

fire born ask
letter land smile



해당 파일의 3번째 열을 출력한다.

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

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


root@test:~$ awk '{print $3}' file.txt


ask
 smile

-> 파일의 첫번째 줄 3번째열에 해당 되는 'ask' 단어가 출력 되었다.





응용하여 행과 열을 동시에 출력해 보자.

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

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

// 주석


root@test:~$ head -2 file.txt |tail -1 |awk '{print $2}'


land

-> 파일의 두번째 행의 2번째 열인 'head'를 출력한다.




 

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



+ Recent posts