본문 바로가기

별걸다하는 IT/리눅스 유닉스

알아야 할 리눅스 파일 및 디렉터리 기본 명령어 1탄 및 관련문제(cd,ls,pwd, touch 등)

리눅스 완전 정복 : 리눅스 목차

 

리눅스 기초 중의 매우 기초 

리눅스 명령어 생기초를 알아봅시다.

리눅스 파일 및 디렉터리 관련 명령어 1탄

생기초니까..

결국 여기서 말하는 디렉터리는 폴더예요 폴더

윈도우야 화면이 있어서 내 탐색기 가면 폴더구조가 촥 보이고 

더블클릭하면 이동하고 그래서 폴더를 보는데 굳이 명령어를 볼 필요가 없었죠.

 

하지만 리눅스는 쉘 기반입니다. 명령어로 모든 작업을 해결한다는 거죠.

물론 desktop.iso등 과 같이 윈도우처럼 UI를 제공하기도 하지만 서버는 쉘로만 구성되어있고 애초에 리눅스 자체가 쉘기반입니다. 고럼 리눅스에서는 우뜬 명령어를 이용해서 왔다갔다 하는지 볼까요

1.

pwd

(print working directory)

현재 위치한 작업 디렉터리의 경로를 출력해줍니다

내가 어느 폴더에 들어와있는지, 내가 어디에 위치해있는지 당연히 알아야겠죠

 

root 홈 디렉터리니까 pwd하면 당연히 /root 경로가 나오겠죠 

내가 우딨는지 잘 알려주네요

2.

cd 

(change directory)

디렉터리를 이동하는 명령어 

$ cd [directory_name]

cd 엄청 많이 쓰게 될거예요. 안외울래야 안외울수가 읍음..ㅎㅎ

 

$ cd ..

윈도우에서는 아래 그림과 같이 저 빨간 아이콘을 클릭하면 그 위 디렉터리로 이동하죠?

리눅스에서는 cd ..가 같은 역할을 합니다

$ cd .. 

-> 한 단계 위인 부모 디렉터리로 이동

 

$ cd - 

-> 이동하기 바로 직전의 디렉터리로 이동

 

$ cd .

-> 반면에 여기에 점이 딱 한개만 찍혀있다면 그건 현재 디렉터리를 의미해요

 

$ cd ~

$ cd

-> ~는 사용자의 홈 디렉터리를 나타내는 특수문자입니다. $ cd랑 같은 명령어예요 

$ cd ~yang 하면 yang 사용자의 홈 디렉터리로 이동해줘! 

(리눅스는 멀티 유저 시스템이라 사용자 계정을 여러개 등록할 수 있고 각각 홈 디렉터리가 존재한다고 했었어요~)

 

$ cd /user/local/src

-> /user/local/src 디렉터리로 이동해줘 당연히 경로가 정확해야겠죠 

3.

이제 내 위치도 알고, 이동하는 명령어도 알면, 내가 있는 곳의 파일이나 폴더 목록을 출력해주는 명령어도 필요할거예요 윈도우만 봐도 

이렇게 폴더 목록을 출력해주니까요 

 

l(list)

디렉터리 안의 내용을 출력해 주는 명령어

$ ls [option] [파일 또는 디렉터리명]

 

실제로 ls한 결과를 보면 이해가 빨라요~~ 현재 들어있는 파일과 폴더 명을 쭈우욱 출력해줍니다.

저는 ls -al을 습관적으로 많이 쓰는데요 

여기서 -al은 옵션입니다

 

r각각 컬럼(열)이 나타내는 항목은 아래와 같습니다. ㅎㅎ

이와 관련되서는 허가권 지정 포스팅에서 디테일하게 다루게 될거예요 ㅎㅎ 그니까 너무 성급해하지 않기!

 

옵션 OPTIOSN

어떤 옵션들이 있느냐

 옵션

 의미 

 -a 

 숨겨진 파일이나 디렉터리도 출력해줍니다. 

 -F 

 파일의 형태에 따라 관련 정보를 출력해줍니다. 

 실행 가능한 파일은 파일 이름 뒤에 *문자

 디렉터리는 이름 뒤에 './'

 Symbolic link는 뒤에 '@'를 붙여서 표시해줍니다. 

 -l

 파일이나 디렉터리 정보를 한 줄씩 하나씩 길게 보여줍니다

 출력되는 정보는 총 7개의 필드로 

 파일의 접근 허용, 링크의 수(파일) 또는 이동 가능한 디렉터리 개수, 소유자, 그룹, 파일 크기, 최종 수정 날짜 및 시간, 파일 또는 디렉터리명 으로 구성됩니다. 

 -d

 대상이 디렉터리인 경우에 디렉터리 안의 내용 대신에 해당 디렉터리에 대한 정보를 출력합니다. 

 -t 

 출력되는 정보가 알파벳 순이 아니고 최근 수정된 파일부터 시간 순으로 출력됩니다. 

 -rt

 reverse 니까 -t랑 반대겠죠 최신순이 아닌 오래된 순으로 출력해줍니다. 

 

