기본 콘텐츠로 건너뛰기

리눅스에서의 패키지 소스 관리하기 - mj의 블로그

리눅스에서의 패키지 소스 관리하기 안녕하세요, mj입니다! 오늘은 리눅스에서 패키지 소스를 관리하는 방법에 대해 알아보겠습니다. 소스 패키지를 효율적으로 관리하는 것은 시스템의 안정성과 성능을 높이는 데 매우 중요합니다. 1. 패키지 관리 시스템 이해하기 리눅스에서는 다양한 패키지 관리 시스템이 존재합니다. 대표적으로 APT (Debian 계열)와 YUM (Red Hat 계열)가 있습니다. 각 시스템은 소스 패키지를 설치하고 관리하는 방법이 다르므로, 먼저 자신이 사용하는 배포판에 맞는 패키지 관리 시스템을 이해해야 합니다. 2. 소스 패키지 설치하기 소스 패키지를 설치하는 방법은 다음과 같습니다. git clone https://github.com/example/example.git cd example ./configure make sudo make install 위의 명령어는 GitHub에서 소스 코드를 클론하고, 빌드한 후 설치하는 과정입니다. 아래는 각 단계에 대한 설명입니다. git clone : 원격 저장소에서 소스 코드를 복사합니다. cd : 복사한 디렉토리로 이동합니다. ./configure : 설치를 위한 설정을 합니다. make : 소스 코드를 컴파일합니다. sudo make install : 컴파일된 프로그램을 시스템에 설치합니다. 3. 패키지 업데이트 및 제거 설치한 패키지를 업데이트하거나 제거하는 방법은 다음과 같습니다. sudo apt update sudo apt upgrade sudo apt remove package-name 위 명령어를 통해 시스템의 패키지 목록을 업데이트하고, 설치된 패키지를 업그레이드하며, 필요하지 않은 패키지를 제거할 수 있습니다. 4. 패키지 의존성 관리 소스 패키지를 설치할 때 의존성 문제를 해결하는 것도 중요합니다. 다음과 같은 방법으로 의존성을 관리할 수 있습니다. sudo apt-get install -f 위 명령어는 설치 중 발생한 의존성 문제를 해...

4. cat

안녕하세요, MJ 입니다.

cat 명령어는 일반 파일을 터미널상에 출력하는 명령어 입니다.

cat 명령어에 대해 알아보겠습니다.


 

cat 명령어의 도움말을 먼저 확인하고 자주 사용되는 옵션과  cat 명령어 사용법을 설명하겠습니다.

도움말

펼치기/접기

옵션 설명

-A: -vET 옵션과 같습니다.
-b: 빈줄에는 줄번호를 매기지 않습니다.
-e: -vE 옵션과 같습니다.
-E: 라인의 끝을 $ 문자로 표시합니다.
-n: 줄번호를 표시합니다.
-s: 반복적 인 빈 출력 라인을 억제합니다.
-t: -vT 옵션과 같습니다.
-T: 탭 문자를 ^T  로 대체하여 표시합니다.
-v: 엔터와 탭 문자를 보이도록 하지 않고, 라인의 끝에 윈도우의 줄바꿈문자(캐리지리턴:CR)
     를 보여줍니다.

캐리지 리턴 설명

키보드의 'Enter' 키에 그림을 보면,
아래로 가다가 왼쪽으로 꺾여있는 화살표가 그려져 있습니다.

엔터를 누르게 되면 아래로 가는 동작을 한 뒤에, 왼쪽으로 가는 동작을 한다는 뜻 입니다.
이는 윈도우에서의 동작으로 엔터 한번 입력에 두가지의 동작을 하게 됩니다.

하지만 리눅스에서는 엔터가 아래로 한번만 동작합니다.
리눅스 에서도 윈도우와 같이 아래로 간 다음 왼쪽으로 가면 문제가 없겠지만,
리눅스와 윈도우에서는 메모리에 데이터를 저장하는 방식이 달라, 윈도우와 리눅스는
그 순서가 바뀌게 됩니다. 리눅스에서는 왼쪽으로 먼저 간 다음, 아래로 가도록 동작하게 되어
내가 입력 한 모든 문자가 모두 지워지고 아래로 가게 됩니다.
(리눅스-리틀엔디안,윈도우-빅엔디안 차이)

