YUM이란?  rpm 명령어의 패키지 의존성 문제 해결를 해결한 'rpm 패키지를 설치하는 편리한 도구'라고 보면 된다.


1. 기본 설치 방법

  - yum install [패키지이름]

    ^

   -y 를 넣어주면 yes/no를 묻지 않는다.


2. rpm만 설치 방법

  - yum localinstall [rpm파일명].rpm


3. 업데이트 가능한 목록 보는 방법

  - yum check-update


4. 업데이트 방법 (패키지명을 생략 시 전체를 업뎃하므로 많은 시간이 걸리므로 피하는 것이 좋다.)

  : 설치 되어 있으면 업데이트를 진행하는데 업데이트가 없으면 그냥 종료. 그리고 미설치 되어 있으면 설치를 진행.

  - yum update ([패키지명])


5. 삭제 방법

  - yum remove [패키지명]


6. 정보 확인 방법

  - yum info [패키지명] 




7. 패키지 그룹 설치 (패키지 그룹에 포함되는 패키지들을 통째로 설치할 때 사용, java 패키지 같은..)

  - yum groupinstall "패키지그룹명"

^ 패키지 그룹명은 띄어써져 있는 경우가 많으므로 "" 안에 넣는것을 추천!


8. 패키지 리스트 확인

  - yum list [패키지명]

  - yum list all : 전체   //   yum list available : 설치 가능한 목록


9. 특정 파일이 속한 패키지명 확인

  - yum provides [파일명]


10. GPG 키 검사 생략 (CentosOS 7에서 인증되지 않은 rpm파일 설치 하는데 설치가 안될 때)

  - yum install --nogpgcheck [rpm파일명].rpm


11. 기존 저장소 목록 지우기 (yum 문제 있을 시에)

  - yum clean all


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

파일과 디렉터리  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01
기본 명령어 정리  (0) 2017.11.01



1. 파일 속성

  [ ls -l ] 을 실행하면 보이는 화면 설명

1 : 파일 유형                2 : 파일 허가권            3 : 링크 수                          4 : 파일 소유자 이름

5 : 파일 소유자 그룹      6 : 파일 크기(byte)        7 : 마지막 변경 날짜/ 시간      8 : 파일 이름


2. 파일 유형

  (1) d : 디렉터리

  (2) - : 일반적인 경우

  (3) b : 블록 디바이스 (HDD, Floppy, CD/DVD 등 저장장치)

  (4) c : 문자 디바이스 (Mouse, Keyboard, Print 등 입출력장치)

  (5) l : 링크 (Windows의 바로가기 개념)


3. 파일 허가권 : 3개씩 끊어서 인식

             r : read   //   w : write   //   x : execute

  (2진수)      4                  2                  1

          -> rwx = 7 , rw = 6 , r-x = 5 ...

  - 첫번째 rwx : 소유자(User)

  - 두번째 rwx : 그룹(Group)

  - 세번째 rwx : 그 외 사용자(Other)


4. 파일 허가권 변경 (위에 상태는 chmod 777 sample.txt 를 실행한 상태)

  (1) chmod [User권한][Group권한][Other권한] [파일명]

  (2) chmod u+x [파일명] : User에게 실행 권한을 부여(+)한다는 의미

  (3) chmod u-rw [파일명] : User에게 읽기와 쓰기 권한을 제거(-)한다는 의미


5. 파일 소유권 변경

  chown 새로운사용자이름(.새로운그룹이름) 파일이름

  ex) -소유자 변경 : chown centos sample.txt

       - 그룹도 변경 : chown centos.centos sample.txt

       - 그룹만 변경 : chgrp centos sample.txt

  



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

YUM 기본적인 부분  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01
기본 명령어 정리  (0) 2017.11.01

- [ useradd or adduser ] : 새로운 사용자 추가(/etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가됨)

     (1) useradd newuser : newuser 생성

     (2) useradd -u 1111 newuser : newuser의 id를 111로 생성

     (3) useradd -g mygroup newuser : mygroup이라는 그룹에 newuser를 생성(mygroup이라는 그룹이 먼저 존재해야한다.)

     (4) useradd -d /newhome newuser : 홈디렉터리를 /newhome으로 지정

     (5) useradd -s /bin/csh newuser : 기본 셸을 /bin/csh 로 지정

※ 그룹을 먼저 만들고 사용자를 만드는 것이 좋다 ※


- [ passwd ] : 사용자 비밀번호 지정/변경


- [ usermod ] : 사용자 속성 변경 (옵션은 useradd와 동일)

     (1) usermod -g root newuser : newuser의 그룹을 root그룹으로 변경


- [ userdel ] : 사용자 삭제

     (1) userdel newuser : newuser 삭제

     (2) userdel -r newuser : newuser의 홈디렉터리까지 삭제


