linux 명령어 정리

Page content

관리자 권한 얻기

  • root 권한 실행(sudo)

    • $ sudo reboot
    • $ sudo halt
  • root 사용자로 전환

    • $ sudo su - root

리눅스 파일 시스템

  • root
    • home : 윈도우의 사용자 폴더와 같음, 사용자 추가할때마다 home에 디렉토리가 만들어짐
    • bin : 실행 파일을 두는 곳
    • mnt, media : 리눅스나 유닉스는 루트로부터 파생되는 특정 디렉토리에 장치들을 엮어쓰게됨. 엮어쓰는 장치의 디렉토리로 과거에는 mnt(마운트)를 썼었음. 만약에 CD-ROM을 연결해 쓰고 싶을 때 CD-ROM 데이터를 어떻게 읽냐면 자기 혼자 루트를 갖는게 아니라 루트에서 어느 디렉토리에 연결해서 쓰게됨 그게 mnt 디렉토리이다. 요새는 media라는 디렉토리를 이용함.
    • usr : 윈도우의 Program Files와 같음.
    • etc : 프로그램이 사용할 초기화에 대한 설정들을 두는 곳
    • var : 프로그램이 실행되면서 만들어지는 값들의 저장 공간
    • bin : 모든 유저가 사용하는 실행 파일을 두는 곳
    • sbin : adimin 계정이 사용하는 실행 파일을 두는 곳
    • tmp : 운영체제가 사용하든 프로그램이 사용하든 임시로 데이터를 풀었다가 삭제했다가 그런 부분이 필요하면 tmp를 사용
    • sys : 어떤 시스템에 대한 설정들이 있는 곳

파일 탐색을 위한 명령어들

  • pwd : 현재 디렉토리 경로를 출력

  • ls : 디렉토리 목록 나열

  • cd : 디렉토리를 변경

  • 상대경로 : cd var 또는 cd ./var

  • 절대경로 : cd /usr/mygame/var

파일 시스템을 위한 명령어들

  • mkdir : 디렉토리 생성
  • rmdir : 디렉토리 삭제
  • touch : 빈 파일 생성
  • mv : 파일 이동 / 변경
  • rm : 파일 삭제
  • rm -r : 디렉토리 및 디렉토리 안쪽의 모든 파일 삭제
  • rm -ri : i를 붙여줌으로써 파일을 지울 때 내부 파일들의 삭제 여부를 물어보며 삭제함
  • cp : 파일 복사

파일 편집 및 관리

  • 파일 편집기
    • VI
      • i : 입력
      • w : 저장
      • q : 종료
      • o : 한줄 띄기
      • yy + p : 한줄 복사
      • y + p : 한글자 복사
    • GNU nano
    • Emacs
    • ed/ex

nano를 이용한 파일 편집

  • nano

파일 찾기와 파일 정보 확인

  • find ./ -name size +1c –> 1바이트보다 큰 파일을 찾아라는 의미
  • cat –> 파일 정보 확인
  • head -n2 Hello.java –> 위에서부터 두 줄 확인
  • tail -n2 Hello.java –> 아래서부터 두 줄 확인
  • grep <찾고자 하는 글자> –> 찾고자 하는 글자 확인
  • grep <찾고자 하는 글자> –> 소대문자 구별 x
  • ls Hello[12].java –> Hello1.java 또는 Hello1.java 파일이 있는지 확인
  • diff –> 차이가 있는 줄 명시
  • cmp –> 차이점 출력

유용한 명령어

  • clear : 화면의 글자들을 제거
  • history : 지금까지 다뤘던 명령어가 목록화 되어서 출력됨. ! 를 입력하면 명령어 실행가능.
  • echo : 글자 등을 화면에 출력하기 위한 명령어
  • echo “<문자>” » : 문자가 파일에 입력된다.
  • redirection(>) : ex) echo “Okay” > test –> test파일에 “Okay"문자 저장, » 사용하면 기존 파일에 내용 추가

압축 파일 다루기

압축하기

  • tar -cf name.tar a b c tar -zcf name.tar.gz a b c

압축풀기

  • tar -xvf name.tar tar -zxvf name.tar.gz

  • f : 파일 이름을 지정

  • c : 파일을 tar로 묶음

  • x : tar 압축을 풂

  • v : 내용을 자세히 출력

  • z : gzip으로 압축하거나 해제함

  • t : 목록 출력

  • p : 파일 권한을 저장

  • C : 경로를 지정

링크 파일 만들기

  • ln -s test1.txt test1.ln // Symbolic Link, 바로가기
  • ln test1.txt testln.txt // Hard Link, 별칭

사용자 관리하기

