본문 바로가기
## 오래된 게시글 (미관리) ##/Python (Linux)

8. Linux - Linux 명령어 익숙해지기

by #Glacier 2018. 11. 23.
반응형

오늘은 Linux 명령어에 대해 알아보도록 할게요.



가장 쉬운 바탕화면에 mycon이라는 디렉토리를 만듭니다. mkdir (make directory)로 외우시면 쉬울 듯

cd mycon/은  /바탕화면/mycon 디렉토리로 이동하는 명령어입니다. (change directory)

mkdir 명령어를 사용해서 mycon 안에 a, b라는 디렉토리를 만들고, ls -l 명령어를 사용해봅니다.

ls -l  명령어는 권한과 생성일, 파일 크기 등이 나오는 것을 알 수 있습니다.

합계 8이라는 말이 무엇인지 궁금해서 ls -s 명령어를 통해 Size를 알 수 있도록 표기합니다.

그러면 4096이 4 즉 4KB를 먹고 있다는 점을 유추해볼 수 있습니다.

그래서 합계가 8!



txt문서와 같은 파일을 만드는 법은 cat 명령어입니다.

cat > a.txt는 cat으로 쓴 것을 a.txt로 저장한다는 말 입니다.

이미 존재하고 있으면 덮어쓰기가 됩니다.

abcd, abcd를 입력하고 Ctrl+Z를 누르면 나가집니다. 


확인해보는 법은 cat a.txt를 하면 abcd abcd가 뜨는 것을 알 수 있죠


그렇다면, cat >> a.txt는 무엇일까요?

추가해서 쓰는 명령어입니다.

저는 분명히 abcdefg 등등 3줄만 썼을 뿐인데

cat a.txt로 다시 보면 추가되어있는 것을 알 수 있습니다.



이렇게 써서 cat < edible로 redirect해서 보는 법도 있습니다. 


이처럼 파일로도 생성되는 것을 알 수 있습니다.


 

grep 명령어는 문자를 찾습니다.

grep [명령어] [숫자] [문자] [파일이름]


grep -A 2 mandarin edible의 뜻은,

edible파일에서, mandarin이라는 문자가 들어간 것을 찾고, -A 명령어는 검색된 문자를 포함하여 아래 2행을 보여줍니다.

grep -B 2 mandarin edible은

검색된 문자를 포함하여 위의 2 행을 보여주는 것을 알 수 있죠.


 

자, 위처럼 7.8.9.10행에 대소문자를 섞고 중복을 넣습니다.


grep -i mandarin edible의 뜻은 무엇일까요?


이는 mandarin이 들어간 글자는 대소문자 구분 없이 검색해냅니다.


-n은 해당 라인을 출력해줍니다. 만약 7.8.9.라고 안써도 라인이 몇인지 알 수 있겠죠.


*******************

그럼 혼자 해보기


make라는 txt파일을 만들고,

1. AbC

2. abc

HA

7. ab

8. bc

abcd


이렇게 작성한 후,


1. HA를 검색하여 위의 2행까지 출력

2. HA를 검색하여 아래의 3행까지 출력

3. HA와 abcd를 명령어를 통해 라인 번호를 알아내기

4. ab가 들어간 문자 모두 대소문자 구분 없이 찾아내기

5. 마지막 줄에 10. 성공 이라는 글 추가하여 출력


** 정답


1. grep -B 2 HA make.txt

2. grep -A 3 HA make.txt

3. grep -n HA make.txt

4. grep -n abcd make.txt

5. grep -i ab make.txt

6. cat >> make.txt

    10.성공



그렇다면.. 

다른 방식으로 명령어를 사용할 순 없을까요..

아까 다뤘던 edible을 통해 다른 방식으로 다뤄볼게요.


1. edible에서  'e'가 들어간 과일을 찾아보자

grep -i e edible

2. edible에서 'n'이 들어간 과일을 찾아보되 라인 번호도 같이 출력

grep -i n edible -n 

3. edible에서 'mandarin'을 찾되 아래의 2행을 보여주고, 대소문자를 구분하지 않게 검색

grep -A 2 mandarin edible -i


이렇게.. 써보면서 이렇게도 쓸 수 있구나 하면 될 것 같네요.


다음은 sort입니다. 정렬!


sort edible하면 숫자를 기준으로 ? 정렬됩니다.

sort -r edible하면 리버스(reverse)즉 역순으로 되겠죠.


 


sort -k2 edible은 알파벳 기준 정렬입니다. 대문자가 먼저 오고, 이후 a-z순으로 정렬되는 것을 볼 수 있습니다.

-k1은 숫자기준, -k2는 알파벳 기준입니다.

sort -k2 -r edible이면 당연히 알파벳 기준 정렬의 리버스(역)이겠죠~~


이렇게 정렬해보았는데요. edible을 edible2로 복사하려면? cp(copy)입니다.


cp edible edible2

이렇게 치면, edible을 edible2로 복사합니다.

다음은 find 명령어입니다. 무언가를 찾는 데 사용하겠죠.

find 라고 그냥 치면 현재 디렉토리에서 찾습니다.

ls와 뭐 별다를 게 없습니다 그냥사용하면..



find . -size -1000 -print

.(현재 디렉토리)에서 size가 1000블록 이하인 파일이나 디렉토리를 찾아 print한다!

.을 /로 바꾸면 루트 디렉토리가 되겠죠.


find . size +4000 -print

현재 디렉토리에서 4000블록 이상인 것을 찾으면 없겠죠..ㅠ


-mtime 명령어는 (일)을 기준으로 합니다. 즉 +1이면 1일 이전에 수정된 파일을 찾습니다.

-1이면 1일 이후인데 이렇게 해야 오늘 만든것들이 다 나오네요.




-cmin은 일이 아닌 분이 기준이 됩니다. 

find . -cmin 10 -print

10분 이전에 수정된 파일을 검색하니 edible2가 나오네요. (벌써 10분이나 됬나;;)


-empty 는 비어있는 파일이나 디렉토리를 찾습니다.



오늘은 여기까지 하고, 다음 번에 명령어에 대해 조금 더 알아보도록 할게요!

아마도.. 다음 번 명령어에대해 더 알아보고, 그다음은 파이썬 설치로 넘어가겠습니다..

아무래도 리눅스 환경에서 파이썬을 설치할 것이고.. 리눅스도 깐 겸 조금 알아봐야..ㅎㅎ;;

반응형