InfraPlatform

(Basic Linux) 초급 개발자를 위한 리눅스 명령어 20 가지

IT오이시이 2023. 7. 15. 14:06
728x90

(Basic Linux) 초급 개발자를 위한 리눅스 명령어 20 가지 

 
ㅁ 명령들을 대부분 알고 있는 것들 입니다. 하지만 간단한 명령들 속에 숨어 있는 옵션들로 조금 업그레이드가 필요할때 읽어 보시면 좋겠습니다.

  • ls (List) - 현재 디렉토리의 파일 및 디렉토리 목록을 보여줍니다.

   예시 :
    - ls        : 현재 디렉토리의 파일과 디렉토리를 목록으로 보여 줍니다.
      ls -al   : 파일 및 디렉토리의 권한, 소유자, 그룹, 크기, 수정 일자 및 시간 등을 포함하여 나열합니다.  
      ls -altr : 모든 파일의 수정 시간( -t) 을 역순( -r) 으로 소팅하여 나열합니다.
     - Files=`ls -1`    : 파일 이름을 변수 $Files에 저장합니다.
 

  • cd (Change Directory) - 다른 디렉토리로 이동합니다.

      예시: 
       - cd /home/user/documents

 

  • pwd (Print Working Directory) - 현재 작업 중인 디렉토리의 경로를 출력합니다.

      예시: 
           - pwd : 현재 디렉토리의 명을 나타냅니다.
          - Dir_name=`pwd`  : 변수 $Dir_name 에 현재 디렉토리명을 입력합니다.

 

  • mkdir (Make Directory) - 새 디렉토리를 생성합니다.

    예시: 
     - mkdir new_directory
     - mkdir -p  new_dir1/new_dir2/new_dir3 : 하위 디렉토리까지 한 번에 만들며  중간 디렉토리가 없으면 새로 만듭니다.

 

  • rm (Remove) - 파일 또는 디렉토리를 삭제합니다.

       예시:
          - rm file.txt
          - rm  -f   file.txt      : -f 옵션은 파일을 삭제합니다.
          - rm -rf  dir_name    : dir_name과 하부의 파일 및  하위 디렉토리를 재귀적으로 강제로 삭제합니다.

           

  • cp (Copy) - 파일 또는 디렉토리를 복사합니다.

      예시: 
         -  cp file.txt new_directory/
         -  cp -r   dir1/      ~/home/dir2 
             .  -r   : 재귀 적으로 하위 디렉토리를 포함하여 복사합니다.
             .  dir1/    디렉토리를  사용자 홈의 dir2 아래로 복사합니다.
             .  dir2이 없으면 에러가 발생합니다. 

         - cp -p   file.txt    new_directory/       : file.txt 의 모든 권한과 생성 시간을 유지하여 복제합니다.

 

  • mv (Move) - 파일 또는 디렉토리를 이동하거나 이름을 변경합니다.

        예시:
          - mv file.txt new_directory/
          - mv -f file.txt new_directory/
         

 

  • touch - 새 파일을 생성하거나 파일의 수정 시간을 업데이트합니다.

      예시 :
        - touch  file.txt  :
          빈 파일을 생성하거나  기존 파일의 수정 시간을 현재 시간으로 변경합니다.
         주로 파일의 변경 시간을 가지고 최신 파일을 찾아서 처리하는 경우에 사용하는 명령입니다.
         (별거 아닌 명령어 같지만  응용 프로그램 개발자에게는  아주 유용하고 중요한 명령입니다. )
        다음과 같이 파일의 시간을 이용하여 분기처리가 가능합니다.

#!/bin/bash

file1="file1.txt"
file2="file2.txt"

touch $file1 $file2   # 두개의 파일을 생성합니다.

sleep 10
touch $file2   # 두번째 파일의 시간을 업데이트 합니다.


if [[ "$file1" -nt "$file2" ]]; then
  echo "$file1 is newer than $file2"
elif [[ "$file1" -ot "$file2" ]]; then
  echo "$file1 is older than $file2"
else
  echo "$file1 and $file2 have the same timestamp"
