안녕하세요. nenji입니다 - Ubuntu 이야기
1.ubuntu 일반상식
ubuntu는 매년 2회 4월과 10월에 업데이트가 됩니다. [해당년도.월]로 구분하며 22년 4월에 업데이트가 되면 ubunty 22.04가 되는 식이지요.
명령어 중에 su라는 명령어가 있습니다.
#su root
#su - root
su Switching User 유저를 바꾼다 - 는 무엇이 다를까요? 기본적으로 리눅스는 로그인이 되면 권한에 따라 루트/홈 디렉토리로 이동합니다. #pwd를 입력하면 현재 위치를 확인할 수 있고 - 붙이고 빼고 확인을 하시면 됩니다. -는 디렉토리와 환경 파일까지 바꿔서 사용자 변경을 하는것으로 -가 없으면 계정만 바뀌게 됩니다. su root 로 바꾸고 작업하다 환경 안맞아서 다시 작업할 수 있으니 반드시 기억하시길 바랍니다.
sudo는 무엇일까요? sudo에 su는 Switching User가 아니구 Super User의 약자입니다. 최고 유저로 [do] 실행하라는 의미지요. 권한을 바꾸지 않고 루트 권한으로 실행할때 사용합니다. 명령어도 사용할때 차이를 알고 사용하면 더욱 재미있어집니다.
root/home 디렉토리에는 환경 파일들이 숨겨져 있습니다. #ls -al을 입력하면 .xxxx으로 시작되는 파일이 환경 파일입니다.
** pwd는 Parent working directory 약자임
2.ubuntu 시스템 개발 초기 세팅
- 패키지 설치 툴 업데이트
처음 1회만 실시합니다!! #sudo apt update
#sudo apt upgrade
#sudo apt autoremove
#sudo apt-get update
#sudo apt-get dist-upgrade
#sudo apt-get autoremove- vim 설치
#sudo apt upgrade
#sudo apt autoremove
#sudo apt-get update
#sudo apt-get dist-upgrade
#sudo apt-get autoremove
설치 방법 #apt-get install 패키지명
set sw=4 ### Space Width 설정
set cindent ### C스타일로 설정 알록달록한 색깔
set nu ### 넘버링
------------------------------------------------------------------------------
- vsftp 설치
ftp는 기본적으로 root계정으로 접속이 안됩니다. vsftpd는 root 계정의 사용/미사용을 설정할 수 있습니다.
- ubuntu 초기 root 비번 설정
3.ubuntu 기본 명령어
- Bash 소개 - Microsoft 내용 얼마 안되니 꼭 읽어보세요.
- ubuntu 튜토리얼 이것도 추가해서 꼭 읽어보세요.
- 화면 지우기
- 파일 정보보기
파일의 정보를 볼때는 file [파일명] 치면 세부정보를 볼수 있습니다. ls로 목록 확인하고보고 file로 확인합니다.- 파일 리네임
#mv 대상파일 변경파일 ex) #mv test.txt change.txt4.VI 사용법
vi는 크게 3가지 모드가 있습니다.
- 라인 모드 : 흔히 : 치고 명령 한줄씩 치는 모드
- 명령 모드 : 지우고 자르고 복사하고 이동하고 hjkl 방향 dd, yy, p... 등등 알아서 찾기
- 입력 모드 : 명령모드에서 i 누르면 됨 백스페이스 안됨 명령에서 x
명령모드에서 여러가지 명령 잘 익히구 숙지해야됨 이거 잘하면 뭔가 하는거 같음
화면분할 라인모드에서
[ :vs 수직분할 / :sp 수평 분할 ]
[ ctrl + w, w 창 전환 :q 나가기 ]
5.컴파일러 동작 방식
- C 컴파일 과정
소스 -> 전처리 -> 어셈블 -> 컴파일 -> 링킹
.c -> .i -> .s -> .o (binary) -> ELF 파일
리눅스 ELF파일은 구글링하여 확인합니다.
각 단계별 컴파일 방법
#cc -E nenji.c -o nenji.i 전처리
#cc -S nenji.i -o nenji.s 어셈블
#cc -c nenji.s -o nenji.o 컴파일
#cc nenji.c
out nenji 위 과정 다해서 링킹된 실행파일이 생성됩니다.
option에서 -Wall(Warning all)을 넣으면 에러 워닝도 표시됩니다.
- Makefile
개발하며 코드를 작성하다보면 여러 파일을 반복하여 컴파일 할 때가 있습니다. 보통 컴파일 반복 빈도나 방법이 길어질 때 make 파일을 작성하여 관리를 합니다.
ex> cc -c test main.c a.c b.c c.c d.c...
컴파일 할때마다 계속 쳐줘야 하는데
vi Makefile로 만들어서 사용하면 간단하게 됩니다. (M은 대문자) make라고 치면 알아서 그 디렉토리에 Makefile을 찾아서 실행합니다. Makefile에는 몇가지 규칙이 있습니다. 규칙에 대한 설명은 다음에 설명드리도록 하겠습니다. 결론은 잘지키면 이상없이 잘됩니다.
ex>
cc -c test main.c a.c b.c c.c d.c...
.
.
.
Makefile은 요정도..
- Library
라이브러리도 잘 이용해야지 됩니다. 라이브러리는 크게 정적(Static), 동적(Dynamic), 공유(Share) 라이브러리로 나뉘어집니다.
- 정적 라이브러리는 보통 xxx.a로 적음
- 공유 라이브러리는 보통 xxx.so로 적음
- 정적 라이브러리
#ar rcv nenji.a a.o b.o c.o : 목적파일 3개를 nenji.a 정적 라이브러리로 만듬
#ar t nenji.a : nenji.a 라이브러리 포함된 정보 표시함
#cc -o nenji main.c nenji.a : 정적 라이브러리 포함해서 컴파일
#nenji : 정상적으로 실행됩니다.
- 공유 라이브러리
#cc -shared -o nenji.so a.o b.o c.o : 목적파일 3개를 nenji.so 공유 라이브러리로 만듬
#cc -o nenji main.c nenji.so : 공유 라이브러리 포함해서 컴파일
#nenji : nenji 실행 안되는 것이 정상입니다. 공유 라이브러리 환경변수에 추가합니다.
#export LD_LIBRARY_PATH=/root/so 파일이 있는 경로 세팅[바로 추가 방법]
#nenji 정상적으로 실행됩니다.
편안하게 읽는 글이라 문득문득 생각나는 것들을 적어 보았습니다. ubuntu 태그로 분류하였고 vi 에디터 사용법과 Makefile 작성법도 일상 태그 수준으로 틈틈히 준비해서 올려보겠습니다. 앞으로 한달 동안은 올린 글들을 검수하며 난해한 부분이 있나 확인하여 정리하도록 하겠습니다. 22년 한해 마무리 잘하시고 23년 새해에 다시 보도록 하겠습니다.
새해 복 많이 받으시고 소원 성취하세요. 👍👍👍
history
20231011 : 타이틀 변경