1. 기본 Linux 문법

명령어 --help

  • 명령어 도움말

man -명령어

  • 명령어 도움말 2

명령어 --version

  • 버전 확인하기

ls

  • 파일 목록 확인

  • ls-al
    • (a) 숨겨진 파일 모두 보여주기
    • (l) 보다 자세히 보여주기
  • ls -S
    • (S) 파일 사이즈에 따라 정렬

pwd

  • (print working directory)
  • 현재 경로

mkdir

  • (make directory)
  • 새로운 경로 생성
  • mkdir -p dir1/dir2/dir3 : 부모/자식/자식의자식… 경로 생성


rm

  • 삭제/제거하기
  • rm -r : 경로를 제거 (recursive)


touch

  • (없으면) 생성
  • (있으면) 날짜 update


cd

  • change directory
  • cd .. : 상위(부모) directory로


cp(mv) A.txt dir1/A.txt

  • A.txt를 dir/A.txt로 복사(이동)


sudo

  • super user do : 관리자 권한으로 실행
  • 관리자 : super user = root user


sudo apt-get install xx

  • xxx 패키지 설치하기
  • 권리자 권한 위해 앞에 sudo 붙이기!


clear

  • 화면 비우기


편집기 (editor)

  • 1) nano
  • 2) vi


2. Nano 사용법

nano 치고 Enter로 nano editor 사용


^O = Control 키 + O = Write Out

  • File Name to Write : “파일명 적기”

^X = Exit


복사가 따로 없다! 삭제 & 붙여넣기

  • ^K = 현재 커서가 놓여있는 text를 삭제

  • ^U = 방금 자른 text 붙여넣기


ctrl+6 누르면 상태 변경!

그런 뒤, 화살표로 커서 옮기기 ( drag )


3. 패키지 매니저

패키저 매니저 ex ) apt , yum ..


sudo apt-get update

  • 최신 software “목록”을 다운로드
  • 늘 가장 먼저 실행할 것!


sudo apt-cache search htop

  • htop이라는 것과 관련 있는 package 목록을 보여줌


top

  • 작업관리자
  • Q 누르면 exit


(sudo) htop

  • top을 graphical하게 개선한 패키지다.
  • sudo apt-get install htop
  • F10 누르면 exit


sudo apt-get upgrade xxx

  • xxx 패키지 업그레이드하기


sudo apt-get remove xxx

  • xxx 패키지 제거하기


4. 파일 다운로드

다운로드에 사용하는 프로그램 ex) wget

wget 링크

  • 해당 링크에서 다운로드 받기

  • ls -l : download라는 파일로 다운이 이루어짐을 알 수 있음

  • mv download hello.jpeg : hello.jpeg로 파일명 변경


wget -O 파일이름 링크

  • 원하는 파일이름으로 다운로드 받기


5. Git

  • 가장 유명한 version 관리 시스템

  • git을 통해 github에 있는 소스코드 다운받기

sudo apt-get install git

git clone 주소복붙 react_src

  • react_src 경로에 해당 파일을 clone(복제)해온다
  • ( 현재 파일 뿐만 아니라, 모든 과거 history 또한 가져옴 )

ls -al react_src


6. GUI vs CLI

Graphical User Interface

  • 디자인은 예쁘나
  • 훨썬 더 수고로움
  • 훨씬 더 많은 메모리를 소모한다.

Command Line Interface

  • 복잡한 업무, 코드로 보다 간편하게!


7. Sequence Execution ( Semicolon )

  1. 디렉토리를 만든다 & 이동한다
    • mkdir why
    • cd why
    • rm -rf why
  2. 위 과정을 한번에 수행할 수 있다
    • mkdir why ; cd why ; rm -rf why


8. Pipeline

nano linux.txt

  • 안에 ~ text 붙여넣고 저장하고 나오기

cat linux.txt

  • linux.txt의 내용을 출력한다


linux라는 단어가 포함된 행 만을 출력하고 싶다면?

grep linux linux.txt


ls --help | grep sort

  • ls --help를 수행해서 나오는 사용 설명서에서
  • sort라는 텍스트가 포함된 텍스트만을 검색해서 표현해줌


ps (aux)

  • process status
  • 현재 실행되고 있는 프로그램들 나열

  • ex) ps aux | grep apache


9. IO Redirection

(1) Output

출력된 결과를, 터미널 상에서 보여주는게 아니라, 파일로 저장하고 싶다면?

  • ls -l > result.txt
    • ls -l 1> result.txt ( default ) : standard output
    • ls -l 2> result.txt : standard error
    • rm nofile.txt 1> result.txt 2>error.log
      • rm nofile.txt를 수행해서..
        • 잘 작동되면 result.txt에 저장
        • 에러가 뜨면 error.log에 저장
  • cat result.txt로 확인해보기!


(2) Input

cat < hello.txt

  • hello.txt라는 파일을 입력으로 받는다는 뜻

  • cat hello.txt와의 차이점은?

    • cat hello.txt : 인자로써
    • cat < hello.txt : 표준입력으로써


head linux.txt

  • 앞에 10줄

head -n6 linux.txt

  • 앞에 6줄

head -n1 < linux.txt > one.txt

  • linux txt의 앞의 1문장을 one.txt로 따로 저장


(3) append

( 아주 중요한 내용은 X )

ls al > result.txt

ls al > result.txt

  • 위와 같이 2번 연속 수행할 경우, 덮어씌어짐


덮어 씌우지 않고, 뒤에 이어서 추가하고자 한다면?

ls al >> result.txt


# 10. Shell vs Kernel

Kernel : Hard Ware를 직접적으로 제어하는 운영체제에서 가장 중심/핵심이 되는 것!

Shell : 사용자가 명령을 입력 & 이를 해석한 뒤 Kernel에 전달

“Kernel을 직접적으로 제어하기 어렵기 떄문에, Shell에 해당하는 프로그램을 통해 명령어를 전달”


Shell : 사용자의 명령을 해석

  • 다양한 종류의 Shell이 존재한다.

    (다양한 방식으로 kernel을 제어 가능)


echo $0 : 현재 어떠한 shell을 사용하는지 확인

sudo apt-get install zsh


bash shell

nano backup


if ! [ -d bak ] ㅣ then
	mkdir bak
fi
  • 현재 경로에 bak라는 경로가 존재하지 않는다면, bak라는 경로 생성


cp *.log bak


chmod +x backup

  • x = execute ( 실행 ) 권한 부여


Tags:

Categories:

Updated: