반응형

개발을 하다 보면 프로젝트 구조를 한눈에 파악하기 위해 tree 명령어를 사용하게 됩니다. 하지만 node_modules 같은 불필요한 디렉토리는 제외하고 싶을 때가 많죠. 이번 글에서는 특정 디렉토리를 제외하고 tree 명령어를 사용하는 방법을 정리해 보겠습니다.


1. tree 명령어란?

tree 명령어는 디렉토리 및 파일 구조를 계층적으로 출력하는 명령어입니다. 기본 사용법은 다음과 같습니다.

$ tree

하지만 프로젝트 폴더에서 실행하면 node_modules나 dist 같은 불필요한 디렉토리까지 출력되어 가독성이 떨어질 수 있습니다. 이를 해결하는 방법을 알아봅시다.


2. 특정 디렉토리 제외하는 방법

2.1 기본 사용법

특정 디렉토리를 제외하려면 -I 옵션을 사용하면 됩니다.

$ tree -I "node_modules"
  • -I "node_modules" : node_modules 디렉토리를 제외하고 출력합니다.

2.2 여러 개의 디렉토리 제외하기

여러 디렉토리를 제외하고 싶다면 |(파이프)로 구분하면 됩니다.

$ tree -I "node_modules|dist|.git"
  • node_modules, dist, .git 디렉토리를 제외하고 출력합니다.

3. 출력할 깊이(레벨) 제한하기

깊이를 제한하고 싶다면 -L 옵션을 사용하면 됩니다.

$ tree -L 2
  • -L 2 : 2단계까지만 출력

이 옵션을 함께 사용하면 불필요한 정보 없이 프로젝트 구조를 깔끔하게 볼 수 있습니다.

$ tree -L 3 -I "node_modules|dist"
  • -L 3 : 3단계(깊이)까지만 출력
  • -I "node_modules|dist" : node_modules와 dist 디렉토리 제외

4. 유용한 추가 옵션

옵션 설명

-a 숨김 파일 포함
-d 디렉토리만 출력 (파일 제외)
-h 파일 크기 표시 (사람이 읽기 쉬운 형식)
-f 전체 경로 출력
-p 파일 및 디렉토리 퍼미션 표시
-s 파일 크기 표시 (바이트 단위)
-t 파일 수정 시간 기준 정렬
-r 정렬 순서를 반대로 출력
--charset=UTF-8 문자 인코딩 설정 (한글 깨짐 방지)

5. 실용적인 예제

$ tree -L 3 -I "node_modules|dist" -h -d
  • -L 3 : 3단계(깊이)까지 출력
  • -I "node_modules|dist" : node_modules, dist 제외
  • -h : 파일 크기 읽기 쉽게 출력
  • -d : 디렉토리만 출력 (파일 제외)

이렇게 하면 node_modules을 제외하고, 원하는 깊이까지만 프로젝트 구조를 한눈에 파악할 수 있습니다.


6. 마무리

tree 명령어는 프로젝트의 구조를 쉽게 파악하는 데 유용한 도구입니다. 하지만 불필요한 디렉토리가 출력되면 오히려 불편할 수 있습니다. -I 옵션과 -L 옵션을 적절히 활용하면 가독성을 높이고, 원하는 정보만 깔끔하게 볼 수 있습니다.

위 명령어들을 잘 활용하여 더욱 효율적으로 프로젝트 구조를 관리해 보세요! 🚀


🏷 추천 SEO 태그

#Linux #터미널 #tree명령어 #node_modules제외 #개발팁

반응형

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

[Ubuntu] NAS Mount 하기  (0) 2022.03.29
[Linux] vi 스왑 파일(E325)  (0) 2016.11.01
[Ubuntu] vim 설치 및 설정  (0) 2016.10.10
[Linux] 리눅스 시스템 디렉토리  (0) 2016.10.06
[Linux] ls, file, less  (0) 2016.10.06
반응형

우분투 20.04 에서 NAS의 폴더를 마운트 하기

 

cifs-utils 설치

- 가상환경에서 진행을 해서 캡처를 하지 못함..

sudo apt install cifs-utils

 

Mount 하기

- NAS IP와 경로, ID, PW 필요

NAS IP : 192.168.0.26

NAS 폴더 : data

id : test

pw : 1234

읽기 쓰기 : rw

 

sudo mount -t cifs //192.168.0.26/data /home/terror/nas -o user="test",pass="1234",rw

 

반응형
반응형

예전에 작성한 파일을 열려고 했는데 'Found a swap file by the name `이라며 읽기 전용으로만 열렸다..

대충 검색에 의하면 vi로 파일을 열게 되면 스왑 파일이 생기는데 vi가 정상 종료 되면 이 파일이 자동으로 삭제가 되지만

비정상 종료 될 경우 이 파일이 남아 있어 다음에 또 열게 되면 이와 같은 에러가 발생한다고 한다.



위의 사진이 파일을 열었을 때 나오는 화면이다.

파일이 열려 있다는 이야기 인데.. 10일 전부터 열려 있네 ?


해결방법을 알아보자.

우선 다른 프로세스가 사용중인지 확인

ps -ef | grep (파일명)

한줄이 나온다면 사용중인 프로세스가 없는 것이고

그렇지 않다면 사용중인 프로세스가 있는 것이니

그 프로세스를 중지 하고 수정하면 될 것이다.


나같은 경우 한줄이 나왔다. 사용 중인 프로세스가 없다.

즉, 에디터로 작업 중 비정상 종료 된 것이다.

그럼 스왑 파일을 먼저 삭제 하고 다시 에디터를 이용해서 수정하면 된다.

rm -f (스왑파일) // 위의 경우 `.histogram.cpp.wsp` 가 된다.









반응형
반응형

리눅스를 쓰다보면 vi, vim은 쓰게 된다.

vim이 좋다고 해서 쓰려고 했는데 음.. 탭이라던가.. 표시되는게 마음에 안들어서

설정을 어찌하나 알아보았다.

설정에 관련된 파일은 2가지다.


시스템 설정 파일과 사용자 설정 파일이 있는데,  사용자 설정 파일만 다뤄 보도록 하겠다.


파일 위치

시스템 설정 파일 : /etc/skel/.vimrc

사용자 설정 파일 : ~/.vimrc

설치 : sudo apt-get install vim


우선 설치하고 기본 상태의 화면이다.

탭 간격이 무지 길다. 

또한 c언어에 맞게 커서가 움직이지 않는다.

그래서 이 2가지를 한번 바꿔 보겠다.


$ vi ~/.vimrc


처음에는 파일이 없다. 그냥 만들어주면 된다.


빈 파일을 하고 설정하고 싶은 내용을 넣어 준다.


설정


set tabstop=4        탭 간격 조정

set shiftwidth=4     c 문법 적용 시 자동 탭 간격

set cindent            c문법 적용



간단하게 3개만 적용하겠다.





나머지 다양한 설정들은 github에 있어서 url을 추가

https://gist.github.com/simonista/8703722


그리고 궁금했다.. /etc/skel/.vimrc 는 존재 하는가 ?


존재 하지 않는다.







반응형

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

[Ubuntu] NAS Mount 하기  (0) 2022.03.29
[Linux] vi 스왑 파일(E325)  (0) 2016.11.01
[Linux] 리눅스 시스템 디렉토리  (0) 2016.10.06
[Linux] ls, file, less  (0) 2016.10.06
[Linux] pwd, cd, ls  (0) 2016.10.06
반응형

리눅스 시스템 디렉토리..

디렉토리 마다 뭐가 들어있나 정리.


디렉토리 

설명 

 루트 디렉토리. 파일 시스템의 시작점.

/bin 

시스템 부팅과 실행에 필요한 바이너리(프로그램)들을 포함하고 있다. 

/boot 

리눅스 커널, 시작 RAM 디스크 이미지(시스템 부팅 시 필요한 드라이버가 있음), 그리고 부트로더를 포함하고 있다.

주요 파일:

 - /boot/grub/grub.conf 또는 menu.lst -> 부트로더 설정 파일

 - /boot/vmlinuz, 리눅스 커널 

/dev 

 디바이스 노드를 갖고 있는 특수한 디렉토리, "모두 다 파일이다" 라는 말에는 디바이스도 포함하고 있다.

이 디렉토리는 커널이 인식하고 있는 모든 디바이스들을 관리한다.

/etc

/etc 디렉토리에는 시스템 전반의 환경설정 파일이 들어잇다. 또한 시스템 부팅 시에 시스템의 각 서비스를 시작하는 쉘 스크립트 전부가 있다. 이 디렉토리의 모든 파일은 텍스트 형식이다.

주요 파일

 - /etc/crontab : 자동 실행되는 업무를 정의하는 파일

 - /etc/fstab : 저장장치 테이블과 해당 마운트 포인트 정보

 - /etc/passwd : 사용자 계정 정보 

/home 

일반적인 설정 상태에서는 각 사용자마다 /home 디렉토리를 갖게 된다. 일반 사용자는 홈 디렉토리 내에서만 파일을 편집할 수 있으며 이러한 제한은 사용자의 잘못된 조작으로부터 시스템을 보호하기 위한 조치다. 

/lib 

주요 시스템 프로그램에서 사용하는 공유 라이브러리 파일이 저장되어 있다. 이는 윈도우즈의 DLL 과 비슷한 것이다. 

/lost+found

포맷된 각 파티션이나 ex3 처럼 리눅스 파일시스템에서 사용하는 디바이스라면 이 디렉토리가 있다. 이것은 파일 시스템에 문제가 생겼을 때 부분적인 복구를 도와준다. 시스템에 심각한 상황이 발생하지만 않는다면 이 디렉토리는 늘 비어있다. 

/media 

최신 리눅스 시스템에서 /media 디렉토리는 USB 드라이버, CD-ROM 등과 같은 휴대용 장치가 시스템에 연결될 때 자동으로 마운트되는 마운트 포인트는 여기에 저장된다. 

/mnt 

구식 리눅스 시스템에서는 /mnt 디렉토리가 수동으로 휴대용 장치를 제거하기 위한 마운트 포인트를 저장한다. 

/opt 

/opt 디렉토리는 추가적인 소프트웨어를 설치할 때 사용한다.

여기에는 주로 상업용 소프트웨어가 설치된다. 

/proc 

/proc 디렉토리는 특수하다. 하드 드라이브에 실제로 저장된 파일이라는 의미의 파일시스템이 아니라 이것은 리눅스 커널이 관리하는 가상 파일시스템을 말한다. 이곳에 저장된 것들은 커널 자체를 들여다 볼 수 있는 파일이다. 이 파일들은 텍스트 형식이고 커널이 컴퓨터는 어떻게 관리하고 있는지에 대한 단면을 보여줄 것이다 

/root

 루트 계정의 홈 디렉토리.

/sbin 

시스템 바이너리 파일 들이 있다. 이 파일들은 일반적으로 슈퍼유저를 위한 중요한 시스템 작업을 수행하는 프로그램들이다. 

/tmp 

/tmp 디렉토리는 임시 저장용 디렉토리다. 다양한 프로그램들에 의해서 만들어지는 임시 파일들을 저장하는 공간이다. 일부 설정 환경에서는 시스템이 재부팅될때마다 이 디렉토리를 비우도록 하는 옵션이 있다. 

/usr 

/usr 디렉토리 트리는 리눅스 시스템에서 가장 큰 트리 구조를 갖고 있다. 여기에는 일반 사용자가 사용하는 모든 프로그램과 지원 파일들이 모두 들어잇다. 

/usr/bin 

사용중인 리눅스 배포판이 설치한 실행 프로그램들이 있다. 여기는 일반적인 수많은 프로그램들을 저장하는 공간으로 사용되지 않는다. 

/usr/lib 

프로그램을 위한 공유 라이브러리가 있다. 

