ps 명령어

- 현재 리눅스에서 돌아가고 있는 프로세서를 확인 하기 위해 사용하는 명령어

- 보통 ps -ef, ps -aux 를 많이 쓴다.

옵션

-a : 현재 실행중인 모든 프로세서 출력

-e : 모든 프로세서 정보

-f : 풀 포멧

-u : 사용한 사람과 사용 시간

-w : 작은 창이어도 한줄로 출력하게 하는 옵션

-x : 히든 프로세스



<ps -aux 구조>

# ps -aux | more


USER    PID    %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND   


USER 

프로세스 실행 사용자 

PID 

프로세스 ID 

%CPU     %MEM 

최근 1분동안 프로세스가 사용한 CPU와 메모리 백분율(%) 

RSS 

사용하는 실제 메모리 크기 

TTY 

프로세스를 제어하고 있는 터미널 

STAT 

프로세스 상태 코드 


STAT 코드:

indisk wait (입력을 기다리는 상태) 

runable (실행 대기중인 상태) 

sleep (실행 상태에서 휴면) 

zombie (프로세스가 끝나도 안꺼진 상태) 


ps -auxw | more 이렇게 써도 되고 아니면, ps -auxwef | grep 사용자 | more

- 모든 프로세스, 히든 프로세스 포함, 사용중인 사용자 내용을 출력함.



'Linux > Common' 카테고리의 다른 글

터미널에서 멀티태스킹하기  (0) 2013.02.02
gcc 다른 버전 추가하기  (0) 2012.12.30
리눅스 C++ 컴파일  (0) 2012.05.02
쉘에서 간단한 명령내리는 프로그램  (0) 2012.05.02
리눅스의 디렉토리 구조  (0) 2012.05.02
Posted by scii
:

.bashrc

bashrc



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

Ubuntu 12.04 설치 후 설정들  (0) 2013.03.15
Ubuntu 12.04 설치 후 부팅 문제  (0) 2013.03.15
Python 환경 변수 설정  (0) 2012.11.27
우분투 명령어  (0) 2012.05.08
[ubuntu] 터미널 쉽게 쓰기! "tilda"  (0) 2012.05.02
Posted by scii
:

Ubuntu에서 나의 .profile 의 Python 환경 변수



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

Ubuntu 12.04 설치 후 부팅 문제  (0) 2013.03.15
나의 .bashrc 파일 설정  (0) 2012.12.06
우분투 명령어  (0) 2012.05.08
[ubuntu] 터미널 쉽게 쓰기! "tilda"  (0) 2012.05.02
ubuntu 11.10 설치하기  (0) 2012.05.02
Posted by scii
:

우분투 명령어

Linux/Ubuntu 2012. 5. 8. 03:19 |

1. 그놈 파일 브라우저에서 root 권한 얻기 

alt-F2 : Run 창 실행
gksudo nautilus

2.커널 바꾸기(우분투사용자모임 참고)

현재 우분투의 커널은 i386 아키텍쳐인데 이를 i686으로 바꾸어줍니다. i386은 펜티엄 프로 이전의 컴퓨터에 모두 호환되고 i686은 그 이후의 컴퓨터 아키텍처에만 호환됩니다.

 sudo apt-get install linux-686
이렇게 하면 속도 향상이 있다고 한다.

3.터미널창의 명령어 히스토리

터미널 창에서 ctrl-R 누르면 (reverse-i-search)`': 
이런게 뜨는데 이전에 입력한 명령어의 키워드를 누르면 그와 일치하는 명령어가 화면에 표시된다
예)
터미널에서

user@ubuntu:/etc/vim$ls -a | grep vimrc

user@ubuntu:/etc/vm$CTR-H (이 키를 누르면)

 (reverse-i-search)`': l(L을 누르면 위에 입력한 명령어가 뜬다)

4.터미널에서 tab키의 쓰임(아주 유용한 기능)
  libxxxx-x.x.x 이런 디렉토리가 있다고 하면, 'cd 디렉토리명 '디렉토리명을 그대로 전부 타이핑하는 사람은 없을 것이다.  lib{tab}(tab키를 누르라는 의미)해보면 알 것이다

5.하드용량을 확보하자
    
   a. 불필요한 캐쉬파일 지우기

우분투는 apt-get 명령으로 이전에 인스톨된 파일의 라이브러리를 빌드업시켜놓는다.
다음 명령으로 한 번에 이것들을 지운다


