어제에 이어 리눅스 명령어를 알아보도록 하자.
cat
: concatenate
의 약자로, 파일의 내용을 표준 출력으로 보내거나 파일을 연결하거나 생성하는 데 사용한다.# 파일의 내용 출력
cat filename.txt
# file1과 file2의 내용을 결합하고, 결과를 mergedfile에 저장
cat file1.txt file2.txt > mergedfile.txt
만약, 같은 이름의 파일이 존재한다면 완전히 덮어씌운다.
꺽새가 2개라면(>>) 같은 이름의 파일이 존재하면 그 파일의 하단에 내용을 추가한다. 원본을 보존한다는 말이다.
# vim으로 편집하는게 아닌 shell에서 바로 내용 추가 가능
cat > newfile.txt
# file1의 내용을 file2에 복사
cat file1.txt > file2.txt
sort
: 말 그대로 특정 파일의 내용을 정렬하는 명령어이다.
grep
: Global Regular Expression Print
의 약자로, 텍스트의 패턴을 검색하는 데 사용한다.
grep [옵션] [찾고자 하는 패턴] [파일]
grep "test" test.txt
위 코드는 test.txt 파일에서 test라는 단어를 찾아서 반환한다.
grep -r "test" .
recursive(재귀)
의 약자로, 현재 폴더(.) 부터 하위 폴더까지 재귀적으로 test라는 단어를 찾는 코드이다.
grep
명령어는 파이프(|
)와 함께 사용되어 다른 명령의 출력에서 특정 패턴을 검색하는 데 사용된다.
파이프는 한 명령의 출력을 다른 명령의 입력으로 전달한다는 특징이 있다.
ps aux | grep 'python'
실행중인 프로세스 중에서 python이라는 문자열이 포함된 프로세스를 찾는 코드이다.
find
: 파일을 찾기 위한 명령어이다.find [경로] [표현식]
# example.txt라는 이름의 파일 찾기
find . -name example.txt
# home 경로에서 readme라는 이름을 대소문자 구분하지 않고 찾기
find /home -iname readme
which
: 특정한 실행 가능 파일의 경로를 찾아준다.# 파이썬이 어디에 설치되어 있는지 확인
which python
whereis
: 특정 바이너리, 소스, 메뉴얼 페이지 파일의 위치를 찾을 때 사용한다.whereis ls
파일들을 일치시키는 데 사용되는 심볼이나 문자이다.
*
, ?
, []
가 가장 흔하게 사용된다.
*
: *.txt
라고 하면 모든 텍스트 파일을 찾는다.?
: ?.txt
라고 하면 한 문자로 된 모든 텍스트 파일을 찾는다.[]
: [abc].txt
라고 하면 a.txt, b.txt, c.txt와 일치한다.파이썬의 정규표현식과 비슷한 느낌이라고 보면 될 것 같다.