막상 리눅스 책이나 강좌를 보면 수백 페이지 분량의 엄청난 것들이 나옵니다. 리눅스란 무엇이고, 누가 언제 만들었고, 무슨무슨 종류가 있고, 어쩌구 저쩌구... 커널은 뭐고..등등.
이런 내용 다 제끼고! (저도 모를뿐더러; ) 리눅스 초보를 위해 아주 간략히 정리해드리겠습니다. 사실, 네이버 구글 찾으면 어지간한건 다 나옵니다. 그런데 문제는 이거죠. 뭘 찾아야 할지 모른다는 것.
그래서 아주 간략히, 정말 간략히 개념만 설명합니다. 더 자세하고 훌륭한 설명은 다시한번 구글링 하시길 바랍니다.
- 리눅스? 유닉스?
- 리눅스는 유닉스의 한 종류입니다. 아니 정확하게 따지면 유닉스와 유사한 뭐라고 하는데 그냥 리알못들은 그런가보다 하고 넘어갑니다.
- 무얼 설치해야하나요?
- 혹시 직접 설치해야 한다면 linux ubuntu download를 구글링하셔서 맨 위 링크를 누르세요. 여러 버전이 나올텐데 LTS (Long Term Support) 버전을 쓰세요. 지금은 14.04네요.
- 알아야할 명령어 목록
- $ ls - list
- 디렉토리의 내용을 보여줌
- $ pwd - print working directory
- 현재 디렉토리의 위치를 알려줌
- $ less some_text_file.txt
- $ more some_txt_file.txt
- 텍스트 파일의 일부를 후다닥 볼 수 있음.
- $ tail some_text_file.txt
- $ head some_text_file.txt
- 마찬가지. 텍스트 파일의 맨 앞/맨 뒤를 출력해줍니다.
- $ touch temp.abc
- 저 파일이 없다면 temp.abc라는 파일을 생성합니다. 파일의 내용은 비어있습니다.
- 파일이 있다면 저 파일을 한번 툭 건드려주게됩니다. 결과적으로 파일의 '최종 수정한 날짜'가 현재 시간으로 바뀝니다.
- $ mkdir directory_name
- 디렉토리를 만듭니다.
- $ rmdir directory_name
- 디렉토리를 삭제합니다.
- $ cp file.txt new_file.txt
- 파일을 복사합니다.
- $ mv file.txt new_name.txt
- 파일을 이동합니다. 이 명령어를 이용해 이름을 바꿀 수 있습니다.
- $ echo 'blah blah
- blah blah 라고 출력합니다.
- $ cat files.
- 여러 파일을 붙입니다.
- $ tar, zip
- 파일 압축/해제.
- $ wget url
- url의 파일을 다운받습니다.
- $ chmod, chown
- 파일/디렉토리의 권한을 바꿔줍니다.
- $ sudo
- 각종 커맨드 앞에 sudo를 붙여주면 super user의 권한으로 뭔가를 하게됩니다. 수퍼 유저는 다시말해 admin, 관리자 계정입니다. 따라서 이걸 하려면 관리자 계정의 권한을 갖고있어야합니다.
- $ top
- 작업관리자입니다. 아주 유용하죠.
- $ iotop, iostat
- top과 비슷한데 각종 기기간의 입출력 내역을 보여줍니다.
- $ nohup
- $ nohup python main.py > log_file_name.txt &
- 커맨드 실행 내역의 결과를 log_file_name.txt 에 저장합니다.
- 서버에 접속해서 이걸로 커맨드를 실행하면 그 이후에 접속을 끊어도 커맨드가 계속 실행되게 됩니다. 아주 유용하죠.
- 그럼 중간에 실행을 중지하고싶다면?
- $ kill, pkill
- pkill python
- kill 12345
- pkill python은 실행중인 파이썬을 전부 종료합니다.
- kill 12345는 프로세스 아이디 12345를 종료합니다.
- 프로세스 아이디는 top 을 실행하면 왼쪽에서 볼 수 있습니다.
- $ screen
- nohup과 비슷한데, 저는 더 유용하게 쓰고있습니다.
- 쉽게말해 가상의 스크린을 여러개 띄워놓고 필요할 때 해당 스크린에 접속해서 사용하는 것 입니다.
- screen -S screen_name 으로 새 스크린을 만들고,
- 새 스크린 내부에서는 ctrl+a, d 를 눌러서 밖으로 나올 수 있습니다.
- screen -x 를 하면 스크린 목록을 볼 수 있습니다.
- screen -x screen_name 으로 기존에 만들어놓은 스크린에 다시 들어가서 일을 할 수 있습니다.
- 서버에 접속해서 일하실 땐 디폴트로 스크린을 하나 만들어서 들어가서 쓰시면 중간에 접속이 끊어져도 서버에서 실행중인 프로세스가 종료되지 않아서 좋습니다.
- [tab]
- tab키는 정말 중요합니다.
- 디렉토리에서 abdefefsdsdfsdfsdcscs.sh 라는 파일을 실행하고 싶다면...
- 다 타이핑 하지 마시고, 앞에 몇개만 타이핑한 뒤 [tab]키를 눌러보세요.
- 만일 디렉토리에
- abc123.txt, abc456.txt, ddd.txt
- 이렇게 3개의 파일이 있다고 하면,
- a 까지 치고 탭을 누르면
- $ a [tab]
- abc까지 자동 완성이 됩니다.
- $ abc
- 여기서 추가로 1을 타이핑하고 탭을 누르면
- $ abc1 [tab]
- abc123.txt가 자동완성이 됩니다.
- $ abc123.txt
- 왜냐면 abc로 시작하는 파일이 두개가 있기때문이죠. 즉, ddd.txt의 경우 훨씬 쉬워지죠. d로 시작하는 파일은 저것 하나뿐이므로...
- $ d [tab]
- 을 누르면
- $ ddd.txt
- 라고 자동 완성이 됩니다.