Shell 명령어의 실행
1. ls /, date, ls -al 명령을 순서대로 실행 : ls / ; date ; ls -al
2. 명령1 && 명령2 실행 비교
2-1) date && ls /
date 명령이 정상실행하야 뒤에있는 ls / 명령도 정상실행한다.
2-2) data && ls /
data 명령이 수행이 안되므로 뒤에있는거 실행 안한다.
3. 명령1 || 명령2 실행 비교
3-1) date || ls /
date 명령이 정상실행했으므로 뒤에있는 ls / 명령이 실행되지 않는다.
3-2) data || ls /
앞에있는 명령이 실행 안됐으므로 뒤에있는 ls / 명령이 실행된다.
표준 입출력 - 장치
wc
2행 8단어 38바이트
--- stdin
출력은 stdout
에러는 stderror
리다이렉션(Redirection) ★★★
출력 리다이렉션
파일이 없으면 생성, 있으면 덮어쓰기
1. ls -al 명령의 실행 결과를 ls.txt 파일로 출력
ls -al > ls.txt
ls -al은 원래 화면에 출력해야하는데 방향을 ls.txt 파일로 바꾸는 것이다.
ls -al 1> ls.txt
숫자 1 은 stdout을 명시하는 것이다. (1은 안적어도 된다.)
1. ls -ai 명령의 실행 결과를 ls.txt 파일 끝에 추가
ls -ai >> ls.txt\
에러 리다이렉션
1. ls 명령의 에러를 ls_err.txt 파일로 출력
ls [없는 파일] 2> ls_err.txt
숫자 2번이면 에러 !!
츨력/에러 리다이렉션 응용
하나의 명령에서 정상 동작과 에러가 동시 발생
ls -al . kkk
명령 동시에도 가능 !
1. 표준 출력과 에러를 한번에 리다이렉션
이런식으로 각각의 파일로 저장할 수 있다.
2. 표준 에러 출력 버리기
에러 난 것은 버리겠다 !!
표준 출력만 화면에 출력된다 !!
3. 표준 출력과 에러를 하나의 파일로 리다이렉션
제대로 나온 내용도 ls_log3로 들어가고 에러가 나온 내용도 ls_log3로 들어간다.
입력 리다이렉션
1. .bashrc 파일의 내용을 입력받아 출력
1. << 리다이렉션을 이용한 cat 명령 실행
hello 명령어가 나올 때까지 입력을 받는 것이다
입력/출력 리다이렉션 응용
1. 표준 입력으로 받은 내용을 hello 파일에 출력(저장)
EOF가 나올 때까지 입력을 받고 출력방향을 hello로 바꾼 것이다 !
파이프(Pipe)
1. ls -al 의 출력 중에서 앞부분 5줄 출력
파이프 응용
sed (Stream Editor) 명령어
텍스트를 변환하는 스트림 편집기
리눅스에서 grep 명령과 비슷하게 사용할 수 있다.
vi 편집기처럼 원하는 문자열을 치환하는 등 다양한 작업을 수행할 수 있다.
어떤 파일에서 원하는 내용을 추출하거나, 치환하는 작업을 수행할 수 있다.
1. 확장자가 .txt인 파일의 검색 리스트를 출력하고, 출력에서 확장자를 .text로 변경한 후, 변경 내용을 text2 파일에 저장
find / -name “*.txt” | sed ‘s/ \.txt/ \.text/g’ > text2
.txt를 찾아서 .txt를 .text로 변경해서 내용을 text2에 저장 !
"기온 화면에 "가 꼭 찍히게 하고싶으면
"기온은 " 이렇게하면 안 찍힌다.
" \" -- 이렇게하면 " 이게 찍힌다.
즉 위에서 \. 이렇게 되어있으면 .이 찍히는 것이다.
홈디렉토리에서 찾으려면
find ~ -name “*.txt” | sed ‘s/ \.txt/ \.text/g’ > text2
이런식으로 ~로 바꾸면 된다.
난 왜 .text로 안바뀌지..~
awk
패턴 기반의 텍스트 처리 도구
텍스트 파일의 각 줄을 읽고, 특정 조건을 만족하는 줄에 대해 작업을 수행한다.
일반적으로 파일에서 데이터를 추출하거나 변환할 때 많이 사용한다.
1. ls -al 명령에서 파일 이름과 권한 정보만 출력
NR>1은 번호 1번 행보다 큰 영역이므로 앞에 total 104는 빠지는 것이다
번호 1, 9번 열의 데이터를 출력하라 !! (원하는 위치만 볼 수 있는 것이다.)
명령의 선택 + 조합
쉘 변수 (Shell Variables) -- 지역변수
쉘 변수는 주로 쉘 스크립트나 현재 쉘 세션에서만 사용된다.
환경 변수 (Environment Variables) -- 전역변수
환경 변수는 시스템 전반에서 사용되는 변수로, 대체로 대문자로 작성된다.
set : 쉘 변수 + 환경변수 + 쉘 함수를 출력
env : 환경변수만 출력
변수의 출력
echo $변수명 : 개별 변수의 값을 출력
$ 뒤에 오는 문자열을 변수로 취급한다 !!
SHELL 변수의 값을 출력함.
쉘 변수의 선언(설정)
변수명=값(문자열)
환경 변수의 선언
1. 쉘 변수 THIS_CLASS를 환경변수로 변경 : export THIS_CLASS
2. OTHER_CLASS를 환경변수로 선언하고 값을 java 로 대입
3. 환경변수 THIS_CLASS를 쉘 변수로 변경
변수 선언의 다른 방법
변수의 해제
1. 환경변수 OTHER_CLASS를 해제
아무것도 검색되지 않음
변수의 유효 범위 - 로그인 쉘 / 서브쉘
sh 서브쉘로 들어온 것
여기서 exit로 나가면 다시 bash로 나가는 것이다.
쉘이 완전 전향되는게 아니라 서브쉘로 가는 것이다 !!
bash가 로그인 쉘 나머지가 서브쉘 !!
쉘 변수는 지역변수니까 내가 잡은 곳에서만 되고
환경변수는 밑으로는 다 안다 위로는 모른다.
set -- 쉘변수 환경변수 다 보여줌
위에서 잡은 환경변수는 sh에서는 보인다.
하지만 sh에서 잡은 환경변수는 위에서 안 보인다.
환경 변수의 상속
node.js
리눅스에서는 node를 못 찾는다
node 설치하기 전에 update해주기 !!
환경변수 조회가능
변수의 산술 연산
expr
$(( )), $[ ]
쉘 스크립트
greeting.sh
-li <
-le <=
-gt >
.... 더 있음
1. 프롬프트에서 실행할 쉘을 명시하고 스크립트 파일을 인자로 전달
2. 프롬프트에서 스크립트 파일을 직접 실행
644권한으로 읽고 저장만 가능하다. 실행은 안된다.
x -- 실행권한이 없다.
그래서 bash라는 단어를 써야한다.
권한을 바꿔보자
if 조건문
case 조건문
for ~ in
while
until
break (반복문 종료)
continue (조건식으로 복귀)
환경 설정
리눅스 안에서 자바를 하면 path를 걸어서 환경 설정을 해줘야한다.
윈도우 안에서도 JAVA_HOME이라고 건 것처럼
리눅스 안에서도 자바를 깔면 건들지만
그게 아니면 웬만하면 건들지 않는게 좋으므로 실습은 지양한다 !!
'Linux' 카테고리의 다른 글
DAY 99 - Linux (2024.11.26) (1) | 2024.11.26 |
---|---|
DAY 98 - Linux (2024.11.25) (0) | 2024.11.25 |