리눅스 서버를 가지고 놀다보면 종종 Shell Script를 작성해야하는 일이 발생한다.
아니면, 남이 만들어놓은 Script를 분석해야하는 경우거나...

이럴 때에 종종 부딪히는 문제가 내부 변수들에 대한 이해이다.
그러다가 찾은 너무나 잘 정리되어 있는 자료 발견~!!!

    - https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/internalvariables.html


내부 변수에 대한 내용뿐만 아니라 Bash shell script에 대한 전반적인 사항 모두 훌륭하다.

    - https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html

Bash shell script의 기본 템플릿은 다음과 같이 하면 된다.

#! /bin/bash

blah blah

exit 0



반응형

집에서 혼자서 리눅스를 사용하다가 Apache2를 사용하다보면 아래와 같은 경고(?) 메시지를 보곤 한다.

 


$ sudo service apache2 restart
 * Restarting web server apache2                                                                                                          apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                                                                                   [ OK ]

Apache2 구동에는 별 지장이 없지만, 괜히 저런 메시지를 보면 기분이 나쁘니... 없애보자.

 


$ sudo nano /etc/apache2/httpd.conf

ServerName localhost

[ /etc/apache2/httpd.conf ] 파일을 수정하여 ServerName을 적어주면 된다.

 


$ sudo service apache2 restart


그리고, apache2를 재시작하면 기존에 보이던 마음에 안드는 메시지가 사라졌을 것이다!!!

 

위와 같이 해도 여전히 에러메시지가 나올 때가 있다.

그럴 때엔 앞에서 만든 "/etc/apache2/httpd.conf" 파일 삭제하고,

"/etc/apache2/apache2.conf" 파일의 제일 뒤에 "ServerName localhost" 적어주고 나서

"sudo service apache2 restart" 해주면 된다.

 

 http://hosts.tistory.com/448


 

반응형

 

갑자기 필요해서 Ubuntu 환경에서 GBS를 설치하려고 하는데,

최근에 Tizen 공식 홈페이지가 리뉴얼을 했는지 기존 링크들이 연결이 잘 안되어 공식 매뉴얼을 찾기가 쉽지 않았다.

 

찾기는 결국 찾았지만 홈페이지 안에서도 찾기가 쉽지는 않았다.

아는 사람은 쉽게 찾겠지만 내부 검색에서도 예쁘게 결과가 나오지 않고...

 

뭐 여하튼...

결론적으로 찾은 링크는 다음과 같다.

 

    - https://source.tizen.org/documentation/developer-guide/getting-started-guide/installing-development-tools

 

 

 

Ubuntu 12.04 32bit/64bit 에서는 아래와 같이 했다.

 

$ sudo nano /etc/apt/sources.list

 

 

 

 

Ubuntu 14.04 32bit/64bit 에서는 아래와 같이 했다.

 

$ sudo nano /etc/apt/sources.list

 

 

 

 

 

위와같이 진행을 한 뒤에 다음과 같이 gbs 설치를 했다.

 

$ sudo apt-get update

 

$ sudo apt-get install gbs

 

 

 

 

 

4가지의 환경 (Ubuntu 12.04 32bit/64bit & Ubuntu 14.04 32bit/64bit) 모두에서 테스트 결과 너무 잘 된다.

 

$ gbs --version
gbs 0.23.2

 

 

 

 

공식 홈페이지에서는 12.10 버전만 나와있지만, 12.04, 14.04 모두에서 잘된다는 것을 확인했다!!!

 

 

반응형

여러 버전의 JDK를 사용하고 싶은 경우 때문에 알게된 명령어가 바로 "update-alternatives" 이다.

기본적인 사항을 한 번 살펴보기 위해서 java를 살펴보자.

$ whereis java
java: /usr/bin/java /usr/bin/X11/java /usr/local/java /usr/share/java

여기저기에 위치하고 있는 java 중에서 "/usr/bin/java"에 대해서 조금 더 자세히 살펴보면,

$ ls -al /usr/bin/java
lrwxrwxrwx 1 root root 22  6월  7 22:10 /usr/bin/java -> /etc/alternatives/java

잘 살펴보면, 일반적이지 않은 경로의 링크가 보인다. 바로 "alternatives" 경로가 바로 그것이다.
이러한 설정을 알아보기 위해서 "--config" 옵션을 사용해보면 전체 목록을 보면서 설정도 해볼 수 있다.

$ update-alternatives --config java
대체 항목 java에 대해 (/usr/bin/java 제공) 2개 선택이 있습니다.

  선택       경로                                            우선순위    상태
