vi 사용하면서 Color 셋팅에 매번 어려움을 겪어 온 터라 이번에 아예 정리를 해 놓을 심산으로 적어둔다.
bash 기준이다.

1. 캐릭터셋 지정

.bashrc 파일에 캐릭터셋 지정을 한다.

export LANG=ko_KR.UTF-8;
export LC_ALL=ko_KR.UTF-8

2. xterm color 지정

.bash_profile 파일에 아래와 같이 선언한다.

export TERM=xterm-color

3. vi 옵션 지정

syntax on
set ai
set cindent
set ts=4
set sw=4
set hlsearch
colorscheme koehler
set background=light
set encoding=utf-8

vi 옵션 중 colorscheme 부분이 vi의 color를 지정하는 부분이며 color set의 이름 중 하나인 koehler는 /usr/share/vim/vim70/colors/에 위치한 파일을 찾아 사용한다.

가장 찾기 어려웠던 부분은 2번 부분으로 검색에서 찾아도 나타나지 않는 부분이였다.
다음부터는 vi color로 삽질하지 말자!!!

신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret
리눅스에 하는 작업이라곤 고작 vi로 프로그래밍 하고,
Apache나 MySQL 설정 파일 변경 등이 대부분이라서...
오래 사용하고서도 아는 기능이 많이 없었다.
그런데 요 근래 발견한 재미 있는 기능들을 통해서 다시 한번 리눅스의 재미에 맛을 들이기 시작했다.
물론 이전에도 리눅스를 좋아했지만 말이다.
알게 된 재미있는 기능 몇가지를 아래에 써 본다.

1. split

split 파일명

-rw-r--r--  1 root root   73568 Dec 12 10:12 xaa
-rw-r--r--  1 root root   73601 Dec 12 10:12 xab
-rw-r--r--  1 root root   73559 Dec 12 10:12 xac
-rw-r--r--  1 root root   73613 Dec 12 10:12 xad
-rw-r--r--  1 root root   73537 Dec 12 10:12 xae
-rw-r--r--  1 root root   74393 Dec 12 10:12 xaf
-rw-r--r--  1 root root   86555 Dec 12 10:12 xag
-rw-r--r--  1 root root   86931 Dec 12 10:12 xah
-rw-r--r--  1 root root   83555 Dec 12 10:12 xai
-rw-r--r--  1 root root   84163 Dec 12 10:12 xaj
-rw-r--r--  1 root root   84080 Dec 12 10:12 xak
-rw-r--r--  1 root root   84178 Dec 12 10:12 xal
-rw-r--r--  1 root root   48057 Dec 12 10:12 xam

기본적으로 x로 시작하는 PREFIX가 붙는다.
아무런 옵션을 주지 않으면 1,000 line 단위로 짜른다.

split [OPTION] [INPUT [PREFIX]]

문법은 위와 같으므로 PREFIX 역시 수정할 수 있다.
사용할 수 있는 옵션으로는 다음과 같은 것들이 있다.

-a, --suffix-length=N
             use suffixes of length N (default 2)

split -a3 maillog.4
-rw-r--r--   1 root root  203210 Dec 12 10:19 xaaa
-rw-r--r--   1 root root  203238 Dec 12 10:19 xaab
-rw-r--r--   1 root root  203110 Dec 12 10:19 xaac
-rw-r--r--   1 root root  203240 Dec 12 10:19 xaad
-rw-r--r--   1 root root  203106 Dec 12 10:19 xaae
-rw-r--r--   1 root root  203244 Dec 12 10:19 xaaf
-rw-r--r--   1 root root  203156 Dec 12 10:19 xaag
-rw-r--r--   1 root root  203188 Dec 12 10:19 xaah
-rw-r--r--   1 root root  203218 Dec 12 10:19 xaai
-rw-r--r--   1 root root  203136 Dec 12 10:19 xaaj
-rw-r--r--   1 root root  203238 Dec 12 10:19 xaak
-rw-r--r--   1 root root  203106 Dec 12 10:19 xaal
-rw-r--r--   1 root root  203242 Dec 12 10:19 xaam
-rw-r--r--   1 root root  203138 Dec 12 10:19 xaan
-rw-r--r--   1 root root  203214 Dec 12 10:19 xaao
-rw-r--r--   1 root root  203188 Dec 12 10:19 xaap
-rw-r--r--   1 root root  203164 Dec 12 10:19 xaaq
-rw-r--r--   1 root root  203236 Dec 12 10:19 xaar
-rw-r--r--   1 root root  203136 Dec 12 10:19 xaas
-rw-r--r--   1 root root  203238 Dec 12 10:19 xaat
-rw-r--r--   1 root root   32432 Dec 12 10:19 xaau

