TIL 50 | [Linux] 리눅스 기본 명령어

Yoonsik·2022년 10월 14일
1

Linux/centOS

목록 보기
1/2
post-thumbnail

📌 이번 포스팅에서는 리눅스 프로그래밍을하는데 필요한 리눅스 기본 명령어를 다뤄보려 합니다.

⛓ 디렉터리 관련 명령

디렉터리를 사용하기 위한 디렉터리 관련 명령은 현재 디렉터리의 위치를 파악하고, 다른 디렉터리로 이동하고, 디렉터리의 내용을 확인하는 명령과 디렉터리를 생성, 복사, 삭제 하는 명령이 있습니다.

🔗 pwd 명령

현재 디렉터리를 확인하는 명령이다. (Print Working Dirctory)

💻 Ex

pwd
현재 디렉터리를 출력함.

🔗 cd 명령

디렉터리 이동명령으로, 현재 작업중인 디렉터리를 변경할 때 사용합니다.
이동방식으로는 절대경로, 상대경로로 나뉩니다.

형식 : cd [디렉터리]

  • 절대경로

    최상위 디렉터리인 / 부터 전체 경로를 지정하여 현재 위치한 디렉터리에 상관없이 이동

  • 상대경로

    현재 디렉터리의 위치를 기준으로 이동하는 방법.
    하위 디렉터리나 부모 디렉터리로 이동할 때 사용

💻 Ex

cd /usr/local/src
절대경로 이동법. 최상위 디렉터리 / 부터 src 디렉터리로 이동

cd home
상대경로 이동법. 현재 디렉터리 안에 있는 home 디렉터리로 이동
실제 이동이 되려면 현재 디렉터리 안에 home 이라는 디렉터리가 존재해야 함

cd /home
절대경로 이동법 /home 디렉터리로 이동.

cd
자신의 홈 디렉터리로 이동 - /home/yoonsik

cd /
최상위 디렉터리 /(root) 디렉터리로 이동

cd .
현재 디렉터리로 이동. 변화 x

cd ..
한 단계 위인 부모 디렉터리로 이동.

cd ~
자신의 홈 디렉터리로 이동. cd 명령의 결과와 같음 ~ (tilde)는 사용자의 홈 디렉터리를 나타내는 특수문자이다.

다음과 같이 현재 사용자(yoonsik)의 홈 디렉터리에 있을 경우 ~(tilde) 표시를 볼 수 있음.

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

🔗 mkdir 명령

디렉터리를 생성할 때 사용하는 명령어 입니다.

형식 : mkdir [옵션] [디렉터리]

옵션 : -p
경로로 지정된 서브디렉터리가 존재하지 않을 경우, 함께 생성합니다.

  • ex) test/practice/pro01 디렉터리 생성 시, practice디렉터리가 존재하지 않을 경우, 그냥 이대로 mkdir 명령을 실행하면 오류가 발생합니다. (서브디렉터리 practice가 존재하지 않기 때문)

    이때, -p 옵션을 사용하여 존재하지 않던 서브디렉터리까지 함께 생성이 가능합니다.

💻 Ex

mkdir www
현재 디렉터리에 www라는 이름을 가진 디렉터리 생성

mkdir data pic backup
현재 디렉터리에 data, pic, backup 이라는 이름을 가진 디렉터리 3개를 생성 (여러개의 디렉터리 한번에 생성)

mkdir -p www/practice/pro01
현재 디렉터리에 있는 www 하위의 practice안의 pro01 이라는 디렉터리 생성.
만약, www와 practice 라는 디렉터리가 존재하지 않을 시 오류를 발생시키지 않고 함께 생성(-p)

🔗 rmdir 명령

디렉터리를 삭제할 때 사용하는 명령어 입니다.

형식 : rmdir [옵션] [디렉터리]

옵션 : -p
삭제하려는 디렉터리가 제거된 후에 그 결과로, 삭제된 디렉터리의 부모 디렉터리도 빈 디렉터리가 되면, 그 부모 디렉터리도 삭제 합니다.