sudo rm -f /var/cache/apt/archives/*.deb
or
sudo apt-get clean

    b. /tmp폴더를 비우기


원도우 Temp폴더랑 비슷한 역할을 한다.말 그대로 임시데이타가 저장되는 곳이다.대부분의 프로그은 스스로 클린업해주는데 반해,일부 프로그램은 그렇지 않다.

만약 실행중이 프로그램이나 다른사용자가 /tmp폴더를 사용하면 위험하므로 다음처럼 /tmp폴더를 비우자

sudo killall gdm
로그인하라고 한다...
sudo init 1 (런레벨1)
rm -rf /tmp/*
reboot


  c.우분투 그놈에서 그놈-게임을 다 지우기면 
설치된다.



시냅틱패키지 관리자의 서치를 이용해서 검색어 gnome-games
그리고 mark it for removal
 불필요한 프로그램을 제거할때, 문제되는 것이 의존성문제이다.


6. vi
 a.커맨드모드에서 삭제
    한 글자 삭제 :  x
    한  단어
 삭제:  dw  
    한 줄 삭제 : dd
    n 줄  삭제 : ndd(n은 임의의 숫자)
    커서있는 곳 부터 끝까지 : D
  b. 검색
    앞으로 검색 : /
    뒤로 검색   : ?
                      f 
c. 잘라내기 붙이기
   현재줄 카피 : yy
   n줄 카피    :nyy
   붙이기       : p
   잘라내기    : 위에 삭제명령으로 삭제된 내용은 버퍼에 저장되고,p명령으로 붙이기 가능
  d. 텍스트 입력하기 위해
   i 와 a
   o 와 O
  e.네비게이션
 현재줄의 끝으로 : $
 한단어 앞으로   :w
 이전 단어로 백 : b

마지막으로 Undo 명령 u

7.패널 애니매이션 끄기
터미널을 오픈한다

gconftool-2 --type bool --set /apps/panel/global/enable_animations false

재시작한다

8. help
터미널 명령어 ls와 관련된 정보를 보고 싶다면 
man ls
그런데 명령어를 모를때는 어떻게 하지 man 에 옵션을 주면 된다.
man -k display
이렁게 하면 display가 들어가 있는 명령어의 맨 페이지 목록을 보여준다.

9.zip 압축/해제 관련
디렉토리 압축 

zip -r -F  저장파일명.zip  디렉토리/ 

-r 서브디렉토리가지 압축 
-F 한글파일을 포함하는 zip 압축 


압축해제 

unzip 파일이름.zip 

또는 

jar xvf 파일이름.zip

10. X 윈도우 해상도 설정

sudo dpkg-reconfigure -p high xserver-xorg
sudo dpkg-reconfigure high xserver-xorg



출처 : http://hyunkikim.egloos.com/3748785

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

Ubuntu 12.04 설치 후 부팅 문제  (0) 2013.03.15
나의 .bashrc 파일 설정  (0) 2012.12.06
Python 환경 변수 설정  (0) 2012.11.27
[ubuntu] 터미널 쉽게 쓰기! "tilda"  (0) 2012.05.02
ubuntu 11.10 설치하기  (0) 2012.05.02
Posted by scii
:

리눅스에서 기본적인 C 또는 C++ 컴파일 하기


윈도우즈에서는 일반적으로 Visual C++로 소스 코드를 작성하고 컴파일을 한다. 그리고 무료 컴파일러를 안다면 Dev C++ 또는 Eclipse을 사용하기도 한다.

리눅스도 마찬가지로 이러한 IDE(Integrated Development Environment)를 가지고 있다. Eclipse는 윈도우즈 뿐만 아니라 리눅스도 지원하고 있으며, 다른 IDE로는 Code::Blocks, KDevelope 등이 있다.(추가적인 것은http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments 참조)

하지만 여기서는 이러한 잡다한(?) 기능이 많이 들어 있는 IDE보다는 콘솔 창에서 gcc를 이용하여 컴파일하는 방법에 대해서 소개하겠다.



그 전에, 소스를 코딩해야 하는데, 만약 윈도우즈를 포함하여 위 IDE들이 없다면 아주 단순한 텍스트 에디터에서 코딩을 해도 된다.

C 소스 또한 텍스트 문자로 되어 있는 텍스트 파일이기 때문이다. 즉, 윈도우즈에서 메모장을 열고 소스를 코딩한 다음 .c 파일로 저장을 해도 c 소스 파일이 된다. 다만, 메모장 같은 단순한 텍스트 에디터의 경우 코딩을 하는데 많이 불편하기 때문에 안쓰는 것 뿐이다.
(윈도우즈에서 추천하는 고급 텍스트 에디터로는 Notepad++ 나 UltraEdit 등을 사용하면 된다.)

리눅스 또한 마찬가지로 기본적으로 내장되어 있는 텍스트 에디터를 사용하면 된다. 거의 모든 리눅스 배포판에 있는 텍스트 에디터로는 Vi나 Emacs 가 있다.

그러나 이들 에디터는 예전부터 쓴 만큼 당연히 GUI 에디터가 아니다. 따라서 이들 에디터는 윈도우즈 메모장처럼 바로 쓰기에는 약간 불편하다.(하지만 익히고 나면 매우 편리하고, GUI가 아닌 환경에서도 매우 강력하게 쓸 수 있다는 장점이 있다.)

우분투(Gnome 계열)의 경우 Gedit 이라는 기본 에디터가 있고, 쿠분투(KDE 계열)의 경우 Kate 라는 기본 에디터가 존재한다.

이들 에디터들은 메모장보다는 더 많은 기능이 포함되어 있고, 프로그래밍을 도와줄 수 있도록 문법 강조 기능이나 들여쓰기 기능들이 존재한다.

Gedit이나 Kate 모두 메뉴 설정에 강조 기능이 존재해서, 적절한 언어를 선택해주면 문법 특징들을 강조해준다. Kate의 경우에는 더 기능이 강력하여 들여쓰기 및 정렬 기능까지 존재한다.

어쨌든, Vi나 Emacs를 쓰면 좋겠지만, 당장 코딩을 해야 하거나 앞의 에디터들이 불편하다면 Gedit이나 Kate를 사용해도 된다.



이제, 소스 코딩을 할 수 있는 에디터를 알았으므로 코딩을 완료하고 소스 파일을 저장하자.

그 다음 gcc를 이용해서 소스를 컴파일하면 되는데, 먼저, gcc가 있는지 확인해보자.

우분투의 경우 프로그램에서 터미널을 열고(쿠분투는 Konsole) gcc -v 를 입력하여 gcc의 버전이 출력되는지 확인해보자. 버전이 출력된다면 gcc가 있는 것이고 출력 되지 않는다면 gcc가 없다는 것이다.

우분투 10.10의 경우 기본적으로 내장되어 있지만 쿠분투의 경우 gcc가 설치되어 있지 않으므로 KPackageKit에서 gcc를 검색하여 설치를 해주자.

sudo apt-get install gcc    // c 컴파일러 설치

sudo apt-get install g++    // c++ 컴파일러 설치

이제 gcc 까지 준비가 되었으므로 컴파일을 해보자.

컴파일을 하려면 소스 파일이 있는 위치를 알려줘야 하는데, 파일이 있는 위치를 알려주기보다는 직접 이동한 후 그 위치에서 명령을 입력하는 것이 더 편하므로 폴더를 먼저 이동하자.

폴더를 이동하는 방법은 cd(change directory) 명령이다. "cd 폴더 경로"를 입력해주면 그 폴더로 이동이 된다.

예를 들어 cd /usr/share 라고 쳐주면 최상위 폴더인 / 폴더 내에 usr 내에 share 폴더로 이동한다.(참고로 윈도우즈는 최상위 폴더가 C 드라이브이지만 리눅스는 루트 폴더인 / 이다.)

또는, "cd 폴더" 만 입력해주어도 현재 위치에 있는 폴더로 이동하게 된다.

참고로 폴더 경로에서 ..은 상위 폴더를 의미하고, . 은 현재 폴더를 의미한다. 즉, /usr/..의 의미는 / 와 같다. 그리고 이후에 파일을 실행할 때 ./ 을 입력하게 되는데, 이것은 현재 폴더를 의미한다. 즉, ./file 은 현재 폴더에 있는 file을 의미하게 된다.



이제 폴더를 이동했으니, 진짜 컴파일을 해보자. 기본적인 gcc 컴파일 방법은 gcc file이다. 그러면 소스 파일을 컴파일하여 실행 파일 하나를 내놓는데, 기본 이름이 a.out으로 되어 있다.

만약, 이것을 실행하고자 한다면 ./a.out 을 입력해주면 된다.

간단하게 이렇게 컴파일하고 이름을 변경해도 되지만 좀 더 강력한 기능을 사용하기 위해 다음과 같이 컴파일할 수 있다.

gcc -W -Wall -O2 -o file src1.c src2.c


위 명령어는 src1.c 와 src2.c 파일을 컴파일 해서 file 이라는 이름으로 실행 파일을 만들으라는 것이다.

-W 와 -Wall 옵션은 경고를 출력하라는 의미인데, 이것을 붙이지 않으면 에러일 경우에만 gcc가 컴파일을 중단하고 출력을 해준다. 경고도 보기 위해서는 위 옵션을 적절하게 사용하면 된다.

그리고 -O2 는 최적화 옵션으로 2단계 최적화를 하겠다는 것이다. 옵션 종류로는 -O0, -O1, -O2, -O3, -Os 가 있다. 가장 많이 쓰는게 -O2이고, -O0 는 최적화 하지 않겠다는 것으로 기본값이다.

위와 같이 소수의 파일만 있을 때는 저러한 명령으로 컴파일 해도 되지만 c 파일이 많아 진다면 파일 명을 입력하는 것이 귀찮아질 것이다.

간단하게 src1.c src2.c 부분을 *.c 로 고쳐주면 현재 폴더 내의 모든 c 파일을 컴파일하게 된다.
(참고로, .h 파일은 추가해주지 않아도 링커가 알아서 연결해준다.)

그리고 gdb(디버거)를 사용하게 된다면 -g 옵션을 추가해서 디버깅 정보를 삽입하도록 명령을 내릴 수 있다.

이 정도만 알고 있어도 C를 공부하거나 간단하게 컴파일할 때 바로 적용하여 사용할 수 있다.

참고로 위 명령어를 계속 쓰다보면 당연히 지루하고 불편한 작업이 될 수 밖에 없다. 따라서 나같은 경우 위 명렁어를 하나의 별칭으로 지정해서 간단하게 사용한다.

홈 폴더(계정 폴더)에 .bash_aliases 파일(.을 반드시 붙여주자)을 생성한 다음 그곳에 다음 내용을 추가해주자.


alias fgcc='gcc -g -Wall -W -O0 -o ./file ./*.c'

그러면 fgcc 명령만 입력하더라도 현재 폴더 내에 있는 모든 C 파일을 컴파일 하여 실행 파일 file로 만들게 된다.


위 명령에서 필요한 부분을 적절하게 변경해서 사용하며 된다.

마지막으로 C++에서도 gcc와 똑같이 사용하면 되는데, gcc 대신 g++를 사용하면 된다.



이 외에 더 필요한 것들은 gcc 맨페이지(man gcc 명령)를 참고하여 사용하면 된다.

그리고 큰 프로젝트처럼 파일 종류가 많아지고, 폴더까지 필요해진다면 makefile을 작성하여 사용하면 된다.


출처 : http://blog.bluekyu.me/2011/03/c-c.html

'Linux > Common' 카테고리의 다른 글

터미널에서 멀티태스킹하기  (0) 2013.02.02
gcc 다른 버전 추가하기  (0) 2012.12.30
리눅스 ps 명령 프로세스  (0) 2012.12.25
쉘에서 간단한 명령내리는 프로그램  (0) 2012.05.02
리눅스의 디렉토리 구조  (0) 2012.05.02
Posted by scii
:

#include <stdio.h>

main()
{
       int i;
       char gg[50];

       for(i=1; i<=5; i++)
       {
              sprintf(gg, "ping -c 1 211.117.26.%d | grep from",i);
              system(gg);
       }
 
       return 0;
}


--------------------------------------------------------------------------------------------------------

#include<stdio.h>

int main(void)
{
       char tt[50];
       int i;

       for(i=0;i<5;i++)
       {
              sprintf(tt, "cp ~/Desktop/sun/lang.c ~/Desktop/sun/HaHa%d", i);
              system(tt);
       }
       return 0;
}

'Linux > Common' 카테고리의 다른 글

터미널에서 멀티태스킹하기  (0) 2013.02.02
gcc 다른 버전 추가하기  (0) 2012.12.30
리눅스 ps 명령 프로세스  (0) 2012.12.25
리눅스 C++ 컴파일  (0) 2012.05.02
리눅스의 디렉토리 구조  (0) 2012.05.02
Posted by scii
:

리눅스 시스템의 디렉토리 구조


※ / 최상위에 있는 디렉토리로, 루트 디렉토리라고 한다.


  /bin 기본 실행 파일들, 즉 사용자 명령어들이 들어 있다.


※  /boot 시스템 부팅시 필요한 파일들이 들어 있다.


  /dev 플로피, 하드디스크, CD-ROM 드라이브 등의 각종 장치 파일들을 모아 놓은 곳이다.


  /etc 시스템 관리시 필요한 스크립트 파일들과 설정 파일들이 들어 있다.


  /home 일반적으로 사용자들이 사용할 수 있는 계정의 홈 디렉토리가 위치한다. 예를 들어, linuxer라는 계정으로 로그인할 경우 이 계정의 홈 디렉토리로는 /home/linuxer이다.


  /lib 각종 라이브러리가 저장된 디렉토리로 커널 모듈도 이곳에 있다.


  /lost+found ext2 및 ext3 파일 시스템에서 파일 시스템 복구를 위한 디렉토리이다.


  /mnt 마운트될 파일시스템의 마운트 포인터가 되는 디렉토리들이 위치하는 부분으로 시스템에 설치된 입출력 장치들과 연결시 이들은 해당 디렉토리에 위치하게 된다. 예로서 /mnt/floppy 또는 /mnt/cdrom이 존재한다.


  /opt 추가된 응용 프로그램 패키지가 설치되는 디렉토리이다.


  /proc 시스템 관리를 목적으로 메모리상에 만들어 놓은 가상 디렉토리로 디렉토리안의 파일들은 현재 시스템 설정을 보여준다.


  /root 루트 사용자의 홈 디렉토리로 루트 사용자만 접근할 수 있다.


  /sbin 시스템 점검 및 복구 명령, 네트워크 인터페이스 설정 명령, 시스템 초기 및 종료 명령, 커널 모듈 등 시스템 관리에 관련된 실행 파일들이 포함되어 있다.


  /tmp 각 장치에 필요한 socket이 위치하고 시스템에 필요한 임시 파일들을 만들고 삭제하는 디렉토리이다.


  /usr 시스템이 정상적으로 가동되는데 필요한 모든 명령들과 라이브러리들, 매뉴얼 페이지들이 있다.


        /usr/bin /bin에 없는 유용한 실행 파일들이 위치해 있다.


        /usr/include C언어 헤더 파일들을 보관하는 곳이다.


        /usr/src 시스템에 있는 다양한 프로그램의 컴파일되지 않은 소스 코드들을 포함하고 있다. 중요한 것은 /usr/src/linux로 리눅스 커널의 소스 코드를 포함하고 있다.


        /usr/man 명령어로 볼 수 있는 man page(매뉴얼 페이지)를 포함하고 있다.


  /var 자료 데이터가 변경될 때 저장되는 디렉토리로 시스템 작동 log들과 네트워크에 관련된 기록 파일들, 보안기록을 저장하고 메일서버로 운영하는 경우 전송된 메일을 받아 저장하고 있는 가변저장 공간이다.



'Linux > Common' 카테고리의 다른 글

터미널에서 멀티태스킹하기  (0) 2013.02.02
gcc 다른 버전 추가하기  (0) 2012.12.30
리눅스 ps 명령 프로세스  (0) 2012.12.25
리눅스 C++ 컴파일  (0) 2012.05.02
쉘에서 간단한 명령내리는 프로그램  (0) 2012.05.02
Posted by scii
:

: 터미널에서 이렇게 인스톨을 하거나 소프트웨어센터에서 다운받음.


: tilda를 실행시킨 후 마우스 오른쪽버튼을 눌러 preference 진입. 그 후, 이렇게 셋팅~!!


: Appearance창으로 가서 자기가 좋아하는 셋팅값으로 셋팅.


단축키 설정! 

~ 이것이 grave이다. ~가 가장 만만하다.


셋팅 후의 tilda 모습.


시작 프로그램에 등록을 하지 않으면 컴퓨터를 부팅할때마다 tilda를 실행시켜야 한다.

그런 귀찮은 작업을 하지 않기 위해선 시작 프로그램에 등록을 해야한다.


시작 프로그램에 추가된 화면.


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

Ubuntu 12.04 설치 후 부팅 문제  (0) 2013.03.15
나의 .bashrc 파일 설정  (0) 2012.12.06
Python 환경 변수 설정  (0) 2012.11.27
우분투 명령어  (0) 2012.05.08
ubuntu 11.10 설치하기  (0) 2012.05.02
Posted by scii
: