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 )
- 디렉토리를 만든다 & 이동한다
mkdir why
cd why
rm -rf why
- 위 과정을 한번에 수행할 수 있다
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 outputls -l 2> result.txt
: standard errorrm 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 ( 실행 ) 권한 부여