[Linux] Command line

ujinsim·2025년 3월 21일
post-thumbnail

Google Cloud Shell에서 명령어 학습하기

Google Cloud Shell은 Google Cloud Platform(GCP)에서 제공하는 웹 기반의 터미널 환경으로, Linux 명령어를 사용하여 파일 및 디렉토리를 관리할 수 있습니다. 아래에서 주요 명령어들을 설명합니다.


1. 현재 작업 디렉토리 확인 (pwd 명령어)

pwd
  • 현재 사용자가 위치한 디렉토리(경로)를 출력합니다.
  • pwd는 "print working directory"의 약자입니다.

2. 디렉토리 및 파일 목록 확인 (ls 명령어)

ls
  • 현재 디렉토리에 있는 파일과 폴더를 나열합니다.
  • 옵션을 추가하면 더 많은 정보를 볼 수 있습니다.
    ls -l  # 자세한 정보 표시 (파일 권한, 소유자, 크기, 수정 날짜)
    ls -a  # 숨김 파일까지 표시
    ls -lh # 사람이 읽기 쉬운 크기 단위로 표시

3. 디렉토리 이동 (cd 명령어)

cd [디렉토리명]
  • 특정 디렉토리로 이동합니다.
  • 예시:
    cd /home/user  # 절대 경로 이동
    cd Documents   # 상대 경로 이동
    cd ..          # 상위 디렉토리로 이동
    cd ~           # 홈 디렉토리로 이동
    cd -           # 이전 디렉토리로 이동

syj11243@cloudshell:~$ cd / : 루트디렉토리 기준 
syj11243@cloudshell:/$ ls
bin                dev     home   lib.usr-is-merged  opt   run                 srv  usr
bin.usr-is-merged  etc     lib    media              proc  sbin                sys  var
boot               google  lib64  mnt                root  sbin.usr-is-merged  tmp
syj11243@cloudshell:/$ cd ~ : 현재 디렉토리 기준
syj11243@cloudshell:~$ 

4. 절대 경로(Absolute Paths)와 상대 경로(Relative Paths)

  • 절대 경로: 루트(/)에서부터 시작하는 전체 경로.
    cd /home/user/Documents
  • 상대 경로: 현재 위치를 기준으로 이동하는 경로.
    cd Documents  # 현재 디렉토리에 있는 "Documents"로 이동
    cd ../        # 상위 폴더로 이동

5. 새 디렉토리 생성 (mkdir 명령어)

mkdir [디렉토리명]
  • 새 폴더를 생성합니다.
  • 여러 개의 폴더를 한 번에 생성할 수도 있습니다.
    mkdir new_folder
    mkdir folder1 folder2 folder3  # 여러 개 생성
    mkdir -p parent/child          # 중첩된 폴더 생성

6. 옵션(Options)

  • 명령어에 옵션을 추가하면 기능이 확장됩니다.
  • 예시:
    ls -l    # 상세 정보 출력
    rm -r    # 디렉토리와 내부 파일 삭제
    cp -i    # 덮어쓰기 전에 확인

7. 특수 문자(escaping)

  • 공백이나 특수 문자가 포함된 파일명을 사용할 때 \를 이용해 이스케이프 처리합니다.
    touch my\ file.txt  # "my file.txt" 파일 생성

8. 리디렉션 및 파일 출력 (>, cat, echo 명령어)

  • > : 출력 결과를 파일에 저장.
    echo "Hello, World!" > hello.txt  # hello.txt에 저장
  • >> : 기존 파일에 내용을 추가.
    echo "추가된 내용" >> hello.txt
  • cat : 파일 내용 출력.
    cat hello.txt

9. 와일드카드 (*, ?) 사용하기

  • * : 모든 문자에 해당하는 파일을 선택.
    ls *.txt  # .txt 확장자를 가진 모든 파일 출력
  • ? : 한 글자에 해당하는 파일을 선택.
    ls file?.txt  # file1.txt, file2.txt 포함

10. 파일 및 디렉토리 이동 및 복사 (mv, cp 명령어)

  • 파일 이동(mv)
    mv file.txt /home/user/Documents/  # 파일을 다른 폴더로 이동
  • 파일 복사(cp)
    cp file.txt copy.txt  # 파일 복사
    cp -r dir1 dir2       # 디렉토리 복사

11. 파일 이름 변경 (리네임, mv 명령어)

mv oldname.txt newname.txt
  • 파일 또는 디렉토리의 이름을 변경합니다.

12. 파일 및 디렉토리 삭제 (rm, rmdir 명령어)

  • 파일 삭제 (rm)
    rm file.txt  # 파일 삭제
    rm -r folder # 폴더 삭제
  • 빈 디렉토리 삭제 (rmdir)
    rmdir empty_folder  # 비어 있는 폴더 삭제

13. 파일 내용 개수 확인 (wc 명령어)

