Meadows of wild horses

Blog...

Cjpeg

| Comments

출력 재지정

$ cjpeg image.gif > image.jpg

실습

#!/bin/sh
for image in * .gif
do
  cjpeg $image > ${image%%gif}jpg
done

Param

| Comments

매개변수 치환 구문

매개변수 치환 구문 결과
${param:-default} param이 널이면 default의 값 |
${#param} param의 길이 |
${param%word} param의 끝에서 word와 부합하는 가장 짧은 부분을 제외한 나머지 부분 |
${param%%word} param의 끝에서 word와 부합하는 가장 긴 부분을 제외한 나머지 부분 |
${param#word} param의 시작에서 word와 부합하는 가장 짧은 부분을 제외한 나머지 부분|
${param##word} param의 시작에서 word와 부합하는 가장 긴 부분을 제외한 나머지 부분 |

실습-매개변수 처리

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

unset foo
echo ${foo:-bar}

foo=fud

echo ${foo:-bar}
foo=/usr/bin/X11/startx
echo ${foo#*/}
echo ${foo##*/}

bar=/usr/local/etc/local/networks
echo ${bar%local*}
echo ${bar%%%local*}

exit 0

Shell 정규 표현식

| Comments

정규 표현식

특수 문자

|문자|의미                                               |
|----|---------------------------------------------------|
|^   |한 줄의 시작을 뜻하는 앵커(anchor)                 |
|$   |한 줄의 끝을 뜻하는 앵커                           |
|.   |임의의 문자 하나                                   |
|[ ] |일반적으론 하나검사 1-10이면 1에서 부터 10까지 검사|

보통의 문자로 취급하게 하려면 앞에 \를 붙인다 \$

대괄호쌍 안에서 문자 범위 지정

부합 패턴 의미
[:alnum:] 영문자 또는 숫자 |
[:alpha:] 영문자 |
[:ascii:] ASCII 문자 |
[:blank:] 빈칸 또는 탭 |
[:cntrl:] ASCII 제어 문자 |
[:digit:] 숫자 |
[:graph:] 비제어, 비공백 문자 |
[:lower:] 소문자 |
[:print:] 인쇄 가능 문자 |
[:punct:] 문장 부호 |
[:space:] 공백 문자(수직 탭도 포함)|
[:upper:] 대문자 |
[:xdigit:] 16진 숫자 |

-E 옵션 활성화

옵션 의미
? 표현식이 있어도 없어도 되지만 한번만 부합해야 한다|
* 0회 이상 부합 해야 한다 |
+ 1회 이상 부합 |
{n} n회 반복해서 부합 |
{n, } n회 이상 반복 부합 |
{n,m} n회 이상 m회 이하 반복 부합 |

실습

e로 끝나는 줄 찾기

$ grep e$ words2.txt

a로 끝나는 단어들이 있는 줄 찾기

$ grep a[[:blank:]] words2.txt

Th로 시작하는 세 글자 단어 찾기

$ grep Th.[[:space:]] words2.txt

열자 짜리 소문자 찾기

$ grep -E [a-z]{10} word.txt

PATH

| Comments

$PATH에 추가 하기

echo PATH=$PATH:/foo/bar/baz

$PATH를 바꾸기

echo PATH=경로....

Shell Key

| Comments

Ctrl + u

커서 위치 부터 처음 까지 삭제

$ echo rumidier-linux bul-la bul-la.....<--
$

$ echo rumidier-linux<--- bul-la bul-la.....
$ bul-la bul-la.....

Ctrl + c

명령 실행후 중지

Ctrl + z

명령 일시 정지 (재시작은 fg입력)

Ctrl + s

터미널 출력 멈춤

Ctrl + q

터미널 출력 재시작

이런 키들이 문제가 된다면?

stty function key
function : 기능
key      : key 조합 (^컨트롤)

현재 터미널의 설정 내용

$ stty -a

지금껏 사용 하다 갑자기 이상해졌다면

$ ssty sane

Ctrl + c

Grep

| Comments

grep 명령

옵션 의미
-c 패턴과 부합한 줄을 출력하는 대신 그런 줄들의 개수를 출력한다. |
-E 확장된 정규표현식을 활성화한다. |
-h 부합한 줄을 출력할 때 파일 이름은 출력하지 않는다. |
-i 대소문자를 구분하지 않는다. |
-l 부합한 줄을 담은 파일 이름만 출력하고 부합한 줄 자체는 출력하지 않는다.|
-v 패턴을 뒤집는다. 즉, 주어진 패턴과 부합하지 않은 줄들을 출력한다. |

파일에서 in이라는 문자열 찾기

$ grep in words.txt

파일들에서 in을 찾고 매치 되는 갯수 출력

$ grep -c in words.txt words2.txt

파일들에서 in을 찾고 매치 되지 않는 갯수 출력

$grep -c -v in words.txt words2.txt

Find Option

| Comments

find

find [경로] [옵션들] [판정 조건] [행동]

|옵션              |의미                                                         |
|------------------|-------------------------------------------------------------|
|-depth            |디렉터리 자체를 보기 전에 디렉터리의 항목들을 먼저 검색한다  |
|-follow           |기호링크(symbolic link)들을 따라간다                         |
|- maxdepths N     |디렉터리의 하위 디렉터리들을 최대 N수준까지만 검색한다.      |
|-mount (또는 -xdev|다른 파일 시스템의 디렉터리들은 검색하지 않는다.             |

|판정            |의미                                                                |
|----------------|--------------------------------------------------------------------|
|-atime N        |파일이 N일 전에 마지막으로 접근 되었음.                             |
|-mtime N        |파일이 N일 전에 마지막으로 수정되었음.                              |
|-name 패턴      |경로를 제외한 파일이름이 패턴과 매치, 쉘에 확장을 거치지 않으려면 ""|
|-newer 다른파일 |파일이 *다른파일*보다 새것임                                        |
|-type C         |파일의 종류가 *C* 인지 검사.(ex:디렉터리 d, 파일 f)                 |
|-user 사용자이름|파일의 소유자가 *사용자이름*에 해당하는 사용자임.                   |


|연산자|연산자(긴 형태)|의미                    |
|------|---------------|------------------------|
|!     |-not           |판정의 부정(역)         |
|-a    |-and           |두 판정 모두 참이어야 참|
|-o    |-or            |둘 중 하나만 참이어도 참|

|행동      |의미                                      |
|----------|------------------------------------------|
|-exec 명령|주어진 명령을 주행, 행동 끝에 \;첨부      |
|-ok 명령  |명령을 수행하되 수행전 확인을 받음 \; 첨부|
|-print    |파일 이름 출력                            |
|-ls       |현재 파일에 대해 ls -dil 명령을 수행한다  |

() 회피는 \로 해야 한다

(-news X -o -name “_*” )

X라는 파일보다 새것이면서 _시작 하는 파일 찾기

현재 디렉터리에서 while2라는 파일보다 최근에 수정된 파일 찾기(디렉터리 포함됨)

$find . -newer while2 -print

현재 디렉터리에서 while2 디렉터리를 제외한 파일만 찾기

$find . -newer while2 -type f -print

파일 이름이 밑줄로 시작하거나 while2보다 새것 찾기

$find . \( -name "_*" -or -newer while2 \) -type f -print

파일을 찾아서 행동 시키기

$find . -newer while2 -type f -exec ls -l {} \;

Blogging Basics

| Comments

Mark Down

header 1

header 2

header 1

header 2

header 3

blockquote 입니다.

두번째 blockquote 입니다

문법 강조

강조 되는 단어는 rumidier 입니다.

강조하는 단어는 rumidier 입니다.

별표를 두개씩 써도 되며 굵게 합니다 rumidier 또한 언더바 두개도 됩니다 rumidier

리스트 ul(* + -) 와 ol (1. string) 입니다.

ul:

  • first.
  • second.
  • trhid.
  • fisrt
  • second
  • third
  • fisrt
  • second
  • third

ol: 1. first 2. second 3. third

block:

tab:
칸뛰우기를 하고 있고
들여 쓰기를 하게 되면
이렇게 이쁘게 칸이 나온다

링크 걸기: 누르게 되면 링크를 열게 된다 naver.com