'ls'유닉스 운영체제의 기초 시스템 툴 로써 파일 리스트를 출력해 주는 명령어로써 예를 들어 윈도우즈나 DOS에 있어서 dir과 같다.

하지만 그 기원은 dos의 dir 보다 유닉스 시스템의 ls가 훨씬 더 오래 되었고 1970년대에 이미 AT&T에 의해 유닉스가 처음 개발 되었을때 부터 존재했던 거의 운영체제의 뿌리와 같은 콘솔 툴 이다.

필자는 아직 접해 보지는 못했지만 혹자는 명령어 'ls' 에 관한 두꺼운 책이 있을 정도 라고 하니

ls는 단순해 보이지만 사실은 수많은 활용 방식과 조합 명령 시스템을 인지 할수 있는 기능을 가지고 있다.

즉, 특히나 소프트웨의 구동의 상위가 되는 BASH 스크립트 구동에 있어서 빠져서는 안되며 운영체제 운영에 있어서도 빠져서는 안되는 뿌리 기둥이나 마찬가지 인 소프트웨어라고 보면 될 것이다.

하지만 혹자들 중에는 ls가 사용하기 불편하다고 말하는 사람들도 있다.

왜냐하면 그냥 'ls'를 치면 단순 명료하지만 알아보기 힘들게 나온다는 것이다.



// ls를 그냥 쳐 보도록 한다.

$ ls
   
