Programmer/Computer Skills
-
Mac OS X BASH의 프롬프트에 컬러 적용하기Programmer/Computer Skills 2019. 4. 26. 11:59
맥오에스 카타리나 이전에 해당하는 이야기이다. 카타리나 이후의 기본 쉘이 ZSH로 바뀌었다. BASH를 계속 선호한다면 이 글을 참고하도록 한다. 기본은 무색의 프롬프트이다. (사실은 기본이 아니다. 버그였다.) 이것을 컬러가 들어간 프롬프트로 바꾸어보자. ~/.bashrc 내용의 일부이다. 자세히 뜯어보면, 터미널이 컬러를 지원하면 컬러 프롬프트가 떠야 한다. 그런데, 예상되로 동작하지 않는다. # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) PS1='[\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]]\$ ' ;; *) ..
-
Bash에서 사용자 자동 완성 기능 개선하기Programmer/Computer Skills 2019. 4. 4. 18:35
Ubuntu Linux의 bash의 자동 완성은 /etc/bash_completion.d/ 아래 위치한다. rustup의 공식 저장소에서는 자동 완성 기능을 활성화 하는 방법을 아래와 같이 안내하고 있다. rustup completions bash > /etc/bash_completion.d/rustup.bash-completion 위 방법은 일반적인 Rust 설치 권한 이상을 요구하는 문제가 있다. Rust를 대개 개인의 홈디렉토리에 설치한다. 즉, 관리자 권한이 없어도 설치하고 사용할 수 있다. 반면, /etc/bash_completion.d/ 디렉토리는 관리자 권한을 요구한다. 간단한 해결 방법으로는, ~/.bash_completion 파일에 추가하는 방법이 있다. 개인 명령어의 모든 자동 완성을 ..
-
'ps aux'와 'ps -ef'의 차이Programmer/Computer Skills 2018. 2. 13. 17:28
ps -e와 ps ax를 모든 프로세스를 보여준다는 의미에서 같다. ps -f와 ps u는 보여주는 필드를 정하는데 아래와 같은 소소한 차이가 있다. ps -f 프로세스의 식별 정보를 더 잘 보여준다. PPID : 부모 PID ps u 프로세스의 상태 정보를 더 잘 보여준다. %CPU : CPU 사용율 %MEM : 메모리 사용율 VSZ : 가상 메모리 크기 RSS : 실제 메모리 크기 STAT : 프로세스 상태 부모 프로세스와 자식 프로세스의 관계를 보려면 ps -ef가 프로세스 상태를 보는 용도로는 ps aux가 더 적당하다.
-
Ubuntu 16.04에서 Python 3.6 사용하기Programmer/Computer Skills 2018. 2. 12. 11:45
Ubuntu 18.04를 설치 또는 업그레이드 하라. Python 3.6이 기본 버전이다. 쉽고 편한 길을 놔두고 굳이 삽질한다면 말리진 않겠다. Python 3.6 설치하기 Ubuntu 16.04에는 써드파티 PPA를 추가해야 python 3.6을 설치할 수 있다. sudo add-apt-repository ppa:jonathonf/python-3.6 Python 3.6을 설치한다. sudo apt-get update sudo apt-get install python3.6 Python 3.6 설치 후 gnome-terminal 외 다수 프로그램이 동작하지 않는 문제 해결하기 Ubuntu 16.04의 몇몇 프로그램은 python 2.7, python 3.5 이외의 버전에서 동작을 보장하지 않는다. 이런 ..
-
쉘스크립트에서 안전하게 문자열(string)을 비교하는 방법Programmer/Computer Skills 2016. 9. 30. 16:50
두 문자열을 안전하게 비교할 때는 if [ x$A == x$B ]; then echo $1 fi 또는 if [ "$A" == "$B" ]; then echo $1 fi 를 사용한다. 빈 문자열인지 안전하게 검사하는 방법은 if [ x$A == x ]; then echo $1 fi 또는 if [ "$A" == "" ]; then echo $1 fi 내지는 if [ -z "$A" ]; then echo $1 fi 이 있다. x와 같은 문자를 추가하거나 인용문자(")로 둘러싸지 않으면 빈문자열이거나 옵션 형태의 문자열이 들어오면 오류가 발생할 수 있다. 아래와 같이 STRING을 따옴표로 둘러싸지 않으면 [ -z STRING ] STRING이 "-n", "-p" 등을 포함한 옵션 형태의 문자열이 들어오면 문제..
-
GLib와 GIO를 이용한 간단한 네트워크 서버와 클라이언트 예제Programmer/Computer Skills 2013. 8. 13. 16:25
예전에 인터넷에서 우연히 발견한 GLib와 GIO를 이용한 간단한 네트워크 서버/클라이언트 예제이다. GLib의 이벤트 루프와 GIO의 네트워크 기능을 활용하여 서버를 개발하는 좋은 샘플이 될 것으로 기대한다. 서버 소스 #include #include static GInetAddress* get_localhost() { /* No clean way to handle IPV6, short of guess/check */ GInetAddress* addr = g_inet_address_new_any(G_SOCKET_FAMILY_IPV4); if (!addr) { addr = g_inet_address_new_any(G_SOCKET_FAMILY_IPV6); } return addr; } /* this fun..