------------------------------------------------------------
  0            /usr/local/java/jdk1.7.0_60/bin/java   1         자동 모드
* 1            /usr/local/java/jdk1.7.0_60/bin/java   1         수동 모드
  2            /usr/local/java/jdk1.8.0_05/bin/java   2         수동 모드

기본 사항[*]을 사용하려면 엔터, 다른 것을 사용하려면 번호를 입력하십시오:

$

위의 화면을 보면, 설정에 대해서 전반적으로 살펴볼 수 있다.
사실 정보만 보기 위해서는 "--display" 옵션이 맞는 것이지만, 예쁘게 보여주는 것은 "--config" 옵션인 것 같다.



[ 등록하기 ]

특정 패키지를 설치한 후 다음과 같은 명령어로 등록을 할 수 있다.

sudo update-alternatives --install <link> <name> <path> <priority>

각 항목에 대한 설명은 다음과 같다.

옵션 설명
<link>   실행파일 이름으로 /etc/alternatives/<name> 을 가리킨다.
 (예: /usr/bin/pager) 
<name>   해당 링크 그룹의 대표 이름으로, 여러 가지 버전의 패키지들을 대표하는 이름으로 보면 될 것 같다.
 (예: pager)
<path>   alternatives 로 실제 연결할 실행파일 이름으로, 시스템에 설치한 패키지의 실행파일 이름이다.
 (예: /usr/bin/less)
<priority>   automatic 모드에서 어떤 것을 자동으로 선택해서 사용할지 결정할 때 사용되는 우선순위로, 높은 수가 더 높은 우선순위이다.



[ 삭제하기 ]

설정한 내역을 지워버리고 싶을 때에는 다음과 같이 하자.

sudo update-alternatives --remove <name> <path>




[ 설정하기 ]

등록한 내역을 설정하기 위해서는 다음과 같이 하면 된다.

sudo update-alternatives --set <name> <path>



반응형

'OS > Ubuntu' 카테고리의 다른 글

BASH Shell Script  (0) 2015.10.10
Apache2 error(?) - domain name...ServerName  (0) 2015.09.29
리눅스 배포판 인기 순위  (0) 2014.08.17
hostname 확인/변경 하기 (Ubuntu 12.04 / 14.04)  (0) 2014.08.16
fcitx : 한글 입력기 (Ubuntu 14.04)  (2) 2014.08.11

어렷을적 슬렉웨어(Slackware)를 설치하면서 무수히 커피를 마셨고,
레드헷(Red Hat)에 빠졌다가 페도라(Fedora)가 나오면서 왠지 배신감에 다른 배포판을 찾게 되었고...

젠투(Gentoo)의 빌드 매력에 잠시 빠져 허덕이기도 하고
필요에 의해서 솔라리스(Solaris), 수세(SUSE), 센트(CentOS), 아치(Arch) 等도 잠시 사용을 했었다.


물론 지금 필자의 블로그를 보신 분이라면 알겠지만, 최근에는 우분투(Ubuntu)에 푸욱~ 빠져 있다.
거의 지배적인 위치에 있다보니 너무나 많은 레퍼런스가 있고, 사용하기에도 편하고
업무에서도 거의 표준으로 사용하기에 개인적인 취향과 업무와 일치하기도 쉽고.... ^^


그러다가 갑자기 떠오른 생각!

   "전세계적으로 가장 많이 사용되는 배포판이 무엇일까?"


그런데 가만히 생각해보니, 이러한 순위를 종종 봤던 기억이 떠올랐다. 다른 블로그 또는 기사로 접했던 것이다.
그 아티클에서 인용을 하던 사이트는 다음과 같다.

   - http://distrowatch.com/



이 사이트에서 방문자들이 검색하는 내용을 가지고 순위를 제공해주고 있다.



필자는 당연히 Ubuntu가 1위를 하고 있을 것이라 생각했다. 하지만... 2위?!

사실 순위표 전체를 가지고 평가하면 Ubuntu가 1위가 맞다!!!
Ubuntu 기반의 배포판들을 모두 더하면 탁월하게 1위다! Mint, kubuntu, xubuntu, Lubuntu 等 모두 Ubuntu 가족들이다.

뭐 여하튼, 위에서 보는바와 같이 글로벌하게 가장 많이 사용하는 리눅스 배포판은 바로 "Mint"이다!



그래서인지, Mint 홈페이지에 보면 세상에서 3번째로 많이 사용되는 가정용 운영체제라고 자부하고 있다.
윈도우즈, Mac 다음으로 Mint ~ !!


