빈 파일 만들기 touch
1. test라는 이름의 빈 파일 생성
2. test 파일의 수정 시간 변경
검색기능 grep
1. .bashrc 파일에서 ‘alias’라는 문자열이 포함된 행을 행 번호 포함하여 출력
-w : 단어 단위로 검색
.bashrc 파일에서 ps가 들어간 단어를 검색하시오. (대, 소문자 구별없이)
파일 검색 find
1. /etc 디렉토리에서 cron이라는 이름의 파일을 검색하고 긴 목록으로 출력
2. /etc 디렉토리에서 cron이라는 이름의 파일을 검색하고 inode 값을 출력
{ } 괄호는 우리가 찾은 파일을 의미한다.
두 가지 명령을 한 번에 하는 것이다.
지정된 이름의 바이너리 파일이나 매뉴얼 파일의 위치 검색
whereis / which
1. ls 파일의 위치 검색
파일 종류 표시 file
1. .bashrc파일의 종류 표시
2. /dev/stdin 파일의 종류 표시
표준 입출력 장치에서 입력에 해당하는 것은 키보드 : stdin
출력에 해당하는 것은 모니터를 통해서 화면에 출력 : stdout
nano
ctrl + O
ctrl + X
Shell
커널 - 쉘(중간자 역할) - 응용프로그램(VI에디터)(사람)
중간 통역자 역할을 해주는게 쉘이다.
그냥 번역기라고 생각해도 좋다.
내가 명령어를 친거를 Shell이 분석을 해서 기계 안에 있는 내용을 처리를 해서 응답을 나에게 다시 주는 것이다.
REPL
사용자가 입력을 한 거를 분석을해서 커널에 있냐 없냐 평가해서 그거를 출력
자바에서 컴파일러가 여기선 쉘이라고 보면된다.
쉘(Shell)이란?
- 리눅스 커널과 사용자를 연결해주는 인터페이스
- 사용자가 입력하는 명령을 읽어 해석하고 프로그램을 실행시키는 인터페이스
(커널은 하드웨어를 관리해주는 즉, OS의 역할을 해준다.)
쉘(Shell)의 기능
1. 명령어 해석기 기능
- 사용자와 커널 사이에서 명령을 해석하여 전달한다. (대화식 사용)
2. 프로그래밍 기능
- 일련의 명령어와 쉘 자체로 프로그램을 만들 수 있다 (Shell Script).
3. 사용자 환경설정 기능
- 리눅스의 세션 변수들을 정의하여 사용자가 리눅스 환경을 설정할 수 있다.
쉘의 종류
bourne shell 계열
1. sh (bourne shell)
- 1974년 'Stephen Bourne' (스티브 본) 이 개발한 최초의 쉘
- /bin/sh
- 대부분의 리눅스에 기본적으로 설치
- 스크립트를 지원
2. ksh (korn shell)
- 유닉스에서 가장 많이 사용되는 본 쉘을 확장한 쉘
- /bin/ksh
- 명령어 완성 기능, 히스토리 기능 지원
3. bash (bourne again shell)
- Linux 표준 쉘로 채택 (리눅스에서 가장 많이 사용하는 쉘)
- /bin/bash
- 본셸을 기반으로 GNU 프로젝트를 위해 'Brian Fox' (브라이언 폭스) 가 작성한 쉘
- Linux, MAC OS X 등 다양한 OS에서 사용됨
- 명령어 완성 기능, 히스토리, 명령어 치환, 편집 등을 지원
- POSIX와 호환 가능
4. zsh (z shell)
- 확장형 본쉘, 콘쉘의 재작성 쉘
- /bin/zsh
- 강력한 history 기능
- 향상된 명령행 편집 기능
C Shell 계열
1. csh (C Shell)
- 본쉘의 사용성을 높인 쉘
- /bin/csh
- C언어의 특징을 많이 포함함
- 히스토리, 별명, 작업 제어 등의 기능 포함
2. tcsh (tc shell, tee-see-shell)
- csh의 기능을 강화한 쉘
- /bin/tcsh
- 확장 C쉘로, BSD 계열에서 가장 많이 사용
- 명령어 편집 기능 제공
현재 사용 중인 SHELL 출력
커널이란?
커널은 운영체제의 핵심부분으로써 주로 디바이스 관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공 같은 기능을 관리하는 등, 컴퓨터 자원을 관리한다.
하지만 커널은 항상 컴퓨터 자원들만 바라보고 있어 사용자와 직접적인 상호작용은 하지 않는다.
그렇기 때문에 사용자와 상호작용을 하기 위해 필요한 것이 시스템 프로그램 ( Shell ) 이다
(OS의 역할을 한다고 생각하면 된다.)
REPL과 인터프리터 - JavaScript
이런식으로 즉각즉각 반응하는게 인터프리터라 하는 것이다.
이게 쉘이라는게 아니라 자바스크립트 ! 이런식으로 인터프리터가 즉각즉각 보여준다는 것
tomcat은 서블릿 jsp 이용할 때 필요
node는 리액트, 자바스크립트 html 이용할 수 있게 해준다.
node가 있기 때문에
이런식으로 했을 때 sum.js가 있으면 불러와지는 것이다.
이런식으로 node처럼 shell이 그런 역할을 해주는 것이다.
REPL과 인터프리터 - Shell
둘의 차이점 확인하기 !!
인터프리터 -- 바로바로 보여준다는 말
Shell의 명령 종류
1. 내부 명령(빌트인 명령)
2. 외부 명령
자바에서 int char double은 내부 명령이라 볼 수 없다.
Integer Character은 외부에 만들어진거다.
리눅스에서도 마찬가지다.
외부 명령
별도의 실행 가능한 바이너리 파일로 구현(프로그램)
우리 눈으로 확인할 수 있다.
우리가 쓰는건 bin에 들어있고 sbin은 시스템이 쓰는것이다.
오른쪽 사진 bin 옆에 sbin도 있는 것이다 !
/bin
이것은 Linux의 기본 명령이 등록 되어 있는 directory 이다.
Linux 배포판에 따라 차이가 있지만 Linux 라면 대체로 비슷한 명령어가 여기에 있다.
/sbin
관리 시스템 명령어
/bin 명령은 root or user 라도 사용할 수 있는 명령어지만,
/sbin 명령은 root 사용자 이외에는 보통 환경 패스가 걸려 있지 않으므로 default로는 사용할 수 없는 명령어 이다.
/usr/bin
/usr/bin은 /bin과 달리 일반 사용자가 사용하는 명령어가 포함 되어 있다.
/usr/sbin
/usr/sbin는 관리 명령어 이다.
/usr/local/bin
/usr/local/bin은 스스로 설치한 명령어를 사용할 수 있도록 하는 장소이다.
Linux 저장소에 있는 것 이외의 것을 설치했을 때나 자작 명령어를 보관해야 할 때 유용하다.
내부 명령과 외부 명령의 차이
문자열 출력 echo / printf
1. 화면에 “Hello World” 문자열 출력
1. 화면에 C언어 printf 함수 형식으로 “My name is Linux” 문자열 출력
history
alias
1. 현재 지정된 앨리어스 출력
뒤에 / 이게 붙으면 파일이 아니라 디렉토리
* 이게 붙으면 실행파일
2. date 명령에 대한 앨리어스 지정
date 형식을 바꿔줌 !
기본 특수 문자
* (별표) : 0개 이상의 문자로 대체
1. 파일명이 .bash로 시작하는 모든 파일의 목록을 출력
2. 파일명이 .conf로 끝나는 모든 파일을 /etc 디렉토리에서 찾음
" ", ' ' : 문자열 만들기, 특수 문자 기능 제거
1. ls .bash*, ls ‘.bash*’, ls “.bash*” 의 차이
2. echo $SHELL, echo ‘$SHELL’, echo “$SHELL” 의 차이
`` (백틱) : 문자열을 명령으로 해석, 명령 실행 결과로 치환
1. date 명령의 실행 결과를 문자열에 포함하여 출력
\ : 바로 뒤에 오는 문자의 특수 기능 제거(Escape 문자) / 긴 명령을 여러 행에 입력 가능(Line Continuation)
1. * 문자의 특수 기능 삭제(일반 문자화)
2. space 문자의 특수 기능 삭제
3. find /etc -name *.conf 명령을 여러 행에 입력
명령이 길 때 자주 사용함 !!
'Linux' 카테고리의 다른 글
DAY 100 - Linux (2024.11.27) (0) | 2024.11.27 |
---|---|
DAY 98 - Linux (2024.11.25) (0) | 2024.11.25 |