리눅스 기본 명령어 - Basic Commands

Hyungseop Lee·2023년 9월 13일
0
post-thumbnail

Teaching Assistant

  • UTM이라는 가상머신에 Ubuntu 18.04를 설치하여 진행.

Basic Commands

Manual pages

  • The man page provides in-depth documentation about programs, utilities, and other topics.

  • man page가 무엇인지 알기 위해,

    • The man page has 9 sections.
    1. User commands (Executable programs or shell commands)
    2. System calls
    3. Library calls
    4. Special files (usually found in /dev -> device)
    5. File formats and conventions
    6. Games
    7. Miscellaneous
    8. System administration commands(usually only for root)
    9. Kernel routines
  • man [section] command 예시

    • man 1 printf : printf about shell commandsman
    • man 3 printf : printf about program libraries

Rebooting and Shutting Down

  • sudo : super user 권한을 계속해서 주는게 아니라, 'sudo' 라는 command를 입력할 때만 super user의 권한을 얻는다.
    왜? 일반 user들이 shutdown이나 reboot와 같이 system의 중요한 일을 수행하는 명령어는 아무나 실행할 수 없게 하기 위해.
  • sudo shutdown now : 즉시 shut down 시켜라

    똑같은 명령어로
    sudo poweroff

  • sudo reboot : 즉시 reboot 시켜라

Locating Applications

  • which and whereis commands are used to locate programs.
    ➡️ application이 어디에 저장되어 있는지 위치를 찾을 수 있음.

    whereis diff에서 앞에 /usr/bin/diff는 'diff' 명령어가 저장되어 있는 위치,
    /usr/share/man/man1/diff.gz는 'diff의 manual'이 저장되어 있는 위치

Accessing Directories

  • pwd : 현재 내가 있는 directory 위치.

  • cd : change directory.

    • cd or cd ~ : change to your home directory
    • cd .. : change to parent directory
    • cd - : change to previous directory

Exploring the Filesystem

  • tree : show all sub-directories and files

  • tree -d : show all sub-directories (file X, directory O)

  • tree -d -L 2 : show all sub-directories with depths of 2

    • /bin : binary file.
      -> : symbolic link, commands in user/bin
    • /dev : device file
    • /etc : (file).config ➡️ configuration file
    • /mnt : mount. /media directory와 비슷한 용도로 탈부착 가능한 장치들에 대하여 일시적ㅇ니 mount point로 사용하는 directory
    • /proc : system info
    • /usr : user program
    • /var : log file. 컴퓨터의 모든 사용내역을 기록하고 있는 file.
  • ln : is used to create hard links and soft(=symbolic) links.

  • ln file1 file2 :
    disk에 file object가 있다. 그리고 file object는 기본적으로 i-node라는 고유의 번호를 갖는다.
    그 file object에 2가지 이름(file1, file2)으로 접근하고 싶을 때가 있다.
    이처럼 여러 이름으로 같은 file object에 접근하고 싶을 때 사용하는 것이 Hard Link이다.
    disk에 이미 file1이 있다고 가정하고 file2를 hard link로 만들었으면,
    똑같은 file object(have same i-node number)인데 이름이 다른 file2가 생성된다.
    이때, file1을 삭제해도 file2는 그대로 남아있다.

  • ln -s file1 file2 :
    A symbolic link file2 points to file1 without taking disk space.
    예를 들어 file2는 '바로가기'와 같은 기능이다.
    아래 그림에서 file1의 size는 54bytes, file2의 size는 5bytes이다. (두 file이 다른 것임)
    file2의 5bytes는 'file1'이라는 5글자 = 5bytes가 들어있는 것이다.
    즉, 어느 file을 가리킬지에 대한 pointing 내용만 들어있다.

    그리고 file2의 내용을 확인하면, file1의 내용이 보이게 되는 것이다.
    만약 file1이 삭제된다면, file2는 여전히 file1을 가리키고 있긴 하지만 file1은 disk 상에 존재하지 않기 때문에 file2 -> file1이 빨갛게 표시가 되어서 나타내진다.


Working With Files

Viewing Files

  • cat : Used for viewing short file

  • less : Used to view larger files

  • tail : Used to print last 10 lines of a file by default
    ➡️ 파일에 기록을 추가하여 남기기 때문에 가장 최근 기록을 볼 때 유용하다(log file 볼 때 유용)

  • head : The opposit of tail

mkdir and rmdir

  • mkdir is used to create a directory

  • rmdir is used to remove a directory

  • rm -rf is used to remove non-empty directory.

Moving, Renaming or Removing a File/Directory.

  • mv : Rename a file/directory

    1. rename directory : mv 기존 새로운

    2. move directory : mv 기존(옮길것) 기존(옮겨질곳)(mv 새로운 기존 : 안됌)

    3. rename file : mv 기존 새로운

    4. move file : mv 파일명 옮겨질DIR명


Standard file streams, I/O redirection, Pipes

Standard File Streams

  • application이 동작할 때, 3 standard streams open for use

    1. Name : Standard input
      Symbolic Name : stdin ( << )
      File descriptor : 0
      Example : Keyboard

    2. Name : Standard output
      Symbolic Name : stdout ( >> )
      File descriptor : 1
      Example : Terminal

    3. Name : Standard error
      Symbolic Name : stderr ( 2>2> )
      File descriptor : 2
      Example : Terminal / log file

I/O Redirection

  • I/O Redirection : we can change the stdin, stdout, stderr devices when executing a command

    • some_command read from input_file instead of stdin (keyboard)
      (wc : word count의 약자. [new line, word, byte] 를 반환)

    • some_command writes to output_file instead of stdout (terminal)

    • some_command redirects stderr to a file

    • some_command redirects both stdout and stderr to a file (>& or >, 2>&1)
      (stderr가 redirection된 경우)(stdout이 redirection된 경우)

    • 덧붙이기 : >>

Pipes

  • The Linux/Unix philosophy is to have simple short programs cooperate together
    (작은 명령어들을 조합하여 복잡한 일을 할 수 있도록)

  • command1 | command2 | command3 | command4 :
    command1의 output이 command2의 input으로 전달,
    command2의 output이 command3의 input으로 전달,
    ... command4의 output.

  • examples :

    • 현재 dir에 있는 모든 file과 dir 개수 :
    • 현재 dir에 있는 모든 file의 개수 :
    • /usr/share/dict/words 파일에 있는 전체 단어의 개수 :

Searching for files

Wildcards

  • ? : Matches any single character
    * : Matches any string of characters
    [set] : Matches any character in the set
    [!set] : Matches any character not in the set

find utility

  • utility = command = application ➡️ 모두 비슷한 말.

  • find : find searches for files in a directory hierarchy.

    • Searching for files and directories named gcc under /usr directory :

    • Searching only for directories named gcc under /usr directory :

    • Searching only for regular files named gcc under /usr directory:

    • Searching for files greater than 10MB:

    • find and remove all files that ends with .swp

      • {} : find가 찾은 File들이 들어감
      • ';' : -exec 블록의 끝임을 나타냄
profile
Efficient Deep Learning Model, Compression

0개의 댓글