-
Linux 공부 14 - 개념 정리
앞서 풀어보았던 150개의 문제중에 짚고 넘어갈만한 명령어와 개념을 정리해본다. 명령어 파일시스템 ls chown chmod du df free cat dd rm mount ln tar touch mkdir 검색 find grep 프로세스 at cron kill nice ps top 네트워크 netstat nslookup ssh iptables 텍스트 처리 awk cut head / tail sed more vi wc split sort 그외 usermod 모듈 패키지 관리자 yum rpm apt-get 일반적 지식 리다이렉션 히스토리 작업제어 환경변수 기타 포트 디렉토리 구조 쉘 변경 스크린 정규식...
-
Linux 공부 13 - 문제풀이3
문제풀이 3 문제를 풀어보면서 리눅스(Unix)의 개념을 학습해본다. 1. 소유자가 george이고 그룹이 others일때 data파일의 소유자와 그룹을 동시에 변경하시오 $ chown george:others data 2. 현재 로그인한 사용자의 목록에서 2016-01-07에 접속한 사용자를 출력하시오. $ who | grep '2016-01-07' 3. 접근권한이 775인 data 디렉토리를 생성하시오. $ mkdir -m 755 data -m옵션은 디렉토리의 mod를 설정 4. 현재 디렉토리에서 링크 파일만 찾는 lnfind란 alias를 생성하시오. $ alias lnfind='find ./ -type l' 5. 현재 디렉토리에서 24시간 이내에 수정된 파일을 찾으시오. $ find...
-
Linux 공부 12 - 문제풀이2
문제풀이 2 문제를 풀어보면서 리눅스(Unix)의 개념을 학습해본다. 1. 수정된 지 100일이 지난 파일 목록을 출력하시오 (명령어: find) $ find -mtime +100 find 명령을 이용해 각종 파일이나 디렉토리를 검색할 수 있다. 옵션은 아래와 같다. $ find -name filename # 파일 이름으로 검색 $ find -mtime +n # n일 이전에 수정된 파일 검색 $ find -mtime -n # n일 이내에 수정된 파일 검색 $ find -perm nnn # 권한이 nnn인 파일을 검색 $ find -type x #...
-
Linux 공부 11 - 문제풀이1
문제풀이 1 문제를 풀어보면서 리눅스(Unix)의 개념을 학습해본다. 1. ‘chmod() spool.sh’를 사용하여 spool.sh파일의 권한을 ‘rw-r-x-r-x’로 만들고자 한다. ()안에 알맞은 것은? chmod는 리눅스 시스템의 권한을 설정을 하는 명령어이다. change mod의 줄임말이다. r,w,x로 구성되어있는데, 각각 다음을 의미한다. r: read, 읽기권한 w: write, 쓰기권한 x: excute, 실헹권한 뒤에 따라 오는 숫자는 rwx|rwx|rwx로 나누어 이진수로 변환해주면 되므로 655가 된다. chmod에서 사용할 수 있는 옵션은 다음과 같다. -c: 변경된 파일만 자세하게 보여준다. -f: 에러메세지를 출력하지 않는다. -v: 작업상태를 자세히 보여준다. -R:...
-
Linux 공부 10 - 입출력 리다이렉션
입출력 리다이렉션 표준입출력(Standard I/O)기능은 입력/출력을 다루는 기본적인 방법을 제공한다. 기본 입출력 스트림에는 표준입력, 표준츨력 그리고 표준에러 세 가지 종류가 있다. 표준출력(stdout) = 정상적인 출력 표준에러(stderr) = 에러메세지 표준입력(stdin) = 특별한 지정이 없으면 키보드로부터 입력을 읽어들임\ 특별한 지정이란? cat afile bfile처럼 파일명을 지정하면 프로그램은 표준입력을 무시한다. $ cat afile bfile this is a file this is b file $ cat afile bfile >cfile $ cat cfile this is a file this is b file 표준출력을 cfile로...
-
Linux 공부 9 - 작업제어
작업 제어 멀티 태스킹은 Unix 시스템 최고의 장점 중 하나이다. Unix는 포그라운드와 백그라운드로 프로그램을 구별한다. 이 기능 덕분에 터미널에서 동시에 여러 개의 프로그램을 실행시킬 수 있다. 포그라운드와 백그라운드 포그라운드에서는 한번에 오직 한개의 프로그램만 실행할 수 있는 반면, 백그라운드에서는 여러 프로그램을 동시에 실행시킬 수 있다. 프로그램을 백그라운드에서 실행시키려면 명령행 끝에 앰퍼샌드(&)를 붙이면 된다. $ gcc test.c & [1] 2573 위 명령어를 사용하면 test.c라는 파일을 백그라운드에서 컴파일하고, 컴파일이 진행되는 동안 다른 일을 할 수 있다. 쉘은 작업...
-
Linux 공부 8 - 히스토리
히스토리 대부분의 쉘은 이전에 입력했던 명령어를 반복하거나 그것들을 약간 변형하여 다시 사용할 수 있도록 하는 히스토리라는 강력한 기능이 있다. 이러한 기능은 복잡하거나 긴 명령어를 입력할 때 매우 유용하다. bash는 ~/.bashrc에 HISTSIZE라는 값으로 히스토리의 사이즈를 정하고 있다. $ cat ~/.bashrc | grep HISTSIZE HISTSIZE=1000 history 명령어는 이전에 입력한 명령어들을, 쉘이 실행된 후 몇 번째로 입력된 명령어인가를 나타내는 번호화 함께 출력한다. history뒤에 숫자를 붙이면 출력 갯수를 제한할 수 있다. $ history 4 2117 ls 2118 lsㅣㅑ 2119...
-
Linux 공부 7 - 앨리어스
앨리어스 앨리어스(alias)는 긴 명령어 또는 연속으로 입력해야 하는 여러 개의 명령어들을 간단히 할 수 있는 쉬운 방법이다. 모든 쉘은 쉘 함수를 갖고 있다. 쉘 함수들은 앨리어스로부터 쉘 스크립트까지 포함한다. 커스텀 명령어를 위한 앨리어스 C쉘과 ksh 그리고 bash는 자주 사용되는 명령어들을 간단한 명령어로 치환할 수 있는 앨리어스 만들기 기능을 가지고 있다. 앨리어스의 가장 간단한 종류는 예전에 사용되던 명령어를 새로운 이름으로 정의 하는 것이다. $ alias dir='ls' dir는 이제 새로운 이름이다. 앞으로는 dir를 ls와 동일한 명령어로 사용할...
-
Linux 공부 6 - 명령행에서 시간 절약하기
UNIX의 가장 좋은 특징 중의 하나는 쉘의 명령행(Command Line)이다 요즘의 모든 운영체제들은 명령행을 가지고 있다. 그렇다면 무엇이 Unix를 특별하게 만드는 걸까? Unix 쉘 명령행은 많은 단축값(shorcut)을 제공한다. 이들 중 어떤 것들은 다른 운영체제에서 발견할 수도 있지만 그렇지 않을 수도 있다. 이 장에서는 이러한 많은 단축값들에 대해서 알아본다. 라인 삭제 및 단어 삭제를 사용해 빠르게 라인 수정하기 일반적인 유저는 백스페이스나 DEL키를 연타해 오타가 있는 명령행을 지운다. 하지만 단축키를 몇 개 외워두면 훨씬 간단히 작업할 수 있을...
-
Linux 공부 5 - 쉘의 명령어 해석 방법
명령어를 쉘이 해석하는 방법 Shell은 또 하나의 프로그램이고 이 프로그램은 사용자가 입력한 명령어들을 해석하며,일반적으로 4~5가지의 쉘이 주로 사용된다. 쉘이 하는 일 쉘의 해석 과정 -> 명령행을 단어로 분리 -> 앨리어스히스토리 쉘 변수 및 환경변수들을 확장 -> 표준 입력과 출력 스트림을 초기 입력한 명령어를 쉘이 파싱하는 방법을 이해해야 진정한 파워유저가 될 수 있다. bash의 소개 90년대 초까지 주로 C쉘이나 Bourn쉘을 이용하였다. 이후 무료로 쉽게 구할 수 있고, 더 풍부한 기능을 가진 tcsh과 bash가 주목을 받게 되었다....
-
Linux 공부 4 - 쉘 변수와 환경 변수
쉘 변수와 환경 변수 자주 필요한 정보를 저장하여 사용자가 사용하기 편리하게 해주는 것, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다. 기본적 사용법 $ echo $TERM xterm-256color $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/jsh/shell echo 명령어를 통해 환경변수들을 출력해볼 수 있다. $ printenv SHELL=/bin/bash TERM=xterm-256color USER=root ... printenv 명령어를 통해 현재 설정되어있는 환경변수들을 출력해볼 수 있다. $ export TEST='testing' $ echo $TEST testing export 명령어를 통해 환경변수를 설정할 수 있다. $ unset TEST $ echo TEST unset...
-
Linux 공부 3 - 홈 디렉토리 구조
홈 디렉토리 구조 유닉스 파일시스템의 디렉토리 구조는 파일을 잘 분류해서 담아두기 편리하다. 전체 경로를 작성하지 않고 명령어만을 작성하여 실행하기 위해서는 $PATH에 설정을 해두어야 한다. Ubuntu $ vi /etc/environment centOS $ vi ~/.bash_profile 유닉스의 파일명은 최대 256자까지 지원해준다. 디렉토리 만들기 mkdir directory #diretory라는 이름의 디렉토리 생성 mkdir -p ~/bin/src/directory #하위 디렉토리까지 생성 mkdir -m 755 ~/bin/src/directory #755권한으로 디렉토리 생성 폴더를 생성하려면 부모 디렉토리에 쓰기 권한이 있어야 한다. -p 옵션은 하위 디렉토리까지 생성해주게 되는데 한번에 모두 만드는...
-
Linux 공부 2 - 로그인/로그아웃
로그인 쉘 함수와 환경변수, 명령어 앨리어스, 쉘 함수등을 취향에 맞추어 꾸미어 놓았더라도, 로그아웃을 하면 모든 설정값이 날아가버린다. 따라서 로그인 할 때마다 동일한 설정값을 적용되도록 하기 위해 홈디렉토리의 쉘 설정 파일에 필요한 내용을 저장해두어야 한다. 쉘 설정 파일 쉘 설정 파일을 이해하려면 쉘이 ‘로그인 쉘’ / ‘비로그인 쉘’ 이라는 두 가지 모드 중 하나로 동작한다는 사실을 이해해야 한다. Unix시스템에 로그인 -> login 프로그램이 쉘을 시작 -> 쉘이 로그인 쉘임을 나타내는 플래그 생성 플래그가 설정되어있지 않은 쉘은...
-
Linux 공부 1 - 기본개념
Unix 파워툴 책을 기반으로 유닉스와 리눅스에 대해 학습하고 기록해본다. 기본 개념 작동방식 사용자는 쉘이라는 프로그램과 대화 (키보드 입력이 바로 Unix와 대화를 의미하는 것이 아님) 쉘은 사용자로부터 Unix를 보호하며, 또한 Unix로부터 사용자를 보호 유닉스의 모든 일은 소위 커널이 처리 프로그램들 만이 시스템 콜을 통해 커널과 대화 쉘은 사용자가 입력한 명령어를 해석해서 실행시키거나 또는 다른 프로그램에게 넘겨주는 역할 Example m으로 시작하는 4자로 된 파일들의 이름을 출력하기 위한 명령은 아래와 같다. $ cat m??? Shell이 이름 조건에 맞는...
-
Python Script를 Crontab으로 실행하기
학식을 스크래핑해서 페이스북에 포스팅하는 봇을 제작중인데, 서버에 올려놓고 Crontab을 활용해 자동으로 실행되게 하고자 한다. (우분투, Python3.4, Pyenv-virtualenv환경을 기준으로 작성됨) Python 파일 세팅 우선 실행하고자 하는 파이썬 파일 제일 윗 칸에 파이썬 인터프리터의 경로를 입력해야 한다. 우분투 기본 환경의 파이썬을 사용하고 있다면 #!/usr/bin/python을 입력하면 된다. 나의 경우는 pyenv-virtualenv환경에서 python3.4.1을 사용하고 있으므로 경로를 찾아서 스크립트 제일 위에 입력해주면 된다. python >>> import sys >>> sys.path ['', '/root/.pyenv/versions/3.4.1/lib/python34.zip', '/root/.pyenv/versions/3.4.1/lib/python3.4' ...] >>> exit() bash창에서 python을 입력하면 파이썬 스크립트 창으로...