wc file.txt
  • 파일의 줄 수, 단어 수, 바이트 수를 출력합니다.
    wc -l file.txt  # 줄 수만 출력
    wc -w file.txt  # 단어 수만 출력
    wc -c file.txt  # 바이트 크기 출력

14. ls 명령어와 wc 명령어 조합

ls | wc -l
  • 현재 디렉토리에 있는 파일 및 폴더 개수를 계산합니다.

echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt
echo 'a' >> aabb.txt

• The question, then, is how to rearrange the lines in our file so that duplicate entries are on adjacent lines.

-> 정렬 후 man uniq를 사용한다

sort aabb.txt | uniq
man uniq

15. 파이프(Pipe) 사용하기

  • 파이프(|)를 사용하여 한 명령어의 출력을 다른 명령어의 입력으로 전달할 수 있습니다.
    sort aabb.txt | uniq | less  # 중복 제거 후 페이지 단위로 출력
    • sort: 파일을 정렬
    • uniq: 중복 줄 제거
    • less: 결과를 페이지 단위로 출력

• How can we use less to see unique lines in abab .txt ?

sort abab.txt | uniq | less

리눅스나 유닉스 시스템에서 명령어를 입력하는 방법과 superuser(슈퍼유저)

16. 슈퍼유저(Superuser)

  • sudosu 명령어는 슈퍼유저 권한을 얻을 때 사용됩니다.

    • sudo: 특정 명령어를 슈퍼유저 권한으로 실행할 때 사용됩니다.
      sudo apt-get install tree  # `tree` 프로그램 설치
    • su: 현재 사용자를 root로 전환합니다.
      su  # root 사용자로 전환
  • 주의사항: 슈퍼유저 권한은 시스템에 중요한 변경을 할 수 있으므로 주의해서 사용해야 합니다. sudo는 일반 사용자가 필요할 때만 권한을 부여하며, su는 전체 세션에서 root 권한을 획득할 때 사용합니다.


17. apt 명령어

  • apt는 새로운 소프트웨어를 설치할 때 사용되는 명령어입니다.
    sudo apt install tree  # `tree` 프로그램 설치
  • apt 명령어는 패키지 관리 시스템으로, 소프트웨어를 설치하거나 업데이트할 때 사용됩니다.

18. 숨김 파일 (Hidden Files)

  • 리눅스 시스템에서 숨김 파일은 이름이 .(점)으로 시작하는 파일입니다. 보통 설정 파일이나 시스템 파일을 숨기기 위해 사용됩니다.

    • 예시: .bashrc, .gitignore
  • 숨김 파일을 작업하려면 파일 이름 앞에 점(.)을 포함시켜야 합니다:

    cat .combined.txt
    mkdir .hidden
    mv .combined.txt .hidden
  • 숨김 파일을 보려면 -a 옵션을 사용하여 모든 파일을 출력할 수 있습니다.

    ls -a  # 숨김 파일 포함한 모든 파일 보기

19. 시스템 모니터링 및 관리

  • htop: 시스템 모니터링 도구로, 실시간으로 CPU, 메모리 사용량 등을 확인할 수 있습니다.

    sudo apt install htop
    htop  # 시스템 상태 실시간 모니터링
  • df: 디스크 사용 현황을 확인하는 명령어입니다.

    df -h  # 파일 시스템의 디스크 공간 사용 현황
  • du: 디렉토리 또는 파일의 디스크 사용량을 확인합니다.

    du -sh /home/user  # 디렉토리 크기 확인

20. vim 텍스트 편집기

  • Vim은 고급 텍스트 편집기입니다. vi의 확장판으로, 리눅스에서 파일을 수정할 때 많이 사용됩니다.

    sudo apt install vim  # Vim 설치
    vi aa.txt  # 파일 열기
    • 모드:
      • 명령 모드(Command Mode): 기본 모드로 명령어를 입력.
      • 삽입 모드(Insert Mode): 텍스트 입력 모드.
      • 명령줄 모드(Command Line Mode): 파일 저장, 종료 등의 명령어 입력 모드.
      • 비주얼 모드(Visual Mode): 텍스트를 선택하여 편집하는 모드.

21. 시스템 종료 및 재부팅

  • shutdown: 시스템을 종료할 때 사용합니다.

    sudo shutdown -h now  # 즉시 종료
  • reboot: 시스템을 재부팅할 때 사용합니다.

    sudo reboot

22. 리눅스 사용 후 정리

  • 실습이 끝난 후에는 rm 명령어로 실험한 디렉토리나 파일을 삭제하고, logout 명령어로 세션을 종료하는 것이 좋습니다.
rm -r ~/tutorial  # 실험 폴더 삭제
logout  # 로그아웃
  • Ctrl-D를 사용하여 터미널을 종료하거나, Ctrl-Alt-T로 새 터미널을 실행하는 방법도 있습니다.

profile
프론트엔드 공부 중.. 💻👩‍🎤

0개의 댓글