[ServerProgramming] UNIX의 BASIC COMMAND를 배워보자!
2024. 10. 5. 07:00ㆍCS/ServerProgramming
1. Shell
쉘이란 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
- BASH : 거의 모든 리눅스 배포판에서 사용하는 쉘. 가장 많고 가장 범용적이다.
- CSH : C 스타일 문법의 쉘
- KSH, DASH, TCSH 등..
- SH : 스크립트 용으로 많이 사용됨.
shell commands의 기본 규칙은 다음과 같다.
- command --option xxx
- command -option xxx
- 빈칸이 구분자로 사용된다. 빈칸을 구분자가 아닌, 명령에 포함하려면 " 또는 ' 를 사용하면 된다.
- command —help , man command: 옵션 등 도움말
2. 기본 명령어
로그인/로그아웃
명령 기능 주요 옵션 예제
ssh | 유닉스 시스템에 접속 |
logout, exit | 유닉스시스템 접속해제 |
passwd | 암호 변경 |
파일/디렉토리 조작
명령 기능 주요 옵션 예제
pwd | 현재 디렉토리 경로 출력 | ||
ls | -a : 숨김파일출력 | ||
-l : 파일 상세정보 출력 | |||
-F : 종류 구분 | |||
cp | 파일/디렉토리 복사 | -r : 디렉토리 통째로 복사 | cp a.txt b.txt : 파일 명 바꾸기 |
mv | 파일/디렉토리 이름변경과 이동 | ||
mkdir | 디렉토리 생성 | ||
rm | 파일/디렉토리 삭제 | -r : 디렉토리 통째로 삭제 | |
주의! rm -r 로 디렉토리를 삭제하면 하위 디렉토리의 모든 파일이 삭제되고 복구도 불가능. | |||
cat | 파일 내용 출력 | ||
grep | 특정한 파일에서 특정한 패턴 검색 | -r : 하위 폴더까지 검색 | |
-n : 검색 결과 파일의 행 번호 표시 | grep abcd a.txt : a.txt 에서 abcd 패턴 모두 검색 | ||
grep -rn 'YouGotIt' : 작업 디렉토리에서 YouGotIt 문자열 검색 | |||
find 경로 표현식1 표현식2 ... | 파일 시스템에서 파일 검색 | 주요 표현식은 다음과 같다. | |
-name 문자열 : 제목 검색 | |||
-empty : 빈 디렉터리 혹은 크기가 0인 파일을 검색 | find /tmp/kernel -name fcntl.c |
프로세스 조작
명령 기능 주요 옵션 예제
ps | 현재 실행 중인 프로세스의 정보 출력 | -ef : 모든 프로세스에 대해 상세 정보 출력 | `ps -ef |
kill | 프로세스 강제 종료 | -9 : 강제 종료 |
경로 및 환경설정 & Tips
절대 경로
- / 로 시작하는 경로
상대 경로
- /로 시작하지 않는 경로
alias
- 특정 명령의 다른 이름 지정
env
- 지금 자신의 환경 변수 나열
PATH
- 실행파일 또는 참조할 파일의 위치 결정
tar
- 여러 파일을 하나로 묶음
zip , gz
- 여러 파일을 하나로 압축
history
- 사용한 명령어들 나열
indent
- 소스코드 예쁘게 정렬
- indent npsl bli0 sob nbc i8 l1000 code.c
- alias ind='indent npsl bli0 sob nbc i8 l1000'
Ctrl + s && Ctrl + q
- 스크린 출력 정지/재개
ctrl + r
- history에서 최근 사용된 명령 자동 완성
Meta characters
Characters Function
> | 결과물을 새로운 파일로 저장. |
ls > aa.txt : ls의 결과를 aa.txt 파일에 저장 | |
aa.txt가 이미 있으면 삭제하고 새로 만듬. | |
>> | 파일이 이미 있으면 그 파일에 덧붙여서 추가. |
< | standard 입력으로 파일을 사용. |
? | 하나의 어느 문자 |
` | ` |
; | 한 라인에 여러 명령어를 줄 때 ;로 구분 |
& | background 실행 |
scp
- cp 명령과 유사하나 ssh 프로토콜을 이용해서 원격 머신에 복사 수행
- scp filename server_name:path
- scp -P 221 aa.txt swist2.cbnu.ac.kr:/tmp/bb.txt : aa.txt를 swist2 서버에 /tmp/ 경로에 bb.txt 이름으로 복사
- 단, tmp는 서버에 존재하는 디렉토리어야 함.
실습
작업 디렉토리의 모든 하위 디렉토리에 대해 `YouGotIt`이 포함된 파일과 그 행을 출력해보자!
grep -rn 'YouGotIt'
'CS > ServerProgramming' 카테고리의 다른 글
[ServerProgramming] Make (0) | 2024.10.08 |
---|---|
[ServerProgramming] Vi Editor, GCC (0) | 2024.10.07 |
[ServerProgramming] 운영체제 복습 - 프로세스와 스레드 (0) | 2024.10.04 |