유닉스 | 리눅스 |
---|---|
소스 코드가 주로 사유적이다. | 오픈 소스이다. |
다수의 금융인프라 그리고 많은 가용솔루션의 뼈대를 이루는 인프라에 사용된다. | 모바일폰, 태블릿 컴퓨터 그리고 비디오 게임 콘솔에서부터 메인프레임이나 슈퍼컴퓨터까지 다양한 컴퓨터 하드웨어에 설치가 가능하다. |
OS X, Solaris 등 | Ubuntu, Fedora, Red Hat, Debian 등 |
$ifconfig
: 네트워크를 구성하는 인터페이스를 확인하는 명령어로써 활성화된 인터페이스의 세부사항을 표시
lo
: 루프백 인터페이스로 내부 통신용 네트워크 인터페이스이다. 자기 자신과의 통신을 위한 가상 이더넷 장치이다.<global>
: 전역 IPv6 주소로, 글로벌 범위로 라우터를 통해 인터넷에 연결된 장치에 할당되는 주소이다. 이는 인터넷 상에서 고유한 주소로 사용되며, 인터넷으로부터 직접 접근 가능한 주소를 의미한다.enp0s1
: Linux 시스템에서 인텔 이더넷 카드의 첫 번째 포트를 나타내는 네트워크 인터페이스의 이름이다. 이 네트워크를 이용해 ssh 접속을 한다. <global>
을 이용해도 접속이 가능하다.$chmod [옵션] 모드 파일명:
chmod(change mode)의 줄임말로, 파일 및 디렉토리의 권한(permissions)을 변경하는 명령어이다.
# 숫자 모드 : 각 숫자 자리는 소유자, 그룹, 기타 사용자의 권한을 나타낸다.
# rwx -> 4 2 1 로 7은 read, write, execute 3가지의 권한을 의미한다.
chmod 755 {파일명}
#기호 모드 : u(소유자), g(그룹), o(기타 사용자), a(모든 사용자), +(추가), -(제거), =(설정)
chmod u+rx {파일명}
리눅스의 구조(https://wogh8732.tistory.com/75)
Shell 시작 및 로그인시 환경변수를 읽어들이는 순서(https://velog.io/@dhkim1522/리눅스-환경변수)
bash | zsh |
---|---|
리눅스의 표준 쉘이다. | bash 쉘의 확장 버전으로 많은 새로운 기능과 플러그인, 테마를 지원한다. |
기본적인 자동 완성 제공 | 다양한 자동 완성 기능 제공(경로 완성, 명령어 옵션 완성, 변수 및 함수 이름 완성, …) |
기본적인 프롬프트 외관과 동작을 변경 할 수 있는 설정 제공 | 다양한 프롬프트 테마와 옵션 설정 가능 |
#!/bin/bash
: 쉘 스크립트의 첫 줄에 위치하는 특별한 주석으로, 스크립트를 실행하기 위해 사용할 쉘(Shell)의 경로를 지정한다.var=123
이런식으로 변수를 설정한다.= | 변수에 값을 할당하는 연산자 | -d | 디렉토리의 존재 여부를 확인 |
---|---|---|---|
== | 문자열 비교 연산자 (같은지 여부를 확인) | -r | 읽기 권한 여부를 확인 |
!= | 문자열 비교 연산자 (다른지 여부를 확인) | -w | 쓰기 권한 여부를 확인 |
-eq | 숫자 비교 연산자 (같은지 여부를 확인) | -x | 실행 권한 여부를 확인 |
-ne | 숫자 비교 연산자 (다른지 여부를 확인) | -s | 파일이 비어있지 않은지 여부를 확인 |
-lt | 숫자 비교 연산자 (작은지 여부를 확인) | -lt, -gt | 숫자 비교 연산자로 사용되어 숫자의 크기를 비교할 때 사용 |
-gt | 숫자 비교 연산자 (큰지 여부를 확인) | -le, -ge | 숫자 비교 연산자로 사용되어 숫자의 크기 또는 같음을 비교할 때 사용 |
-le | 숫자 비교 연산자 (작거나 같은지 여부를 확인) | -eq, -ne | 숫자 또는 문자열 비교 연산자로 사용되어 숫자나 문자열이 같은지 또는 다른지 여부를 비교할 때 사용 |
-ge | 숫자 비교 연산자 (크거나 같은지 여부를 확인) | ! | 논리 NOT 연산자 (명령의 결과를 부정) |
-z | 문자열 길이 비교 연산자 (빈 문자열인지 확인) | -a | 파일 및 디렉토리의 존재 여부를 확인하는 AND 연산자 |
-n | 문자열 길이 비교 연산자 (빈 문자열이 아닌지 확인) | -o | 파일 및 디렉토리의 존재 여부를 확인하는 OR 연산자 |
&& | 논리 AND 연산자 (앞의 명령이 성공하면 뒤의 명령 실행) | -e | 파일 또는 디렉토리의 존재 여부를 확인 |
논리 OR 연산자 (앞의 명령이 실패하면 뒤의 명령 실행) |
#기본 문법
for 변수 in 범위(배열, 리스트, ...)
do
명령
done
#예제: 1..4로 특정 범위 특정 간격으로 증가 {1..4}로 하면 순차적으로 1씩 증가
for var in {1..4..2}
do
echo var
done
#출력
1
3
#예제: 배열을 이용한 예제
array=(1 2 3 4)
for var in "${array[@]}"
do
echo var
done
#출력
1
2
3
4
#기본 문법
if [값1 조건식 값2]; then
수행문
else
수행문
fi
#예제
if (($var = 1)); then
echo "value is 1"
else
echo $var
fi
리눅스와 쉘(Shell)에 대한 이해를 바탕으로 환경 변수가 로컬, 사용자, 시스템의 동작 범위에서 어떠한 실행 순서를 가지고 어떤 파일에서 설정하거나 가지고 있는지 알게 되었다. 또한 환경 변수를 사용하면 시스템과 응용 프로그램의 설정을 유연하게 관리하고 다양한 환경에서 일관성을 유지할 수 있다는 점 또한 알게 되었다.
또한, 일련의 동작을 구현하기 위한 쉘 스크립트로 프로그래밍을 하는 과정에서, 쉘 스크립트에 대한 내용과 다양한 리눅스 명령어들을 알게 되었다.
이번 학습 내용을 정리하면서 기존으로 알고 있던 내용들이 있었는데, 다시 한번 더 정리하면서 새롭게 알게 되는 내용이 있었다. 학습 시에 좀 더 깊게 파고드는 습관을 가지도록 노력해야겠다!