유닉스의 탄생
유닉스 운영체제가 탄생하면서 어플들은 하드웨어에 종속되지 않고, 운영체제에 종속된다.
어플들은 무조건 운영체제를 거쳐서, 하드웨어나 메모리에 접근할 수 있다.
이전에는 어플들이 컴퓨터에서 돌아갈려면 컴퓨터에 설치된 하드웨어에 맞아야 했는데,
유닉스 탄생이 후 운영체제에만 맞으면 된다.
쉘의종류
프롬프트에서 $사인은 일반사용자를 뜻한다.
#사인은 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)
참고
유튜브 뉴렉 리눅스 강좌
'컴퓨터 기초 > 운영체제 실습' 카테고리의 다른 글
c언어 문자 치환 - 특정 문자 찾아서 바꾸기 (0) | 2021.01.08 |
---|---|
c언어 파일함수로 특정 문자 찾기 (0) | 2021.01.07 |
c언어 파일입출력 함수를 이용해서 파일의 단어수 체크하기 (0) | 2021.01.06 |
19.메시지큐, 공유 메모리, 세마포어 - ipc (0) | 2020.07.21 |
18.파이프 (0) | 2020.07.20 |