본문 바로가기

교육/Netwrok

Day 2 & 3(1)

반응형

*논문 제출로 인해 2일째는 결석하게 되어 3일차에 2일차를 독학으로 학습했습니다.

1일차에 IP설정, CentOS설치, PuTTY설정등 Linux사용에 준비를 모두 마쳤습니다. 이제부터 본격적으로 Linux를 학습할것입니다. 먼저 Linux에서 사용하는 몇가지 명령어들을 살펴보겠습니다.

명령어의 형식은 보통 '명령어 -옵션 /경로/(파일)'의 형식을 갖추게 됩니다. 물론 명령어의 기능과 특성에 따라 형식이 조금 씩 다르긴 하지만 보통 명령어가 제일 앞에오고 뒤에 여러 형식들이 붙는 모습입니다.

 

먼저 알아볼 명령어는 mkdir, ls, cd, cat, cp, find, grep,ln입니다.

간단히 말하면 mkdir는 디렉토리생성(make directory), ls는 디렉토리내 목록 출력(list), cd는 디렉토리 이동(change directory), cat는 파일 입출력 제어(create), cp는 복사(copy), find는 파일시스템에서 원하는 조건에 만족하는 파일을 출력하는 것, grep는 필터링, ln은 link파일 생성 입니다.

 

먼저 'mkdir /경로/새디렉토리명' 으로 하면 경로에 따라서 새 디렉토리를 생성하고, 'mkdir 새디렉토리명'으로 하면 현재 위치에 새 디렉토리를 생성하게 됩니다.

 

ls는 옵션이 -a, --all, -l, -R, -h, -k, -i로 다양한데 실습에서 사용한 -al옵션은 -a옵션과 -l옵션을 한번에 사용한 것 입니다.

각각 의미는 -a옵션은 숨겨진 파일 목록까지 출력이고 -l옵션은 파일의 자세한 정보를 출력이므로 -al은 숨겨진 파일 목록까지 자세한 정보로 출력한다는 내용입니다.

 

cd는 디렉토리를 이동할때 사용 하는것인데 'cd 현재위치의바로위디렉토리명or바로아래디렉토리명'으로 실습과 같이 이동할수 있는데 보통은 디렉토리 이름을 바로 쓰는것은 하위 디렉토리로 갈때 많이 사용하고 상위 디렉토리로 갈때는 상대경로인 '../'을 많이 사용한다.

상대경로 표현은 아래 4가지가 있다

/ : 최상위 root 디렉토리 (절대경로 표현의 기준)
./ : 현재 디렉토리 (상대경로 표현의 기준 : 생략가능)
../ : 현디렉토리의 상위 디렉토리
~/ : 각 사용자의 홈디렉토리

 

cat는 보통 파일을 생성할때 많이 사용하게 되는데 입출력이 가능한 명령어이기에 'cat > 파일명'하면 파일이 열리게 된다. 이때 없는 파일없다면 입력한 파일명으로 파일이 생성된다. Access된 파일에서 나가는 방법은 ctrl+c를 누르게 되면 밖으로 나온다. 그냥 'cat 파일명'으로 적는다면 파일내의 내용을 보여주고 자동으로 닫힌다.

이와 비슷한 명령어로 echo가 있게 되는데 'echo 파일에넣을내용 > 파일명'으로 적어준다. 이는 파일명이라는 파일 안에 파일에적을내용을 적은 상태로 파일이 생성된다.

 

cp는 'cp -옵션 원본파일 복사파일명'의 형태를 가지며 옵션은 다음과 같다,
-a : 원본의 속성유지
-r : 하위 디렉토리나 파일모두 복사
-f : 강제 실행
-p : 파일의 소유와 권한등을 보존한채 복사
-u : 새파일 덮어쓰기 금지

그러나 이때 'cp 원본파일 /경로/'로 실행하면 경로에 원본파일과 같은 파일을 복사해서 생성한다.

 

find는 'find 검색경로 검색조건1 검색조건2 … '의 형태를 가지고 검색조건으로는 다음과 같다,
-name : 파일명으로 검색 (와일드카드문자 사용)
-perm : 특정 퍼미션을 가진 파일을 검색
-empty : 크기가 0인 파일 검색

실습에서 사용한 find형태는 'find /경로/ -name '문자열''인데 이는 경로로 가서 파일 이름에 문자열을 가진 내용을 출력해라 라는 것이다. 이때 문자열에 " ' ", " ' "를 붙여주게 되는데 이게 없을때 에러가 생기는 경우도 있다.

grep는 필터링하는 명령어입니다. 따라서 역할은 출력 문자열중에 원하는 단어나 글자가 들어있는 라인만 출력 하고자 할때 이용하는 것입니다. 형식은 '명령어 | grep [필터링 문자열]'로 실습때 실행했습니다.

여기서 |는 앞쪽명령의 결과를 뒤쪽명령의 입력 값으로 이용하는 것으로  'ls -al | grep a'의 의미는 '숨겨진 파일의 목록까지 자세하게 출력하되 a라는 문자를 가진 것들만 출력한다.'라는 것 입니다.

ln은 링크 파일을 생성하는 명령어 입니다.

'ln -옵션 원본파일 링크파일'형식으로 실행시키게 되는데 옵션을 입력하지 않으면 하드링크파일을 생성합니다. 하드링크를 하게 되면 원본파일은 하나인데 원본파일을 표현하는 이름이 두개가 되어버립니다. 반면에 옵션을 -s로 설정하면 소프트링크파일이 생성되는데 소프트링크는 윈도우의 바로가기처럼 새로운 연결된 파일이 생성되는 것 입니다.