그래서 텍스트 파일을 vi 로 열어보거나 하면 잘 보이긴 하지만, cat 이나, 스크립트 작성에서
파일을 실행 할때에는 작성자가 원하는대로 동작하지 못하게 되어, 리눅스에서는 이 줄바꿈 문자에 대해 신경을 쓰지 않을 수 없습니다.

그리하여 리눅스에서는 줄바꿈 문자를 LF (Line Feed)
윈도우에서의 줄바꿈문자는 CRLF 로 표현 합니다.
(Carriage Return)


모든 옵션에 대해 실습을 하지는 않지만, 다음 내용에 대해 실습을 하신다면 리눅스 엔지니어로 일 하시는 중에도 전혀 불편함 없이 사용 하실 수 있을것이라고 생각됩니다.

 

시작합니다.

 

1. 리눅스 파일 출력

cat 명령어 뒤에 파일 이름을 주면 파일의 내용을 출력할 수 있습니다.

[run-linux cat]$ ls -l
total 12
-rw-r--r-- 1 root root 18 Sep 24 15:11 A_file
-rw-r--r-- 1 root root 18 Sep 24 15:11 B_file
-rw-r--r-- 1 root root 18 Sep 24 15:11 C_file
[run-linux cat]$ cat A_file
A_file: testprint
[run-linux cat]$ cat A_file B_file
A_file: testprint
B_file: testprint
[run-linux cat]$ cat A_file B_file C_file
A_file: testprint
B_file: testprint
C_file: testprint
 
 

2. 각 라인 번호 메기기

    2-1) "-n" 옵션을 사용하여 라인 번호를 출력합니다.
[run-linux cat]$ cat A_file
line 1
line 2

line 5
line 6
[run-linux cat]$ cat -n A_file
     1  line 1
     2  line 2
     3
     4
     5  line 5
     6  line 6
 

    2-2) "-b" 옵션을 사용하여, 비어있는 라인에는 번호를 매기지 않습니다.

[run-linux cat]$ cat -b A_file
     1  line 1
     2  line 2

     3  line 5
     4  line 6

 
 

3. 파일 내용 출력 시 라인의 끝 확인

한 줄의 끝을 리눅스에서는 $ 기호로 표시합니다.
중요한 설정 파일을 작성할 때, 끝에 공백이 포함되면 안될 경우 이를 체크할 때에 용이합니다.
"-E" 옵션을 사용합니다.

[run-linux cat]$ cat A_file
username1: user_01
password1: pass01

username2:
user_02 password2: pass02
username3:
user_03 password3: pass03
username4:
user_04 password4: pass04 [run-linux cat]$ cat -E A_file username1: user_01$ password1: pass01$
username2: user_02$ password2: pass02 $
username3:
user_03$ password3: pass03$
username4:
user_04 $ password4: pass04$
: 극단적인 예로, 위 내용으로 계정이 설정되어있다면,
user_02 와 user_04 는 의도 한 공백 입력이 아니었다면, 로그인에 실패하게 될 것입니다.
 

 

4. 탭 대신 탭 기호를 출력
파일의 내용에 탭(TAB) 문자가 포함된 경우, 이것이 공백을 여러번 입력 한 것인지, 탭을 입력한것인지 알 수 없어 확인하기위해 탭 문자를 특수 기호로 표시되도록 할 수 있습니다.
: 탭 문자 대신 표시되는 특수기호는 컨트롤 i(대문자) 처럼 생겼습니다. →  ^I
대문자 T 옵션을 사용합니다.

[run-linux cat]$ ls -l
total 4
-rw-r--r-- 1 root root 31 Sep 24 14:58 A_file
[run-linux cat]$ cat A_file
hello   World~!
Nice to meet you
[run-linux cat]$ cat -T A_file
hello^IWorld~!
Nice to^Imeet you

