[Linux] Linux 기본 구조와 명령어 이해하기

BBeumSeok·2024년 7월 21일
0

Linux

목록 보기
1/8
post-thumbnail

Linux Directory 구조

  • /(root)
    리눅스 상에 존재하는 모든 파일과 디렉터리를 담고 있는 최상위 디렉터리

  • /bin
    리눅스의 기본 명령어가 들어있는 디렉터리(명령어는 "실행파일")

  • /boot
    리눅스 커널의 메모리 이미지와 부팅 과정에 필요한 파일이 저장된 디렉터리

  • /dev
    장치 파일이 들어있는 디렉터리 (키보드, 마우스 등...)

  • /etc
    시스템이나 사용자 관리를 위한 자료 파일이나 관리자용 명령들이 있는 디렉터리
    (설정과 관련된 내용들)

  • /home
    관리자(root) 이외의 사용자의 홈 Directory가 생성된느 위치의 디렉터리(=Window Users)

  • lib
    각종 언어를 위한 라이브러리를 가지는 디렉터리
    (lib64는 64bit 라이브러리들이 존재하는 디렉터리)

  • /opt
    동작과 관련된 추가 옵션 설정에 대한 내용이 저장되는 디렉터리

  • /proc
    커널과 프로세스 정보를 담고 있는 파일이 저장되는 디렉터리

  • /root
    관리자 홈 디렉터리

  • /run
    운영체제 내에 구동중인 내용들이 담기는 디렉터리

  • /sbin
    관리자용 명령어가 저장되는 디렉터리

  • /sys
    시스템 관련 파일이 담겨지는 디렉터리

  • /tmp
    임시파일이 저장되는 공간 (저장 기간은 최대 한 달을 넘기지 못함)

  • /usr
    용량이 크고 자주 사용되지 않는 파일들이 들어있는 디렉터리

  • /var
    Log와 같이 잦은 변경이 일어나는 파일이 저장되는 디렉터리

하드웨어 관련

  • /media
    Local Device를 이용하기 위한 디렉터리 (CD / DVD)

  • /mnt
    Remote Device를 이용하기 위한 디렉터리 (Bluetooth)

  • /local

Linux Command

명령어 형식

  1. [ 명령어 ]
    단독 명령어만으로 사용하는 경우
    ex) pwd, ls ...

  • pwd : print working directory (현재 작업 중인 디렉터리 출력)
  • cd : change directory

  1. [명령어][경로]
    특정 경로에 명령어를 사용하는 경우
    ex) ls /, ls /etc/ ... ("/" 해당 디렉터리의 파일 / 디렉터리 정보를 출력)
    cd [경로]

  1. [명령어][옵션] [경로]

경로 결정 방법 2가지

1. 절대 경로

리눅스 파일 시스템의 최상위의 "/(root)"를 기준으로 모든 경로 정보를 입력하여 사용하는 것
ex) cd, /etc/, cd/etc/sysconfig, cd /

2. 상대 경로

리눅스 파일 시스템의 상대 경로는 현재 작업 중인 디렉터리를 기준으로 파일이나 디렉터리에
대한 상대적인 위치 정보를 사용하는 것

"." : 현재 디렉터리를 의미

".." : 이전(상위) 디렉터리를 의미 (현재 디렉터리의 접근 전 디렉터리)

"~(사용자계정)" : 사용자 계정의 홈 디렉터리로 이동
cd ~root 명령어 입력 시 일반 사용자 계정은 접근 불가
sudo cd ~root를 사용하면 관리자 권한을 받아서 접근이 가능하다.

" - " : 이전 디렉터리로 이동

리눅스 기본 명령어

1. ls (list)

  • ls
    현재 디렉터리의 모든 파일 및 폴더를 기본 형식으로 보여준다.

  • ls -l
    파일 및 폴더에 대한 자세한 정보와 함께 리스트업 한다.

  • ls -a
    숨겨진 파일을 포함하여 모든 파일을 보여준다.

2. cd (change directory)

  • cd
    디렉터리를 변경

  • cd Documents
    현재 디렉터리에서 'Documents' 라는 이름의 폴더로 이동한다.

  • cd ..
    현재 디렉터리의 상위 폴더로 이동한다.

3. pwd (print working directory)

  • pwd
    현재 작업 중인 디렉터리의 경로를 표시한다.

4. mkdir (make directory)

  • mkdir
    새로운 디렉터리(폴더)를 생성한다.

  • mkdir new_folder
    현재 디렉터리에 'new_folder' 라는 이름의 새 디렉터리를 만든다.

  • mkdir -p test1/test2
    'test1' 내에 'test2' 를 생성한다.
    -p는 상위 디렉터리가 없는 경우, 그 상위 디렉터리를 생성하는 옵션이다.

5. rmdir (remove directory)

  • rmdir
    디렉터리를 삭제한다.

  • rmdir old_folder
    'old-folder' 라는 이름의 디렉터리 삭제

  • rmdir은 디렉터리가 비어있을 때만 작동한다.
    내부에 파일이나 다른 디렉터리가 존재하면 에러 발생

  • 디렉터리 안의 파일과 함께 삭제하려면 rm -r 명령어를 사용