고전적인 사용자 관리 명령어 : 홈디렉토리 수동생성

  • useradd - 사용자 추가
  • usermod - 사용자 변경
  • userdel - 사용자 삭제

dragon 사용자 추가하기

  • $useradd dragon

  • $ cat /etc/passwd 또는 tail -n2 /etc/passwd

          newlec:x:1000:1000:newlec park,,,:/home/newlec:/bin/bash
          dragon:x:1001:1001::/home/dragon
    
          $sudo passwd dragon
    

dragon 사용자로 로그인하기

가상 터미널

  • Alt + F2~6

Home directory 소유자 문제

디렉토리 소유자 정보

        ~$ls -l ../
        drwxr-xr-x 3 root root 4096 Jul 14 2017 dragon // root -> 소유자
        drwxr-xr-x 11 newlec newlec 4096 Jan 12 00:56 newlec

소유자 변경하기

        ~$sudo chown dragon ../dragon
        ~ls -l ../
        drwxr-xr-x 3 dragon root 4096 Jul 14 2017 dragon // dragon -> 소유자
        drwxr-xr-x 11 newlec newlec 4096 Jan 12 00:56 newlec

        ~$sudo chown dragon(소유자):dragon(소유그룹) /home/dragon --> 소유자와 소유그룹을 한번에 바꿀 수 있음.

사용자를 추가하는 스크립트 파일 생성

adduser

~/bin/adduser

        useradd testuser
        tail -n2 /etc/passwd
        mkdir /home/testuser
        chown testuser:testuser /home/testuser
        echo "testuser user added"

파일 권한 변경

        소유자(rwx),소유그룹(rwx),Other(rwx)
        -rwxr-xr-x text.txt -> 세개씩 묶여서 소유자에 대한 권한, 소유그룹에 대한 권한, other에 대한 권한을 나타냄. 맨 앞은 파일의 타입

사용자 관리

사용자 추가 옵션들

  • -c : 사용자 설명 설정

  • -s : 기본 쉘 설정

  • -r : UID 설정(500 이하로)

  • -d : 사용자 디렉토리 설정

  • -g : 기본 그룹

  • -G : 추가 그룹

          # useradd -d /home/username -s /bin/bash username
          # useradd -r number -c "..." -g groupname -G groupname -d /home/username -s /bin/bash username
          # useradd dragon
          # passwd dragon
    

향상된 사용자 추가 명령어

        # adduser dragon
        # passwd dragon

사용자 제거하기

        # userdel -r username

사용자 추가

  • useradd(or adduser)

사용자 제거

  • userdel(or deluser)

사용자 정보 수정

  • usermod

사용자 프롬프트 설정하기

프롬프트 스트링(PS1) 출력하기

        newlec@newlec-server:~$ echo $PS1
        \[\e]0;\u@\h" \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

프롬프트 스트링(PS1) 변경하기

        newlec@newlec -server:~$ PS1="newlec : ";
        newlec : ls
        aa download ohho workspace

프폼프트 스트링의 이스케이프 문자

        \H : the hostname, \h : the hostname up to the first '.', \d : the date
        \n : newline, \r : carrage return,
        \t : the current time in 24-hour, \T : the current time in 12-hour

출력 색상 변경하기

색상 변경 예

        ~$ LS_COLORS="di=0;33"

파일 종류명

        di = directory
        fi = file
        ln - symbolic link
        pi = fifo file
        so = socket file
        bd = block (buffered) special file
        cd = character (unbuffered) special file
        or = symbolic link pointing to a non-existenet file (orphan)
        mi = non-existent file pointed to by a symbolic link (visible when you type ls -l)
        ex = file which is executable (ie. has 'x' set in permissions)

텍스트 형식

        0 = default colour
        1 = bold
        4 - underlined
        5 = flashing text
        7 = reverse field

리눅스 부팅 순서

초기화 스크립트 작성 위치

        1) BIOS
        2) Masster Boot Record (MBR)
        3) LILO or GRUB
        4) Kernel
        5) init : process number 1(PID=1)
        -/linuxrc: load modules / initialize devices / exits
        -/sbin/init
                    -/etc/inittab : run boot scripts
                                -/etc/init.d/rcS
                                            -/etc/rcS.d/S* scrpts
                                            -/etc/rc.boot/*
        6) Run Levels

컴퓨터 시작과 종료 명령어

종료 방법

        $poweroff
        $shutdown
        $halt
        $init 0

재시작

        $reboot -> 다른 사용자가 사용중일 때는 root 계정으로 강제 재부팅
        $shutdown
        $init 6

프로필과 환경변수 설정방법

우분투에서 환경 변수를 설정하기 위한 대표적인 파일들

        /et/environment
        /etc/profile
        /etc/profile.d/*.sh
        ~/.profile