본문 바로가기

리눅스/리눅스 커맨드라인 완벽 입문서 책

1~4 장

728x90
반응형

1장

쉘이란 

 키보드로 입력한 명령어를 운영체제에 전달하여 이 명령어를 실행하게 하는 프로그램. 

 

터미널 에뮬레이터 (= konsole)

 GUI 환경에서는 쉘과 직접 작업할 수 있도록 도와줄 때 이 프로그램이 필요하다. 

 이 프로그램은 데스크톱 메뉴를 잘 살펴보면 쉽게 찾을 수 있다. 

 쉘에 접근할 수 있게 해주는 장점이 있다. 

 

# : root 사용자 = 슈퍼유저권한을 가짐.

$ : 일반 사용자 

 

명령어 히스토리

 방금 입력한 명령어를 다시 보려면 위쪽 방향키를 사용하게 되면 프롬프트에서 해당 명령어가 다시 나타나게 하는 것. 

 

date : 현재 시간과 날짜 표시 

cal : 현재 날짜의 달력 표시 


2장. 파일시스템 탐색

pwd (Print Working Directory): 현재 작업 디렉토리를 화면에 출력할 때 

cd    : 디렉토리 변경할때쓴다. 변경하고자 하는 디렉토리 경로명을 쓰면 변경가능
             cd                    : 작업 디렉토리를 홈 디렉토리로 변경 
             cd -                  : 작업 디렉토리를 이전 작업 디렉토리로 변경
             cd ~[사용자이름] : 사용자이름의 홈 디렉토리로 작업 디렉토리를 변경 
                                      ex) cd ~yuni를 입력하면 사용자 yuni의 홈으로 이동

ls    : 디렉토리 내용 나열하기

 

루트 디렉토리 : 파일시스템의 최상위 디렉토리 

                     파일들과 하위 디렉토리들을 포함하고 있고 하위 디렉토리 역시 디렉토리들과 파일을 가지고 있다. 

 

유닉스형 시스템에서는 아무리 많은 저장장치가 설치되었다 해도 단일 파일시스템으로 관리한다는 점이 있다. 

유닉스형 시스템의 저장장치들은 시스템 유지보수를 담당하는 시스템 관리자의 재량에 따라 다양한 위치에 설치

(장착 또는 마운트)된다. 

 

현재 작업 디렉토리 : 내가 위치해 있는 지점 

 

현재 작업 디렉토리를 표시하려면 pwd라는 명령어를 사용한다. 

 

경로명 : 내가 원하는 디렉토리까지 파일시스템 트리상의 이동 경로를 나타낸 것. 

절대 경로명 : 루트 디렉토리에서 원하는 디렉토리 또는 파일까지의 경로에 대하여 각 디렉토리 위치들 하나씩 명시해준 것  
                  즉, 루트디렉토리로 시작해서 목적지까지 모두 표시함.
                  ex) cd /home
             
상대 경로명 : 현재 작업 디렉토리가 시작점. 
                  상대 경로명을 표시하려면 파일시스템 트리상의 상대적인 위치를 대신 표현해주는 특수 기호를 사용
                  ex) cd ..
                  .(점)    : 현재 작업 디렉토리 
                  ..(점점) : 상위 디렉토리 

그럼 어떤 방법을 사용하는 게 좋을까? 
  당연히 더 적게 입력할 수 있는 방법을 택하면 된다. 그래서 절대 경로명과 상대 경로명 둘 다 사용할 수있다. 
  ex) cd ./bin

./ 기호를 생략할 수 있다 
   ex) cd ./bin  → cd bin
파일명에 관한 중요한 몇 가지 사실 

.(마침표)로 시작하는 파일명을 가진 파일들은 보이지 않는다.  그래서 단순히 ls 명령어만으로는 숨겨진 파일을 볼 수 없고      오직 -a 옵션을 포함한 ls -a를 사용해야 비로소 확인이 가능하다

명령어는 대소문자를 구별한다.

다른 운영체제들과는 달리 리눅스에는 "파일 확장자" 개념이 없기 때문에 원하는 대로 파일명을 만들 수 있고, 이 파일의        내용과 파일종류는 다른 방법으로 결정된다. 

띄어쓰기와 구두점 기호가 포함된 긴 파일명이 허용된다.
   하지만, 파일명에 구두점 기호를 사용할 때, 마침표, 하이픈, 언더라인만 사용가능하다.
   가장 중요한 것은 파일명에 공백(스페이스)을 포함하면 안된다

3장. 시스템 살펴보기 

ls    : 디렉토리 내용 나열하기
             
fine : 파일 타입 확인하기

less 
: 파일 내용 표시하기(텍스트 파일을 볼 때 사용)

 

● 재미있는 ls 명령어 

 디렉토리의 목록 볼 수 있다(현재 작업 디렉토리에 있는 파일과 하위 디렉토리들 모두 표시).

 중요파일 및 디렉토리 속성을 결정할 때 유용하다.

ls 옵션

-a (long옵션 : --all)                   : 모든 파일보기 .(점)으로 시작하는 숨김파일까지 모두 표시해준다.

 -d (long옵션 : --directory)          : -l과 함께 사용하면 디렉토리 내용이 아닌 디렉토리 자체 정보를 자세하게 확인 가능.

-F (long옵션 : --classify)             : 지시 문자를 추가로 표시한다. ex) 디렉토리명이면 끝에 /(슬래시)를 덫붙인다.

-h (long옵션 : --human-readable) : -l 옵션과 함께 사용하여 파일 크기를 사람이 인식하기 쉬운 형태로 표시해준다.

-l                                          : 좀 더 자세한 정보를 출력해준다.

-r (long옵션 : --reverse)             : 출력 결과를 역순으로 표시.(일반적으로 ls는 알파벳 오름차춘으로 표시된다)

-s                                         : 파일 크기순으로 정렬한다.

-t                                         : 파일 수정 시간순으로 정렬한다. 

 

 

파일 자세히 보기 정보

 

file 명령어로 파일 타입 확인하기 

 리눅스에서는 파일명이 해당 파일의 정보를 반경하고 있지 않다. 예를 들면 picture.jpg와 같은 파일명은 일반적으로       JPEG압축 이미지라는 것을 알 수 있지만, 리눅스에서는 파일명이 직관적이지 않다. 그래서 file명령어를 이렇게 실행시   킨다.     file [파일이름].jpg

 

● less 명령어로 파일 정보 보기 

텍스트 파일을 볼 때 사용하는 프로그램이다. (종료 : q)

 


4장. 파일과 디렉토리

cp      : 파일 및 디렉토리 복사하기
              cp옵션
              ▷ -a : 파일 및 디렉토리뿐만 아니라 소유자 및 권한 정보와 같은 속성까지 모두 다 복사
              ▷ -i : 기존 파일을 덮어쓰기 전에 확인 메시지를 보여주는 옵션
                       이 옵션 없이 cp 명령어를 사용하면 확인 과정 없이 그대로 파일을 덮어쓰게 된다. 
              ▷ -r : 디렉토리와 그 안의 내용까지 복사할 때 쓰는 옵션.
              ▷ -u : 어떤 디렉토리에 있는 파일을 다른 디렉토리로 복사할 때, 그 디렉토리에는 없거나 최신버전인 파일만을 
                        복사할때
              ▷ -v : 복사가 완료되었다는 메시지를 보여주는 옵션 
              cp 사용 예제
              → cp file1 file2       :
file1을 file2로 복사하기. 만약 file2라는 파일이 이미 있다면 file1내용을 그래도 덮어쓰게                                               된다. file2가 없으면 새로 생성한다.
              → cp -i file1 file2    :
만약 file2 파일이 있다면 덮어쓰기 여부에 대한 확인 메시지를 보여준다.
              → cp file1 file2 dir1 :
