이 키노트에서는 기초적인 리눅스의 사용법에 대해 알려줍니다.
리눅스의 주 사용 용도인 date, cal 부터 git에 USB 디바이스 확인하는 명령어까지 소개합니다.
데비안 리눅스, 우분투 18.04 버전 기준으로 설명되었습니다. 또한 본 내용에서 특정 기업 명이나 특정 상표가 포함되었을 가능성이 있습니다. 하지만 이런 내용에는 고의성이 없음을 밝힙니다.
3. 리눅스는 무엇인가요?
• 시스템을 작동시키는 운영체제 중 하나
• AT&T 벨 연구소에서 1960년대에 개발 되었음
• Command-line Interface
• GUI(윈도우에서 사용하는) 도 지금은 사용할 수 있음
4. LINUX VS UNIX
• 유닉스는 리눅스의 선배격입니다
• 리눅스는 유닉스의 변형입니다
• Mac OS도 마찬가지입니다. 이 가이드의 대부분이 Mac
OS에도 적용됩니다
• 리눅스는 오픈소스입니다
• 전세계에서 서버군에서 가장 많이 사용합니다
• 리눅스를 도저히 이길 수 없습니다
9. INTERNET BASED SERVER’S MARKET SHARE
<W3TECHS>
Windows
32%
알 수 없음(리눅스변형)
31%
FreeBSD
1%
리눅스
36%
출처: https://w3techs.com/technologies/details/os-unix/all/all
15. 리눅스 명령어 - 리스트 조회(LS)
• 현재 디렉토리의 리스트를 조회하는 명령어
• list를 뜻함.
• 옵션
• -a (숨김파일을 포함한 전체 파일 조회)
• -l (리스트 형태로 상세하게 출력)
• -h (사용자가 볼 수 있는 파일크기 단위로 보기)
• -t (시간 순서대로 정렬)
16. 리눅스 명령어 - 리스트 조회(LS)
• 자주 쓰는 명령어
• ls (단순히 리스팅하기)
• ls -al (디렉토리 내 모든 파일 및 폴더 리스팅)
• ls -alh (디렉토리 내 모든 파일 및 폴더 리스팅과 더불어
파일 사이즈를 눈에 보기 쉽게 해줌)
• ls -ltr (디렉토리 내 모든 파일 및 폴더의 수정시간 기준
정렬)
17. 리눅스 명령어 - 디렉토리 옮기기(CD)
• change directory 라는 뜻을 가지고 있음
• cd [이동할 디렉토리] 로 사용함
18. 디렉토리 옮기기(CD) - 계층구조 이해
• 리눅스 시스템은 윈도우의 시스템과는 조금 다릅니다
• 윈도우는 C드라이브, D드라이브 형태로 되어있고 그것이
하나의 물리적/논리적 디스크로 나뉘어져 있지만
리눅스 시스템은 특정 폴더에도 디스크를 할당할 수 있는
시스템입니다.
20. 리눅스 명령어 - 현재 작업중인 디렉토리 출력
• pwd
• 현재 작업중인 디렉토리를 절대경로로 출력해줍니다
21. 리눅스 명령어 - 파일 복사(CP)
• 특정 파일을 복사하는 명령어입니다
• cp [arg] [복사할 파일] [복사될 파일]
22. 파일 복사(CP) - 자주 쓰는 옵션
• 자주 쓰는 옵션
• cp -r
• 폴더까지 복사해주는 명령어
• cp -f
• 같은 파일이 있다면 강제로 덮어씌움
• cp -v
• verbose의 약자로 상세한 복사내역을 표시함
23. 리눅스 명령어 - 파일 이동(MV)
• 특정 파일을 이동하거나 이름을 바꾸는 명령어
• cp와 옵션이 거의 똑같지만 이동할 때 디렉토리까지 모두 이
동하기 때문에 (-r) 옵션을 사용하지 않습니다
24. 리눅스 명령어 - 파일 지우기
• 특정 파일이나 디렉토리를 지우는 역할을 합니다
• rm을 수행할 때는 항상 조심해야 합니다
• 자주 쓰는 명령어
• rm -r [디렉토리] 디렉토리를 포함해서 삭제
• rm -v [파일] 삭제한 내용에 대해 표시
• rm -f [파일] 강제로 삭제
25. 리눅스 명령어 - 화면 청소하기
• 화면을 깨끗하게 만들기 위해서는 clear 를 사용합니다.
• 알아두면 좋습니다.
26. 리눅스 명령어 - PS
• 실행중인 프로세스 상태와 정보를 출력합니다
• ps 명령어만 입력하게 되면 현재 사용자의 프로세스만 나타
나게 됩니다. 그렇지만 이렇게 찾는 경우는 거의 없기 때문
에 ps 를 입력할때는 항상 ps -ef 를 외웁시다.
• 자주 사용하는 명령어
• ps -ef: 현재 실행중인 모든 프로세스의 자세한 정보를
띄웁니다
27. 리눅스 명령어 - KILL
• 프로세스를 죽일 때 사용하는 명령어
• kill -9와 kill -3 을 주로 사용합니다
• kill을 시킨 후 ps로 제대로 죽었는지 확인해야 합니다
• 일반적으로 kill 명령어를 사용할 때는 root 계정을 사용
합니다
28. 리눅스 설정 - 사용자 비밀번호 변경
• 사용자의 비밀번호를 변경하기 위해서는 passwd 명령어를
사용합니다.
• passwd 를 입력하면 비밀번호를 변경할 수 있습니다.
• root 계정에서 passwd [사용자명] 을 입력하면 사용자명에
해당하는 비밀번호를 변경할 수 있습니다.
29. 리눅스 명령어 - 파일 내용보기 및 병합하기
• 파일 내용을 출력하는 명령어
• cat [파일명]
30. 리눅스 명령어 - 많은 파일을 출력하기
• 로그파일 등을 출력할 때는 화면에서 글자가 밀리는 경우가
종종 있습니다.
• 특히 데이터센터에서 KVM 이라는 장비로 서버에 직접 접속
해서 사용할 때(PUTTY를 사용하지 않기 때문에 스크롤이
없습니다) 유용합니다.
• more [파일명]
31. 파일 접근 권한 - CHMOD
• 리눅스는 많은 사용자가 사용할 수 있기 때문에 permission(권한) 이라는 값
을 설정할 수 있습니다.
• 이런 퍼미션은 다음과 같은 규칙을 가지고 있습니다.
• ABC
• A: 사용자 / B: 그룹 / C: 사용자와 그룹 이외
• 각 값은 7을 넘을 수 없으며 다음과 같은 규칙이 있습니다.
• 4 - 읽기
• 2 - 쓰기
• 1 - 실행하기
32. 파일 접근 권한 - CHMOD
• 주로 폴더에는 755 권한 775권한,
파일에는 644나 664 권한을 줍니다.
• 777이나 666 권한은 사용하지 않도록 합니다.
33. 파일 접근 권한 - CHMOD
• 파일 권한을 주는 명령어
• chmod [XXX] [파일/디렉토리명]
34. 리눅스 명령어 - 파일 소유권 변경
• 파일의 소유자를 변경시킬 수 있는 명령어
• chown [사용자명]:[그룹명] [파일/디렉토리명]
• 자주 쓰는 명령어
• chown -hR
• 심볼릭 링크의 소유권과 디렉토리의 소유권을 포함한
모든 소유권을 바꾸는 명령어
35. 리눅스 명령어 - 다른 계정 권한으로 명령어 사용하기
• case 1) 일반사용자 장길산은 패키지 업데이트 담당자이다.
매주 1회씩 패키지를 업데이트 하기 위해서 root 계정을 임
시로 사용해야 한다. 그렇지만 root 계정의 비밀번호를 알려
주기에는 많은 risk 가 존재한다. 어떻게 해야할까?
• ====> 이런 경우에 sudo 를 사용합니다.
36. 리눅스 명령어 - 패키지 관리
• 우분투/Raspbian 처럼 Debian 계열의 리눅스에서는 apt 를 사용해서 패키지
를 관리합니다.
• 자주 사용하는 명령어
• 업데이트 서버에서 새로운 패키지 받아오기
• apt update
• 업데이트 서버에서 새로운 패키지 설치하기
• apt install [패키지명]
• 업데이트 서버에서 새로운 업데이트 설치하기
• apt upgrade
37. 리눅스 명령어 - 파일 다운로드받기
• wget https://www.daum.net 다음 메인화면 다운로드
38. 리눅스 명령어 - GIT 소스코드 다운로드받기
• 많은 사람들이 함께 개발할 때 git 을 사용합니다.
• git은 매우 다양한 옵션이 있기 때문에 우리가 소스를 가져
올 때 쓰는 clone 만 알아봅니다.
• git clone https://github.com/google/googletest.git
• 구글에서 내놓은 구글테스트 프레임워크를 clone 하는
명령어
39. 리눅스 명령어 - 파일찾기
• find 명령어는 매우 다양한 내용을 담고 있습니다
• find [경로] [옵션] 형태로 이루어져있습니다
• find . -name “*.log*” -exec rm - f {} ;
• 로그로 끝나는 파일을 찾아서 모두 지워라 라는 내용을 수
행
• man find 를 통해 학습하세요.
40. 리눅스 명령어 - GZIP
• gzip 명령어는 파일을 압축하는 명령어입니다.
• gzip -9 [파일명]
• 폴더는 압축할 수 없습니다.
41. 리눅스 명령어 - TAR
• tar은 폴더까지 압축시켜주는 도구입니다.
• tar -cvzf 파일명.tar.gz 파일경로/ 를 사용하면 됩니다.