- [ chage ] : 사용자의 암호를 주기적으로 변경하도록 설정

     (1) change -l newuser : newuser에 설정된 사항 확인

     (2) change -m 2 newuser : newuser에 설정한 암호를 최소 2일은 사용해야 한다.

     (3) change -M 30 newuser : newuser에 설정한 암호를 최대 30일까지 사용 가능

     (4) change -E 2019/12/12 newuser : newuser에 설정한 암호가 2019/12/12 에 만료됨

     (5) change -W 10 newuser : 암호 만료 10일 전에 알려줌 (default : 7일)


- [ groups ] : 사용자가 소속된 그룹을 보여줌

     (1) groups : 현재 사용자가 소속된 그룹을 보여줌

     (2) groups newuser : newuser가 소속된 그룹을 보여줌


- [ groupadd ] : 새그룹 생성

     (1) groupadd newgroup : 그룹 생성

     (2) groupadd -g 2222 newgroup : 그룹 id를 2222로 생성


- [ groupmod ] : 그룹 속성 변경

     (1) groupmod -n newgroup mygroup : newgroup -> mygroup


- [ groupdel ] : 그룹 삭제

     (1) groupdel newgroup : 그룹 삭제 (삭제하는 그룹을 주요 그룹으로 지정한 사용자가 없어야함)


- [ gpasswd ] : 그룹의 암호 설정하거나 그룹관리

     (1) gpasswd newgroup : 그룹의 암호 설정

     (2) gpasswd -A newuser newgroup : newuser를 그룹의 관리자로 설정

     (3) gpasswd -a user1 newgroup : user1을 newgroup의 사용자로 추가

     (4) gpasswd -d user1 newgroup : user1을 newgroup에서 제거

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

YUM 기본적인 부분  (0) 2017.11.02
파일과 디렉터리  (0) 2017.11.02
기본 명령어 정리  (0) 2017.11.01

- [ ls ] : LiSt의 약자, Windows의 'dir' 역할

     (1) ls + [폴더 주소] : 해당 폴더의 목록

     (2) ls -a : 숨김파일도 표시

     (3) ls -l : 자세히 보기


 - [ cd ] : Change Directory의 약자, 디렉터리 이동

     (1) cd ~centos : centos 사용자의 홈 디렉터리로 이동

     (2) cd .. : 상위 디렉터리로 이동 

     (3) cd + [절대주소] : 절대주소로 이동


 - [ pwd ] : Print Working Directory의 약자, 디렉터리 전체 경로 출력


 - [ rm ] : ReMove의 약자, 파일이나 디렉터리 삭제(해당 파일이나 디렉터리에 대한 권한을 가져야함.)

     (1) rm abc.txt : 한번 더 묻고 삭제

     (2) rm -f abc.txt : 바로 삭제

     (3) rm -r abc : 해당 디렉터리 삭제

     (4) rm -rf abc : r옵션과 f옵션 합친 것


 - [ cp ] : CoPy의 약자, 복사

     (1) cp abc.txt efg.txt : abc.txt파일을 efg.txt파일로 바꿔서 복사

     (2) cp -r abc efg : 디렉터리 복사


 - [ touch ] : 크기가 0인 새파일 생성, 존재하는 파일이면 최종수정시간을 현재시간으로 변경


 - [ mv ] : MoVe의 약자

     (1) mv abc.txt + [디렉터리 주소] : 해당 디렉터리로 abc.txt를 이동

     (2) mv aa bb cc dd : /dd 디렉터리로 이동

     (3) mv abc.txt www.txt : 이름 변경


 - [ mkdir ] : MaKe DIRectory의 약자, 디렉터리 생성

     (1) mkdir abc : 현재 디렉터리 아래에 abc 디렉터리 생성

     (2) mkdir -p /abc/def : abc 디렉터리가 없으면 abc 생성하고 def도 생성


 - [ rmdir ] : ReMove DIRectory의 약자, 디렉터리 삭제(삭제권한 필요, 디렉터리가 비어 있어야 삭제 가능)


 - [ cat ] : conCATenate의 약자, 파일을 연결해서 출력

     (1) cat a.txt b.txt : a.txt와 b.txt를 연결해서 화면에 출력


 - [ head ], [ tail ] : 시작(마지막)부터 10행을 출력

     (1) head anaconda-ks.cfg

     (2) head -3 anaconda-ks.cfg : 앞 3행만 출력


 - [ more ] : 페이지 단위로 출력, space 다음페이지, B 앞페이지, Q 종료

     (1) more anaconda-ks.cfg

     (2) more +100 anaconda-ks.cfg : 100행부터 출력


 - [ less ] : more의 확장판, Page Up/Page Down 키를 활용 가능해짐


 - [ file ] : 파일이 어떤 종류의 파일인지 표시

     (1) file anaconda-ks.cfg : 텍스트 파일이므로 아스키(ASCII) 파일로 표시됨

     (2) file /usr/bin/gzip : 실행파일이므로 Executable파일로 표시됨


 - [ clear ] : 현재 작성 중인 터미널의 화면을 깨끗하게 지워준다. (앞에 썼던 명령들은 스크롤을 올리면 다시 볼 수 있음)


 - [ whoami ] : 현재 사용자를 알려줌

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

