리눅스 연습

byeolhee·2022년 11월 30일
0

명령어 까먹기 전에 연습하기!

연습할 수 있는 사이트
https://copy.sh/v86/?profile=linux26
https://www.tutorialspoint.com/execute_bash_online.php
이 두개가 젤 괜찮은거 같다.
특히 밑에거 php확장자가 아주 정겹다. excute 로 실행하면 쳐지고 아주 좋다.

생각보다 호환이나 이런게 괜찮은거같아서 종종 해봐야지.
일일히 가상머신을 돌리든 쉘 켜서 뭘 하고 하고 하면 연습할 의욕도 사라지겠음. 그런 의미에서 나같은 귀차니즘 갖은 사람들에겐 유용한 사이트이다.

리다이렉션 >, <, <>, <<, >>

  • 스트림 = 유닉스 및 리눅스 계열 운영체제에서 프로그램(프로세스)과 환경(주변기기) 사이에 미리 연결된 입출력 통로

스트림 구분

  • 표준 입력스트림 (STANDARD INPUT, STDIN)
  • 표준 출력스트림 (STANDARD OUTPUT, STDOUT)
  • 표준 에러스트림 (STANDARD ERROR, STDERR)

직관적으로 방향을 가리킨다고 생각하자!

앞 10줄만 출력해주는 head 명령어와 뒤 10줄만 출력해주는 tail 명령어가 있다.

ls > test1.txt

리스트(ls)를 test2.txt 파일로! 이때 test1.txt가 없으면 생성된다.

head < test1.txt

test1.txt 파일 10줄 출력!

head < filelist.txt > test1.txt

filelist.txt의 파일을 10줄을 읽어 (head) test1.txt 파일내에 출력!
표기되지않고 test1.txt 파일 내부에 넣어진다.

내용을 추가하고 싶으면 >> 를 사용한다.

head < filelist.txt >> test1.txt

test1.txt에 기존 내용이 있다면 filelist.txt의 앞 10줄이 기존 test1.txt 내용 뒤에 추가된다.

즉 > 는 표준출력, >> 출력이지만 덮어쓰기가 아닌 추가. < 입력 이다.

파일디스크립터를 이용해 리다이렉션으로 방향을 가르켜 로그들을 다루는 모습을 자주 볼 수 있다.

0 stdin 표준입력
1 stdout 표준출력
2 stderr 표준에러

./myscript.sh 2> stderr.txt
./myscript > result.log 2>&1
cat /tmp/error.txt > /dev/null 2>&1

1>&2 = 출력을 오류로 내보내기
2>&1 = 오류를 출력으로 내보내기

등...

파이프

두 프로세스 사이에서 한 프로세스의 출력 스트림이 또 다른 프로세스의 입력 스르림으로 사용될 때 쓰인다. 이전 명령어의 출력값을 필터링하거나 가공할때 주로 사용하기 때문에 awk, cut, grep, more등을 조합해서 많이 사용한다.

cat /etc/passwd|grep mail

cat 으로 출력 명령어를 내린 후 mail이라는 문자열이 들어간 라인만 |파이프를 이용해 grep 명령어로 cat을 전달한다. 이런식이다.

ls|sort|less
리스트가 출력되는 프로세스 따로! srot정렬되는 프로세스 따로! less 동작하는 프로세스 따로!

일단 조합해서 프로세스 별로 상용할 수 있는 녀석이라 조합하면 편리하다라고 생각하고 자주 사용해보기로 했다.

profile
데이터 우주를 헤맵니다. 응답하라 데이터

0개의 댓글