리눅스 명령어 정리(2)

반응형
반응형

ln 명령어 : 파일에 링크를 만들어주는 명령어.
이 명령어를 이해하려면 리눅스 파일 시스템에 대해 이해되야 되지만,
그것 까지 할려면 귀찮기 때문에 그냥 소개정도만 작성할려 한다.
왜냐하면 정리할 명령어가 생각보다 많기 때문이다.

link 방식에는 hard 방식과 soft방식으로 구분되어 있다.

hard방식은 말 그 대로 물리적인 링크를 만들어주는것에 있다.
생성하는 방식은 
다음과 같다.

ln ./temp3.java ./temp.java

이것을 해석하면 현재 페이지에서 temp3.java를 temp.java로 링크를 만든다는 뜻이 됩니다.
그러면 확인해봅시다.

결과는 다음처럼 등장합니다.

13821726 -rw-r--r--   2 사용자  staff   106  9  5 00:34 temp.java
13821726 -rw-r--r--   2 사용자  staff   106  9  5 00:34 temp3.java

하드같은 경우는 어느 하나가 삭제되어도 읽을 수 있을 겁니다.
아마도 제 예상이 맞다면 그렇겠죠?

열렸다는것을 확인 할 수 있습니다.

다음은 soft방식입니다.
이 방식 같은 경우는 

이렇게 링크가 원본 파일을 참조한다는 것을 알 수 있습니다.
생성 방법은 다음과 같습니다.
ln -s source target

ln -s ./temp.java ./temp2.java

결과를 확인해보면 다음과 같은 결과를 알 수 있습니다.

-rw-r--r--   1 사용자  staff   106  9  5 00:34 temp.java
lrwxr-xr-x   1 사용자  staff    11  9  5 18:46 temp2.java -> ./temp.java

제가 알기로 원본을 삭제하면 링크 파일은 실행이 불가능한걸로 알고 있습니다.
또, rwx를 확인해보니 원본과 매우 다르다는 것을 알 수 있습니다.
사용자 칸이 6이 아닌 7로 기록이 되있다는 사실을 알게 되어 놀라울 뿐입니다.
이는 위에서 말한것 처럼 tem2파일을 연다는것은 temp파일을 연다는 것이기 때문에 
temp2입장에서는 실행시키는 것이라 설명이 됩니다.

확인결과 아무것도 보이지 않네여.
이 방식은 윈도우의 바로가기 기능과 유사하다고 합니다.

man 명령어 이름 :  명령어 확인
프로그래밍 명령어도 알려준다고는 하는데 c만 알려주는 것 같다.(확인 안됨)

cat 명령어:  정확히 뭔지는 잘 모르겠으나 입출력 기능으로 추측된다.
concatenate 또는 catenate에서 따온 이름이라고 한다.
그건 잘 모르겠구

 cat temp.java

이렇게 입력해보니

이렇게 출력되는것을 확인 할 수 있다.

그러면 입력은 불가능한걸까?

바로 > 와 >>를 사용하면 된다.
두개는 약간의 차이가 있을뿐 비슷한 효과를 발생된다.

cat temp.java > temp.txt

이렇게 하면 temp.java에 대한 내용이 temp.txt에 고스란히 저장 된다.
놀라운 사실은 temp.txt가 없다며느 새로운 파일을 만들어준다.

그러면 > 와 >>의 차이점은 뭘까 이거는
직접 보는게 빠를 것 같다.

>

>는 아무리 많이 해도 덮어쓰기가 된다.
그러면 >>는 어떻게 될까?

이어쓰기가 된다.

추가적으로 
 > 파일이렇게 하면 빈 파일이 생성된다.

grep 명령어 : 이 명령어는 문자열을 옵셥으로 찾아주는 역할을 한다.
아쉽게도 이 명령어를 단독으로 사용하는건 어려울 것 같습니다.
왜냐하면 어떤 문자열을 검색을 해야할지 모르기 때문입니다.
물론, 제 능력이 부족해서 모르는거일 수 도 있지만 말입니다.

아무튼 제가 생각할때 이 명령어를 제대로 사용할려면

| 파이프라인을 알 필요가 있습니다.
이 거는 명령어 2개이상을 동시에 사용할 수 있게 도와주는 역할을 합니다.

drwxr-xr-x   5 사용자  staff   160  9  5 19:48 .
drwxr-xr-x+ 88 사용자  staff  2816  9  5 19:16 ..
-rw-r--r--   1 사용자  staff   106  9  5 18:54 temp.java
-rw-r--r--   1 사용자  staff   212  9  5 20:04 temp.txt
-rw-r--r--   1 사용자  staff   245  9  5 19:15 temp2.txt

이것이 Is만 사용했을 경우

-rw-r--r--   1 사용자  staff   106  9  5 18:54 temp.java
-rw-r--r--   1 사용자  staff   212  9  5 20:04 temp.txt
-rw-r--r--   1 사용자  staff   245  9  5 19:15 temp2.txt

이것이 ls -al | grep temp로 사용했을 경우 (반대는 안됨)

여기서 알 수 있는 사실은 앞에 어떤 정보가 존재하지 않으면 찾을 수 없다는 사실을 알게 되었다.

아 cat하니까 
아까 응용하면 다음과 같은 것도 할수 있다.

ls -al | grep temp | cat > temp2.txt

이거를 해석하면 ls -al에서 temp만 검색해서 그것을 temp2로 넣는다는 내용이다.

이 다음은 파일을 읽는 방법이다.
위에서 cat도 소개했지만 그거 말고 다른 방법도 존재한다.

head filename : 파일의 상위를 읽는다.
tail filename : 파일의 하위를 읽는다.
less 명령어 : 파일을 열고 파일 내용을 알 수 있는 명령어

얘네는 그냥 넘어가자. 왜냐하면 올리는게 좀 애매하기 때문이다.

압축 방법

tar 명령어 :  파일 압축/ 풀기

tar cvfz를 하게되면 압축하게 되고 *를 하면 전체 파일 압축할 수 있다.
c : create 
z : gzip
다음처럼 작성하면 된다.

tar cvfz a.gzip temp.txt temp2.txt

이렇게 압축하면 된다. 그러면

-rw-r--r--   1 사용자  staff   430  9  5 20:24 a.gzip

이제 압축을 풀어보자.
tar xvfz filename
x : extract

tar xvfz a.gzip

같은 파일이 존재하는 경우 생성이 되지 않는 문제가 있긴하다.
압축할때 압축한 파일은 삭제하는게 있을 것 같다.

반응형

'리눅스' 카테고리의 다른 글

리눅스 명령어 정리(3)  (0) 2021.09.06
리눅스 명령어 정리(1)  (0) 2021.09.05

댓글

Designed by JB FACTORY