-a 옵션을 주면 뒤에 자동으로 붙는 suffix의 길이를 조정할 수 있다.

-b, --bytes=SIZE
             put SIZE bytes per output file

-C, --line-bytes=SIZE
             put at most SIZE bytes of lines per output file

-d, --numeric-suffixes
             use numeric suffixes instead of alphabetic

-l, --lines=NUMBER
             put NUMBER lines per output file

-b 옵션은 파일 사이즈로 파일을 나눌 수 있다.
-C 옵션은 옵션에 주어진 사이즈 내에서 해당 라인수를 찾아 자른다. 말로 설명하기 어려우니 다음 예제를 보자.

split -C1000 maillog.4
split: Output file suffixes exhausted
ll -h | grep xaa 
-rw-r--r--   1 root root  987 Dec 12 10:30 xaa

Output file suffixes exhausted란 에러는 더이상 suffix를 붙여서 만들 수 있는 파일명이 없을 때 나타난다.
어째든 이렇게 하면 1000byte보다 작은 가장 마지막 라인에서 잘린다.
그렇다면 만일 한 라인의 byte보다 작게 한다면 어떨까?

split -C100 maillog.4 
split: Output file suffixes exhausted
ll -h | grep xaa
-rw-r--r--   1 root root  100 Dec 12 10:34 xaa

vi xaa
Nov 12 04:02:03 i65496 sendmail[14401]: kABJ22sk014401: from=root, size=460, class=0, nrcpts=1, msgi

딱 100byte에서 끝나는 것을 볼 수 있다.

-d 옵션은 suffix를 숫자로 붙이는 것이고, -l 옵션은 라인수로 자르는 옵션이다.

2. cal

쉽게 이야기 해서 달력을 보여주는 기능이다.
man cal 했더니 글자들이 다 깨져서 cal --help로 옵션을 보고 하나 하나 해 보는 수밖에 없었다.

cal --help
usage: cal [-13smjyV] [[month] year]

month와 year의 사용법은 다 알테고 ^^ 나머지는 아래와 같다.

cal -1
   December 2006
Su Mo Tu We Th Fr Sa
               1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


1달을 보여준다. 기본 옵션과 같아서 별 다를께 없다.

cal -13
   November 2006         December 2006         January 2007    
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
         1  2  3  4                  1  2      1  2  3  4  5  6
5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13
12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20
19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30 31         
                     31


앞뒤로 1달씩 총 3달을 보여준다.

cal -s
   December 2006
Su Mo Tu We Th Fr Sa
               1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


sunday를 제일 앞으로 놓고 보여준다.

cal -m
   December 2006
Mo Tu We Th Fr Sa Su
            1  2  3
4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


monday를 가장 앞에 놓고 보여준다.

cal -j
      December 2006
Sun Mon Tue Wed Thu Fri Sat
                   335 336
337 338 339 340 341 342 343
344 345 346 347 348 349 350
351 352 353 354 355 356 357
358 359 360 361 362 363 364
365


1년 중 몇일인지를 보여준다.

cal -y   
                              2006                               

      January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
1  2  3  4  5  6  7             1  2  3  4             1  2  3  4
8  9 10 11 12 13 14    5  6  7  8  9 10 11    5  6  7  8  9 10 11
15 16 17 18 19 20 21   12 13 14 15 16 17 18   12 13 14 15 16 17 18
22 23 24 25 26 27 28   19 20 21 22 23 24 25   19 20 21 22 23 24 25
29 30 31               26 27 28               26 27 28 29 30 31

       April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                  1       1  2  3  4  5  6                1  2  3
2  3  4  5  6  7  8    7  8  9 10 11 12 13    4  5  6  7  8  9 10
9 10 11 12 13 14 15   14 15 16 17 18 19 20   11 12 13 14 15 16 17
16 17 18 19 20 21 22   21 22 23 24 25 26 27   18 19 20 21 22 23 24
23 24 25 26 27 28 29   28 29 30 31            25 26 27 28 29 30
30
       July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                  1          1  2  3  4  5                   1  2
2  3  4  5  6  7  8    6  7  8  9 10 11 12    3  4  5  6  7  8  9
9 10 11 12 13 14 15   13 14 15 16 17 18 19   10 11 12 13 14 15 16
16 17 18 19 20 21 22   20 21 22 23 24 25 26   17 18 19 20 21 22 23
23 24 25 26 27 28 29   27 28 29 30 31         24 25 26 27 28 29 30
30 31
      October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