Ubuntu 기반이다보니 당연하게도 Debian을 뿌리로 두기 때문에,
데비안 패키지와 우분투 패키지를 사용할 수 있다는 장점은 물론이고 커뮤니티 기반으로 활발한 괜찮은 배포판이다.



Mint 배포판도 한 번 국내에 많은 보급이 되도록 한 번 살펴보도록 해야겠다!
(이미 많이 알려져있을 수도 있지만, 업무에서 사용하는 용도로는 아직 아닌 것 같기에...)

반응형

hostname 우리말로는 "호스트명"이라고 부르면 될 것 같다.

일반적으로는 네트워크에서 특정 컴퓨터(서버)를 인식할 수 있는 이름을 의미하게 되며,
같은 네트워크에서는 유니크한 이름을 갖도록 해야 한다.

만일, 동일한 네트워크에서 같은 호스트명을 사용하게 된다면
단순한 혼란이 발생하는 것이 아니라 충돌상황이 발생할 수도 있다.

FQDN(Fully Qualified Domain Name)과 관련한 부분에 대해서는 이번에는 제외하도록 하겠다.


1. hostname 확인하기

   - 지금 현재 설정되어있는 호스트명을 확인하기 위해서는 다음과 같이 실행해보면 된다.
   - 물론, 대부분의 사용자들은 프롬프트에 표현되어 있기도 하다.

$ hostname

   - "2014.08.16" 기준으로 Ubuntu 12.04에서 hostname 버전은 3.06이고, 14.04에서는 3.15 이다.
   - hostname 버전에 따라서 약간의 옵션 차이가 있기에 12.04/14.04 모두에 적용되는 내용으로 설명하겠다.



2. hostname 변경하기

   - Linux 배포판에 따라 차이가 있는 부분인데, 우리는 여기에서 Ubuntu 기준으로 설명하도록 하겠다.

$ sudo nano /etc/hostname

변경하고 싶은 호스트명

   - 다른 내용은 필요없고, 호스트명을 수정하면된다.

$ sudo hostname -F /etc/hostname

   - [ hostname ] 명령으로 확인하면 변경된 것을 확인할 수 있지만, 터미널을 다시 실행하는 것이 깔끔하다.



3. 뒷정리하기

   - 위와 같이 하면, 기본적으로 호스트명을 변경할 수 있지만 다른 부분도 손봐주는 것이 바람직하기에...

$ sudo nano /etc/hosts

127.0.0.1         localhost
127.0.0.1         변경한 호스트명
...


필자의 경험으로... 네트워크와 관련된 사항들은 재부팅을 해주는 것이 가장 깔끔하다!

반응형

그 동안 계속 한글 입력기로 "nabi"를 사용해왔지만,
Ubuntu 14.04에서 시스템 트레이를 지원하지 않고 있어서 조금 짜증이 나던 차에
최근 Chrome에서 계속 한글 입력 문제가 계속 되면서 더더더욱 짜증이 나서.... 바꿔 보기로 했다.

Ubuntu 12.04에서는 기본 환경에서 아래와 같이 진행할 수가 없다.
Chrome 한글 문제는 Ubuntu 12.04에서는 그냥 ibus 한글 입력기를 사용하는 것이 속편하다.

발음하기도 힘든 fcitx라고 하는 한글입력기를 사용해보고자 한다.
공식 홈페이지는 https://fcitx-im.org/wiki/Fcitx 이고, 여기에서 발음은 "파이틱스"(?)라고 한다.

설치는 바로~ ^^

$ sudo apt-get install fcitx-hangul

한글입력기는 설치하고 사용하려면 재부팅을 요구한다.
재부팅을 안해도 된다고 하면 방법을 누가 알려주기 바란다.

재부팅 후에 "시스템 설정"을 하고선 "언어 지원"을 실행하자.




"언어 설치/제거" 부분을 보면 fcitx를 선택할 수 있다.



상세한 설정을 위해서는 상단 시스템 트레이에서 키보드 모양을 선택하고 Configure를 실행하자.



그러면 아래와 같은 화면이 나온다.


한영키 설정을 하려면 "Global Config"를 선택하면 된다.


필자는 이렇게 해서 한글 입력 잘 되었다~!!! 성공~!!!

반응형

NFS를 사용하기 위해서 사용하는 포트가 지정된 1개가 아니다.
그러다보니 방화벽 환경에서 NFS를 사용하게 되면 당연히 문제가 발생한다.



[ portmap → rpcbind ]

포트를 활용하기 위하여 portmap을설치하려 했더니 다음과 같은 메시지가 나온다.

$ sudo apt-get install portmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'rpcbind' instead of 'portmap'
rpcbind is already the newest version.
rpcbind set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.