/usr/local 

/usr/local  트리에는 일반적으로 사용하는 배포판 프로그램들 대신 시스템 전반에 걸쳐 사용되는 프로그램들이 저장되는 공간이다. 소스 코드로 컴파일된 프로그램은 주로 /usr/local/bin 디렉토리에 설치된다. 최신 리눅스 시스템에서는 이러한 트리가 존재하나 시스템 관리자가 이 디렉토리에 별도 작업을 하지 않는 이상 비어있는 상태일 것이다. 

/usr/sbin

시스템 관리 프로그램이 있다. 

/usr/share 

/usr/share 디렉토리에는 /usr/bin 디렉토리에 있는 프로그램이 사용하는 공유 데이터를 저장하며 또한 디폴트 설정파일, 아이콘, 스크린 배경화면, 음악 파일 등이 있다. 

/usr/share/doc 

시스템에 설치된 대부분의 패키지에는 문서파일이 포함되어 있기 마련인데, /usr/share/doc 디렉토리에는 그러한 패키지 문서 파일이 저장된다. 

/var 

/tmp 및 /home 디렉토리를 제외하면 지금까지 살펴본 대부분의 디렉토리들은 상대적으로 정적인 디렉토리들이다. 즉 디렉토리 내용이 거의 변하지 않는다. 그러한 점에서 /var 디렉토리 트리는 상대적으로 변하기 쉬운 데이터를 모아두는 공간이다. 다양한 데이터베이스, 스풀 파일, 사용자 메일 등과 같은 데이터가 저장된다. 

/var/log 

/var/log 디렉토리에는 시스템 활동을 기록하는 로그 파일이 들어있다. 매시간마다 시스템 상황을 확인하는 매우 중요한 기록 파일이다. 그 중에서 가장 유용한 것 하나가 /var/log/messages 디렉토리다. 보안상의 이유로 일부 시스템에서는 슈퍼유저 권한이 있어야만 로그 파일들을 확인할 수 있다. 



반응형

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

[Linux] vi 스왑 파일(E325)  (0) 2016.11.01
[Ubuntu] vim 설치 및 설정  (0) 2016.10.10
[Linux] ls, file, less  (0) 2016.10.06
[Linux] pwd, cd, ls  (0) 2016.10.06
[Linux] 간단한 명령어  (0) 2016.10.06
반응형

ls - 디렉토리 내용 나열하기

file - 파일 타입 확인하기

less - 파일 내용 표시하기


1. ls  : 현재 디렉토리의 목록


2. ls 경로 : 다른 디렉토리의 목록


3. ls 경로 경로 : 여러 디렉토리의 목록을 볼 수 있다.


ls -l : 자세한 속성까지 확인


명령어 사용 

명령어 -옵션 명령인자

대부분 명령어를 입력하고 그 다음에 -(대시)와 함께 옵션을 명시한다.

-l 과 같이 단축 옵션을 사용하기도 하지만 GNU 프로젝트에서 사용하는 명령어들을 포함하여 많은 명령어들이 long 옵션을 제공한다.

long 옵션에는 --(대시 대시) 기호를 선행하여 쓴다.

여러 옵션을 한 명령어에 연이어 사용할 수 있다.


옵션 

long 옵션 

설명 

-a 

--all 

모든 파일 보기. 숨김파일까지도 표시 

-d 

--directory 

보통 ls 명령어에 디렉토리를 명시하면 해당 디렉토리 자체가 아닌 디렉토리 내용을 확인할 수 있는데, 이 옵션을 -l과 함께 사용하면 디렉토리 내용이 아닌 디렉토리 자체 정보를 자세하게 확인 가능하다. 

 -F

--classify 

이 옵션은 지시 문자를 추가로 표시한다. 예를 들면 디렉토리명이면 끝에 /(슬래시)를 덧붙인다. 

-h 

--human-readable 

-l 옵션과 함께 사용하여 파일 크기를 사람이 인식하기 쉬운 형태로 표시해준다. 

-l 

 

