1회
운영체제 파일 시스템, 프로세스 관리, 메모리 간리, 입출력 기능 하나의 커널에서 실행되는 단일코드 베이스 통합구조 모노리딕 커널
CentOS, Fedora - RedHat 계열 배포판
Ubuntu, Raspbian - 둘 다 Debian 기반
LVM 은 캐싱키능 제공 X
리눅스 부팅 시 가장먼저 실행 init 이거 대체 → systemd
systemctl halt 종료
systemctl reboot 재부팅
systemctl hibernate 절전모드
아이노드 실제 파일과 디렉터리의 데이터 위치를 알고 있는 자료구조
X 윈도우는 플랫폼독립적
printenv 사용하면 환경변수 내용 조회 가능
echo도 환경변수 조회가능 하지만 echo 는 $HOME처럼 환경변수 의미하는 $를 변수명앞에 붙여야 함
[ihd@www~]( )HOME
/home/id
셸 메타문자
- >> 리다이렉션
- * 와일드카드 all
- || OR 실패하면 다음명령 실행 성공하면 실행 X
셸스크립트 위치매개변수 $ Positional Parameters 어떻게 생겼는지 찾아보기
- $0 현재 실행중인 스크립트 이름
- $1, $2 스크립트 실행시 전달된 argument
- $# 스크립트에 전달된 인자의 총 개수
- $@인자를 배열로 처리해서 개별 인자 나눠서 출력
- $* 인자 전체를 하나의 문자열로 처리, 개별 인자 사이에 구분자 추가하지 않고 출력
#!/bin/bash
echo "\$0 = $0" # 실행된 스크립트 이름
echo "\$1 = $1" # 첫 번째 인자
echo "\$2 = $2" # 두 번째 인자
echo "\$# = $# " # 전체 인자 개수
echo "\$@ = $@" # 인자를 배열처럼 각각 출력
echo "\$* = $*" # 인자를 하나의 문자열처럼 출력
예시
./test.sh apple banana cherry
$0 = ./test.sh
$1 = apple
$2 = banana
$# = 3
$@ = apple banana cherry
$* = apple banana cherry
$@ vs $* 차이 - " " 로 묶어볼게요ㅛㅛ
#!/bin/bash
for arg in "$@"; do
echo "arg (with \$@): $arg"
done
for arg in "$*"; do
echo "arg (with \$*): $arg"
done
실행
./test.sh "apple pie" banana
출력
arg (with $@): apple pie
arg (with $@): banana
arg (with $*): apple pie banana
- $@ → 배열처럼 각각의 인자를 분리해서 줌
- $* → 모든 인자를 그냥 하나의 문자열로 합쳐서 줌