fi

 
 

  • cat (Concatenate) - 파일의 내용을 출력하거나 파일을 병합합니다.

      예시 :
       여러 파일을 하나로 합칠 수 있습니다.
      -   cat file1.txt   file2.txt  > file3.txt  : file1 과 file2를 file3에 출력하여 저장합니다. 

     - cat file2.txt >> file3.txt : 파일을 append 하여 출력 합니다.

 

  • grep (Global Regular Expression Print) - 텍스트에서 패턴을 검색합니다.

     예시: 
     - 파일의 내용에서 pattern을 찾는 명령
       . grep "pattern" file.txt       : 파일의 내용에서 pattern을 찾는다.
       . grep -n "pattern" file.txt   : 검색된 행의 라인 번호를 포함하여 표시
       . grep -c "pattern" file.txt   :  검색된 패턴과 일치하는 줄의 개수를 출력
       . grep -l "pattern"  file1.txt file2.txt ...   :  검색된 패턴과 일치하는 파일의 이름을 출력
   
    - pattern 을  정의할 때 유의할 점
       .  "*key*"   `key`가 들어간  패턴을 검색
       . '*key*'   `*key*`가 들어간정확한 문자를  검색


  • chmod (Change Mode) - 파일 또는 디렉토리의 퍼미션을 변경합니다.

    예시: 
     - chmod 755 file.txt  # 파일 소유자는 읽고, 쓰기, 실행 가능하고 그룹, 다른 사용자는 읽고 실행가능
       . 700 : 사용자는 Read(4) + Write(2) + Execute(1)   : 읽고, 쓰고, 실행
       . 050 : 그룹사용자는 Read(4) + Write(0) + Execute(1)  : 읽고, 실행
       . 005 :  기타 사용자는 Read(4) + Write(0) + Execute(1)  : 읽고, 실행

 

  • chown (Change Owner) - 파일 또는 디렉토리의 소유자를 변경합니다.

     예시: 
      - chown user:group file.txt
       . user명 : 사용자명, uid ( /etc/password에서 확인)
       .  group명 : 그룹명, guid (/etc/groups 에서 확인) 

 

  • tar (Tape Archive) - 디렉토리와 파일을 아카이브 하거나 압축 해제합니다.

     예시: 
      -  파일 아카이브 : 
       . tar -cvf archive.tar file1.txt  file2.txt ... dir/  
       . tar -cvzf archive.tar.gz  file1.txt  file2.txt ... dir/   # gzip으로 압축
 
     - 파일 압축해제 :
       . tar -xvf archive.tar
       . tar -xvzf archive.tar.gz

 

  • wget (Web Get) - 인터넷에서 파일을 다운로드합니다.

     예시:
         - 파일을 다운로드하여 로컬 디렉토리에 저장 
        . wget https://example.com/file.txt
       . wget -O new_file.txt https://example.com/file.txt
 

 

  • ssh (Secure Shell) - 원격 서버에 안전하게 접속합니다.

       예시: 
        -  ssh user@example.com
        -  ssh -l user example.com
 

 

  • scp (Secure copy) - 로컬 시스템과 원격 서버 간에 파일을 복사합니다.

       예시: 
        - 파일을 원격으로 복사하거나 원격의 파일을 로컬로 가져올 수 있으며
          원격 서버끼리 파일을 복제할 수 있습니다.
        - scp     file.txt  user@remote_host:/path/to/remote
        - scp username@remote_host:/path/to/remote/file.txt /path/to/local/destination

        -  scp username@remote1:/path/to/remote/file username@remote2:/path/to/destination
 
 

  • find - 지정된 디렉토리에서 파일을 검색합니다.

        예시:
        - find /path/to/search -name "file.txt"
 
 

  • git - 버전 관리 도구인 Git을 사용합니다.

   예시: 

# 현재 디렉토리를 Git 저장소로 설정하고 Git 버전관리가 가능한 빈 저장소를 생성
git init     

#원격 Git 저장소에서 프로젝트를 로컬 폴더에 복제
git clone <remote_url>   


git status # 어떤 파일이 변경되었는지 확인
git diff # 스태이징과 로컬 저장소의 변동 사항을 확인 

# 변경된 파일을 로컬 스테이징 영역에 추가
git add <file_name>  # 변경된 파일 등록
git reset <file_name> # 변경 등록된 파일 삭제
git commit -m "Commit message"  # 현재 상태를 코멘트로 추가 하여 커밋


# 로컬에 작업한 변경 내용을 원격 저장소의 브랜치로 업로드
git push origin <branch_name> 

# 모든 로컬 브랜치를 원격 저장소의 현재 브랜치로 업로드
git push --all origin

# 현재 브랜치의 변경 사항을 원격 저장소의 master로 업로드
git push origin master

 

  • top - 현재 실행 중인 프로세스 목록과 시스템 리소스 사용량을 보여줍니다.

 
    예시:
     -  top 은  시스템과 프로세스의 작동 상태를 확인 가능합니다.
 

  • vi (Visual Editor) - 텍스트 편집기인 vi를 실행합니다.

    예시:
     - vi file.txt  :  vi 에디터로 파일을 열어 편집할 수 있습니다

 

 

728x90
반응형