Linux를 공부합니다
Linux환경에 익숙해지기 위한 개념 학습이 필요
생활코딩 리눅스 영상을 보고 내용을 학습 후 이를 정리
ls -al
: 파일의 목록을 보여줌(감춰진파일까지 전부)
ls
: 현재 위치 아래의 파일 보여줌
ls -l
: 현재 위치 아래의 파일 자세히 보여줌
pwd
: 현재 위치 경로를 보여줌
mkdir [파일이름]
: 디렉토리 생성
touch test.txt
: 비어있는 파일 생성
cd [파일이름]
: 해당 파일로 이동
rm
: 파일 및 디렉토리 삭제 명령어
cat
: 파일의 내용을 확인할 수 있음
파일과 디렉토리 구분!
drwxrwxr-x : 디렉토리
-rw-rw-r-- : 파일
명령어 --help
:해당 명령어의 옵션들을 확인
man 명령어
:명령어에 대한 자세한 설명 확인 -> /sort
입력 시 sort라는 단어만 찾을 수 있음
sudo 란? 슈퍼명령어, super user do
예시를 통해 알아보자
sudo를 써주지 않으면 권한 거부. 따라서, sudo를 통해 install가능!
nano를 통해 파일을 생성하는 법
nano
> enter > html 생성 > ctrl+O( 파일이름생성 ) > enter > ctrl+X( exit )
nano를 통해 파일을 수정하는 법
nano [파일이름]
apt package manager 를 사용하여 package manager를 알아봅시다.
1) sudo apt-get update
를 통해 최신상태로 업데이트
2) sudo apt-cache search htop
를 통해 시스템 상태를 조작하지 않지만 update 명령을 통해 가져온 패키지 메타 데이터에서 각종 유용한 정보를 검색하고 생성
3) sudo apt-get install htop
을 통해 htop을 다운로드
4) sudo apt-get install htop
를 통해 업데이트도 가능
5) sudo apt-get remove htop
를 통해 삭제 가능
wget 이란????
HTTP 통신 또는 FTP 통신을 사용해 서버에서 파일 또는 콘텐츠를 다운로드할 때 사용하는 소프트웨어
주소를 copy 해 wget 명령어 뒤에 paste 하면 파일을 다운로드 할 수 있습니다.
wget -O [파일이름] [주소]
: 파일을 지정한 이름으로 다운로드 가능
1) git 이 없다면 sudo apt-get install git
을 통해 다운로드
2) [오픈소스 코드의 주소]를 copy
3) git clone [오픈소스 코드의 주소] src
([오픈소스 코드의 주소]가 src라는 디렉토리에 다운로드 됨)
4) ls -l
을 통해 다운로드를 확인해볼 수 있음
CLI(Command Line Interface)란?
GUI(Graphic User Interface)란?
Q. CLI 와 GUI 중 어떤 것이 컴퓨터 에너지를 많이 쓸까요?
A. 정답은 GUI 방식입니다!
- 일반인들이 사용할때에는 사용하기 쉬운 GUI를 권장합니다. 하지만 서버 컴퓨터나 데이터를 분석하는 시스템 등은 CLI를 사용하는 것으로 용량,cpu,메모리 등을 더 적게 사용할 수 있습니다.
- GUI방식은 배우기 쉽지만 순차적으로 진행하는 일을 자동화하기는 어렵습니다.
먼저 CLI환경에서 디렉토리에 접근하는 법을 생각해봅시다.
mkdir test
를 통해 디렉토리를 생성 > cd test
를 통해 디렉토리로 이동
우리는 이 과정을 mkdir test;cd test
이렇게 명령어 한줄로 작성 할 수 있습니다. 컴퓨터는 순서대로 그 명령들을 실행하고, 최종적인 결과만을 알려줍니다.
✋ 여기서 잠깐 grep 명령어를 알아봅시다!
- EX 1) test.txt 안에서 linux가 포함되어 있는 행만 출력
=>grep linux test.txt
명령어 사용- EX 2) ls --help 안에 sort라는 문자가 포함된 행만 출력
=>ls --help | grep sort
- EX 3) ls --help 안에 sort라는 문자가 포함되어 있으면서 file이라는 문자도 포함되어 있는 행만 출력
=>ls --help | grep sort | grep file
그림을 통해 알아봅시다UNIX 계열의 시스템은 어떤 프로그램이 실행되면, 그것을 프로세스라고 합니다.
standard output
ls -l 의 내용을 result.txt로 보내기
=>ls-l > result.txt
=>cat result.txt
=> ls -l의 내용이 result.txt로 보내진 것을 확인할 수 있음
- Command line Arguments -> 프로세스 -> Standard Output에 대한 작업을 Redirection
- 즉, 화면으로 출력되는 방향을 다른 곳으로 돌려서 파일에 저장한 것
standard error
첫번째 예시에서는 에러메세지가 reult2.txt에 담기지 않음
첫번째 예시에서 사용한 '>'의 앞에는 1이라는 숫자가 생략되어있고, 이것은 Standard Output을 Redirection 한것입니다. Standard Error를 Redirection을 한 것이 아닙니다. Standard Error를 Redirection 하려면 '>'앞에 2라는 숫자를 넣어주어야 합니다.
'>'는 명령어를 실행할 때마다 새로운 내용을 넣게 됩니다. 로그를 계속해서 추가해 내용을 저장해야 할 경우가 생길 수 있습니다. 그렇다면 내용을 이어붙일 수 있는 방법은 무엇일까요?
바로 '>>' 이렇게 적어주는 것입니다.
cat
은 그림의 Unix process에 해당명령어 cat
을 통해 사용자가 키보드를 통해 입력하는 정보를 standard input으로 받음.
명령어 cat
을 통해 hello.txt의 내용을 standard input으로 받음.
linux.txt 의 내용이 입력이 되어 one.txt로 들어가게 됨.
Shell 프로그램 : bash,zsh
shell 이라는 카테고리에 속하는 구체적인 제품 중 하나인 bash 프로그램을 쓰고 있다
shell 프로그램 zsh를 사용하고 있다
자동으로 backup해주는 shell script를 작성해 봅시다!
nano backup
을 통해 빈 파일 생성[backup]파일 안에 쉘스크립트를 적어줌
#!/bin/bash
if ! [ -d bak ]; then
mkdir bak
fi
cp *.log bak
따라서 실행가능한 파일을 만들려면
$ chmod +x {shell파일명}
를 사용해야함 => 실행가능한 모드를 추가한 것
참고 링크