Linux 란?
- 리눅스는 UNIX 운영체제에서 파생된 오픈소스 운영체제이다.
- 보안면에서 우수하고 많은 네트워킹 기술을 제공하기 때문에 서버용 운영체제로 적합하다.
- 오픈소스 운영체제이기 때문에 개발자가 개조하고 배포하는 것이 가능하다.
- 리눅스 기반인 대표적인 운영체제로 안드로이드가 있다.
- Windows는 한 사용자가 한 컴퓨터를 사용(단일 사용자)하는 것을 기반으로 만들어진 운영체제이지만,Linux는 여러 사용자가 한 컴퓨터에 접속해서 사용(다중 사용자)하는 것을 기반으로 만들어진 운영체제이다.
- ubuntu는 Linux의 수많은 배포 버전 중 하나이다.
- 리눅스는 명령어로 컴퓨터를 제어하고 이를 CLI(Command Line Interface)라고 한다.CLI는 GUI보다 용량, CPU, 메모리를 적게 차지하는 장점이 있다.
구름(Goorm)으로 리눅스 익히기
- Goorm
클라우드 개발환경 구축 서비스이고, 리눅스 설치 없이 온라인으로 리눅스를 사용할 수 있다.
먼저 회원가입을 해주고, IDE로 들어가서 콘솔로 가기를 누른다.
새 컨테이너를 생성해줘야한다. 컨테이너를 생성한다는 것은 리눅스가 설치된 컴퓨터를 제공해주는 것이라고 보면 된다.
컨테이너의 이름은 대문자없이 소문자로만 해주는 것이 편하다. 언더바를 넣어도 되지만 안 넣는것이 좋다.
밑으로 내려오면 Ubuntu를 사용한다는 것을 알 수 있다. LTS는 Long Term Support의 약자이며, 번역하면 장기 지원 버전이라는 뜻이다.
컨테이너를 열면 아래와 같은 창이 나온다.
여기서 창 -> 새 터미널 창 을 눌러주고 여기서 명령어를 실행하면 된다.
꼭 알아야할 리눅스 기본 명령어
- ls - 현재 위치의 파일 목록을 조회하는 명령어
- cd - 디렉토리를 이동하는 명령어
- touch - 파일의 용량이 0인 파일을 생성, 날짜 변경하는 명령어
- mkdir - 디렉토리를 생성하는 명령어
- cp - 파일을 복사하는 명령어
- mv - 파일을 이동시키는 명령어, 이름을 변경하는 명령어
- rm - 파일을 제거한느 명령어
- cat - 파일의 내용을 화면에 출력하거나 파일을 만드는 명령어
- redirection - 화면에 출력되는 결과를 파일로 정하는 명령어
- alias - 자주 수행하는 명령어들을 쉽게 사용할 수 있도록 설정하는 명령어
-
pwd - 현재 있는 폴더를 보여주는 명령어(print working directory)
-
clear - 명령어 및 결과들이 지워지는 명령어
-
vi file - file 명령모드로 이동
-
i - 명령모드에서 입력모드로 전환
-
ese + :wq! - 명령모드로 돌아가며 저장 후 종료
-
wget 이미지 주소 - 이미지 불러오기
-
find ./ -name 'file.txt' : 현재 폴더 기준으로 file.txt 파일을 모두 출력하세요.
-
find ./ -name '*.txt' : 현재 폴더 기준으로 확장자가 .txt 파일을 모두 출력하세요.
- ls(list segments)
- ls-l : 파일들의 상세정보를 나타낸다.
- ls-a : 숨어있는 파일들도 표시한다.
- cd(change directory)
- cd one : one이라는 디렉토리로 이동한다.
- cd ~ : 어느 곳이든지 홈디렉토리로 바로 이동한다.
- cd .. :상위 디렉토리로 이동한다.
- cd / : 최상위 디렉토리로 이동
- cd/dir : 절대경로 dir로 이동할 경우 사용한다.
- cd - : 이동하기 바로 전의 디렉토리로 이동한다.
-
touch
-
mkdir (make directory)
- mkdir one : one의 디렉토리를 생성
-
cp (copy)
- cp file cfile: file을 cfile 이라는 이름으로 복사한다.
- cp -f file cfile: 복사 대상이 있으면 지우고 강제로 복사한다.
- cp -R dir cdir: 디렉토리 복사 시, 폴더 안의 모든 하위 경로와 파일들을 모두 복사한다.
-
mv(move)
mv와 cp의 다른 점은 cp는 파일을 복사하여 원본 파일이 남지만 mv는 원본 파일이 지워진다. 그러므로 이름을 변경 시에도 사용한다.
- mv fname mfname : fname 파일을 b로 이동/변경한다.
- mv -b fname mfname :mfname 파일이 존재하면 mfname를 백업한 뒤 이동한다
- mv -f fname mfname : mfname 존재하면 백업 없이 덮어쓴다.
-
rm(remove)
- rm fname : fname을 삭제한다.
- rm -f fname : fname을 묻지않고 삭제한다.
- rm -r dir: dir을 삭제한다. (디렉토리는 -r 없이 삭제할 수 없다.)
-
cat(catenate)
- cat fname: fname의 내용을 출력한다.
- cat fname1 fname2: fname1과 fname2의 내용을 이어서 출력한다.
-
redirection ('>'.'>>')
- 리눅스 스트림의 방향을 조절한다.
- 명령 > 파일 : 명령의 결과를 파일로 저장한다.
- cat fname1 fname2 > fname3 : fname1 fname2을 출력하고 fname3 이라는 파일에 저장한다.
- 명령 >> 파일 : 명령의 결과를 파일에 추가한다.
- cat fname4 >> fname3 : fname3에 fname4의 내용을 추가한다.
- 명령 < 파일 : 파일의 데이터를 명령에 입력한다.
- cat < fname1 : fname1의 내용을 출력한다.
-
alias
- alias ne ='command' : command를 실행하는 새 명령어 new를 만든다.
- alias ls='ls -l' : ls를 실행하면 -l 옵션을 갖는 ls를 실행한다.
- unalias new : new 라는 alias를 해제한다.
명령모드에서 사용하는 명령어
한줄 삭제 dd
한줄 복사 yy
붙여넣기 p
현재 커서 앞에서 글자 추가 -> i
현재 커서 뒤에서부터 글자 추가 -> a
바로 다음 줄부터 편집 -> o
문장 맨 앞에서부터 편집 -> shift + i
문장 맨 뒤에서부터 편집 -> shift + a
여러줄 선택(하이라이팅) -> shift + v
자동완성 -> tab
깃허브의 레파지토리로 서비스 런칭하기
sudo apt-get update
sudo apt-get install nginx
-> Y
vi /etc/nginx/sites-available/default
을 하면 편집모드로 들어가고 i
눌러서
- 기본값인 이 부분을
내 디렉토리에 맞는 이름으로 변경해준다.
workspace/ testtest가 내 디렉토리 경로
10000hours는 깃허브 레파지토리에 있는 파일명
- esc /wq! 로 종료한다.
- 10000hour 프로젝트 불러오기
git clone https://github.com/paullabkorea/10000hour.git
sudo service nginx start
- 프로젝트 > 실행URL과 PORT > 바로가기
rm부분에서 잘못된 부분이 있어 댓글남깁니다.
rm -r dir은 디렉토리 하위 파일을 포함하여 모두 제거하는 명령어 입니다.
디렉토리를 삭제하는 명령어는 rm -d dir입니다.
단, rm -d dir의 경우에는 하위에 다른 파일이 존재하면 제거할 수 없습니다.
디렉토리는 -r옵션 없이 삭제할 수 없다는 말은 부분적으로 맞는 말입니다.
그리고 vi와 관련해서 명령모드, 입력모드 등은 리눅스 명령어가 아니며 별도 포스팅을 하여 구분하면 좋을 것 같습니다! 명령모드랑 입력모드랑 다 설명하려면 양도 많구요...ㅠ
좋은 정보 감사합니다.