좀 더 자세한 정보를 출력해준다. 

-r 

--reverse 

출력 결과를 역순으로 표시한다. 일반적으로 ls는 알파벳 오름차순으로 표시한다. 

-s 

 

파일 크기순으로 정렬한다. 

-t 

 

파일 수정 시간순으로 정렬한다. 


ls -l 정보

빨간 네모안을 기준으로 설명하게씀

항목 

의미 

drwxr-xr-x 

 파일의 접근 권한 정보. 첫 번째 문자는 파일 형식을 알려주는 정보 -(대시)로 시작하는 파일은 일반 파일, 

d는 디렉토리를 나타낸다.그 다음 세문자는 파일의 소유자의 접근 권한, 그 다음 세문자는 그룹에 대한 권한, 그리고 마지막 세글자는 그 외 사용자에 대한 권한을 표시

하드 링크의 수 

weknow 

파일 소유자의 사용자 이름 

weknow 

파일을 소유한 그룹 이름 

4096 

파일 크기(바이트 단위) 

10월 5 18:06 

파일 마지막 수정 날짜와 시간 

Desktop 

파일명 




file 명령어로 파일 타입 확인

사용법 : file filename



less 명령어로 파일 정보 보기

사용법 : less filename


이렇게 표시해준다. 명령키를 통해 컨트롤 할 수 있다.

Q를 누르면 종료된다.

less 명령키

명령키 

실행 

Page Up 또는 b 

한 페이지 위로 

Page Down 또는 스페이스바 

한 페이지 아래로 

위쪽 방향키 

한 줄 위로 

아래쪽 방향기 

한 줄 아래로 

텍스트 파일 맨 마지막으로 이동 

1G 또는 g 

 텍스트 파일 맨 처음으로 이동

/문자열 

아래 방향으로 진행하며 입력된 문자열 찾기 

이전 검색어의 다음 찾기 

도움말 보기 

 q

종료 








반응형

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

[Ubuntu] vim 설치 및 설정  (0) 2016.10.10
[Linux] 리눅스 시스템 디렉토리  (0) 2016.10.06
[Linux] pwd, cd, ls  (0) 2016.10.06
[Linux] 간단한 명령어  (0) 2016.10.06
[Ubuntu] 호스트명 변경 (사용자@호스트명)  (0) 2016.10.05
반응형

1. pwd(Print Working Directory) : 현재 작업 디렉토리 표시


2. ls : 현재 작업 디렉토리에 있는 파일과 하위 디렉토리 표시


3. cd : 현재 작업중인 디렉토리 변경

절대 경로명 : 루트디렉토리에서 원하는 디렉토리 또는 파일까지의 경로


상대 경로명 : 현재 작업 디렉토리가 시작점.



유용한 단축 표현

cd : 사용자 디렉토리로 이동. "cd ~ "도 같은 기능

cd - : 이전에 작업한 디렉토리로 이동.









반응형

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

[Linux] 리눅스 시스템 디렉토리  (0) 2016.10.06
[Linux] ls, file, less  (0) 2016.10.06
[Linux] 간단한 명령어  (0) 2016.10.06
[Ubuntu] 호스트명 변경 (사용자@호스트명)  (0) 2016.10.05
[Linux] OpenCV 설치/삭제  (0) 2016.10.04
반응형
커맨드라인을 우선 공부하기로 했다.

리눅스 환경에서 개발을 하려면 리눅스와 친해져야 할거 같아서(?)


아무튼.. 뭐.. 쉬운거부터 쭉 정리를 해보자앗.



1. date : 현재 시간과 날짜



2. cal : 달력 표시


3. df : 현재 사용중인 디스크 정보와 사용가능한 디스크의 용량


4. free : 메모리 사용 현황



5. exit : 터미널 종료




반응형

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

[Linux] ls, file, less  (0) 2016.10.06
[Linux] pwd, cd, ls  (0) 2016.10.06
[Ubuntu] 호스트명 변경 (사용자@호스트명)  (0) 2016.10.05
[Linux] OpenCV 설치/삭제  (0) 2016.10.04
make 유틸리티  (0) 2016.09.30
반응형