portmap 대신에 rpcbind 가 설치되어 있다는 말인데, 그렇다면 우리는 rpcbind를 사용하면 된다.



[ port 현황 확인 ]

지금 사용하고 있는 port 현황을 확인해보도록 하자.

$ rpcinfo -p
   program vers proto      port  service
    100000    4      tcp        111  portmapper
    100000    3      tcp        111  portmapper
    100000    2      tcp        111  portmapper
    100000    4      udp       111  portmapper
    100000    3      udp       111  portmapper
    100000    2      udp       111  portmapper
    100024    1      udp    38905  status
    100024    1      tcp     40987  status
    100003    2      tcp       2049  nfs
    100003    3      tcp       2049  nfs
    100003    4      tcp       2049  nfs
    100227    2      tcp       2049
    100227    3      tcp       2049
    100003    2      udp      2049  nfs
    100003    3      udp      2049  nfs
    100003    4      udp      2049  nfs
    100227    2      udp      2049
    100227    3      udp      2049
    100021    1      udp    54927  nlockmgr
    100021    3      udp    54927  nlockmgr
    100021    4      udp    54927  nlockmgr
    100021    1      tcp     44736  nlockmgr
    100021    3      tcp     44736  nlockmgr
    100021    4      tcp     44736  nlockmgr
    100005    1      udp    47711  mountd
    100005    1      tcp     53370  mountd
    100005    2      udp    48583  mountd
    100005    2      tcp     43514  mountd
    100005    3      udp    51022  mountd
    100005    3      tcp     52825  mountd



[ port 등록 ]

사용할 포트를 등록해보자.

$ sudo nano /etc/services

...
status            4000/tcp                        # rpc.statd tcp port
status            4000/udp                       # rpc.statd udp port
mountd          4002/tcp                        # mountd tcp port
mountd          4002/udp                       # mountd udp port
rquotad          4003/tcp                        # rpc.rquotad tcp port
rquotad          4003/udp                       # rpc.rquotad udp port
...

실행 옵션도 수정해주어야 한다.

$ sudo nano /etc/default/nfs-kernel-server

...
# RPCMOUNTDOPTS="--manage-gids"
RPCMOUNTDOPTS="-p 4002 -g"
...

다음의 파일을 수정해야 한다.
만약 없는 경우 새로 생성하면 된다.

$ sudo nano /etc/modprobe.d/options.conf

options lockd nlm_udpport=4001 nlm_tcpport=4001


그리고, 이젠 서비스를 재시작하자.

$ sudo service rpcbind restart
rpcbind stop/waiting
rpcbind start/running, process 2519

$ sudo service nfs-kernel-server restart
 * Stopping NFS kernel daemon                                                                            [ OK ]
 * Unexporting directories for NFS kernel daemon...                                                [ OK ]
 * Exporting directories for NFS kernel daemon...                                                    [ OK ]
 * Starting NFS kernel daemon                                                                              [ OK ]

정상적으로 적용이 잘 되었는지 확인해보자.

$ rpcinfo -p
   program vers proto   port  service
    100000    4   tcp        111  portmapper
    100000    3   tcp        111  portmapper
    100000    2   tcp        111  portmapper
    100000    4   udp       111  portmapper
    100000    3   udp       111  portmapper
    100000    2   udp       111  portmapper
    100024    1   udp     4000  status
    100024    1   tcp      4000  status
    100003    2   tcp      2049  nfs
    100003    3   tcp      2049  nfs
    100003    4   tcp      2049  nfs
    100227    2   tcp      2049
    100227    3   tcp      2049
    100003    2   udp     2049  nfs
    100003    3   udp     2049  nfs
    100003    4   udp     2049  nfs
    100227    2   udp     2049
    100227    3   udp     2049
    100021    1   udp     4001  nlockmgr
    100021    3   udp     4001  nlockmgr
    100021    4   udp     4001  nlockmgr
    100021    1   tcp      4001  nlockmgr
    100021    3   tcp      4001  nlockmgr
    100021    4   tcp      4001  nlockmgr
    100005    1   udp     4002  mountd
    100005    1   tcp      4002  mountd
    100005    2   udp     4002  mountd
    100005    2   tcp      4002  mountd
    100005    3   udp     4002  mountd
    100005    3   tcp      4002  mountd



위와같이 되었다고 하면 이제 포트가 고정이 되었으니 방화벽에 포트 등록을 해주면 된다.

111 (portmap), 2049 (nfs), 4000 (status), 4001 (nfs lock manager), 4002 (mountd), 4003 (rquotad)

 

반응형

+ Recent posts