728x90

트위터에서 돌아다니는 트윗과 짤이 좋은 점은 여러가지가 있지만
하나의 트윗 140자에서 많은 것을 함축적으로 이야기 해야 하기 때문에
컨텐츠(?)의 밀도가 높아서 스낵(snack)처럼 소비하기 좋다는 점입니다 ㅋ

오늘도 지나가다 <6 Linux command you must learn in 2023>라는 트윗을 봤고
여기에 올라와 있던 리눅스 초보자를 위한 터미널 주요 명령을 가져와 봤습니다.
익숙하지 않은 명령들이나 의미를 잘 몰랐던 명령들을 되뇌이는 기회를 만드십시오!

출처 : https://twitter.com/javinpaul/status/1610150056513912833/photo/1

이미지에 포함된 내용들은 사실 굉장히 단순한 명령들입니다. 
하지만 처음 접하시는 분들은 요런 것들도 헷갈릴 수 있다고 봅니다!

#리눅스 #리눅스기초명령어 #linuxcommand #linuxcommandline

 

728x90
728x90

서버를 운영할 때 중요한 것중 하나가 디스크가 꽉 차지 않도록 유지하는 것입니다. 
디스크가 꽉 차게 되면 여러 어플리케이션들이 오동작 할 수 있으며 
심각한 경우 로그인이 어려워질수도 있습니다. 

디스크 용량 확인

디스크가 꽉 찼는지 확인하기 위해서는 df 명령을 사용합니다. 

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2        40G   40G  372M 100% /
devtmpfs        1.9G     0  1.9G   0% /dev

 

이제 용량을 많이 차지하는 파일을 찾아보겠습니다.

폴더별 용량 확인

루트 경로에서 du 명령을 사용해 폴더별 사용량을 체크해 볼 수 있습니다.
미쳐 캡쳐하기 전에 파일을 삭제, 정리하는 바람에 아래 예제에는 큰 용량의 파일이 보이진 않네요

$ sudo du -sh * | sort -hr
3.8G    usr
1.9G    var
1.6G    home
218M    opt
205M    boot
200M    run
35M     etc
764K    tmp
196K    root
0       sys
0       srv

파일 삭제 후에도 용량이 안늘어난다면?

간혹 파일 삭제 후에도 용량이 확보되지 않을때가 있습니다. 
이 경우 활성 프로세스나 좀비 프로세스가 파일 디스크립터를 들고 있어서일 가능성이 높습니다. 
이때는 lsof 명령을 이용해 문제가 되는 프로세스를 식별할 수 있습니다. 

$ /usr/sbin/lsof / | grep deleted
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
...

PID 컬럼에서 프로세스 ID를 확인한 후 ps 명령으로 재차 확인을 합니다. 
문제의 프로세스를 kill -9 #PID# 등의 명령으로 종료한뒤
lsof 명령을 다시 실행하면 문제의 FD 들이 삭제된 것을 확인할 수 있습니다. 

$ kill -9 12345
$ /usr/sbin/lsof / | grep deleted

이후 df 명령을 사용해서 디스크 용량을 확인하면
공간이 확보된 것을 확인할 수 있습니다. 

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2        40G  7.8G   33G  20% /
devtmpfs        1.9G     0  1.9G   0% /dev

 

Udemy의 리눅스 커맨드라인 부트캠프 강의로 리눅스 기초 체력을 향상시켜 보세요!

 

【한글자막】 Linux Command Line 부트캠프: 리눅스 초보자부터 고수까지

커맨드 라인 고급 사용자로 거듭나기! 이 코스에서 배우는 커맨드를 통해 컴퓨터와 상호 작용하는 방식을 변경하여 모든 새로운 워크플로우와 전략을 사용하고, 컴퓨터를 다루는 데에 있어 여

www.udemy.com

 

본 포스팅은 제휴마케팅을 통해 소정의 수수료를 지급받을 수 있습니다.

728x90
728x90

Redhat 계열(가령 CentOS)의 운영체제를 쓰면 패키지 매니저로 yum 을 기본적으로 사용합니다. 사전에 쉘 환경에 Path 가 잘 잡혀 있다면 면 yum 으로 설치한 패키지 실행에 큰 문제가 없지만, 간혹 다른 사람이 운영하던 환경의 서버에서 작업시, 패키지가 실행되지 않아 곤란하던 경험들이 다들 있으실 겁니다. 

이런 경우에는 Full Path 를 같이 사용하여 어플리케이션을 실행해야 합니다. 하지만, 어디에 설치되었는지 잘 모르겠다 싶은 경우에 패키지 설치 경로를 확인할 필요가 있겠죠? 몇 번 비슷한 상황을 겪을때마다 검색해서 찾았던 내용을 간단하게 정리해 봅니다. 


