Dev in Linux
리눅스 개발환경 구축을 위한 가이드
사용자 맞춤 설정
.bashrc
홈 디렉터리에 위치한 user별 설정 파일이다.
source ~/.bashrc
명령어로 언제든 새로고침 할 수 있다.리눅스 콘솔 프롬프트를 보기 쉽게 색칠하기 위한 설정할 수 있다.
force_color_prompt=true
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_root)}\[\033[01;32m\]\u\[\033[01;36m\]@\[\033[01;35m\]\h\[\033[00m\]:\[\033[01;033m\]\w\$\[\033[00m\]'
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
vi
리눅스에서 활용할 수 있는 기본적인 에디터이다. 진입장벽은 높은 편이지만, 한번 익숙해지면 매우 편리하다.
~/.vimrc 폴더에 기본 설정을 적용할 수 있다.
기본적인 설정은 아래와 같이 세팅할 수 있다.
# 탭을 spacebar 4개로 설정한다.
set ts=4
set sw=4
set sts=4
# 자동으로 indent를 넣어주도록 설정한다.
set smartindent
# 검색시 하이라이트를 넣어준다.
set hlsearch
" " indent for python"
set smartindent
" cinwords=if,elif,else,for,while,try,except,finally,def,class
# 테마를 설정 해 준다. 테마는 '/usr/share/vim/vim[VER]/colors/' 경로에 *.vim 파일이 있어야 한다. 아래는 molokai.vim 파일을 설정하는 방식이다.
:colorscheme molokai
:highlight comment term=bold cterm=bold ctermfg=4
:set hlsearch
:set expandtab
:set smartindent
:set tabstop=4
:set autoindent
:set si
:set shiftwidth=4
:set cinoptions+=j1
Ctag
vi와 함께 쓰이는 툴로, vi 환경에서 파일간 함수/변수 선언위치를 버튼 하나로 이동할 수 있도록 해주는 모듈이다.
tags라는 파일을 생성하여
기본적인 사용법은 다음과 같다.
- 설정 (리눅스 명령어로)
- ctag를 사용할 가장 root 폴더로 이동한다.
ctags -R *
명령어로 하위 폴더의 모든 파일에 대해 태그를 생성한다. (* 대신 *.cpp *.java 등 원하는 파일만 설정할 수도 있다. )- make 모듈이 깔려있다면
make tags
명령으로 커널을 이용하여 더 빠르게 생성할 수도 있다. set tags+=PATH_TO_FILE
형태로 ~/.vimrc 파일에서 tags 경로를 설정해주면, 어떤 위치에서도 ctag 검색이 가능하다.
- 사용 (vi 창에서)
Ctrl + ]
: 커서 위치의 함수/변수의 선언부로 이동 (g + ] 로도 가능)Ctrl + T
: 이전 위치로 이동
시스템
네트워크
네트워크 상태확인
ifconfig -a
명령을 사용하면 현재 기기의 랜카드와 그 정보를 확인할 수 있다.netstat -nap
명령으로 시스템에서 네트워킹을 사용하는 프로세스들의 정보 및 네트워크 소켓 상태를 확인 가능하다.netstat -rn
게이트웨이 정보만 짧게 출력 가능하다.
route -n
라우팅 테이블을 확인 할 수 있다. 게이트웨이 주소를 확인할 수 있음nslookup SERVER_NAME
: DNS 서버가 제대로 동작하는지 있다.- SERVER_NAME 에 주소를 입력하면 입력한 서버의 정보가 확인된다.
- ex) nslookup naver.com 입력 결과
$ nslookup naver.com Server: 172.26.80.1 Address: 172.26.80.1#53 Non-authoritative answer: Name: naver.com Address: 223.130.200.219 Name: naver.com Address: 223.130.192.248 Name: naver.com Address: 223.130.192.247 Name: naver.com Address: 223.130.200.236
host 차단/허용
/etc/hosts.deny
파일로 차단할 IP 를 설정할 수 있다./etc/hosts.deny
에서 차단한된 IP 중 일부를/etc/hosts.allow
파일에서 허용할 수 있다.- 파일에는
SERVICE:IP:[PORT]
형태로 내용을 작성하면 차단/허용을 설정할 수 있다.- ex)
sshd:10.162.36.10:22
: 10.162.36.10 주소에서 22번 포트로 sshd 서비스에 접근하는 경우를 설정 - 모든 프로토콜, 혹은 모든 IP를 표현할 땐
ALL
을 사용한다. - ex)
ALL: 10.162.36.10
,httpd:ALL
- 주소중 앞부분 일부가 일치하는 경우를 설정하고 싶다면 뒷자리를 비워두면 된다.
- ex)
ALL: 10.162.
: 10.162.. 형태의 주소에 대해 설정
- ex)
- ex)
service SERVICE restart
명령을 실행하여 daemon을 재실행하면 설정한 내용이 적용된다.- ex)
service sshd restart
- ex)
네트워크 연결
리눅스 최초 설치 및 네트워크 설정 변경시 사용할 명령어를 기술한다. 본 내용은 ubuntu 를 base로 작성되었다.
리눅스는
/etc/network/interfaces
에 네트워크 연결 설정이 세팅된다.- ex)
auto eth0 iface eth0 inet static address 192.168.0.20 netmask 255.255.255.0 netwrok 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 168.126.63.1 168.126.63.2 8.8.8.8
- 내용을 수정한 후에는 시스템을 재부팅 하거나
ifdown eth0
,ifup eth0
명령으로 드라이버를 재구동 하면 된다.
- ex)
/etc/netplan/*.yam
파일로도 네트워크 설정을 할 수 있다.- ex)
network: version: 2 renderer: networkd ethernets: wlp5s0: dhcp4: no addresses: ## 설정할 IP 와 Netmask - 192.168.0.214/24 ### deprecated # gateway4: 192.168.0.1 routes: - to: default via: 192.168.10.1 nameservers: addresses: [8.8.8.8,168.126.63.1] # search: [lesstif.com] # optional: true
sudo netplan apply
으로 설정을 적용한다.
- ex)
/etc/resolv.conf
에서 nameserver를 설정 할 수 있다.
net-tools 을 사용한 설정
net-tools
이 설치되어 있다면 네트워크 설정이 간단하다.ifconfig -a
명령은 기기의 랜카드와 그 정보를 확인할 수 있다.- ex)
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.162.82.17 netmask 255.255.255.0 broadcast 10.162.82.255 inet6 0e10::313:5d6f:ae41:2ba8 prefixlen 64 scopeid 0x20<link> ether 00:25:3d:b1:14:9c txqueuelen 1000 (Ethernet) RX packets 188 bytes 512005 (512.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 178 bytes 26044 (26.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eh0
은 랜카드의 이름이다.inet
뒤의 10.162.82.177 은 IP주소이다. (IPv4)netmask
는 subnet mask 설정이다.
- ex)
ip명령어로 동작
net-tools
가 설치되지 않았을 때 사용해야 하는 방법이다.ip a
: 주소확인, ifconfig에 대응된다.ip addr add 192.168.0.101/24 dev eth0
: 설정에 ip주소 추가- 192.168.0.101은 IP 주소이다.
- / 다음 24는 subnet mask의 bit 수이다.
- eth0 은
ip a
명령어로 확인한 랜카드의 이름이다.
ip route add default via 192.168.0.1
: 게이트웨이 192.168.0.1 로 설정ip link set eth0 up
: 수정한 랜 설정 적용