YUM 기본적인 부분  (0) 2017.11.02
파일과 디렉터리  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01

** 참고 사이트 **

PhoneGap 사이트의 API : http://docs.phonegap.com/plugin-apis/

튜토리얼 사이트 : http://www.w3ii.com/cordova/default.html




두가지 파일(index.html, index.js)만 수정하면 된다. 

  : index.html은 프로젝트 디렉터리로 이동해서 www 폴더를 열면 존재하고

  : index.js는 .js가 붙은거 보면 알겠지만 www폴더 밑에 js폴더 내에 존재한다.


작업은 html 만드는 것처럼 하면 된다.




[ Example ] 배터리 사용하기(안드로이드)


1. plugin 추가

  >cordova plugin add cordova-plugin-battery-status


2. index.html 문서 수정 X


3. index.js 문서에 이벤트 걸기

  onDeviceReady: function() {

        // 충전기 연결했을 때 메시지 띄우기

        window.addEventListener("batterystatus", onBatteryStatus, false);

        // 배터리 15% 이하일때

        window.addEventListener("batterylow", onBatteryLow, false);

        // 5% 이하일때

        window.addEventListener("batterycritical", onBatteryCritical, false);

        this.receivedEvent('deviceready');        // 얘 보다 위에 이벤트를 걸어줘야 구동

    }


4.  index.js 문서에서 이벤트 함수 구현 (제일 끝에 추가)

function onBatteryStatus(info) {

   alert("BATTERY STATUS:  Level: " + info.level + " isPlugged: " + info.isPlugged);

}

function onBatteryLow(status) {

    alert("Battery Level Low " + status.level + "%");

}

function onBatteryCritical(status) {

    alert("Battery Level Critical " + status.level + "%\nRecharge Soon!");

}


** 참고 사이트 **

PhoneGap 사이트의 API : http://docs.phonegap.com/plugin-apis/

튜토리얼 사이트 : http://www.w3ii.com/cordova/default.html




두가지 파일(index.html, index.js)만 수정하면 된다. 

  : index.html은 프로젝트 디렉터리로 이동해서 www 폴더를 열면 존재하고

  : index.js는 .js가 붙은거 보면 알겠지만 www폴더 밑에 js폴더 내에 존재한다.


작업은 html 만드는 것처럼 하면 된다.




[ Example ] 주소록 사용하기(안드로이드)


1. plugin 추가

  >>cordova plugin add cordova-plugin-contacts


2. index.html 문서에 버튼 두개 추가

  <button id = "createContact">주소록에 추가</button><br>

  <button id = "findContact">주소록에서 찾기</button><br>

  <button id = "deleteContact">주소록에서 삭제</button><br>


3. index.js 문서에서 버튼값 찾아서 이벤트 걸기(onDeviceReady: function() { (여기에 주든지) }

  initialize: function() {

document.getElementById("createContact").addEventListener("click", createContact);

      document.getElementById("findContact").addEventListener("click", findContact);

      document.getElementById("deleteContact").addEventListener("click", deleteContact);

    }


4.  index.js 문서에서 이벤트 함수 구현 (제일 끝에 추가)

// 추가 함수

function createContact() {

   var myContact = navigator.contacts.create({"displayName": "Test User"});

   myContact.save(contactSuccess, contactError);    

   function contactSuccess() { alert("Contact is saved!"); }

   function contactError(message) { alert('Failed because: ' + message); }

}


// 찾기 함수

function findContact() {

   var options = new ContactFindOptions();

   options.filter = "";            // ""은 전체 출력

   options.multiple = true;

   fields = ["displayName"];

    

   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);

    

   function contactfindSuccess(contacts) {    

      for (var i = 0; i < contacts.length; i++) { alert("Display Name = " + contacts[i].displayName); }

   }

   function contactfindError(message) { alert('Failed because: ' + message); }

}


// 삭제 함수

function deleteContact() {

   var options = new ContactFindOptions();

   options.filter = "Test User";

   options.multiple = false;

   fields = ["displayName"];


   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);


   function contactfindSuccess(contacts) {

      var contact = contacts[0];

      contact.remove(contactRemoveSuccess, contactRemoveError);

      function contactRemoveSuccess(contact) { alert("Contact Deleted"); }

      function contactRemoveError(message) { alert('Failed because: ' + message); }

   }

   function contactfindError(message) { alert('Failed because: ' + message); }

}

+ Recent posts