💻 Ex

rmdir www
www 라는 디렉터리를 삭제

rmdir pic data backup
pic, data, backup 디렉터리 3개 한번에 모두 삭제

`rmdir -p www/practice/pro01
최하위 디렉터리인 pro01 삭제 후, 부모디렉터리인 practice가 빈 디렉터리가 되면 practice 삭제. 그 후, www가 빈디렉터리가 되면 www 까지 모두 삭제한다.

🔗 ls 명령

디렉터리 안의 내용을 출력해주는 명령입니다.

형식 : ls [옵션] [디렉터리(파일)]

옵션

  • -a : 숨겨진 파일이나 디렉터리(.으로 시작)들을 모두 출력해줍니다.

  • -F : 파일의 형태에 따른 관련정보를 이름 뒤에 함께 출력해줍니다.

    실행 가능한 파일 - *
    디렉터리 - /
    Symbolic Link - @

  • -l (ll) : 파일이나 디렉터리 정보를 다음과 같이 한줄씩 길게 보여줍니다. (7개의 필드)

    1) drwxrwxr-x 2) 2 3) yoonsik 4) yoonsik 5) 87 6) 10월 9 12:28 7) practice

    1) 파일접근권한(허가권) - 총 10개의 항목으로 이루어져 있고, 맨 앞글자는 파일의 종류, 나머지 9개는 소유자, 그룹, 기타 사용자들에 대한 권한이다.

    2) 하드링크의 개수이다.

    3) 파일 소유자를 표시한다.

    4) 파일이 속한 그룹을 표시한다.

    5) 파일의 크기를 바이트 단위로 표시한다.

    6) 파일이 마지막으로 수정된 날짜, 시간을 표시한다.

    7) 파일/디렉터리명을 표시한다.

  • -i : 파일이나 디렉터리에 부여된 아이노드 번호를 다음과 같이 함께 출력해줍니다.


  • -r : 파일이나 디렉터리의 목록을 알파벳 역순으로 출력해 줍니다.

💻 Ex

ls
해당 디렉터리의 내용을 출력한다.

ls -a
숨겨진 파일, 디렉터리(.으로 시작)들을 모두 출력해준다.

ls -F
파일, 디렉터리 형태에 따른 관련정보(@, /, *)를 이름 뒤에 출력해준다.

ls alF
숨겨진 파일, 디렉터리(.으로시작)와 디렉터리/파일의 형태(*, @, /)를 포함한 정보를 7개의 필드를 통해 한줄씩 길게 출력해 준다.


⛓ 파일 관련 명령

파일과 관련된 명령은 파일의 내용을 보는 명령, 파일을 복사하는 명령, 파일을 삭제하고 이동하는 명령, 하드링크와 심볼릭 링크를 생성하는 명령, 빈 파일을 만드는 명령이 있습니다 .

🔗 cp 명령

디렉터리나 파일을 복사합니다.

형식 : cp [옵션] [파일1/디렉터리1] [파일2/디렉터리2]
첫 번째 인자를 원본 파일/디렉터리라고 하고, 두 번째(마지막) 인자를 목적지 파일/디렉터리라고 합니다.

옵션

  • -i : 파일2(목적지 파일)가 이미 존재하면 덮어쓸 것인지 물어봅니다.

  • -r : 디렉터리를 복사할 때 지정합니다.

두 인자가 모두 파일인 경우 - ex) cp /etc/passwd test1

/etc/passwd 파일을 test1 이라는 파일로 복사합니다.

목적지 파일이 존재하지 않는 경우 - 파일 생성, 원본파일 내용 복사

test1이 존재하지 않는 파일이라면, 해당 파일을 생성하고, /etc/passwd 파일의 내용을 복사합니다.

목적지 파일이 이미 존재하는 경우 - 원본파일 내용으로 덮어쓰고, 기존 내용 삭제

test1이 이미 존재하는 파일이라면, 해당 파일의 내용은 원본파일인 /etc/passwd 파일의 내용으로 덮어씌어지고, 기존 test1 파일 안의 내용은 사라집니다.

두번째 인자가 디렉터리인 경우 - ex) cp test1 temp

첫번째 인자가 파일이고, 두번째 인자가 디렉터리인 경우 파일을 해당 디렉터리 아래에 복사합니다.

또 파일의 이름을 변경하여 디렉터리 아래에 복사할 수도 있습니다.

💻 Ex

cp test1 temp/test2
test1 파일을 temp 디렉터리 아래에 test2 라는 이름으로 복사

인자를 여러개 지정한 경우 - ex) cp /etc/services /etc/hosts temp

cp 명령에서 첫 번쨰 인자의 자리에 파일을 여러개 지정할 수 있습니다. 이때 마지막 인자는 무조건 디렉터리여야 합니다.

💻 Ex

cp /etc/services /etc/hosts temp
마지막에 지정된 디렉터리 temp에 앞서 지정한 파일들( /etc/services, /etc/hosts )이 복사됨

디렉터리를 복사하는 경우

디렉터리를 복사하는 경우에는 첫번째 인자, 두번째 인자에 모두 디렉터리를 지정해 주어야 합니다.

또, -r 옵션을 사용해야 합니다. -r 옵션을 사용하지 않고, 디렉터리 복사 시 오류 발생

두번째 인자로 저장한 디렉터리가 존재하지 않을 경우 - 목적지 디렉터리 생성, 원본디렉터리 아래 내용이 복사됨

디렉터리가 새로 생성되고, 원본 디렉터리(첫번째 인자) 아래에 있던 내용이 복사됩니다.

💻 Ex

cp -r temp test1


존재하지 않던 목적지 디렉터리 test1이 새로 생성되고, 그 안에 원본 디렉터리 temp 아래에 있던 내용( host, services, test1, test2 파일)들이 복사되어 있는 것을 확인할 수 있음.

두번째 인자로 지정한 디렉터리가 이미 존재하는 경우 - 원본 디렉터리가 같은 이름의 디렉터리로 복사되어 목적지 디렉터리 아래로 들어감

원본 디렉터리가 목적지 디렉터리 아래에 원본 디렉터리와 같은 이름으로 복사됩니다.

💻 Ex

cp -r temp test1

이미 존재하는 목적지 디렉터리 test1에 원본디렉터리 temp가 같은 이름으로 복사되어 들어가 있는것을 확인할 수 있음.

🔗 rm 명령

파일을 삭제하는 명령으로, 옵션에 따라 디렉터리도 삭제 가능하다.
형식 : rm [옵션] file(s) 또는 directory

옵션

  • -i : 파일을 삭제할때 질의를 해준다. y 는 삭제, n 는 삭제하지 않음

  • -f : 존재 유무나 어떠한 메시지 없이 강제로 지움

  • -r, -R : 하위 디렉터리를 포함하여 디렉터리 안의 모든 내용을 지운다.

🔗 mv 명령

파일이나 디렉터리의 이름을 변경하거나 이동시키는 명령이다.
형식 : mv [옵션] [파일1/디렉터리1] [파일2/디렉터리2]

옵션 : -i
파일2/디렉터리2 가 존재하면 덮어쓸것인지 물어본다.

💻 Ex

  • 파일 이름 변경하기
    1) 현재 디렉터리에 있는 text.txt파일 이름 변경 : mv text.txt hello.txt
    2) 현재 위치인 내 홈 디렉터리 안의 Practice_Week02 디렉터리 안의 text.txt파일 이름 변경 :
    mv ./Practice_Week02/text.txt ./Practice_Week02/hello.txt
    3) 절대경로를 이용하여 text.txt파일 이름 변경 :
    mv /home/yoonsik/Practice_Week02/text.txt /home/yoonsik/Practice_Week02/hello.txt
  • 디렉터리 이름 변경하기
    1) 현재 디렉터리에 있는 text_01 디렉터리 이름 변경 :
    mv text_01/ test_01/
    2) 현재 위치인 내 홈 디렉터리 안의 Practice_Week02 디렉터리 안의 text_01 디렉터리 이름 변경 :
    mv ./Practice_Week02/text_01/ ./Practice_Week02/test_01/
    3) 절대경로를 이용하여 text_01 디렉터리 이름 변경 :
    mv /home/yoonsik/Practice_Week02/text_01/ /home/yoonsik/Practice_Week02/test_01/

⛓ 텍스트 관련 명령

🔗 cat 명령

기능 1) 표준입력(키보드로 입력)을 표준출력(모니터)으로 출력해주는 명령이다. 기본적으로 텍스트 파일의 내용을 출력한다.

기능 2) 리다이렉션(redirection) 기호와 함께 사용하여 파일을 생성하거나 여러개의 텍스트 파일을 합치는 기능도 수행한다.

  • cat 명령과 리다이렉션(redirection)

    리다이렉션은 기본적으로 입출력의 방향을 바꾸는 역할을 한다.
    - > : 출력 전환 (표준출력인 모니터 -> 파일이나 기타 장치로 변환)
    - >> : 특수 출력 (보통파일로 저장할 때 파일의 뒷부분에 추가되어 덧붙여짐)
    - < : 입력 전환 (표준입력인 키보드 -> 파일이나 기타 장치로 변환)
    - << : 특수 입력 (제시된 문자열이 입력될 때까지 대기했다가 한 번에 표준출력으로 보냄)

형식 : cat [옵션] [파일이름(들)]

💻 Ex

  • 기능 1) cat 명령을 이용하여 표준입력을 표준출력으로 출력하기

    다음과 같이 cat명령을 사용하여 키보드로 내용을 입력하고 [enter]를 누르면, 바로 아래줄에 입력한 내용을 그대로 모니터에 출력한다. 종료시에는 [CTRL] + [C] 키를 누른다.

  • 기능 2)
    1) 출력전환(>) 사용하기
    cat > a.txt 명령을 사용하면 다음과 같이 표준입력(키보드)으로 입력받아, 입력받은 텍스트를 표준출력(모니터)으로 출력하지 않고, a.txt라는 텍스트 파일에 출력(저장)한다.

2) 특수 출력(>>) 사용하기
cat >> a.txt 명령을 사용하면 a.txt 파일이 존재하면, 그 파일에 표준입력으로 받은 내용을 추가한다.
만약, a.txt 파일이 존재하지 않는 경우, >의 역할과 같다.

3) 입력전환(<) 사용하기
cat < a.txt 명령을 사용하면 표준입력(키보드)로 입력받지 않고, a.txt 라는 파일로부터 입력받아, 표준출력(모니터)으로 출력한다.

4) 특수 입력(<<) 사용하기
cat << end 명령을 사용하면 뒤에 입력한 end라는 문자열이 입력될 때까지 기다렸다가 해당 문자열이 입력되면, 대기되었던 내용을 한 번에 표준출력으로 보여준다.

다음과 같이 특수 입력과 특수 출력, 특수 입력과 출력전환을 합쳐서 텍스트 파일의 내용을 추가하거나 새로운 텍스트 파일을 생성 가능하다.

cat << end >> a.txt 명령을 사용하면, end라는 문자열이 입력될 때까지 기다렸다가, 해당 문자열이 입력되면, 대기되었던 내용들을 한번에 a.txt 텍스트 파일로 특수출력 해준다.
따라서 end 입력 전까지 특수 입력받은 내용들이 기존 a.txt파일 내용에 추가된다.

cat << end > b.txt 명령을 사용하면, end라는 문자열이 입력될 때까지 기다렸다가, 해당 문자열이 입력되면, 대기되었던 내용들을 기존에 없던 b.txt 파일을 새로 생성하여, 해당 파일에 추가한다.

profile
꾸준함의 힘

0개의 댓글