1  2  3  4  5  6  7             1  2  3  4                   1  2
8  9 10 11 12 13 14    5  6  7  8  9 10 11    3  4  5  6  7  8  9
15 16 17 18 19 20 21   12 13 14 15 16 17 18   10 11 12 13 14 15 16
22 23 24 25 26 27 28   19 20 21 22 23 24 25   17 18 19 20 21 22 23
29 30 31               26 27 28 29 30         24 25 26 27 28 29 30
                                             31


1년치 달력을 보여준다.

cal -V
cal from util-linux-2.12a


cal의 버젼 정보를 보여준다.

참고 : [포스트]
신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 와아... 외계어다...
secret
그동안 콘솔 상에서 작업하면서 탭을 밥먹듯이..
아니 밥보다도 훨씬 많이 사용하면서도...
오늘 첨 보는 기능(?)을 보게 되었다.

아래와 같은 상태에서 탭을 쳣더니

grep 'FileN
grep 'FileName.ext'


이렇게 되는것이 아닌가...
음... 그럼... 이렇게 하면?


grep FileN
grep FileName.ext


음.. 이렇게 되네...
음.. 그럼 이렇게 하면?

grep "FileN
grep "FileName.ext"


그런데 다음과 같이 하면 아무런 반응이 없네...

grep `FileN


아무래도 `는 감싸져 있는 것의 명령어의 결과를 리턴하게 되어 있어서 그런가보다
음.. 인공지능 탭... -.-;;
신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret
※ 이 글은 [Why doesn't Linux need defragmenting? ] 의 내용을 번역한 것이다. 혹시 오류가 있으면 지적 부탁드린다.

왜 리눅스에선 조각 모음이 필요 없는가?

지겹게도 되풀이되어 나오는 질문 하나가 있죠: "왜 리눅스의 파일 시스템은 조각 모음이 필요 없나요?". 이 글을 통해 질문에 대한 해답을 한 방에 정리해 보고자 합니다.
단순히 수많은 기술적 설명들을 어설프게 더듬거리기보다, ASCII 그림을 사용하는 게 훨씬 효과적일 것 같습니다. 그런 고로, 전반적인 설명을 진행하는 데 이 그림을 사용하도록 하겠습니다:

more..


출처 : http://blog.empas.com/mycoffee/15302774
신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 이 글과 관련하여 조금 안좋은 일들이 있어서 출처를 변경하였습니다.
    관련 포스트는... http://dust.tistory.com/311 를 참고하시기 바랍니다.
  2. 이 글과 관련하여 조금 안좋은 일들이 있어서 출처를 변경하였습니다.
secret
음.. 어느날 사무실 직원 한명이 win XP에서 쓰던 하드에 XP 서비스팩 2를 잘못 설치해서 아예 부팅도 안되고 다른 윈도우에서도 인식이 안되게끔 하드를 망가트린 적이 있었습니다.
저는 리눅스를 깔 때 아주 많은 포맷 형식을 지원하길래... 그냥 마운트 시키면 될 줄 알고 마운트를 시도 했죠. 그랬더니.. -.-;; 커널에서 ntfs를 지원 안한다는 말만.. ^^
다른 분의 도움을 얻어 ntfs를 마운트 하는데 성공했습니다. ^^

그래서 그 방법을 알려드리고자.. ^^
이미 알고 있는 분들은 역시 pass ^^
레드햇 7.3, 커널 버전 2.4.20-28.7을 기준으로 설명 드립니다.


1. 자신의 커널 버전을 확인

uname -r

2. cpu 타입 확인

rpm -q --queryformat "%{ARCH}\n" kernel

저같은 경우는 커널 버전 2.4.20-28.7에 cpu 타입은 i686이었습니다. ^^


2. http://linux-ntfs.sourceforge.net/rpm/redhat7.html 에서 관련 자료를 다운로드 받습니다.

위에서 커널 2.4.20-28.7에 cpu 타입이 i686이었으므로 i686-smp을 다운로드 받았습니다. ^^


3. rpm 파일을 설치합니다.

rpm -ihv kernel-ntfs-2.4.18-14.i686.rpm

Preparing... ############################### [100%]
1:kernel-ntfs ############################### [100%]


4. 모듈을 올립니다.

/sbin/modprobe ntfs


5. 파일 시스템이 지원하는지 확인합니다. ^^

cat /proc/filesystems

이곳에 ntfs가 있다면 성공한 것입니다.


6. 자신의 ntfs 하드를 체크합니다.

/sbin/fdisk -l

저 같은 경우는 /dev/hdc1 이더군요.. ^^


7. 마운트 할 디렉토리를 생성합니다.

mkdir /mnt/windows


8. 마운트 합니다. ^^

mount /dev/hdc1 /mnt/windows


9. 확인해 봅니다. ^^

cd /mnt/windows
ls


목록이 나오면 성공... ^^
뭐 긴 내용은 아니지만 조금 해메면서 알아낸 내용이라... 참고하시라고.. ^^

그럼 오늘도 즐거운 하루.. ^^

참 그리고 하시다가 에러 나는 것은... http://linux-ntfs.sourceforge.net/rpm/help.html 를 참고하세요. ^^
신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret
  • cut
    • 데이터 필드를 칼럼별로 구분하기 위해 제공되는 tool 이다. 디폴트 delimiter는 tab이며 -f 옵션을 통해 정의할 수 있다.
cat test
one   two   three
four   five   six
seven   eight   nine

cut -f2 test
two
five
eight

cut -f1,3 test
one   three
four   six
seven   nine

    • -f 옵션 외에 다음과 같은 옵션들이 있다.
      • -c : Allows you to specify characters instead of fields
      • -d : Allows you to specify a delimiter other than the tab
  • paste
    • cut 명령어가 파일로부터 내용을 선택하는 것이라면 paste나 join 명령어는 field를 combine 하는데 사용된다.
cat fileone
seoul
incheon
pusan
taegu
daejeon

cat filetwo
Newyork
LA
boston
san
washington

paste fileone filetwo
seoul   Newyork
incheon   LA
pusan   boston
taegu   san
daejeon   washington

    • -d 옵션을 사용함으로써 구분시 Tab 문자가 아닌 정의된 문자를 사용할 수 있다.
paste -d"." fileone filetwo
seoul.Newyork
incheon.LA
pusan.boston
taegu.san
daejeon.washington

    • -s 옵션을 사용하면 다음과 같이 출력할 수 있다.
paste -s fileone filetwo
seoul   incheon   pusan   taegu   daejeon
Newyork   LA   boston   san   washington

paste -s -d"." fileone filetwo
seoul.incheon.pusan.taegu.daejeon
Newyork.LA.boston.san.washington

  • join
    • paste 명령의 기능 확장버전이라 생각할 수 있다
join fileone filetwo
    • 결과는 아무것도 출력되지 않는다. join 명령어는 먼저 파일들간의 공통 field를 찾고 기본적으로는 첫번째 필드를 공통으로 찾는다. 예를 들어 fileone과 filetwo의 첫번째 필드를 숫자로 채워놓으면
cat fileone
1111   seoul
2222   incheon
3333   pusan
4444   taegu
5555   daejeon

cat filetwo
1111   Newyork
2222   LA
3333   boston
4444   san
5555   washington

join fileone filetwo
1111   seoul Newyork
2222   incheon   LA
3333   pusan   boston
4444   taegu   san
5555   daejeon   washington

    • 반드시 첫번째 필드만을 공통필드로 찾게 할 필요는 없다
cat fileone
seoul   1111
incheon   2222
pusan   3333
taegu   4444
daejeon   5555

cat filetwo
1111   Newyork
2222   LA
3333   boston
4444   san
5555   washington

join -1 2 -2 1 fileone filetwo
1111   seoul   Newyork
2222   incheon   LA
3333   pusan   boston
4444   taegu   san
5555   daejeon   washington

    • -1 옵션은 첫번째 파일을 의미하며 -2 옵션은 두번째 파일을 의미한다.

신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret
  • cat
    • -b : Numbers lines
    • -E : Shows a dollar sign($) at the end of each line
    • -T : Shows all tabs as ^I
    • -v : Shows nonprinting characters except tabs and carriage returns
    • -A : Does the same as -v combined with -E and -T
  • tac
    • cat과 반대의 어순에서 알 수 있듯이 파일의 내용을 반대 순서로 보여준다.
  • nl
    • nl은 라인에 넘버를 사용해 보여주며, cat 명령어에 -b를 붙인 것과 동일하다.
  • head
    • 파일의 첫 부분을 보여준다. 디폴트로 처음부터 10라인 까지 보여준다
head -3 numbers
one
two
three

  • tail
    • 파일의 아래부분부터 보여준다.
    • head와 마찬가지로 10줄 보여주며, -3 하면 제일 아래 3줄을 보여준다
tail +16 numbers
=> 16줄부터 그 아래로 다 보여준다.
    • -f 옵션을 사용하면, 마지막 10라인을 보여주면서 쉘로 나오지 않고 계속 머무른다. 끝내기 위해서는 interrupt 신호(ctrl+c)를 보내야 하며, 주로 로그파일 모니터링에 사용한다.



신고

WRITTEN BY
체리필터
프로그램 그리고 인생...

받은 트랙백이 없고 , 댓글이 없습니다.
secret