yum 으로 패키지 설치하기

yum 은 Redhat 계열의 운영체제에 기본적으로 탑재되어 있습니다. 설치 방법을 계정 권한에 따라 sudo 를 넣어야 하는가, 그렇지 않은가 정도의 차이만 있고 install [패키지명] 으로 대부분 해결이 됩니다. 

$ yum install mtr

혹은

$ sudo yum install mtr

 

설치된 패키지 확인하기

기존에 설치된 패키지가 있는 경우 install 명령을 이용했을 때, 이미 패키지가 설치되어 있다는 안내를 만나게 됩니다. 주의할 것은 어플리케이션에 따라 버전의 영향을 받는 경우가 종종 있기 때문에 설치된 패키지의 버전을 확인할 필요가 있습니다. 설치된 패키지를 확인하는 명령은 아래와 같습니다. 

// 설치된 모든 패키지를 확인
$ yum list | less
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
Installed Packages
ConsoleKit.x86_64                         0.4.1-6.el6           @anaconda-CentOS-201703281317.x86_64/6.9
ConsoleKit-libs.x86_64                    0.4.1-6.el6           @anaconda-CentOS-201703281317.x86_64/6.9
ConsoleKit-x11.x86_64                     0.4.1-6.el6           @base
...

// 설치된 특정한 패키지를 확인
$ yum list | grep mtr
mtr.x86_64                                2:0.75-5.el6          @anaconda-CentOS-201703281317.x86_64/6.9
mtr-gtk.x86_64                            2:0.75-5.el6          base

 

패키지 설치 경로 확인하기

그런데 문제가 있습니다. 패키지가 설치된 것을 확인헀고 버전까지 알아볼 수 있었지만 실제 어느 경로에 설치되어 있는지는 yum 으로는 알기가 어렵습니다. 이때 사용하는 것이 또 다른 패키지 관련 명령인 rpm 입니다. rpm 은 -q 로 시작하는 명령을 통해 다양한 조회 기능을 제공합니다. 눈치 채셨을 것 같습니다만 -q 는 query 의 앞 글자입니다. 

// 설치한 패키지가 실행이 안된다...
$ mtr
-bash: mtr: command not found

// 설치된 모든 패키지를 조회
$ rpm -qa | less
ftp-0.17-54.el6.x86_64
fipscheck-1.2.0-7.el6.x86_64
strigi-libs-0.7.0-2.el6.x86_64
libgcc-4.4.7-23.el6.i686
...

// 특정 패키지로 한정하여 조회
$ rpm -qa | grep mtr
mtr-0.75-5.el6.x86_64

// 특정 문자열을 가진 패키지의 설치 경로를 조회
$ rpm -ql mtr
/usr/sbin/mtr
/usr/share/doc/mtr-0.75
...

// Full Path 로 실행!
$ sudo /usr/sbin/mtr -v
mtr 0.75

결과를 보니 mtr 이 /usr/sbin 경로에 위치한 것을 확인할 수 있었습니다. 보통 /usr/sbin 은 PATH 에 잡혀 있을 가능성이 높습니다만, 환경에 따라 다를 수 있는 부분입니다. 패키지를 설치했는데 실행되지 않는다면, 경로를 조회해서 실행하시기 바랍니다! 자주 써야 한다면 .bash_rc 나 .bash_profile 등에 PATH 환경 변수에 추가해 주면 되겠습니다!

#bash #터미널 #redhat #centos #yum #패키지관리자 #rpm #패키지설치경로 #설치경로조회 

728x90
728x90

가끔 사용중인 리눅스 배포판의 버전과 커널의 버전 확인이 필요할때가 있습니다. 워낙에 배포판도 많고 커널의 버전도 다양하기 때문에 환경에 적합하게 구성된 패키지를 설치하지 않는 경우 이슈가 생길수도 있기 때문이지요. yum 이나 apt-get 으로 설치하는 경우에는 별 문제가 없겠지만 별도로 어플리케이션을 다운로드 받거나 빌드할 필요가 있을때는 버전을 잘~ 맞추어줄 필요가 있습니다.


Cent OS 를 이용하는 경우 아래와 같은 명령을 이용해서 운영체제의 버전과 커널의 버전을 확인할 수 있습니다. redhat 과 같은 다른 배포판 역시 비슷한 네이밍 컨벤션을 사용하고 있기 때문에 해당 폴더에서 어렵지 않게 관련된 파일을 확인할 수 있으니 참고하시기 바랍니다. 자꾸 까먹게 되어 블로그에 기록해 둡니다. 누군가에겐 또 도움이 되리라 믿으며..!!



#cat etc/centos-release

#uname -r 



728x90

+ Recent posts