6. rm(remove)

  • rm은 파일이나 디렉터리를 삭제

  • rm file.txt
    'file.txt' 라는 파일을 삭제한다

  • rm -r folder
    'folder' 라는 디렉터리와 그 안의 모든 내용을 삭제

  • 삭제된 파일은 복구가 어렵기 때문에 중요한 파일을 삭제하기 전에 항상 확인

7. touch

  • touch는 새로운 빈 파일을 생성하거나 기존 파일의 타임스탬프(날짜 및 시간 정보)를
    현재 시간으로 갱신

  • touch new_file.txt
    'new_file.txt' 라는 새 파일을 생성한다
    파일이 이미 존재하는 경우 타임스탬프가 갱신된다

  • 간단하고 빠르게 파일을 생성할 수 있으며, 스크립트나 로그 파일을 초기화 할 때
    유용하다

8. cp (copy)

  • cp는 파일이나 디렉터리를 복사

  • cp source.txt destination.txt
    'source.txt'를 'destination.txt'로 복사한다

  • cp -r source_dir destination_dir
    'source_dir' 디렉터리와 그 내용을 'destination_dir'로 복사한다

9. mv (move)

  • mv는 파일이나 디렉터리의 위치를 이동시키거나 이름을 변경한다

  • mv old_name.txt new_name.txt
    'old_name.txt'의 이름을 'new_name.txt'로 변경한다

  • mv file.txt /path/to/directory/
    'file.txt'를 지정된 디렉터리로 이동한다

  • mv 명령어는 파일을 이동시킬 때 복사 후 삭제하는 것이 아니라
    파일의 위치 정보만 변경하기 때문에 처리 속도가 빠르다

  • 이동하려는 대상 경로에 같은 이름의 파일이 이미 존재할 경우,
    기존 파일은 덮여쓰여진다

10. cat (concatenate)

  • cat은 텍스트 파일의 내용을 화면에 출력하거나, 여러 파일의 내용을
    연결하여 출력한다

  • cat file.txt
    'file.txt' 파일의 내용을 화면에 표시한다

  • cat file1.txt file2.txt > combined.txt
    'file1.txt'와 'file2.txt'의 내용을 합쳐 'conbined.txt'에 저장한다

11. chmod (Change Mode)

  • chmod는 파일이나 디렉터리의 권한을 변경한다

  • chmod 755 file.sh
    'file.sh' 파일에 대해 소유자에게는 읽기, 쓰기, 실행 권한을 부여하고
    그룹과 기타 사용자에게는 읽기와 실행 권한만 부여한다

  • chmod u+x file.sh
    'file.sh' 파일에 대해 현재 사용자에게 실행 권한을 추가한다

  • 권한 변경은 보안에 영향을 줄 수 있으므로 신중히 사용해야 한다

12. grep (Global Regular Expression Print)

  • 파일 내용 중에서 지정된 패턴이나 문자열을 검색하여 그 결과를 출력한다

  • grep "text" file.txt
    'file.txt'에서 "text" 라는 문자열이 포함된 모든 줄을 표시한다

  • grep -r "text" .
    현재 디렉터리와 하위 디렉터리에서 "text" 문자열을 재귀적으로 검색한다

  • 정규 표현식을 사용하여 복잡한 검색 패턴을 지정할 수 있으며,
    로그 파일 분석이나 특정 데이터 추출에 유용하다

13. echo

  • 주어진 문자열을 터미널에 출력한다.
    환경 변수의 값을 표시하거나, 파일에 텍스트를 쓰는 데에도 사용된다

  • echo "Hello World"
    터미널에 "Hello World" 라는 문구를 출력한다

  • echo $HOME
    'HOME' 환경 변수의 값을 출력한다

  • echo "some text " > file.txt
    "Some text" 라는 문구를 'file.txt' 파일에 저장한다

  • 스크립트 작성 시 변수의 값을 확인하거나 파일에 내용을 빠르게 추가할 때
    유용하다

14. man (manual)

  • 리눅스 명령어의 사용법, 옵션, 기능 등을 설명하는 매뉴얼 페이지를 제공한다

  • man ls
    'ls' 명령어에 대한 매뉴얼 페이지를 보여준다

15. sudo (SuperUser DO)

  • 일반 사용자가 관리자(superuser) 권한을 가지고 명령어를 실행할 수 있게 한다
    시스템 설정 변경, 중요한 파일 수정, 관리자 권한을 필요로 하는 소프트웨어 설치 시
    사용된다

  • sudo apt-get update
    패키지 리스트를 업데이트 한다

16. find

  • 파일이나 디렉터리를 검색한다

  • find . -name "file.txt"
    현재 디렉터리에서 'file.txt' 파일을 찾는다

  • find / -type d -name "config"
    루트 디렉터리에서 'config' 라는 이름의 디렉터리를 찾는다

profile
Do your best every moment

0개의 댓글