오랜 기간 콘솔 작업을 안하다가 다시 콘솔에서 작업할 일이 생겼는데...

그동안 잘 사용해 오던 명령어들이 생각이 안나서 구글링...


이왕 찾게 된 김에 정리해 둘 겸 적어 둡니다.

필요하신 분들은 사용해 보세요 ㅎㅎ


1. 해당 파일 안에 특정 문구가 들어간 파일 찾기 (하위 디렉토리 포함)


grep -rl "원하는 단어" path

ex) [user@server redis]$ grep -rl "sysctl.conf" ./

./src/redis-server

./src/redis.c

./src/redis-sentinel

./src/redis.o


요즘 redis를 보고 있는데 sysctl.conf라는 단어가 들어간 파일을 찾을 경우 위와 같이 하면 된다.

위 내용은 src/redis-server 라는 파일 안에 sysctl.conf 라는 단어가 있다는 의미이다.


2. 하위 디렉토리 내 특정 파일 이름으로 찾기


find . -name "파일명"


[user@server redis]$ find . -name "redis-master.conf" 

./redis-master.conf

[user@server redis]$ find . -name "redis-master*" 

./redis-master.conf



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

받은 트랙백이 없고 , 댓글이 없습니다.
secret
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로 삽질하지 말자!!!

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

받은 트랙백이 없고 , 댓글이 없습니다.
secret
출처 : http://www.fduser.org/blog/26

tar 압축의 경우 2G이상으로 압축이 되지 않기 때문에, 
2G 이상으로 압축 을 하기위해서는 split란 명령을 같이 사용하면 됩니다.

[압축 하기]
ex) tar -zcvpf - /home | split -b 2048mb - home.tar.gz

* /home : 압축할 디렉토리
* home.tar.gz 압축되어질 이름

압축 결과는 tar.gza , tar.gzb 등으로 생성이 됩니다.

[압축 풀기]
tar.gza, tar,gzb 등으로 압축된 파일을 풀기 위해서는

ex) cat home.tar.gz* | tar -zxvpf -


여러개의 tar.gz 파일들을 압축을 풀어야 할경우
tar -zxvf *.tar.gz 등의 방법으로 풀게 되면 에러가 발생합니다.

이 경우에는 find 를 이용하시면 쉽게 푸실수 있습니다.

find . -name "*.tar.gz" -exec tar zxvf {} \;

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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의 버젼 정보를 보여준다.

참고 : [포스트]
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

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

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

grep 'FileN
grep 'FileName.ext'


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


grep FileN
grep FileName.ext


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

grep "FileN
grep "FileName.ext"


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

grep `FileN


아무래도 `는 감싸져 있는 것의 명령어의 결과를 리턴하게 되어 있어서 그런가보다
음.. 인공지능 탭... -.-;;
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

받은 트랙백이 없고 , 댓글이 없습니다.
secret
  • sort
    • sort 명령은 알파벳순으로 정렬을 시켜 출력한다.
    • 기본적으로 숫자는 정렬되지 않는다. 숫자로 정렬하려면 다른 옵션을 사용해야 한다.
    • sort 명령은 다음과 같은 옵션을 갖는다.
      • -d : Sorts in phone-directory order
      • -f : Sorts lowercase letters in the same manners as uppercase letters
      • -i : Ignotes any characters outside the ASCII range
      • -n : Sorts in numerical order instead of alphabetical
      • -r : Reverses the order of the output
  • wc
    • wc는 "word count"로 파일의 라인수, 워드수, 문자수를 출력한다
wc fileone
14   14   58   fileone
      • -c : Shows only the number of bytes or characters
      • -l : Shows only the number of lines
      • -w : Shows only the number of words
wc -w fileone
14 fileone
  • fmt
    • 지정된 너비로 출력 결과를 조정한다. 디폴트 width는 75 characters이다. -w 옵션을 통해 너비를 조정할 수 있다.
fmt fileone
seoul   1111 incheon 2222 pusan   3333 taegu   4444 daejeon 5555

fmt -w10 fileone
seoul
1111
incheon
2222
pusan
3333
taegu
4444
daejeon
5555

* 기본 옵션은 -w이다. 따라서 fmt -w10옵션과 fmt -10은 같은 결과를 보인다.
  • tr
    • tr(translate)는 문자셋을 다른 것으로 변경할 수 있다. 예를 들어 모든 소문자를 대문자로 바꾸려면
tr '[a-z]' [A-Z]' < filetwo
1111    NEWYORK
2222    LA
33333    BOSTON
4444    SAN
5555    WASHINGTON

cf) tr은 반드시 두개의 charcter sets만을 받아들이며 파일명은 사용하지 않는다. 따라서 반듣시 파일의 이름은 리다이렉트 입력기호를 사용하거나 파이프를 사용해야 한다.
    • lower : All lowercase
    • uppper : All uppercase characters
    • print : All printable characters
    • punct : Punctuation characters
    • space : All white space
    • alnum : Alpha characters and numbers
    • digit : Numbers only
    • cntrl : characters control
    • alpha : Letters only
    • graph : Printable characters but not white space
예를 들어 위에서 사용한 명령은 다음과 같이 내릴 수도 있다.

tr '[:lower:]' [:upper:]' < filetwo

Associated Utilities
  • expand - Allows you to expand tab characters into spaces. The default number of spaces per tab is eight. but you can change that using the -t option
  • file - Looks at an entry's signature and reports what type of file it is
  • more - Display only one screen of output at a time
  • split - Chops a single file into multiple files. The default is that a new file is created for every 1,000 lines of the original file. Using the -b option, you can avoid the 1,000 line splitting and specity a number of bytes to be put into each output file, or you use -l to specify a number of lines
  • uniq - Examines entries in a file, comparing the current line with the one directly preceding it, to fild lines ar unique.
  • vi - One of the greatest file editors.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

FMT, sort, tr, wc
받은 트랙백이 없고 , 댓글이 없습니다.
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 옵션은 두번째 파일을 의미한다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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)를 보내야 하며, 주로 로그파일 모니터링에 사용한다.



신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

받은 트랙백이 없고 , 댓글이 없습니다.
secret
스쿨의 누군가가 질문해서...
전에 있던 쉘로 답해주고 나니... 또 다른 흥미로운 팁도 나타나더라 ㅎㅎ

1. 2일전 구하기
date --date '2 day ago' +%Y%m%d

2. 2일을 포함해서 더 오래된 파일 목록 구하기
find . -mtime +2

응용은 각자 알아서 ^^

그런데 mtime하고 ctime하고 차이를 모르겠네 -.-;;
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

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

받은 트랙백이 없고 , 댓글  3개가 달렸습니다.
  1. 사실 이 팁은 예전에 써 놓은 팁인데... 4te서버 날라가면서 다시 붙여넣기 해서 만든 내용입니다.
    mtime은 실제 파일을 수정한 시간, ctime은 mv, touch 등으로 건드리기만 해도 바뀌는 시간입니다.
  2. ^^ csh 에서는 date -v -2d +%Y%m%d 이렇게 하면 됩니다.
secret