5. 연속된 빈 라인 출력 안함
빈 라인이 두 번 이상 연속될 때, 하나의 빈 라인만 출력되게 만들기 위해 "-s" 옵션을 사용합니다.
: 다음 예시에서는 빈 라인의 수를 쉽게 파악할 수 있도록 -n 옵션을 함께 사용하여 줄번호를 표시하였습니다.

[run-linux cat]$ ls -l
total 4
-rw-r--r-- 1 root root 58 Sep 24 14:54 A_file
[run-linux cat]$ cat -n A_file
     1  line number 1
     2  line number 2
     3
     4
     5  line number 5
     6  line number 6
[run-linux cat]$ cat -n -s A_file
     1  line number 1
     2  line number 2
     3
     4  line number 5
     5  line number 6 
 

6. 출력 리다이렉션(>)을 사용하여 파일의 내용을 복사하듯 저장

[run-linux cat]$ ls -l
total 4
-rw-r--r-- 1 root root 18 Sep 24 14:49 A_file
[run-linux cat]$ cat A_file
A_file: testprint
[run-linux cat]$ cat A_file > A_file_backup
[run-linux cat]$ ls -l
total 8
-rw-r--r-- 1 root root 18 Sep 24 14:49 A_file
-rw-r--r-- 1 root root 18 Sep 24 14:52 A_file_backup
[run-linux cat]$ cat A_file
A_file: testprint
[run-linux cat]$ cat A_file_backup
A_file: testprint


7. 여러 개의 파일을 리다이렉션을 이용하여 하나의 파일로 저장

[run-linux cat]$ ll
total 12
-rw-r--r-- 1 root root 18 Sep 24 14:49 A_file
-rw-r--r-- 1 root root 18 Sep 24 14:49 B_file
-rw-r--r-- 1 root root 18 Sep 24 14:49 C_file
[run-linux cat]$ cat A_file
A_file: testprint
[run-linux cat]$ cat B_file
B_file: testprint
[run-linux cat]$ cat C_file
C_file: testprint
[run-linux cat]$ cat A_file B_file C_file > result_file
[run-linux cat]$ cat result_file
A_file: testprint
B_file: testprint
C_file: testprint

8. 리다이렉션(>>) 두개를 사용하여 파일 뒤에 내용추가

[run-linux cat]$ ls -l
total 12
-rw-r--r-- 1 root root 18 Sep 24 14:45 A_file
-rw-r--r-- 1 root root 18 Sep 24 14:45 B_file
-rw-r--r-- 1 root root 18 Sep 24 14:45 C_file
[run-linux cat]$ cat A_file
A_file: testprint
[run-linux cat]$ cat B_file
B_file: testprint
[run-linux cat]$ cat C_file
C_file: testprint
[run-linux cat]$ cat A_file > result_file
[run-linux cat]$ cat B_file >> result_file
[run-linux cat]$ cat C_file >> result_file
[run-linux cat]$ cat result_file
A_file: testprint
B_file: testprint
C_file: testprint

 

 

9. 파일 사이에 내용 추가하기.

cat 명령 다음에 파일 이름 대신 하이픈(-) 을 사용하면 표준 입력을 통해 입력받은 내용을 출력할 수 있다고 설명했었습니다. 이 기능을 사용하면, 여러 파일을 합칠 때 파일 사이에 사용자가 원하는 임의의 내용을 추가할 수 있습니다.

[run-linux cat]# ls -l
total 16
-rw-r--r-- 1 root root 18 Sep 24 14:36 A_file
-rw-r--r-- 1 root root 18 Sep 24 14:36 B_file
-rw-r--r-- 1 root root 18 Sep 24 14:36 C_file
[run-linux cat]# cat A_file
A_file: testprint
[run-linux cat]# cat B_file
B_file: testprint
[run-linux cat]# cat C_file
C_file: testprint
[run-linux cat]# cat A_file B_file C_file - > result_file
##### THE END ##### -> 하이픈(-) 위치에 추가될 내용을 입력 '[Ctrl + D] 입력'
[run-linux cat]# ls -l
total 16
-rw-r--r-- 1 root root 18 Sep 24 14:36 A_file
-rw-r--r-- 1 root root 18 Sep 24 14:36 B_file
-rw-r--r-- 1 root root 18 Sep 24 14:36 C_file
-rw-r--r-- 1 root root 74 Sep 24 14:37 result_file
[run-linux cat]# cat result_file
A_file: testprint
B_file: testprint
C_file: testprint
##### THE END #####  <<-- 내가 입력 한 문자가 파일에 저장된 것을 확인.
[run-linux cat]#
 

