Linux Basic

simoniful·2021년 5월 21일
0

Wecode

목록 보기
8/14
post-thumbnail

리눅스란?

오픈소스로 만들어 누구나 코드를 볼 수 있기에 가장 널리 사용되는 운영체제입니다. 개인적인 용도로 주로 사용되는 Windows 시스템이나 application이 아닌 이상, 일반적으로 시스템 서버는 linux 기반으로 운영되고 있습니다. 또한, 개발자용으로 커스터마이징이 용이하기에 주로 개발 직군에서 많이 사용됩니다. 프로그램이 배포되고 동작하게 되는 환경이 바로 Linux OS가 설치된 서버에서 동작하며, 명령어를 전달하는 Terminal이 컨트롤의 수단이 됩니다.

Linux File System Hierarchy(FHS)

리눅스의 파일시스템 구조는 윈도우즈의 폴더와 비슷한 디렉토리라는 개념으로 계층화되어 있다. Root에서 시작하여 여러 하위 디렉토리들이 있고 계층을 이루며 각 역할을 수행합니다.

절대경로와 상대경로

디렉토리 경로에는 2가지 유형이 있는데 absolute path와 relative path 입니다.

절대경로는 "완전한"의 의미에 더 가깝습니다.root 디렉토리 부터 시작하는 경로를 뜻합니다. Root 디렉토리에서 부터 시작하기 때문에 현재 나의 위치와 상관 없이 항상 정확히 해당 경로로 이동 할 수 있습니다.

상대경로는 현재 내 위치를 기반으로 움직이는 경로입니다. 중요한 2가지 심볼은 . 과 .. 입니다. .는 현재 디렉토리로 하위 디렉토리에 접근할 때 사용하며, ..는 상위 디렉토리로 접근할 때 사용합니다. ../../ 이렇게 되면 두 단계 상위 디렉토리라고 생각하면 됩니다.

Configs

리눅스에는 설정을 주로 파일을 통해서 합니다. 그리고 여러 config file, 즉 여러 설정 파일들이 있습니다. shell 설정 파일이 가장 대표적인데 Bash는 .bashrc 라는 설정파일을 사용하고 zsh는 .zshrc 라는 설정 파일을 사용합니다.

Shell 설정 파일을 비롯한 많은 설정 파일들이 대부분 사용자의 home 디렉토리에 있습니다. 일반적으로 보여지지는 않으며 ls -al 명령어를 통하여 해당 디렉토리에 있는 dot(숨김) 파일을 확인이 가능합니다.

PATH Enviroment Variable

설정 파일을 통해 할 수 있는 것들 중 가장 중요한 것은 PATH 환경 변수 설정입니다. 환경은 현재 돌아가고 있는 shell을 뜻하며, 그럼으로 환경 변수란 shell의 어떠한 설정 값을 가지고 있는 변수를 뜻합니다. 그리고 이러한 환경 변수들은 shell이 돌아가는 동안 계속 존재하며 사용됩니다.

  • HOME
    • 유저의 home 디렉토리 경로를 저장한 환경 변수
  • USER
    • 유저의 아이디를 저장한 환경 변수
  • PATH
    • PATH 값을 저장한 환경 번수

echo $HOME이라고 예를 들면 Home에 관련한 환경변수 값을 출력할 겁니다. HOME 이라는 환경변수를 선언한 적이 없지만 이미 존재하고 있는것을 알 수 있습니다. 그 이유는 환경 변수들은 shell 이 시작할때 이미 자동으로 선언되었기 때문입니다. Shell은 이러한 환경변수 들을 통해 설정이 됩니다.

echo $HOME
/home/eun

PATH 환경 변수

명령어들을 찾을 수 있는 경로들을 저장해놓은 환경 변수 이다.

echo $PATH
/Users/eun/.nvm/versions/node/v15.14.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

여러 경로들을 담고 있으며, 각 경로들을 : 를 사용해서 구분한다.

ls 명령어가 입력되면, shell이 PATH 환경 변수 값에 저장되어 있는 경로들을 맨 왼쪽 경로(1번) 부터 보면서 ls 라는 프로그램을 확인하고 찾으면 실행합니다. ls 의 경우 /bin 에 위치해 있기 때문에로 PATH 값의 7번째 경로에서 찾게 됩니다.

PATH 는 shell 설정 파일에서 설정한다. Zsh의 경우 .zshrc 파일에서 설정하며 다음처럼 설정한다.

export PATH="/home/eun/bin/anaconda3/bin:$PATH"

사용자가 선언하게 되면 $PATH를 선언 하는것이다. 그럼 기존의 PATH 값의 묀 앞쪽에 새로운 경로가 추가가 된다.

Useful Shell Tips

Shell에서 ⬆키를 누르면 이전에 입력했던 명령어를 다시 불러낼 수 있다.
Zsh에서 history-substring-search 플러그인을 설치했으면, 입력하고자 하는 명령어 중 일부분을 입력 후 ⬆키를 누르면 입력된 string이 포함된 이전 명령어만 불러낼 수 있다.

  • Ctrl + a : 커서가 해당 줄의 맨 앞으로 이동한다
  • Ctrl + e : 커서가 해당 줄의 맨 뒤로 이동한다.
  • cmd + k : 화면이 reset 된다. (Mac)

Basic Shell Commands

명령어용법
cd디렉토리를 변경
ls현재 디렉토리의 파일 목록을 나열
mv파일이나 디렉토리를 이동
cp파일이나 디렉토리를 복사
cat두 개 이상의 파일을 연결하여 출력
less파일 내용을 확인, 화면에 보여지는 만큼만 출력
rm파일이나 디렉토리를 삭제 -rf
mkdir디렉토리를 생성
clear쉘 창의 기록을 모두 삭제 ( cmd + k )
pwd현재 작업중인 디렉토리의 절대 경로를 반환
chown파일이나 디렉토리의 소유권자 및 그룹식별자 변경
chmod해당 파일이나 디렉토리의 허용 권한 수정
grep특정 파일 내에서 지정한 패턴을 가진 문자열을 찾고, 해당 문자열을 출력
history이전에 입력했던 명령어 리스트를 출력

Piping

| : Pipe 라고 한다. 일반적인 명령어가 아니라 2개의 명령어를 이어주는 역할을 한다. command1 | command2의 경우 command1의 결과값을 command2의 input으로 넘겨준다.

예를 들어, history 명령어는 이제까지 입력한 명령어들을 출력해주는 명령어다. | 을 사용해 grep과 같이 사용하면, history가 출력하는 값들 중 원하는 값만 필터링 할 수 있다.
ex) history | grep ls

tl;dr

명령어를 어떻게 쓰는지 설명해줍니다. tldr(Too long Didn't)입니다. brew 명령어를 통하여 설치하면 요긴하게 쓸 수 있습니다. 자주 사용하는 옵션이나 사용법만 간략히 알려줍니다.
ex) tldr ls

profile
소신있게 정진합니다.

0개의 댓글