file1, file2를 dir1이라고 하는 디렉토리로 복사한다.
                                             ※ 단, dir1 디렉토리는 미리 존재해야 한다.
              → cp dir1/* dir2      :
와일드카드와 함께 사용해서 dir1 디렉토리에 있는 모든 파일을 dir2 디렉토리로 복사.
                                             ※단, dir2 디렉토리는 미리 존재해야 한다.
              → cp -r dir1 dir2      :
dir1 디렉토리와 그 안에 있는 모든 내용을 dir2 디렉토리로 복사한다. 
                                             dir2가 없으면 새로 생성될 것이고 dir1 디렉토리에 있는 모든 내용들이 복사된다. 

mv    :
파일 및 디렉토리 이동 , 이름 바꾸기(쓰임은 cp와 비슷함.)
              mv 사용 예제
              → mv dir1 dir2       :
dir1과 그 내용까지 모두 dir2로 이동한다. dir2 디렉토리가 기존에 없는 것이라면 새로 
                                            생성이 되고 dir1의 내용이 모두 그대로 이동한다. 그리고 dir1은 삭제된다.  

                                             
mkdir
디렉토리 새로 만들기 (나열하면 여러개의 디렉토리를 생성할 수 있다)
                mkdir directory명

rm      :
파일 및 디렉토리 삭제하기
               rm 옵션
               ▷ -i 
               ▷ -r :
재귀적으로 디렉토리를 삭제한다. 즉, 삭제된 디렉토리에 하위 디렉토리들이 있다 해도 모두 삭제된다는 뜻
                       디렉토리를 완전히 삭제하려면 이 옵션을 반드시 사용해라 
               ▷ -f : 존재하지 않는 파일은 확인 메시지 없이 무시하라는 옵션이다. 이 옵션은 --interactive 옵션을 완전히 무시
               ▷ -v
               rm 사용 예시
               → rm -rf file1 dir1 :
위와 같이 file1과 dir1 모두 다 삭제하되 file1이나 dir1이 존재하지 않더라도 rm 명령어가 
                                           실행된다.

ln       
하드링크 또는 심볼릭 링크 만들기 

 

와일드카드 : 특수 문자 

*               : 모든 문자
?               : 모든 하나의 문자
[characters]  : characters 문자셋에 포함된 문자
[!characters] : characters 문자셋에 포함되지 않은 문자
[[:class:]]      : 지정된 문자 클래스에 포함된 문자 
가장 많이 사용되는 문자 클래스 

▷ [:alnum:] : 모든 알파벳과 숫자문자
▷ [:alpha:]  : 모든 알파벳 문자
▷ [:digit:]   : 모든 숫자
▷ [:lower:]  :  모든 소문자
▷ [:upper:] :  모든 대문자 
와일드카드 사용 예시
*                              : 모든파일
g*                            : g로 시작하는 모든 파일
b*.txt                        : b로 시작하되 .txt형식파일
Data???                     : Data로 시작하면서 뒤에 정확히 세 개의 문자만 있는 파일
[abc]*                       : a, b, c로 시작하는 모든 파일
BACKUP.[0-9][0-9][0-9] : BACKUP으로 시작하면서 뒤에 정확히 세 개의 숫자로 된 파일
[[:upper:]]*                 : 대문자로 시작하는 모든 파일 
[![:digit:]]*                  : 숫자로 시작하는 모든 파일
*[[:lower:]123]             : 파일명이 소문자로 끝나거나 1,2,3으로 끝나는 파일 

 

RM 사용 시 주의할 점!
 
 리눅스처럼 유닉스형 운영체제는 삭제를 취소할 수 있는 명령어가 없다. rm으로 일단 삭제가 되면 되찾을 수 없다.
특히 와일드카드와 함께 사용할 때 정말 주의해야한다. 

ex) rm *.html  실수로 *기호와 .html 사이에 빈칸을 입력하면
     rm * .html 그 디렉토리에 있는 모든 파일을 삭제하고, .html이라는 파일은 없다는 메시지를 보여주는 큰 일이 발생한다. 

그러므로, rm과 함께 와일드카드를 사용할 때마다 주의해야한다. 
ls 명령어로 와일드카드를 먼저 테스트하라. 이것으로 삭제될 파일을 미리 볼 수 있게 된다. 확인한 후, 위쪽 화살표 키로 이전
명령어를 불러온 후, ls 자리에 rm 명령어를 입력하여 실행하면 된다. 
 

 

In - 링크 생성

▶ 하드링크 만들때
     ln file 링크

▶ 심볼링링크 만들때 
     ln -s item 링크    

 

하드 링크

 장점 - 하드링크가 만들어질 때 그 파일에 대한 디렉토리가 곧바로 생성한다.

 단점 - ① 파일시스템 외부에 있는 파일을 참조할 수 없다. 즉, 같은 디스크 파티션에 있는 파일이 아니면 참조 X

          ② 디렉토리를 참조할 수 없다. 

 

ls 명령어는 -i옵션을 사용하여 이러한 정보를 알 수 있는데, fun과 fun-hard 파일이 같은 아이노트번호를 공유하고 있는 것을 볼 수 있다. 

 

 

심볼릭 링크

 하드 링크의 한계를 극복하기 위해 탄생되었다. 참조될 파일이나 디렉토리를 가리키는 텍스트 포인터가 포함된 특수한 파일을 생성한다. 이러한 점에서 윈도우즈의 바로가기와 매우 흡사한 방식이다. 

심볼릭 링크가 참조하고 있는 파일과 심볼릭 링크 그 자체는 서로 구분하기가 힘들다. 

 

예를 들면, 심볼릭 링크에 편집을 하게되면 심볼릭 링크가 참조하고 있는 파일도 역시 똑같은 변경이 이루어진다.

하지만, 심볼릭 링크를 삭제하는 경우엔 그 링크만 삭제되고 파일은 남아있다. 

심볼릭 링크를 삭제하기 전에 파일을 지웠다면 심볼릭 링크는 살아있지만  이 링크는 아무것도 가리키지 않게된다. 
이러한 경우를 링크가 깨졌다고 표현한다. 많은 쉘에서 ls 명령어로 인해 빨간색이나 다른 색상으로 깨진 링크를 볼 수 있다. 

심볼릭 링크를 만드는 것은, 심볼릭 링크가 참조하는 원본 파일의 위치 정보를 생성하는 것이다 

위의 설명처럼 심볼릭 링크 파일이 현재는 삭제된 파일을 가리키고 있기 때문에 링크가 깨져버린 것이다. 

 

페도라 시스템에서는 깨진 링크를 깜박이는 빨간 텍스트로 표시해준다. 

 

깨진 링크가 보이는 것은 더이상 무의미하기에 그 자체만으론 위험하진 않지만, 지저분하다. 

심볼릭 링크를 삭제 해보자.

 

 

 

 

 

 

728x90
반응형

'리눅스 > 리눅스 커맨드라인 완벽 입문서 책' 카테고리의 다른 글

5장  (0) 2020.11.15
리눅스명령어  (0) 2020.11.11