더 많은 옵션이 있지만 그건 man명령어로 그 때 그 때 참고하기로 하고..(man 명령어는 명령어 설명서 = help = 도움말? 같은 거) 이정도 알아둡시다.

$ ls -al 은 -a 옵션과 -l 옵션이 합쳐진거예요 이렇게 여러 옵션을 함께 적용하고 싶으면 붙여서 씁니다.

a옵션, l옵션, d옵션, t옵션, rt옵션.. 사실 저기 나와있는 옵션 모두 진짜 많이 사용해요! 꼭 다 알고 있기

 

$ ls -alF

현재 디렉터리의 내용을 숨겨진 파일을 포함해서 모두 출력해주고 관련 정보 및 파일의 형태도 표시해준다

설정이나 디폴트 파일들은 숨겨져 있는 부분이 대다순데 그런 것들을 관리자라면 확인할 수 있어야 하거든요 

 

$ ls -dl = ls -ld 의 경우 디렉터리 안의 내용을 보여주는 게 아니라 내 자신 즉 해당하는 디렉터리에 대한 정보를 출력하는 것을 볼 수 있습니다

보통 하위 디렉터리단으로 내려가지 않고 현재 디렉터리에서 디렉터리만 검색하고 싶을 때 사용합니다.

 

$ ls -ltr 

이렇게 하면 가장 최근에 수정한 항목이 맨 밑에 나와요 ㅎㅎ

그래서 복사하거나 다음 명령어에 보고 쓰기 편합니다. 그래서 기본적으로 저 명령어를 제일 많이 써요

4.

윈도우는 메모장 아이콘을 클릭하거나

실행에 notepad를 써줘서 실행하거나 우클릭으로 메모장을 생성할 수도 있는데 

리눅스는 이런 아이콘도 없고 우클릭 개념도 없고~!

어떻게 파일을 생성할 수 있을까 ? -> touch 명령어~!

touch 

 

파일의 타임스탬프를 변경하거나 파일의 크기가 0인 빈 파일을 생성하는 명령어

$ touch [option] 파일명

 

$ touch a.txt

현재 디렉터리에 a.txt라는 파일이 존재하면 파일의 수정 시간을 바꾸고, 

파일이 없을 경우에는 a.txt라는 파일 크기가 0인 빈 파일을 생성합니다.

 

 옵션

 의미 

 -t 

 현재 시간 대신 [[CC]YY]MMDDhhmm[.ss] 형식으로 지정된 타임스탬프로 변경합니다.

 리눅스 배포판에 따라 타임스탬프 형식이 다를 수도 있으니 man 명령어로 확인~. 

 

 root@server:~# touch -t 201212222105 /etc/passwd

 /etc/passwd 파일의 수정시간을 2012년 12월 22일 오후 9시 5분으로 변경

 

파일 만드는 명령어가 있으면 당연히 폴더 생성하는 명령어도 있겠죠~?

폴더 생성 명령어부터는 2탄에!

 

관련 문제 

[2019 리눅스마스터 1차 기출]

다음과 같이 명령을 실행한 상태이다. (괄호) 안에 'cd -'라고 실행했을 때 이동되는 디렉터리로 알맞은 것은?

--------------------------------------------------

[kaituser@www /]$ cd /user/local/src

[kaituser@www src]$ cd -

/

[kaituser@www /]$ ( )

--------------------------------------------------

1. /

2. /user/local

3. /user/local/src

4. /home/kaituser

답: 3번

 

다음 (괄호) 안에 들어갈 옵션으로 알맞은 것은?

--------------------------------------------------

[kaituser@www ~]$ ls (     ) /home

drwxr-xr-x. 6 root root 4096 Jan 5 11:15 /home

--------------------------------------------------

1. -l

2. -d

3. -ld

4. -lr

답: 3번

 

다음과 같이 명령을 실행한 상태이다. ( 괄호 ) 안에 'cd ~'라고 실행했을 때 이동되는 디렉터리로 알맞은 것은?

--------------------------------------------------

[kaituser@www /]$ cd /user/local/src

[kaituser@www src]$ (      )

--------------------------------------------------

1. /
2. /user/local
3. /user/local/src
4. /home/kaituser

답: 4번