1. file & directiory
리눅스는 문자를 입력해 제어를 한다. (CLI (command line interface) <-> GUI )
pwd : 현재 내가 어디에 위치해 있는지 확인
mkdir hello_linux : 디렉토리 생성
touch empty_file.txt : 비어있는 파일 생성
ls -l 각각의 파일과 디렉토리를 자세히 보여줌 (-l : 파라미터)
cd hello_linux/ : 디렉토리로 이동
cd /home/ubuntu : 가고자 하는 디렉토리로 이동
cd .. : 현재 디렉토리의 부모 디렉토리로 이동
rm hello_linux : 삭제 실패
rm empty_file.txt : 삭제 성공
rm -r hello_linux : 삭제 성공 ( -r : recursive (안에 있는 모든 디렉토리가 삭제됨) )
rm --help : 명령어의 사용방법 확인
2. --help & man
mkdir --help : 명령어의 사용방법 간단한 확인
man mkdir : 명령어의 사용방법 전용페이지에서 자세히 확인
/sort : man 안에서 검색하고싶다. n누를때마다 다음 sort보여줌.
q : 밖으로 빠져나감
mkdir
3. Searching (%^*$%#*# in linux)
touch cp.txt : 파일 생성
cp cp.txt dir1/cp.txt : 파일 복사
rm cp.txt : 파일 삭제
-> 이동하는 것과 같은 효과. 불편하다.
touch mv.txt : 파일 생성
mv mv.txt dir1/mv.txt : 파일 이동
-> 이동
touch rename.txt : 파일 생성
mv rename.txt rename2.txt : 파일 이름 바꾸기
4. frequency of command
5. sudo (root)
6. file edit (nano)
nano : 새 에디터 파일
nano hello.html : hello.html 파일을 편집하겠다.
^6을 사용해서 텍스트 블럭 설정가능
nano가 익숙해지면 vi도 사용해봐라.
7. Package manager(apt 기준, yum은 검색해보면 안다)
앱스토어에 해당하는 것
sudo apt-get update : 설치할 수 있는 최신 목록 갱신 (Package manager 사용하기 전 항상 해줘라)
sudo apt-cache search htop : htop에 관련된 목록 불러온다
sudo apt-get : 어떤 것을 사용할 수 있는지 알려준다.
sudo apt-get upgrade htop : htop을 업그레이드 한다.
sudo apt-get upgrade : 전체 업그레이드 한다.
8. file download : wget
다운로드할 수 있는 주소 copy link address 한 뒤에
wget 주소 : 주소 다운로드
wget -O paris.jpeg 주소 : 주소를 paris.jpeg라는 이름으로 다운로드
9. Source download : git
10. Why using CLI?
sequence execution (semicolon)
mkdir why; cd why : why 디렉토리를 만들고 why로 들어간다.
pipeline( | )
nano linux.txt : linux.txt 편집기 연다.
cat linux.txt : linux.txt 파일의 내용을 출력해준다.
grep linux linux.txt : linux.txt 안에서 linux를 찾는다.
ls --help | grep sort : sort가 포함된 문장만 출력.
ls --help | grep sort | grep file : sort, file 둘 다 포함된 문장만 출력.
ps aux : 현재 실행되고 있는 프로그램 목록
ps aux | grep sh : 현재 실행되고 있는 프로그램 목록 중 sh를 포함한 문장만 출력.
11. IO Redirection (output)
ls -l > result.txt : ls -l 출력을 result.txt 로 돌려 파일에 저장한다. Redirection
rm e.txt : e.txt 파일 삭제
rm e.txt : error 메세지
rm e.txt > result.txt : >앞에 1이 생략된 상태로서 standard output을 출력함.
rm e.txt 2> error.log : standard error를 error.log로 돌려 파일에 저장.
cat error.log : 저장된 에러메세지 출력
12. IO Redirection (Input)(실용적이지 않다.)
cat
hi
hi
linux
linux
컨트롤 + d 로 빠져나옴.
cat a.txt : standard arguments로 입력 받은것.
cat < a.txt standard input으로 입력 받은것.
head -n1 a.txt : 앞의 1문장만 출력한다.
head -n1 < a.txt : "
head -n1 < a.txt > one.txt : 출력된 것을 one.txt에 출력해라.
13. IO Redirection (append)
ls -al >> result.txt : 원래 있던 내용에 출력값을 추가
커맨드라인을 입력하다가 실행하고 싶지 않으면 컨트롤+C 누르면 바로 취소가 된다.
ls -al > /dev/null : 그냥 출력값 날리고 싶을때 (휴지통 같은 곳)
14. Shell (intro)
SHELL VS KERNEL
지금까지 써왔던 Shell 이 어떻게 동작하는지, 다른 Shell을 쓰면서 Kernel이 하는 일이 무엇인지 알아보자.
15. Shell(bash vs zsh)
echo "hello" : 뒤에 있는 글자를 출력
hello
echo $0 : 어떤 쉘을 사용하고 있는지 확인
-bash
16. Shell Script
Shell에서 실행되는 명령들을 어딘가에 적어두고 그대로 실행하도록 만드는 방법.
nano backup
#!/bin/bash : /bin/bash 에 의하여 해석된다.
if ! [ -d bak ]; then : 만약 bak이라는 디렉토리가 없으면
mkdir bak : bak 디렉토리를 만들어라.
fi : if문 종료
cp *.log bak : *.log 카피해서 bak에 복사해라.
chmod +x backup : backup 파일에 x를 추가해 실행가능한 모드를 추가하고 변경한 것.
-x 가 붙어있으면 실행 가능한 파일이라는 뜻이다.
rm -rf bak : bak 제거
./backup : backup 실행
17. Directory structure ( https://www.thegeekstuff.com/2010/09/linux-file-system-structure/ )