이 차이는 원본파일을 삭제 했을때 차이를 보이게 됩니다. 원본파일을 지웠을때 하드링크파일은 링크파일이 이름만 바뀐 원본파일이 됩니다. 반면 소프트링크파일은 연결할 원본파일이 삭제가 되어 존재하지 않게 되니 연결자체가 성립되지 않아 파일이 죽어버립니다.

tar방식은 Linux에서 사용하는 압축명령어입니다. 하지만 여기서 압축은 윈도우에서 사용하는 압축하기와는 차이가 있습니다. 윈도우에서 압축하기는 파일을 모아서 용량을 줄이는 역할을 하지만 Linux에서 압축은 단순히 파일을 모으기만 합니다. 따라서 용량을 줄여주기 위해서는 gzip같은 특별한 옵션을 사용하는데 보통 gzip을 사용합니다.

형식은 'tar -옵션 압축파일명 대상'으로 작성하게 되는데 옵션은

-c : 압축

-x : 풀기

-v : 작업내용을 출력

-z : gzip를 이용 압축(압축해제)

-j : bzip2 이용

-f : 파일명을 지정

-p : 퍼미션 유지

가 있습니다. 하지만 보통 gzip을 사용하고, 작업내용을 출력하지 않으면 압축되는 내용을 모르기에 작업내용출력 옵션도 적고 파일명을 지정해주는 것이 알기 쉽기때문에 파일명 지정 옵션도 사용합니다. 따라서 옵션양식은 보통은 압축할때 -cvfz, 압축풀때 -xvfz로 작성합니다.

압축하기 전에 압축할 파일들을 한 디렉토리에 모아놓는것이 필수인데 압축을 풀게 되면 윈도우에서 압축풀때 여기에압축해제 처럼 압축파일이 있는 디렉토리에 바로 풀리기 때문에 정리를 위한 목적이 하나이고, 두번째는 압축하기전 디렉토리와 압축파일내의 파일중 같은 이름을 가진 파일이 있다면 압축이 풀릴때 바로 덮어쓰기가 되어버립니다. 이는 데이터 손상을 야기할수있으니 굉장히 조심해야하고 중요합니다.

마지막 주의사항은 파일명을 지정할때 '파일명. tar.gz'로 입력하여 tar방식으로 압축하고 gzip방식으로 용량을 줄였다라는 것을 표현해주는것이 예의입니다.

rm명령어는 파일 및 디렉토리를 삭제하는 명령어인데 형식은 'rm -옵션 경로or파일명'입니다.

파일을 여러개 지우고 싶다면 경로 또는 파일을 띄워쓰기로 구분해주면 됩니다. 파일은 괜찮은데 디렉토리를 지울때는 그 디렉토리가 비워져 있어야 삭제가 가능합니다. 하지만 만약 필요없어서 그냥 바로 지우고 싶다라고 한다면 -rf옵션을 사용하면 강제로 삭제를 해서 삭제가 가능해집니다.

rm에서 안풀리던 부분이 있는데 하위 및 상위 디렉토리 안에 있는 파일을 지울때 어떻게 해야 지워지나 입니다. 처음에는 'rm /경로/ 파일명'으로 생각했는데 계속 경로와 파일을 따로 생각하여 경로삭제와 파일삭제 두번삭제를 요구해 실패했습니다. 다음으로 'find /경로/ -name '파일' exec rm {}\;'이란 명령어를 참조하여 지워보려 했으나 아직 공부하지 않은부분이라 이해가 안되서 그런지 실패했었습니다. 마지막에 강사님께서 알려주신 원래 '파일명은 경로까지 포함이다'라는 얘기에서 해결책을 찾았습니다. 바로 'rm /경로/파일명'으로 설정하면 그 경로로 찾아가서 파일을 삭제한다는 것을 배웠습니다.

마지막으로 clock명령어 입니다. clock명령어는 Linux 시스템에 탑재된 BIOS의 시간을 출력하거나 변경할 때 사용합니다. 형식은 'clock -옵션'으로 작성합니다.  
옵션으로는  
-r : BIOS의 시간을 읽어 표준 출력으로 출력한다.
-w : 시스템의 시간을 이용 시간을 변경한다.
-s : BIOS의 시간으로 시스템의 시간을 변경한다.

의 3가지가 있습니다. Linux에서 시간 일치는 굉장히 중요합니다. 시간이 안 맞게 되면 전송시간이 달라지게 되어 통신이 불가능해질 수 있습니다. 따라서 시간 차이 확인은 최대 10^-2 ~ 최소 10^-4 까지는 확인해줘야 어느 정도 정확성을 인정합니다. 또한 부팅할때마다 동기화 시켜주는 것이 가장 좋은데 적어도 3개월에 1회씩은 동기화를 시켜줘야 합니다.

 

 

-----11/25추가

mv명령어는 파일 및 디렉토리 이동명령어입니다.

cp명령어와 유사하며 형식은 'mv -옵션 원본파일 이동할디렉토리'로 작성합니다.

반응형

'교육 > Netwrok' 카테고리의 다른 글

Day 5 (2)  (0) 2019.11.22
Day 5 (1)  (0) 2019.11.22
Day 4  (0) 2019.11.22
Day 2 & 3(2)  (0) 2019.11.22
Day 1  (0) 2019.11.21