기본적으로 사용도가 높은 linux cli를 확인하고, 정규 표현식(regex)을 활용하여 리눅스 명령어를 조금 더 고차원적으로 사용해 보자. cli는
grep, >, >>, pipe, mount
에 대해 더 자세하게 살펴포자.
문자중에 일치하는 패턴을 찾는 것이라 패턴을 찾는 문법이 중요하다.
선택 패턴
수량 한정자는 수량을 한정해주는 문법 표현을 의미한다.
그룹패턴과 같이 표현식을 그룹으로 묶어 다양한 형태 정규 표현식을 만들어 사용할 수 있다.
전화번호
^010
\D?
\d{4}
(\D?\d{4}){2}
=> 표현한 그룹이 2개 존재한다^010(\D?\d{4}){2}
이 외에도 다른 형태의 정규식이 존재할 수 있다. 정규 표현식은 같은 표현을 가진 다른 형태의 식이 존재한다. 유일하지 않다!패스워드 표현식
/^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/
/^[A-Za-z0-9]{6,12}$/;
이메일 표현식
/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
grep elice hello.txt
: hello.txt파일에서 'elice'라는 문자열 들어 있는 모든 행 출력 / 옵션이 없으면 패턴과 일치하는 것만 출력되는 것임. grep [0-9] hello.txt
: hello.txt파일에서 숫자가 존재하는 행 모두 출력.grep "Elice\.The\.Rabbit" *
: 현재 디렉토리의 모든 파일에서 Elice.The.Rabbit을 찾아 출력.grep -v ^# somecode
: somecode 파일에서 #으로 시작하지 않는 행을 모두 출력grep '\<[a-z].*e\>' elice
: elice 파일에서 소문자로 시작하고 공백을 포함한 여러 문자가 나오며, e로 끝나는 단어가 포함된 행을 모두 출력.표준 스트림의 흐름을 바꾸어 일반적인 표준 입력 및 출력 그리고 오류를 사용하지 않고 다른 경로인 파일로 재지정하는 것을 뜻합니다.
리눅스는 표준 스트림이 3가지 존재한다.
ls > ls.txt
와 ls >> ls.txt
cd helloeclice > err.txt
와 ``cd helloeclice 2> err.txt ```python hello.py < input.txt >> result.txt
head a.txt | grep [0-9] > result.txt
로 바꾸는 것을 생각해보자.cat input.txt | python add.py > output.txt
는 어떻게 수행하는 걸까?mount /dev/sdb3 /tmp/usb
alias # 별칭 리스트 출력
unalias lsd # 해당 별칭 해제
unalias -a # 모든 별칭 해제
######
alias lsd='ls -l | grep "^d"' # ls 의 결과에서 디렉토리만 출력
alias apachestart='/usr/local/apache/bin/apachectl start' # 아파치 시작
...
Bash는 Bourne Again Shell의 축약어다. 리눅스에서 가장 널리 사용되는 쉘이다.
bash는 다섯 개의 공통된 설정 파일들을 가지고 있다. 모든 리눅스 배포본에서 이들을 찾아볼 수 있지는 않지만, 이 파일들을 만드는 것은 어렵지 않다. 이 설정 파일들은 다음과 같다: (bash는 5개의 설정 파일을 갖는다.)
/etc/profile
/etc/bashrc
/.bashrc
~/.bash_profile
~/.bash_logout
각 디렉토리가 어떤 설정을 가지는지 자세하게 알아보자 출처