리눅스를 기초부터 하기로 했다.

오랜만에 하려니 잘 모르겠네


그런데 설치를 대충 하다 보니까 눈에 거슬리는게 있었다..

바로 호스트명..


처음 호스트명이 VM에 깔다보니까 무진장길었다.

아무도 설치할때 신경을 안쓸듯....... 나만 그런가 ?


아무튼 변경해 보자.


처음에 나오는 모양이

Username@HostName:~$

ubuntu@ubuntu-virture-machine

그렇다 나는 "ubuntu@ubuntu-virture-machine:~$" 로 나와서 터미널이 엄청 지저분했다.


파일 몇개를 수정하고 reboot을 해주면 된다.

1. 우선 /etc/hostname 파일을 수정한다.


원하는 내용으로 설정하고 저장






2. /etc/hosts 변경


hostname과 동일하게 변경 후 저장.


3. 재부팅


위의 과정을 다 마치면 호스트명이 변경된 것을 확인할 수 있다.



반응형

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

[Linux] pwd, cd, ls  (0) 2016.10.06
[Linux] 간단한 명령어  (0) 2016.10.06
[Linux] OpenCV 설치/삭제  (0) 2016.10.04
make 유틸리티  (0) 2016.09.30
vi 에디터  (0) 2016.09.30
반응형

프로젝트를 진행하는데 OpenCV를 사용하게 되었다..


OpenCV가 무엇인가 하니


- 위키백과

OpenCV(Open Computer Vision)은 오픈 소스 컴퓨터 비전 C 라이브러리이다. 원래는 인텔이 개발하였다. 윈도, 리눅스 등의 여러 플랫폼에서 사용할 수 있다. 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 인텔 CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 Intel Performance Primitives (IPP)를 지원한다.


위키에서 위와같이 정의하고 있다.

이미지 프로세싱을 편리하게 쓸 수 있는것이다.

필요한 패키지 부터 설치를 해보자.


RaspberryPi 에 설치를 할 것인데 Raspbian은 우분투랑 설치 법이 같다.


1.필요한 패키지 설치

CMake와 G++이 필요 하다고 한다.

g++은 이미 설치되어 있다고 나온다.. 다른 버전은 잘 모르겠다.



2.OpenCV 다운

링크 : http://opencv.org/


링크로 이동하여 최신 버전을 다운받는다.

주의 : 2.X 버전과 3.X 버전이 나뉘니까 확인 잘하고 받으세요

        Download로 이동하면 모든 버전 확인 가능합니다.




압축을 풀고 터미널창에서 압축을 풀은 디렉토리로 이동한다.

나같은 경우 경로가 ~/Downloads/opencv-2.4.13 이다.

"~" 물결표는 사용자 디렉토리를 가리킨다.


이동후 cmake를 한다.


뒤에 점(.)을 안 찍으면 사용법을 아주 친절히 가르쳐주니 점을 꼭 쓰도록..


완료가 되면 위와 같이 나온다.


자.. 이제 cmake까지 되엇다면 make를 할 차례

make는 cmake보다 쉽다.

그냥 sudo make 만 치면 된다.

생각보다 오래 걸린다....



힘겹게 끝냈으니 make install을 해주자..





설치 끝


설치확인을 해보자





삭제도 해보자.. 버전을 잘못설치해서 삭제할 일이 생겼다...

설치 했던 디렉토리로 이동해서 sudo make uninstall 해주면 된다.



삭제 확인은 설치 확인과 동일하게 하면 된다.

없다고 나오면 삭제 완료





반응형

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

[Linux] 간단한 명령어  (0) 2016.10.06
[Ubuntu] 호스트명 변경 (사용자@호스트명)  (0) 2016.10.05
make 유틸리티  (0) 2016.09.30
vi 에디터  (0) 2016.09.30
gdb 기초 사용법 (메모리, 레지스터 내용 읽기)  (0) 2015.09.16

+ Recent posts