Linux

[Linux] 리눅스 명령어 톺아보기

언킴 2023. 5. 24. 10:08
반응형

Contents

     

     

    man: 메뉴얼 문서 확인

    man은 메뉴얼 문서를 확인하고 싶을 때 사용한다. 

    man python

     

    위와 같이 설명이 함께 나오고, 설명창을 나가고 싶을 땐 `q`를 입력하면 된다. 

     

    mkdir: 폴더 생성

    mkdir는 MaKe Directory의 약자로, 폴더를 생성하고 싶을 때 사용할 수 있다. 

    mkdir new_folder_name

     

     

     

    pwd: 경로 확인

    현재 위치해 있는 경로를 확인하기 위해서는 pwd 명령어를 사용하면 된다. pwd는 Print Working Directory의 약자로, 사용하게 되면 현재 경로가 어디에 위치해 있는지 확인할 수 있다. 가장 기본 경로는 /home/계정 으로 출력된다. 경로를 변경하지 않고 기본적으로 터미널을 실행할 시 해당 경로가 된다.

    pwd

     

     

    cd: 디렉토리 이동

    cd는 Change Directory의 약자로 말그대로 directory를 변경하는 명령어다. 이동하고 싶은 경로를 추가로 입력하면 된다. 현재 위치에서 이동할 디렉토리를 입력하게 되면 원하는 디렉토리로 이동이 가능하다. cd 를 입력하고 아무것도 입력하지 않으면, 원래 가장 기본 경로로 이동한다.

    cd
    
    cd target_folder

     

    echo: 터미널에 텍스트 출력

    Echo는 python의 print와 유사하게, 터미널에 텍스트를 출력하는 명령어다. 

    echo my name is eonkim

     

     

    echo 다음에 `를 사용해서 명령어를 입력하게 되면, 해당 명령어로 실행되는 결과를 출력한다. "를 사용해서 문자열을 입력하게 되면 print 문과 동일하게 사용이 가능하다.

    echo `pwd`
    
    echo `ls -a`
    
    echo "Hi"

     

    cp: 파일, 폴더 복사하기

    CP는 CoPy의 약자로, 말그대로 파일 또는 폴더를 복사하는 명령어다.\

    • -r: Directory를 복사할 때 Directory 안에 존재하는 파일도 함께 모두 복사.
    • -f: 복사할 때 강제로 복사 실행.
    cp train.py new_train.py

     

     

    sudo: 관리자 권한 실행

    sudo는 SUbstitute user DO의 약자로 다른 사용자의 권한으로 실행이라는 뜻으로 사용된다. 즉, 최고 권한을 가진 super user로 프로그램을 실행한다는 뜻이다. sudo에서 rm을 사용할 때는 특히 더 조심하여야 한다. 실수로 rm으로 모든 파일을 삭제할 수도 있기 때문이다. 

     

     

    mv: 파일 및 폴더 이동하기

    mv는 MoVe의 약자로, 파일 또는 폴더를 이동할 때 사용하고, 추가적으로 이름을 바꿀 때에도 사용한다.

    mv train.py train2.py

     

     

    ls: 디렉토리 내 문서 조회

    ls는 List Segments의 약자다. 현재 위치해 있는 디렉토리에 존재하는 파일을 확인할 수 있다. ls 뒤에 아무것도 작성하지 않으면, 현재의 폴더 기준으로 실행이되고, 폴더명을 작성하면, 해당 폴더 기준으로 조회가 가능하다.

    • -a: .으로 시작하는 파일, 폴더를 포함해 전체 파일을 출력
    • -l: 퍼미션, 소유자, 만든 날짜, 용량까지 함께 출력
    • -h: 용량을 사람이 읽기 쉽도록 GB, MB 등으로 표현하여 출력
    ls -alh

     

     

     

    hisotry: 쉘 커멘드 히스토리 출력

    최근에 입력한 쉘 커멘드를 출력하는 명령어다. history 결과에서 !를 붙이고 해당 커멘드를 나타내는 숫자를 입력하게 되면 그 커멘드를 다시 사용할 수 있다.

    history
    
    !40

     

    find: 파일 및 디렉토리 검색

    find는 파일 및 디렉토리를 검색할 때 사용한다.

    find .-name "train.py"

     

    export: 환경 변수 설정

    export는 환경 변수를 지정할 때 사용한다. 단점은 쉘 파일을 닫게 되면 환경 변수가 삭제된다는 것이다. 이때 계속해서 환경변수를 사용하고 싶은 경우에는 .bashrc, .zshrc 등에 저장하면 된다. 

    export PATH="./users"
    
    echo $PATH
    
    echo PATH
    
    # vi ~/.bashrc  or vi ~/.zshrc
    # export PATH="./users"
    # wq
    # source ~/.bashrc or source ~/.zshrc

     

     

    ps: 프로세스 상태 점검

    ps 명령어는 많이 사용하는 명령어 중 하나일 것이다. 이는 Processor Status 라는 뜻의 약어로 프로세서의 상태를 파악할 수 있는 명령어다. 일반적으로 ps [option] 형태로 사용하며, 다양한 옵션들이 존재한다.

    • -i: 자세한 형태의 정보 조회
    • -u: 각 프로세서의 사용자 이름과 시작 시간 조회
    • -v: 가상 메모리를 중점으로 조회
    • -m: 메모리 정보 조회
    • -a: 모든 사용자의 프로세서 조회
    • -x: 로그인 상태에 있는 동안 완료되지 않은 프로세스 조회
    • -e: 환경 조회
    • -w: 한 행에 출력이 잘리지 않는 형태로 조회
    • -h: 헤더 제거
    • -r: 현재 실행 중인 프로세서 조회

    하나의 옵션을 사용해도 무방하고 여러 개의 옵션을 함께 출력하는 형태로도 사용한다. grep 명령어는 아래에서 다룰 예정이지만, 미리 설명하면, 조회한 내용에서 특정 이름을 포함한 파일만을 조회한다는 명령어다. 

     

    ps -ef | grep train.py 라는 코드로 응용이 가능하다. 이때 grep은 조건으로 검색하는 것으로 이해하면 된다. ps -ef를 사용하면 모든 실행중인 파일을 다 불러오는데, 이때 grep 조건을 달아 해당 파일 이름과 일치하는 파일 중 실행 중인 파일을 가져오는 것이다. 

    ps -ef | grep train.py

     

     

    alias: 별칭 지정

    alias는 기본 명령어를 간단하게 줄일 수 있는 것을 의미한다. 별칭을 지정하면 기본 명령어를 줄여서 사용할 수 있다. 예를 들어, --version을 -V로 입력하면 되는 것처럼 말이다.

    alias

     

     

     

    tree: 폴더 하위 구조 표현

    tree는 폴더의 하위 구조를 계층적으로 표현한다. 프로젝트를 소개할 때 프로젝트 파일의 구조를 설명하기에 매우 유용하게 사용된다. tree는 설치가 되지 않았을 수도 있기 때문에 설치가 필요하다. 

    # sudo apt install tree
    
    tree -L 1
    
    tree -L 2

     

     

    head, tail: 파일 앞/뒤 n행 출력

    파일 내에 있는 코드의 앞 혹은 뒤 n개의 행에 대해서 출력하는 명령어다. cat을 사용해도 출력은 되긴 하지만, cat은 한꺼번에 모든 행을 출력하기 때문에 커멘드 창이 가득 차서 파악하기 어려운 경우가 있다. 이럴 때 head와 tail을 사용한다.

    head -n 3 train.sh

     

     

    nohup: 파일 백그라운드 실행

    nohup은 no hang up의 약어로, 파일의 세션을 종료하더라도 프로그램을 종료하지 않도록하는 명령어다. 중단없이 실행하고자 하는 파일을 실행할 때 앞에 nohup을 입력해주면 된다. 기본적으로 파일을 실행할 때 쌓이는 로그는 nohup.out 이라는 파일에 저장되며, 파일의 이름을 nohup2.out으로 변경하고 싶다면 아래와 같은 코드로 실행할 수 있다. 이때 -r, -s 는 train.py 파일의 argparse를 통해 설정한 것으로 무시해도 된다. 이때 &는 백그라운드로 실행한다는 명령어를 의미하고, nohup과 &를 함께 사용한다면, 파일을 백그라운드로 세션 종료없이 실행한다는 것을 의미한다.

    그렇다면, 백그라운드 파일을 종료하고 싶을 땐 어떻게 해야할까? 이때는 아래의 코드를 통해 조회하고 kill을 통해 제거할 수 있다. PID는 42742 숫자를 의미한다. 파일에 따라 PID가 다르기 때문에 삭제하고자 하는 파일의 PID를 입력하면 된다. 

     

     

    top: 현재 사용 중인 프로세스 확인

    top 명령어는 현재 사용 중인 프로세스를 실시간으로 보여주기 때문에 프로세스가 사용하고 있는 메모리나 CPU 점유율 등을 확인할 때 매우 용의하다. 가장 많이 쓰는 형태가 top -u {User}를 많이 사용한다.

    PID: 사용중인 PID

    USER: 사용하는 소유자

    PR: 우선순위 Priority 값

    NI: 먼저 실행되는 값

    %CPU: CPU 점유율

    %MEM: Memory 점유율

     

    top 을 사용하면 실시간으로 갱신이 되기 때문에 d를 통해 갱신되는 주기를 설정할 수 있다. d를 입력하면 Change delay from 1.0 to: 라는 문구가 나오는데, 뒤에 숫자를 입력하면 갱신 주기를 설정할 수 있다. 이때 너무 자주 바뀌어서 확인하는 것이 어렵다면 top이 실행되고 있는 상태에서 t를 누르면 멈춘다. 현재 top 화면을 나가고 싶을 때에는 q를 입력하면 된다. 또한, top이 실행되는 상태에서 숫자 1번 패드를 누르면, Core별 사용율을 확인할 수 있다

    'Linux' 카테고리의 다른 글

    [Linux] Sudo 설치하기  (0) 2024.01.23
    [WSL2] Ubuntu 설치시 '0xc03a001a' 오류  (0) 2022.04.18
    [Error] wget에서 --no-check-certificate  (0) 2022.03.24