cat 명령어에 대해 알아보았습니다.


문의사항은 댓글을 남겨주시면 성심껏 답변을 드리도록 하겠습니다.


감사합니다.

댓글

가장 많이 본 글

5. 버추얼박스:설정 (+네트워크의 종류 설명)

안녕하세요 , MJ 입니다 .   우리가 실습을 하는데에 필요한 버추얼박스의 설정에 대해 설명을 합니다 .     버추얼 박스의 설정에는 종류별로 메뉴가 구분되어있습니다 . 1-1. 환경설정 1-2. 네트워크 설정 1-3. 미디어 설정       다른 설정도 존재하지만 , 필요한 일이 없을것이 예상되고 , 위 3 가지 설정에 대해서만 알고 계신다면 버추얼 박스로 실습을 하는데에 아무런 지장이 없고 또 취업을 하신 뒤에 실무에 가셔서도 문제가 될 것이 없습니다 .   환경설정 부터 확인하겠습니다 . 1-1. 환경설정 : 우리가 알아야 편한 내용은 2 가지가 있는데 VM 의 기본 저장경로 설정 " 파일 (F)" 의 환경설정 (P) … [ 단축키 : Ctrl+G] 을 누르면 환경설정 창이 보이고 , 제일먼저 확인되는 기본 머신 폴더 (M) 입니다 . VM 을 저장 할 경로를 지정하는 것인데 VM 은 가상 머신으로 디스크의 용량과는 상관없이 , 가상 컴퓨터의 정보가 저장되는 것으로 , 텍스트 파일형태로 저장되어있고 , 그 내용에는 CPU 를 몇개 사용하도록 되어있는지 , 메모리는 얼마만큼을 할당하도록 되어있는지 , 네트워크 인터페이스는 몇 개가 어떻게 설정되어있는지 ... 등 가상의 컴퓨터를 정의하는 내용의 파일이 저장되는 경로가 되고 ,   디스크 파일은 별도 미디어 설정에서 관리가 되지만 VM 을 생성하는 과정에서 만든 디스크는 VM 저장경로에 함께 생성 되어있어 사용자가 파일탐색기로 경로를 찾아가보면 파일의 사이즈로 아 이것이 디스크 파일인가보구나 하고 알 수 있습니다 .( 용량이 크고 ...

MJ. 로또의 회차별 당첨번호 API 확인 (예제포함)

안녕하세요, MJ 입니다.   로또 당첨번호를 확인하기위해 동행복권 사이트를 찾아 가거나, 포털사이트에서 검색을 할 수 있지만, 다음 주소를 브라우저에 붙여넣거나, curl 명령을 이용하여 터미널에서 손쉽게 확인할 수 있는 방법이 있어 소개를 드리려고 합니다.     < URL> https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo= < 회차번호 >     - API 주소 활용 방법 브라우저에 URL 입력하여 확인 .           >> 인터넷 주소창에 URL 을 입력       ( 윈도우 ) cmd / ( 리눅스 ) bash 터미널에서 curl 을 사용하여 확인 .( 예 : 123 회차 ) >> curl " https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo= 123 " <cmd>   <bash>         python/java/c 등 코드를 만들어서 확인 . >> 코드를 짜서 확인하는 것이 , 데이터를 가공하기도 좋고 , 앞으로 출현할 숫자를 분석하기도 좋지만 , 자신이 원하는 대로 데이터를 가공하기 위해 시간과 노력의 투자가 필요함 .       [ (API 결과 예시 ) 123 회차 조회결과 ] >> json 형식으로 공백 , 줄바꿈이 없이 순서도 제멋대로 확인되지만 (브라우저나 터미널에서 확인하면), 다음과 같은 데이터가 확인됨 .   <확인한 정보 줄맞춰봄> #######...