본문 바로가기

Linux

생활코딩 :: 리눅스기초

'리눅스 기초' 를 주제로 진행된 생활코딩 리눅스 오프라인강의를 아주......간략히 정리하였습니다. 

생활코딩 '리눅스 기초' 에 대한 자세한 내용은 아래 주소를 참조해주세요.

https://opentutorials.org/course/2598/14160

이후에는 리눅스 기초와 관련해 소 주제별로 포스팅할 예정입니다.





기본 명령어

    • pwd :  현재 경로를 나타낸다.
    • nano, vi, vim : 각각의 편집기를 실행한다.
    • man : 명령어에 대한 자세한 Usage 제공한다.
    • ‘-‘ 뒤에 옵션을 입력할수 있고, ‘—‘ 는 좀더 자세하게 나타낸다.



ls 명령어

    • 정의
      • List Directory Contents 약어
      • 리눅스의 기본 명령이며 디렉터리에 있는 내용을 출력한다.
      • ls 옵션을 가지지만 일반적인 몇가지 옵션을 이용하여 조합하여 사용한다.
    • 형식
      • ls [ ] [ 파일 경로 ]
    • Optionhttp://shaeod.tistory.com/499 참조

    • ls :  현재 디렉토리에 있는 파일의 목록을 간단히 출력한다.
    • ls -l : 디렉터리의 내용을 자세히 출력한다.
    • ls-al (  or ls-la) : 숨김파일 포함하여 지세히 출력한다.
      • 유닉스 계열의 운영체제에서 ‘ . ’이 앞에 붙으면 숨김파일 이라는 의미
    • ls -al / : 최상위 루트의 파일목차 출력
      • ' . /  ' : 현재  디렉터리)
    • ls -alh : h 는 human-readable로 사람이 보기편한 형태로 출력( 용량 등의 정보 )
    • 리눅스에서 무언가를 빠져나갈때 대부분 'q' 단축키를 사용



파일 폴더

    • 정의
      • Make directory 약자로써 디렉터리 생성할 사용하는 명렁어이다.
      • 유닉스 기반의 os에서 파일 폴더 관리에 관한 부분은 매우 중요하다. 이유중 한가지를 들자면 파일 폴더에 관한 삭제명령을 잘못 실행했을 경우 프로젝트에 피해를 입을 있다.
    • 형식
      • mkdir [ 옵션 ] [ 디렉터리 ] , rmdir [ 옵션 ] [ 디렉터리 ]
    • Option     

rm option( http://shaeod.tistory.com/506 )


 

mk option ( http://shaeod.tistory.com/500


    • -r : recusive  , -r 옵션을 붙이지 않으면 디렉토리는 삭제하지 한다.
    • -f : 강제 삭제



sudo

    • sudo
      • Super User Do 의 약어
      • sudo rm -rf /  : 위험한 명령어...
    • apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구이다. 우분투에는 GUI로 되어있는 시냅틱 꾸러미 관리자도 있기는 하지만 이런 저런 개발관련 패키지를 설치할 때는 커맨드기반인 apt-get이 더 편하기도 하다.
      • Q) npm 과 같은 개념?
    • sudo apt-get update 를 install 전에 해주어야 최신버전을 install 할 수 있다. 
    • 유닉스 계열의 운영체제에서 rm, ls 같은 명령어 들은 파일로 존재하고 동작하는 프로그램이다.

 

 


왜 CLI 사용할까?

    • GUI 보다 CLI 가 자원낭비가 현저히 낫다. GUI대부분이 사용자 그래픽 인터페이스에 자원을 대부분 쓴다.
    • cd ~ 은  cd /home  과 같다
    • mkdir dir1 ; cd dir2 ; mkdir dir3 ; touch a ; ls 과 같이  ’ ; ’ 로 순차적으로 실행시킬 수 있다.
      • GUI는 대화형식으로 서로 Interaction 해야한다. ( ex. 다운받고 실행하고 다시 다운받고 …) 명령어기반 시스템은 Task 를 연속적으로 실행시킬 수 있다.
      • 각각이 크고 오래걸리는 작업이라고 생각했을 때 폭발적인 효과를 낸다.
    • Pipeline
      • head -n2 filename : 파일 내용의 앞에 두줄만 출력
      • ls ls —help | head | tail -n1
        • ls 실행한 결과를 head 실행하여 수행하고 또다시 tail 실행
        • 리눅스 운영체제의 최대 강점
        • interaction의 불편함을 위해 만듬 
      • ls —help | grep ‘sort’ | grep ‘file’
      • 100만대씩 되는 서버 컴퓨터를 사람이 일일이 실행시킬수 없다. CLI를 이용하면 편하게 동시다발적으로 실행가능.
      • 우리가 siri한테 내일 7시에 깨우고 노래를 불러줘 라고 했을때 그 안에는 많은 변수와 함수가 있다. 지금은 이러한 것이 개발중인데 CLI는 예전부터 이러한 것을 해왔다.



IO Redirection

    • 기본적인 입출력 형태는 표준입출력으로써 명령어를 입력하면 그아래 command에 출력이 되는 형태인데, ‘ > ‘ 를 이용하면 표준입출력의 방향을 바꾼다.
    • ls > a.txt
      • ls 에 대한 명령 결과를 표준출력이 아닌 리다이렉션 하여 a.txt에 출력
    • cat  : 파일내용 출력
    • foreground,  background
      • ctrl + z 하면 현재 작업중인 내용을 background 로 돌리고 foreground 에서는 다른 일을 할 수 있다.
      • fg : background  작업으로 돌아가기위한 명령어
    • jobs : backgroud 작업목록을 볼 수 있다.

 



 

번외) 개발자는 왜 mac을 쓸까?

    • 오픈소스의 리눅스 계속되는 발전, 자유도가 높음, 궁금하면 까볼수 있다.
    • 모바일시장 애플에게 점령 , 이후 계속된 마이크로소프트의 몰락
    • 서버는 주로 리눅스기반으로 많이 사용하는데 맥os 유닉스 계열이므로 맥으로 개발하여 바로 서버에 올릴 수 있다.
      • 맥에서는 왜 서버를 돌리지는 않는가?
    • 디스플레이 , 부드러운 UI, 트랙패드 인터페이스