Linux는 1991년 Linus Torvals(라이너스 토발즈)가 개발한 운영체제 이다. 참고로 Linus Torvals는 아직도 살아있고 여전히 Linux 개발을 이끌고 있다. 그리고 Linux는 오픈소스 이며 누구나 코드를 볼 수 있다.
Linux는 시스템을 운영하는데 가장 널리 사용되는 운영체제 이다. Windows 시스템이나 application이 아닌 이상 일반적으로 시스템 서버는 linux 기반으로 운영되고 있다. 그럼으로 개발자는 linux에 대 잘 알아야 한다. Linux에 시스템을 실행하고 유지하고 관리하기 때문이다.
리눅스는 모든 것이 다 파일과 그 파일들이 모인 Directory 단위로 이뤄져있고, 그 Directory들의 Tree 구조로 이루어졌다.
Root Directory가 모든 파일들의 최상위 Directory.
root는 /로 표현하고, root에서 각 하위 디렉토리로 들어갈 때마다 /usr, /usr/bin.. 로 표현하는 방식.
환경 변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행하는 동안 프로그램에 필요한 변수를 나타냄.
리눅스에서 환경이란 현재 돌아가고 있는 Shell이다.
Shell의 어떤 설정값을 가지고 있는 변수를 뜻한다.
대표적으로 HOME, USER, PATH가 있는데,
HOME : /home/eun
USER : 유저의 아이디를 저장한 환경 변수
Path : Path값을 저장한 환경 변수. (명령어들도 결국 프로그램이기 때문에 그 Path를 알아야 실행할 수 있다.)
예를 들어, ls 명령어가 입력되면 shell이 PATH 환경 변수 값에 저장되어 있는 경로들을 하나씩 보면서 ls라는 프로그램을 찾아서 실행한다.
새로운 프로그램을 설치하면(sudo나 pip으로) 역시 그 프로그램의 환경변수가 자동으로 설정되거나, 되어 있지 않은 경우 수동으로 설정해줘야 한다.
Shell 명령어들을 잘 알고 익숙해져야 linux를 잘 쓸수 있다. 다음은 기본적인 shell 명령어 들이다. 찾아보고 직접 실행해 봐서 익숙해지도록 하자.
cd
: change directory
cd .. // 상위 디렉토리로 이동.
cd ~ // home 디렉토리로 이동.
cd users // user라는 페이지로 이동.
ls
: list의 준말. 현재 디렉토리의 목록을 보여줌.
ls -l // 디렉토리 내의 파일을 리스트 형태로 세로로 정렬해서 보여줌.
ls -al // 숨김파일까지 리스트 형태로 보여줌.
mv
: move의 줄임말. 파일을 옮긴다.
mv a.txt test // a.txt 파일을 test라는 폴더로 옮김.
cp
: copy의 줄임말. 파일을 복사한다.
cp a.txt b.txt // a.txt를 b.txt라는 파일 이름으로 복사한다.
cat
: concatenate의 줄임말. 어떤 프로그램의 내용을 보여준다.
cat file1 # file1의 내용을 출력한다.
cat file1 file2 # file1, fil2의 내용을 연달아 출력.
rm
: remove의 줄임말. 파일 삭제.
rm a.txt // a.txt를 삭제함.
rm -r test // test라는 디렉토리 안의 모든 내용을 삭제함.
mkdir
: make directory의 줄임말.
mkdir name1 // name1이라는 디렉토리를 생성.
clear
: 터미널을 clear하게 해줌.
pwd
: 현재 경로를 알려줌.
chown
: 파일의 소유권을 변경해주는 명령어.
chmod
: chmod 명령어는 리눅스의 파일이나 디렉토리의 권한을 변경하는 명령어입니다.
ps
: 현재 터미널 상에서 실행되고 있는 process의 목록을 출력해줌.