시스템 프로그래밍을 하는데 유용한 기본 도구들을 알아보자 !
얘네들은 알아두면 정말 편하다 ! 그리고 정말 많이 쓰인다 ! 😅
telnet - 리눅스 시스템 접속 (telnet ***.co.kr)
ssh - 리눅스 시스템 접속 (ssh ***.co.kr)
exit - 리눅스 시스템 접속 해제 (exit)
logout - 리눅스 시스템 접속 해제 (logout)
pwd - 현재 디렉토리 경로 출력
ls - 디렉터리 내용 출력
* 옵션
-a : 숨김 파일 출력 (ls -a /tmp)
-l : 파일 상세 정보 출력 (ls -l)
cp - 파일 복사, 디렉터리 복사 (cp a.txt b.txt)
* 옵션
-r : 디렉터리 복사 (cp -r dir1 dir2)
cd - 디렉터리 이동 -> // 현재 위치를 이동시키는 느낌!
mv - 파일명 / 디렉터리 명 변경 (mv a.txt b.txt, mv dir1 dir2)
rm - 파일 삭제, 디렉터리 삭제
* 옵션
-r : 디렉터리 삭제 (rm -r dir1)
mkdir - 디렉터리 생성 (mkdir dir1)
rmdir - 비어있는 디렉터리 삭제 (rmdir dir1)
cat - 파일 내용 출력 (car a.txt)
more - 화면 크기 단위로 파일 내용 출력 (more a.txt)
chmod - 파일/디렉터리 접근 권한 변경 (chmod 755 a.exe, chmod go+x a.exe)
grep - 패턴 검색 (grep abcd a.txt)
ps - 현재 실행 중인 프로세스의 정보 출력 (ps, ps -ef)
* 옵션
-ef : 모든 프로세스의 상세 정보 출력
kill - 프로세스 강제 종료 (kill 5000)
* 옵션
-9 : 강제 종료 (kill -9 5001)
su - 사용자 계정 변경 (su)
* 옵션
- : 변경할 사용자의 환경 초기화 파일 실행 (su-han02)
tar - 파일/디렉터리 묶기
* 옵션
cvf: tar 파일 생성 (tar cvf a.tar*)
tvf: tar 파일 내용 보기 ( tar tvf a.tar)
xvf: tar 파일 풀기 (tar xvf a.tar)
whereis - 파일 위치 검색 (whereis ls)
which - 파일 위치 검색 (which telnet)
vi test.c
다음과 같이 파일명을 지정해 문서를 열 수 있다 !
컴파일이란?
컴파일이란 텍스트로 적힌 프로그램을 시스템이 이해할 수 있는 기계어로 변환하는 과정이다.
보통 말하는 컴파일이란,
보통 컴파일 과정과 라이브러리 링크 과정을 하나로 묶어서 수행하는 것을 의미한다.
<구체적인 설명>
test.c 파일을 컴파일하면 오브젝트 파일인 test.o 가 생성되고
이것을 라이브러리 함수와 링크한 실행 파일이 생성된다.
test.c 에서 printf() 함수만 사용했으므로 gcc 라이브러리인 Libgcc.a에서 print.o 파일을 찾아 링크한다.
프로그램을 컴파일 하려면 컴파일러가 설치되어 있어야 한다.
이 gcc 라는 컴파일러는
C 프로그램을 컴파일 해 실행 파일을 생성하고
gcc [옵션][파일명]
의 형태로 사용한다.
사용 예
gcc test.c
gcc -c test.c // -c 옵션은 오브젝트 파일만 생성 시 사용
gcc -o test test.c // -o 옵션은 지정한 이름으로 실행 파일을 생성할 때 사용
gcc는 기본적으로 /usr/bin 디렉터리에 설치되며 별도로 경로 설정을 하지 않아도 된다.
또한, 파일 명을 지정하지 않았을 시 기본 파일명은 a.out 이다.