우분투 기초 - 1

유닉스의 탄생

 

유닉스 운영체제가 탄생하면서 어플들은 하드웨어에 종속되지 않고, 운영체제에 종속된다.

어플들은 무조건 운영체제를 거쳐서, 하드웨어나 메모리에 접근할 수 있다.

이전에는 어플들이 컴퓨터에서 돌아갈려면 컴퓨터에 설치된 하드웨어에 맞아야 했는데, 

유닉스 탄생이 후 운영체제에만 맞으면 된다.

 

 

쉘의종류

 

 

 

프롬프트에서 $사인은 일반사용자를 뜻한다.

#사인은 ROOT 사용자를 뜻한다.

 

sudo (super user do)

su (switch user)

 

 

 

#.파일시스템의 구조

 

운영체제를 사용하는 이유는 쉘이라는 명령 프롬프트를 통해서 프로그램을 자유롭게 실행.

실행하려면 프로그램을 다운로드해야한다.

만약 리눅스에서 파일을 다운로드 하면 다운로드 후, 어떤 파일에 저장이 될까?

 

 

 

cd / (change direcotry root 경로)

 

home : 특정 사용자를 위한 폴더, user1, user2 등..

 

bin : 실행파일 저장 (바이너리)

 

mnt, media : 장치를 연결하는 디렉토리

 

etc : 프로그램 실행을 위한 설정파일

 

var :  프로그램이 실행중 만들어 지는 파일

 

sbin: 시스템을 위한 실행 파일이 저장됨

 

sys : 시스템 설정을 위한 파일

 

 

 

 

#.파일 경로와 순회

 

pwd : 현재 디렉토리 경로 출력

ls : 디렉토리 목록 나열

ls -l : 디렉토리 자세히 보기

cd : 디렉토리 변경

 

 

#.파일 관리 명령어

 

mkdir : 디렉토리 생성

rmdir : 디렉토리 삭제 - (디렉토리 안에 있는 내용이 없어야 함)

 

 

touch : 빈파일 생성

mv : 파일 이동 /변경

rm : 파일 삭제

rm -r : 디렉토리 안에 모든 파일들을 삭제 (-r 재귀적으로 삭제)

rm -ri : 상호작용하면서 파일 삭제

cp : 파일 복사

 

 

#Linux(Unix) 파일 편집 및 관리

vi 에디터

 

 

 

#Linux(Unix) 파일 찾기와 파일 정보 확인하기(find, file, cmp, cat, head, tail, which)

 

java 파일 찾기

find ./ -name *.java

 

최소 1 바이트 이상의 java 파일 찾기

find ./ -name *.java -size +1c

 

파일의 앞부분 3줄 내용 검색

head -n3 ./workspace/Hello.java 

 

파일의 마지막 부분 3줄 내용 검색

tail -n4 ./workspace/Hello.java

 

파일 내용 출력

cat ./workspace/Hello.java

 

단어 찾기 (“파일안에서 df 만 찾기”)

grep "df" ./workspace/Hello.java 

 

대소문자 무시

grep "df" -i ./workspace/Hello.java 

 

두 파일 차이 비교

cmp 파일명 1 파일명 2

 

diff 파일명 1 파일명 2

 

파일내용 확인

file ./workspace/Hello.java

 

 

#.Linux(Unix) 유용한 명령어(history, piping, redirect, grep, more, less)

 

history : 파일 목록

!2000 : 목록의 2000번째 줄 실행

 

리디렉션 ( > ) : history 내용을 test 파일에 리다이렉트 하라

history > test

 

Hello를 test에 써라

echo Hello > test

 

기존의 test 파일 내용에 이어서 Hello2 붙여넣기

echo Hello2 >> test

 

파이핑 ( | )

many 파일의 내용을 | 를 이용해서 grep으로 출력해준뒤 al 단어를 찾는다.

cat many | grep al

 

(;) 문자로 여러 명령어 실행

test2 파일을 만들고, “okay” 라는 단어를 디리렉션 하고 , 파일내용을  cat으로 출력 한다.

 

touch test2; echo "okay" >> test2; cat test2

 

 

 #.Linux(Unix) 파일 압축 관리(tar)

 

 

tar 압축하기

tar -cf test.tar his many

 

zip 압축하기 2

tar -zcf test2.tar.gz his many

 

tar 압축 풀기

tar -xvf test.tar 

 

zip 압축풀기

tar -zxvf test2.tar.gz

 

 

#Linux(Unix) 링크파일 사용하기(ln, path, cp)

 

심볼릭 링크파일은 바로가기 아이콘과 같다.

하드링크는 파일의 별칭을 정해주는 것과 같다.

 

 

하드링크 생성

ln his hisln

 

하드링크 참고

-링크파일을 지워도 원본은 남아 있다.

-원본을 지워도 링크파일은 남아 있다.

-링크파일이나 원본파일을 수정하면 서로 수정된 파일이 반영된다.

 

 

 $PATH 예)

 

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/share/maven/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/share/tomcat8/bin

 

 

심볼릭 링크 예제

 

아래 예제에서 심볼릭 파일을 실행하면 운영체제는 먼저 $PATH 경로를 검색한다.

$PATH 경로(/home/newlec/bin)에 java 와 javac 라는 심볼릭 링크를 만들어 주었기 때문에 어디서든 java -version을 확인할 수 가 있다. 

 

 

참고로 다른 사용자가 java -version명령어를 사용하면 /home/다른사용자/bin 디렉터리를 검색하기때문에

리졸빙 에러가 발생할 수 있다.

 

 

#.Linux(Unix) 사용자 추가하기(useradd, usermod, userdel)

 

 

 

 

참고

유튜브 뉴렉 리눅스 강좌