사용자 도구

사이트 도구


linux:bash

문서의 이전 판입니다!


Bash

Redirect

  • command-name &>file : 명령의 표준 출력과 표준 에러를 모두 file로 지정
  • cat textfile.txt > somefile 2>&1 : 표준 출력은 somefile로 지정되고 표준에러도 표준출력(핸재 somefile)로 함께 보낸다.

변수들

  • $1, $2, … : 셸 스크립트 인자 순서대로
  • $# : 셸 스크립트 인자의 총 갯수
  • $*
  • $@
  • $? : 직전 명령 exit code. 0이면 정상 종료.

16진수/10진수(hex/dec)간 변환

# 10진수를 16진수로 출력
printf "%x" 365
#==> 16d
 
# 16진수를 10진수로
printf "%d" 0x16d # 16진수 앞에 0x를 붙여야함.
#==> 365
 
# bc 이용하여 10진수를 16진수로
echo "ibase=10; obase=16; 숫자" | bc

Hex to decimal conversion bash newbie

변수에 값 입력 받기

# MYVAR 변수에 값을 입력 받아 출력
read MYVAR
echo $MYVAR
 
# 비밀번호 형태로 입력 받기 : -s 옵션, -p는 프롬프트
read -s -p "Type new password: " MYPASSWD
echo $MYPASSWD

VI 모드/ Emacs 모드

VI 모드 명령

  • ESC눌러 명령행 모드 진입
  • 명령모드 v : VI 에디터로 명령 편집하기. $VISUAL이나 $EDITOR 환경 변수에 지정된 편집기 사용.
  • 명령모드 # : 현재 입력중인 명령을 주석처리해서 히스토리에 남긴다. 나중에 히스토리에서 불러내에 주석을 풀고 실행하면 된다.
  • 명령모드 cc | 'S' : 현재 줄 전체 변경
  • 편집모드 <Ctrl-w> : 앞 단어 지우기
  • 편집모드 <Ctrl-u> : 현재 위치부터 줄 처음까지 삭제
  • 편집모드 <Ctrl-r> : 명령 히스토리 역방향 검색
  • 편집모드 <Ctrl-s> : 명령 히스토리 전방 검색. 대부분의 터미널이 <Ctrl-s>를 터미널 출력 멈춤으로 사용하고 있기 때문에 stty 명령으로 변경해 둬야함.
  • n/N : 검색 반복.
  • 편집모드 TAB / <Ctrl-i>, 명령모드 : = : 자동 완성
  • 명령모드 * : 모든 자동완성 대상을 입력하기
  • 명령모드 <Ctrl-t> : 문자 두 개 교체

History에 시간 남기기

strftime 포맷

export HISTTIMEFORMAT='%F %T '

사용자 입력

  • read 환경변수명
    echo -n "Enter your name and press [ENTER]: "
    read name
  • read -s 환경변수명 : 비밀번호 등의 입력을 받을 때 처럼 입력 값을 숨겨줌.
linux/bash.1434348162.txt.gz · 마지막으로 수정됨: 2015/06/15 15:02 저자 kwon37xi