저번에 말했던 전자앨범을 만들때였다.

분명 서버에 파일이 올라가 있는데 그림이 안보이는 것이다. 알고보니

확장자가 대문자인 것들을 인식을 못했었다. 그래서 5만장이 넘는 앨범을 어떻게 다 바꿀까 하다가

쉘스크립트를 짜보자 생각을 했다.

 

일단 해당 폴더 내의 모든 JPG 파일을 jpg 로 바꾸는 방법이다.

ls *JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh

근데 폴더 내에 여러 폴더들이 더 있었으므로 앞부분을 약간 수정했다.(find 사용)

find ./ -name '*JPG' | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh

아 졸리다..;;

date                날짜와 시간 출력

echo 내용               뒤에 나오는 것 출력... echo와 문자열 사이의 불필요한 공백은 무시됨!

ls                    디렉토리 내용 보기

ls 폴더이름            폴더 안의 내용 보기

cat file                  파일 내용 보기

wc file              파일의 라인, 단어, 문자 수 세기

wc -l file                라인 수만 세기

wc -w file                단어 수만 세기

wc -c file                문자 수만 세기

ex) wc hello.txt 라고 입력하면

 2   8   39  hello.txt  라는 식으로 나온다.. 순서대로 라인, 단어, 문자 개수이다.

cp 이것을 여기로        파일 복사

mv 이것을 여기로        파일 이동 or 파일 재명명.

ex) mv hello.txt hello2.txt 라고 하면 이름이 바뀐다.

rm 파일                    파일 삭제

rm a.txt b.txt c.txt        여러개 동시 삭제 가능

pwd                      현재 작업 폴더 보기 (Print Working Directory)

cd ../..                 2단계 올라가기.. 이건 생각 쫌만 하면 되는거네..

rmdir                 폴더 삭제 (빈 폴더여야함. 그냥 다 지우려면 rmdir -r )

커맨드에

echo $SHELL

입력하면 된다.

glibc를 컴파일 할 때였다.

이런 메세지가 뜨길래 방법을 찾아봤는데 간단했다.

 

말 그대로

 

현재 디렉토리에 다른 폴더를 만들어 주고 만든 디렉토리 안에서 configure하면 되는 거였다.

$mkdir build            build 폴더 생성

$cd build                build 폴더로 이동

$../configure            configure 실행

$who

누가 접속하고 있는지 나온다.

 

$who am i

나의 상태를 보여준다. 접속 시간이라던지, 등등...

이 계정 저 계정 넘나들며 로그인하다보면

지금 어떤걸로 로그인 되어있나 궁금해 질때 유용할 듯..

UNIX 버전 확인 UNIX / LINUX 2012.04.19 23:27

uname -a

또는

oslevel

해보니 oslevel이 더 잘 나오는 거 같다.