+ 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다.
시스템 관리 명령
whoami : 사용자의 이름을 표시한다.
who : 현재 로그인 사용자를 표시한다.
리눅스는 Multiuser System이기 때문에 여러 사용자가 함께 사용 가능하다.
uname : 시스템 정보를 표시한다.
-a : 모든 시스템 정보
-r : 커널 Release
-n : 호스트 명
-m : 머신 타입
-p : Processor 타입
-s : OS의 시스템 타입
-v : 커널 버전 정보
man [명령어] : 명령어의 사용법을 출력한다.
free : 메모리 사용량을 확인한다. (기본단위: KB)
-h : GB, MB, KB 형태로 변경하여 출력 (-h는 보통 보기 좋게 출력하는 옵션)
-s [second] : 지정한 초마다 메모리 사용량을 출력
Mem : RAM의 용량을 출력 (Total = Used + Free + Buff/Cache)
Swap : RAM이 부족할 때 사용되는 가상메모리 사용량 출력 (HDD의 일부분을 사용)
(RAM에 load되어 있으나 사용하지 않는 내용을 Secondary Storage로 옮겨 놓고 RAM의 여유분을 확보한다. = Swapping)
jobs : 현재 터미널(Shell)에서 실행 중인 작업을 표시한다.
-l : 프로세스 ID (PID) 표시
프로세스 상태는 Running, Stopped, Terminated, Done
job번호는 %를 앞에 붙여야한다.
ps : 프로세스 정보를 표시한다.
-e : 현재 실행 중인 모든 프로세스 표시
-f : 사용자, 시작 시간 표시
-u : 현 사용자의 프로세스 표시
-p [PID] : 지정한 프로세스의 정보만 표시
-e f : 프로세스의 관계를 트리 형식으로 표시 (parent, child)
top : 프로세스 정보를 실시간으로 표시한다.
Priority, Virtual, Resident, Status, %CPU, %MEM 등을 표시
-d [second] : 지정한 초마다 표시 정보 갱신 (기본: 3초)
-p [PID] : 지정한 프로세스 ID의 정보만 표시
kill : 프로세스에게 신호(signal)을 통지한다.
-9 [PID]: 강제 종료 통지. 종료에 따른 후속 작업 없이 즉시 종료
wait : 실행한 프로세스가 종료하기를 기다리는 명령
watch : 주기적으로 명령을 실행하고 결과를 화면에 표시한다.
-n [sec] : 표시 시간 간격 (기본: 2초)
-d : 변경되는 부분을 강조하여 표시
예) watch -d -n 1 date : 1초마다 날짜/시간 표시, 변경되는 부분 강조
예) watch -d ls : 2초마다 폴더 내용 표시, 변경되는 부분 강조
which [명령어] : 현재 사용되고 있는 명령어의 위치를 알려준다.
예) which vi
파일 시스템 관리 명령
df : 디스크 사용량을 표시한다.
-h : 읽기 쉬운 형태로 표시
du : 디렉토리와 파일의 사용량을 표시한다.
| more : 출력을 모니터로 보내지 않고 more라는 앱을 통해 출력 (긴 출력값을 볼 때 사용)
(more는 한 화면(페이지)이 꽉 차면 pause, space바를 통해 다음 페이지로 이동할 수 있다.)
pwd : print working directory의 약자로, 현재 작업 path를 표시한다.
cd : 작업 디렉토리의 위치를 변경한다. (change directory)
. : 현재 위치
.. : 부모 디렉토리로 변경
~ : 홈 디렉토리로 변경
- : 이전 디렉토리로 이동
ls [디렉토리]: 디렉토리의 내용을 표시한다. ([디렉토리]를 입력하지 않을 시 현재 디렉토리 내용 표시)
-a : 모든 파일 표시 (Hidden File 포함)
-l : 자세한 표시
-h : 보기 쉽게 표시
ex) ls -al, ls -alh /etc > ls.etc (>: 리디렉션: ls.etc 파일에 저장 or 덮어씀)
+ 디렉토리 내용을 읽는 방법 +
drwxrwxrwx
= d/- + rwx/--- + rwx/--- + rwx/---
= 디렉토리/파일 + User Permission + Group Permission + Others Permission
r : read (읽기)
w: write (쓰기)
x : execute (실행)
chmod [u/g/o/a] [+/-/=] [r/w/x] [file] or chmod [8진수] [file] : 파일 mode를 변경한다.
u : User, g : Group, o : Other, a: All
+ : permission 추가, - : permission 제거, = : permission 변경
예) chmod u+x file : file의 User Permission에 x(execute)를 추가한다.
예) chmod a = rwx file : file의 모든 권한을 rwx로 변경한다.
=> rwxrwxrwx는 2진수로 111111111로 나타낼 수 있고, 이를 8진수로 바꾸면 777이다.
=> 따라서, chmod a = rwx file 코드는 chmod 777 file와 같다.
++ 2진수를 8진수로 변환하는 방법은 앞에서부터 3개씩 잘라서 8진수로 변환 후 붙이면 된다.
=> 111111111 => 111/111/111 => 7/7/7 => 777
cp : 파일, 디렉토리를 복사한다.
-r : 하위 디렉토리, 파일을 모두 복사 (recursive)
rm : 파일, 디렉토리를 삭제한다.
-r : 하위 디렉토리, 파일을 모두 삭제 (recursive)
mkdir : 디렉토리를 생성한다.
rmdir : 디렉토리를 삭제한다.
mv : 파일, 디렉토리를 이동하거나 이름을 변경한다.
tree : 파일, 디렉토리를 트리 구조로 표시한다. (설치 필요: sudo apt install tree)
-d : 디렉토리만 표시
tree . : 현재 위치(하위)의 파일, 디렉토리를 트리구조로 표시
tree /home : /home (하위)의 파일, 디렉토리를 트리구조로 표시
tree -d /etc > dic.etc : /etc (하위)의 디렉토리만을 트리구조로 표시 후 dic.etc라는 파일에 리디렉션(저장)
find : 파일 검색 및 결과를 이용하여 부가 기능을 실행한다.
-name : 검색할 이름 지정
-exec : 검색결과를 이용하여 다른 명령 실행
예) find /etc -name "*.txt" : etc 디렉토리 안에 .txt 이름이 포함된 파일들을 출력한다.
예) sudo find / -name "*.txt" -exec cp {} ttdir \; : ttdir 디렉토리에 앞의 결과 값({})을 복사
less, more : text 파일을 읽는다. (화면 이동은 vi 명령어와 동일)
예) less file, ls -l |more
xxd [파일] : 파일을 16진수 또는 2진수 값으로 보여준다.
-b : 2진수
head : 파일의 앞 부분을 출력한다.
-n [linenumber] : 파일의 첫 라인부터 지정한 라인까지 출력
tail : 파일의 뒷 부분을 출력한다.
-n : [linenumber] : 지정한 라인부터 끝까지 출력
예) -n 2 : 파일의 뒷 부분 두 라인 출력
예) -n +2 : 두 번째 라인부터 끝까지 출력
날짜, 시간 처리 명령
date : 현재 날짜, 시간 정보를 표시한다.
+ : 표시 형식을 나타낸다. (format을 정해준다.)
%y%m%d : 년(두 자리), 월, 일 출력
%Y : 4자리 연도 출력
%H%M%S : 시, 분, 초 출력
예) date +%Y%m%d : 20230907으로 출력
예) echo $(date +%M%S) : 화면에 명령($()) 결과값 date +%M%S 값을 출력
문자열 처리 명령
cat [파일] : 파일 내용을 화면에 출력한다. (여러 파일 지정 가능)
예) cat file1 : file1을 화면에 출력
예) cat file1 file2 > file3 : file1 file2를 동시에 화면 출력 후 file2에 저장(생성)
echo : 문자열이나 변수를 화면에 출력한다.
cut : 문자열에서 원하는 부분만 출력한다.
-c[number] : 위치 지정한 문자 출력 (2-, -3)
-d : 구분자 지정
-f : 구분자로 구분된 Field 출력
예) uname -a | cut -c7-
예) uname -a | cut -d ' ' -f3
tr : 문자열을 치환하거나 삭제한다. (transport)
-d : 문자를 삭제
예) uname -a | tr '[a-z]' '[A-Z]'
diff : 두 파일을 비교하여 다른 부분을 출력한다.
sort : Text를 정렬한다.
-k : 정렬 기준
-t : Field 구분자 (기본값은 공백과 탭)
-r : 역순 정렬
grep, egrap : 지정한 문자열을 포함하는 행을 검색한다.
-i : 대소문자 구분 없이 검색
-v : 해당 문자 제외
-n : 검색한 문자의 행을 출력
-l : 검새된 문자가 들어있는 파일 이름 출력
pattern : 문자열 또는 정규 표현식 (Regular Expression)으로 표현
awk : (Aho Weinberger kernighan) 문자열 처리 Script
$1, $2, $3 .. : 각 Line의 문자열에 대한 변수
복사, 붙여넣기 => ctrl + insert, shift + insert
'Computer Science > Embedded Software' 카테고리의 다른 글
[Embedded Software] Embedded System 개발 (example) (1) | 2023.09.19 |
---|---|
[Embedded Software] Shell Script 실습 (0) | 2023.09.15 |
[Embedded Software] Shell Script (0) | 2023.09.13 |
[Embedded Software] Linux Commands 실습 (3) | 2023.09.08 |
[Embedded Software] Linux Basic (0) | 2023.09.06 |