-- 다음과 같이 출력 된다.  (단순히 구분마다 색깔로 구분되어 있으며 이는 'ls -C'(Color)를 한 것과 같다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd  testd2  uu


// 색깔로 구분하는 명령을 내린다.

$ ls -C
        
  (Color: 색깔)
   
-- 이전과 똑같이 출력 된다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd  testd2  uu






이렇게 보면 기존의 ls 명령은 칼라 속성을 가지는 'ls -C'로 동작하는 것을 알 수가 있다.

여기서 색깔을 구분 하자면 초록색은 실행 파일 흰색(일반색)은 일반파일 파란색이 폴더(디렉토리) 이다.

하지만 이것도 알아보기 힘들다면 -p 로 하여금 폴더를 구분하는 명령을 줄수가 있다.


// -p 옵션을 준다.

$ ls -p

-- 폴더는 '/'가 붙는 것을 확인할수가 있다.

U  autopoboot  bp  bpt  else  f  get  geted  getter  gettter.ods  hz  odg  op  r  ro  rt  screen.png  testd/  testd2/  uu

// 그렇다면 이제부터는 연달아서 ls의 기능을 활용해 보도록 해보자.

// '-a' 옵션으로 숨겨져 있는 폴더와 파일들을 확인하자.

$ ls -a

-- 앞에 '.'이 붙은 파일과 폴더들이 나타난 것을 살펴 볼 수 있다.

..        .hidf  autopoboot  bpt   f    geted   gettter.ods  odg  r   rt          testd   uu
.          .hid.txt  U      bp          else  get  getter  hz           op   ro  screen.png  testd2

// '-p' 옵션과 합하여 보자.

$ ls -pa

-- 숨긴 파일들 표시와 함께 '/'폴더 표시가 함께 표시된다.    

./   .hid.txt  U           bp   else  get    getter       hz   op  ro  screen.png  testd2/
../  .hidf/    autopoboot  bpt  f     geted  gettter.ods  odg  r   rt  testd/      uu

// 그렇다면 이제는 권한 속성까지 표현하는 '-l' 옵션을 함께 줘보자.



$ ls -pal


drwxr-x---.   5 tester tester   4096  8월  5 19:23 ./
drwxr-x---. 131 tester tester  45056  8월  5 15:22 ../
-rw-rw-r--.   1 tester tester      2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester   4096  8월  5 19:06 .hidf/
-rwxr-x---.   1 tester tester     10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester   3841  5월 21 18:25 bp
-rwxr-x---.   1 tester tester    110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester     72  6월 16 23:53 else
-rwxr-x---.   1 tester tester      5  6월  3 19:11 f
-rwxr-x---.   1 tester tester    114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  16897  6월 12 19:49 geted
-rwxr-x---.   1 tester tester    103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   9756  6월 12 16:44 gettter.ods
-rwxr-x---.   1 tester tester   3004  6월 12 22:30 hz
-rwxr-x---.   1 tester tester   1275  5월 29 21:37 odg
-rwxr-x---.   1 tester tester     45  5월 29 19:17 op
-rwxr-x---.   1 tester tester     85  5월 14 23:29 r
-rwxr-x---.   1 tester tester    181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester    610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester 350393  7월 30 14:43 screen.png
drwxrwxr-x.   2 tester tester   4096  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester   4096  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester     47  5월 30 11:00 uu

-- 속성결과 함께 이번에는 세로로 나열되어 출력된다.

// 이번에는 용량을 알아보기 쉽게 '-h 옵션을 같이 줘 보도록 하자.

$ ls -laph

합계 656K
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxr-x---. 131 tester tester  44K  8월  5 15:22 ../
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
 
-- 용량이 함께 표시되어 출력된다.

// 모든 결과를 용량순대로 정렬시켜 보자. ('-S' 옵션을 사용한다.)


dsad

$ ls -laphS


합계 656K
-rwxr-x---.   1 tester tester 343K  7월 30 14:43 screen.png
drwxr-x---. 131 tester tester  44K  8월  5 15:22 ../
-rwxr-x---.   1 tester tester  17K  6월 12 19:49 geted
-rwxr-x---.   1 tester tester 9.6K  6월 12 16:44 gettter.ods
drwxr-x---.   5 tester tester 4.0K  8월  5 19:23 ./
drwxrwxr-x.   2 tester tester 4.0K  8월  5 19:06 .hidf/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd/
drwxrwxr-x.   2 tester tester 4.0K  8월  5 16:30 testd2/
-rwxr-x---.   1 tester tester 3.8K  5월 21 18:25 bp
-rwxr-x---.   1 tester tester 3.0K  6월 12 22:30 hz
-rwxr-x---.   1 tester tester 1.3K  5월 29 21:37 odg
-rwxr-x---.   1 tester tester  610  5월 21 17:26 rt
-rwxr-x---.   1 tester tester  205  6월  4 21:54 autopoboot
-rwxr-x---.   1 tester tester  181  6월  1 00:05 ro
-rwxr-x---.   1 tester tester  114  6월 12 19:49 get
-rwxr-x---.   1 tester tester  110  5월 21 18:42 bpt
-rwxr-x---.   1 tester tester  103  7월 16 16:23 getter
-rwxr-x---.   1 tester tester   85  5월 14 23:29 r
-rwxr-x---.   1 tester tester   72  6월 16 23:53 else
-rwxr-x---.   1 tester tester   47  5월 30 11:00 uu
-rwxr-x---.   1 tester tester   45  5월 29 19:17 op
-rwxr-x---.   1 tester tester   10  5월 30 11:01 U
-rwxr-x---.   1 tester tester    5  6월  3 19:11 f
-rw-rw-r--.   1 tester tester    2  8월  5 19:05 .hid.txt

-- 모든 출력 결과가 용량과 함께 출력 된다.



'ls' 명령어 가이드는 다음 2화에 계속된다.
 

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

리눅스를 유닉스를 기반으로 하고 있고

유닉스는 파일의 속성 권한을 2진법으로 구분 하고 있다.

이는 시스템 보안에서 가장 첫번째로 중요한 부분 으로써 외부 애플리케이션 등이나 외부의 일반적인 친입 등으로 부터 파일의 변조나 리딩을 보호 할수가 있다.

뿐만 아니라 파일의 실행 속성 가능 여부 까지 제어 하는 것을 기본 원칙으로 하고 있다.

즉 유닉스 시스템 에서는 모든 파일들이 실행 가능한 스크립트를 내장 하고 있다고 하여 실행이 가능한 것이 아니다.

관리자 혹은 제작자가 실행 가능 여부를 권한 변경 설정을 해줘야만 실행이 가능한 것이다.

이러한 관리툴을 대표적으로 'chmod (Changes mod)' 라고 하며 이 chmod 명령을 사용하여 해당 폴더나 파일의 권한 속성을 변경 할수가 있다.

모드의 종류는

크게 세 가지인 'R, W, X'로 나뉜다.

R = Read (읽기 가능)

W = Write (쓰기 가능)

X = Excute (실행 가능)



먼저 현재 사용자의 홈 폴더의 파일이나 폴더들의 속성을 보도록 해 보자.


// ls의 -la 속성 명령어로 파일의 속성까지 전부 출력 한다.

    $ ls -la

    -- 다음과 비슷한 화면이 뜰 것이다.

    drwxrwxr-x.   3 tester tester      4096  5월 16 02:40 test7
    -rwx--x--x.   1 tester tester      1715  5월  8 18:11 tested
    -rwx--x--x.   1 tester tester         5  5월  8 21:17 testo
    drwx--x--x.   3 tester tester      4096  6월 10 19:35 tmp
    -rwx--x--x.   1 tester tester       442  5월 10 23:41 ustat
    -rwxrwxr-x.   1 tester tester        10  5월 15 02:54 vi
    -rwx--x--x.   1 tester tester         7  5월 15 03:16 vic
    drwxrwxr-x.   2 tester tester      4096  7월 25 13:57 video
    drwxrwxr-x.   2 tester tester      4096  8월  4 15:47 wine
    drwxrwxr-x.   2 tester tester      4096  7월 20 17:57 workspace
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 공개
    drwx--x--x.   2 tester tester     12288  8월  4 12:42 다운로드
    drwxrwx--x.   2 tester tester      4096  8월  4 14:43 문서
    drwxrwx--x.   2 tester tester      4096  8월  4 15:36 바탕화면
    drwx--x--x.   2 tester tester      4096  8월  4 02:09 비디오
    drwx--x--x.   2 tester tester      4096  8월  4 03:39 사진
    drwx--x--x.   2 tester tester      4096  5월 11 20:46 음악
    drwxrwxr-x.   2 tester tester      4096  5월 17 11:43 이름 없는 폴더
    drwxrwxr-x.   3 tester tester      4096  5월 17 11:37 이름 없는 폴더 2
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 템플릿

    (  속성    )          (사용자 이름)               (파일이나 폴더 이름)



   

여기서 '템플릿' 이라는 디렉토리의 속성 'drwx--x--x' 는 아래와 같이 3등분이 된다.

drwx / --x / --x :

사용자 / 그룹 / 외부(anonymous)


읽기,쓰기,실행/ 실행 / 실행

처음 drwx 의 'd'는 '디렉터리'를 의미 한다.

이것을 진수로 표기한다면


rwx / --x / --x =

111  / 001 / 001 =

(421) / (421) / (421) =

4+2+1 / 0+0+1 / 0+0+1 =

7    /     1    /   1


즉 해당 폴더에 대한 모드는 숫자표기로 '711'이 된다.


그렇다면 이제는 해당 '템플릿' 폴더를 'drwx/---/--- (절대 사용자만 읽기,쓰기,실행 가능)' 으로 속성 권한을 변경 하여 보자.



// 속성을 700으로 변경한다.

    $ chmod 700 템플릿

// 속성을 재확인 한다.

   $  ls -l |grep 템플릿
         (grep 은 출력에서 원하는 문자열이 있는 라인만 출력 시킨다.)
 
    - 다음과 같이 출력 되면 성공한 것이다.
 
    drwx------.  2 tester tester      4096  4월 29 17:59 템플릿



이와 같은 방법은 파일에서도 똑같이 적용 되며


* 만일 디렉터리일 경우 속성을 '6xx'로 할 경우

    $ chmod 600 폴더

    - 폴더 속성이 drw------- 으로 변경됨으로 x(실행) 속성 권한이 사라짐으로 폴더로 진입 할수 없게 된다.

    - 뿐만 아니라 그룹 속성까지 제로로 한다면 'ls' 같은 일반 프로그램도 타 소프트웨어들도 접근을 못하게 된다.
    (해당 폴더에 들어가서 ls를 실행할 경우 진행 되지 않는다.)   
즉, 그룹 권한을 생각하여 최소한 '750(rwxr-x---)' 이상으로 권한을 부여 하는 것이 일반적이다.





또한 해당 디렉토리 하부의 모든 파일과 폴더들을 전부 똑같이 적용 시키려면



// -R 속성으로 하부까지 전부 적용 시킨다.

   $ chmod -R 770 폴더
 
// 하위까지 속성을 한번에 확인해 본다.

   $ ls -lR 폴더





리눅스에서의 netstat 명령은 그 사용 용도는 같지만 기능과 명령이 조금 다릅니다.


그냥 netstat 명령을 치면 윈도우와는 다르게 외부 프로토콜을 포함하여 내부 프로세스 교류 현황까지 전부 뜨게 됩니다.


그렇다면 간편하게 외부 교류 프로토콜만 확인하려면


netstat -t


netstat -tunp


혹은 netstat -a | less 명령으로 모든 netstat 을 천천히 내려 보실수가 있습니다.


빠져나오려면 (ctrl + z)




초보자를 위한 리눅스 가이드 영상 입니다.




+ Recent posts