d02_학습정리
ssh 연결하기
-
네트워크 확인 하기 위해서 하는 작업
- 핑 때려 보기 ping 8.8.8.8
- dns 확인 ns lookup dns.google.com
-
가상 머신에서 linux 설치 방법
- virtualbox설치
- linux iso 받기
- virtualbox에서 가상머신 세팅에 iso 마운트 하기
- virtualbox 가상 머신 설치 및 실행
-
ssh 설치 하기
- sudo apt update
- sudo apt install openssh-server
-
ssh 확인 하기
- ssh 계정아이디@localhost
-
ip 확인 하기
- sudo apt install net-tools
- ifconfig
-
외부에서 ssh 적용한 서버에 접속하기
- ssh 서버계정아이디@ip
- ip는 위에서 ifconfig로 찾은 걸로 쓰면된다.
- 10.0.2.15는 안될 수 도 있으니 포트 포워딩을 하면 된다
- 포트포워딩 했다면 ssh 계정아이디@호스트ip -p 호스트포트
-
포트포워딩(port fowarding 포트/주소를 다른 포트/주소로 인도 해준다) 하는 방법
- 버추얼 박스에서 버추얼 머신의 세팅으로 들어간다
- 네트워크 탭으로 들어간다
- 하나 만들어서 호스트ip를 클라이언트에서 입력할 주소를 입력, 호스트 포트를 클라이언트에서 입력할 포트, 게스트ip 를 서버에서 받을 ip 로 적고 게스트 포트를 서버에서 받을 포트를 설정한다.
- 자료 https://lamanus.kr/59
directory 명령어들
-
List Directory, 디렉토리의 내용을 보기
- ls -l
- ls -al
- exa -l
- tree ./ 를 하면 해당 폴더 부터 하위 폴더와 파일들을 tree형식으로 볼 수 있다.
$ ls -l
drwxrwxr-x 2 user user_group 4096 Sep 17 06:39 dir1
첫번째 블록은 권한 문자열(Permission string)
-
drwxrwxr-x
- 첫번째 글자에는 d/-/s 가들어간다
- d는 directory
- -는 일반 파일
- s는 특수 파일을 명시한다
- 그다음 3개(rwx)는 현제 소유주의 권한
- r은 read
- w는 write
- x는 execute
- 없다면 각 자리에 r/w/x가 아닌 - 가 들어간다
- 그 다음 3개(rwx)는 그룹 소유주의 권한
- 마지막 3개(r-x)는 소유주, 그룹 소유주 제외한 나머지 사람들의 권한.
두번째 블록은 해당 디렉토리 내부의 파일과 디렉토리 갯수
세번째 블록은 소유주
네번째 블록은 그룹 소유주
다섯번째 블록은 크기
678 번째 블록은 마지막으로 접근 시간
9번째 블록은 이름
chmod chown
-
chmod 는 file의 권한 설정을 변경 할 수 있다.
-
chown 과 chmod의 차이
- chown는 change ownership 이다. 소유권을 변경한다.
- ls -l 을 하면 파일들의 ownership를 볼 수 있다.
- chmod는 change mode이다. 권한을 변경한다.
-
echo로 텍스트를 출력 할 수 있다
- echo “hello”
- echo “hello” > /directory/file.txt를 하면 directory에 있는 file.txt를 만들면서 안에 echo “hello”가 적힌 파일을 만들 수 있다
- cat directory/file.txt 를 하면 file.txt를 실행된다.
-
bash file 작성시에는 첫 줄에 어떤 shell로 실행할지 설정을 해야한다
-
bash array
- 선언
- anyarrayname=()
- 추가
- anyarrayname+=anyfiledirectory
- 모두 출력
- anyarrayname[@]
shell
shell이란 command-line interpreter, process the commands you run.
A shell is a program that interprets and executes the commands entered in the command-line interface.
windows => powershell mac linux => bash zsh => bash의 향상된 버젼 csh => c 같은 형식
shell의 역사 및 현제 https://www.edureka.co/blog/types-of-shells-in-linux/
- Bash는 Bourne Again Shell의 약자로, 그것은 오늘날 많은 리눅스 배포판의 디폴트 쉘이다. 또한 sh-호환 쉘이며, 프로그래밍 및 대화형 사용을 위한 sh에 비해 실용적인 개선을 제공하며, 여기에는 다음이 포함된다.
- 명령줄 편집
- 작업 제어
- 크기 제한 없는 명령 내역
- 셸 함수 및 별칭
- 제한 없는 크기 인덱싱된 어레이
- 2부터 64까지의 모든 베이스의 정수 산술
만약 당신이 셸 스크립팅을 처음 접했다면, bash는 시작부터 훌륭한 언어다. 그것은 상호작용이 가능하고 둥글다. 이름에서 알 수 있듯이, Bash는 Bourne Shell의 초대본이며, 당신은 대부분의 Bourne 스크립트를 바꾸지 않고도 실행할 수 있다. 그것은 컴퓨터 과학을 공부하는 학생들에게 대학과 학교에서 가르치는 언어다
- TENEX C 쉘
Tcsh는 강화된 C 셸로 대화형 로그인 셸과 셸 스크립트 명령 프로세서로 사용할 수 있다.
Tcsh는 다음과 같은 특징을 가지고 있다.
- C 같은 구문
- 명령줄 편집기
- 프로그래밍 가능한 워드 및 파일 이름 완성
- 철자수정
- 작업관리
- Ksh는 Korn 껍데기를 의미하며 David G. Korn에 의해 설계되고 개발되었다. 그것은 다른 많은 유닉스/GNU 리눅스 셸과 마찬가지로 완전하고 강력하며 수준 높은 프로그래밍 언어로서 인터랙티브 명령 언어다.
Korn 셸은 다른 셸의 특징을 포함하며, 다음과 같은 최신 스크립팅 언어에서 발견되는 몇 가지 고급 기능을 제공한다.
- 연관 배열
- 부동 소수점 산술
- 직무 통제
- 명령 앨리어싱
- 명령 히스토리
- 표준 POSIX 지원
- bash와의 역호환성
- zsh는 인터랙티브하도록 설계되었으며 bash, tcsh, ksh 등 다른 유닉스/GNU 리눅스 셸의 많은 기능을 통합했다.
다음과 같은 몇 가지 독특한 특징을 가지고 있다.
- 파일 이름 생성
- 시작 파일
- 로그인/로그아웃 감시
- 마감 코멘트
- 개념지수 -변수지수
- 함수지수
- 주요 색인 및 맨 페이지에서 확인할 수 있는 기타 정보
linux 역사
1977년 Bourne shell이 소개되었다. V7 UNIX용 AT&T Bell Labs의 Stephen Bourne이 쓴 Bourne shell(sh)은 오늘날에도 유용한 쉘로 남아 있다(일부 경우 기본 루트 쉘로서). Bourne shell은 ALGOL68 컴파일러를 작업한 후 개발되었기 때문에 다른 셸보다 알고리즘 언어(ALGOL)의 라인을 따라 문법이 더 잘 되어 있다. 소스 코드는 C에서 개발되었다.
Bourne shell은 두 가지 주요 목표를 달성했다.
운영 체제에 대한 UNIX/리눅스 명령 실행, 즉 명령줄 인터프리터 셸을 통해 호출할 수 있는 재사용 가능한 스크립트 쓰기, 즉 스크립팅 톰슨 셸을 교체하는 것 외에도, Bourne shell은 대본에 대한 제어 흐름, 루프, 변수 등과 같은 이전 버전보다 많은 다른 이점을 제공함으로써 운영 체제와 상호 작용하기 위한 보다 기능적인 언어를 제공했다.
셸은 또한 셸 스크립트를 필터로 사용할 수 있도록 해 주었으며, 신호 처리를 위한 통합 지원을 제공했지만 기능을 정의하는 기능이 부족했다.
그것은 스크립트 안에 보존된 문자열 리터럴을 포함시키기 위해 명령 대체와 HERE 문서와 같이 오늘날 우리가 사용하는 많은 기능들을 세계에 소개했다.
Bourne shell은 오늘날 우리가 사용하는 많은 쉘의 개발로 이어졌다.
unix 역사
UNIX OS는 1960년대 후반에 태어났다. AT&T 벨랩스는 C로 작성된 유닉스라는 운영체제를 출시해 보다 빠른 수정과 수용, 휴대성이 가능하다.
벨 연구소의 켄 톰프슨 주도로 1인 프로젝트로 시작되었다. 그것은 계속해서 가장 널리 사용되는 운영체제가 되었다. 유닉스는 독점 운영 체제다.
Unix OS는 CLI(Command Line Interface)에서 작동하지만, 최근에는 Unix 시스템에서 GUI를 위한 개발이 진행되고 있다. 유닉스는 기업, 대학 대기업 등에서 인기 있는 OS다.
linux unix 차이점
리눅스 소스 코드는 일반 대중이 사용할 수 있는 반면, 유닉스에서는 소스 코드가 독점적이다.
UNIX OS는 1960년대 후반 AT&T 벨랩스에서 만들어진 반면 리눅스는 1991년 헬싱키 대학의 라이너스 토발즈가 구축한 운영체제다.
리눅스는 유닉스의 복제품이다.
리눅스 기본 셸은 BASH이고 유닉스 셸은 Bourne 셸이다.
리눅스 위협 탐지 및 솔루션은 매우 빠른 반면 유닉스 사용자는 적절한 버그 수정 패치를 얻기 위해 더 긴 대기 시간을 필요로 한다.
리눅스의 중요한 버전은 Redhat, Ubuntu, OpenSuse, Solaris인 반면, 유닉스의 중요한 버전은 HP-UX, AIS, BSD 등이다.