학교 수업/임베디드 시스템

[리눅스 프로그래밍]2. 리눅스 사용

흑요석s 2022. 10. 11. 00:46

1. 기본 명령어

$date : 날짜 및 시간확인
$hostname : 호스트 이름 확인
$uname : 현재사용 운영체제 (-a : 호스트이름, 시스템 사양 확인)
$whoami : 사용자 아이디 확인
$ls : 디렉토리 내용 확인
$passwd : 패스워드 확인
$clear : 터미널 화면 초기화

 

 2. 파일 종류

  • 일반 파일(ordinary file) : 데이터를 가지고 있고 디스크에 저장됨.
  • 디렉터리 : 파일들을 계층적으로 조직화하는데 사용하는 특수파일
  • 특수파일(장치 파일) : 물리적인 장치에 대한 내부적 표현,키보드(stdin), 모니터(stdout) 등도 파일처럼 사용.
  • 심볼릭 링크 파일 : 어떤 파일을 가리키는 또하나의 경로명을 저장하는파일 (포인터와 같은 역할)

 

3. 디렉터리

<디렉터리 관련 명령어>
$pwd : 현재 작업 디렉터리 출력
$mkdir : 새 디렉터리 만들기
$cd [dir]: 디렉터리 이동 
~ :  홈 디렉터리 이동
.  :  현재 디렉터리
.. :  부모 디렉터리
절대경로 : 루트부터 경로이름 정확히 적는것.
상대경로 : 현재 작업 디렉터리부터 시작.

$ ls  : 파일 및 디렉터리 리스트(현재 디렉터리)
<ls 명령어 조합 : 여러개 입력하면 함께 적용 (ex)-asl : a,s,l 모두 적용>
-a : 숨겨진 파일 포함
-s : 파일의 크기
-l : 파일의 상세 정보
-F : 파일의 종류 출력
-R : 모든 하위 디렉터리 리스트

 

4. 파일 관련 명령어

명령어 의미 사용
cat [file] 파일 내용 출력 $cat > list1.txt
내용
^D

=> list1.txt 를 생성해 내용 입력.
more [file] 페이지 단위로 파일 내용 출력 다음페이지 보기 : space bar

head [file] 파일의 앞부분 출력(10줄)  
tail [file] 파일의 뒷부분 출력(10줄)  
wc [file]  줄/단어/문자수 세기 $wc cs1.txt

=> 38 318 2088 cs1.txt
cp [file1] [file2] [dir] 파일 1 의 복사본 파일 2 를 dir 에 만듬  
mv [file1] [file2] 파일 1의 이름을  파일2로 변경  
mv [file1] [file2] [dir] 파일을 디렉터리 내로 이동  
rm [file] 명령줄 인수로 받은 파일들을 지운다. $rm -i 
=> i 는 대화형 옵션 (삭제여부를 물어봄)

$rm -r [dir]

=> 디렉터리 내 모든 파일/폴더 지움. 
rmdir [file] 빈 디렉터리를 삭제한다. 디렉터리 내에 아무것도 없어야 함.
ln [file1] [file2] 기존 파일에 대한 또 하나의 새로운 이름(링크) 생성
file2 가 file1을 가르킨다.
$ln [-s] [file1] [file2]

하드링크 : 기존파일에 대한 새로운 이름
=> 한 파일의 내용을 수정하면 다른 파일도 수정됨.
=> 원본이 삭제되어도 살아 있음.


심볼릭 링크 [-s] : 서로 별도의 파일
(간접적인 포인터 역할)
=> 링크 파일은 경로정보만을 가짐.
=> 원본 파일 삭제시 죽어 버림.
grep [keyword] [file] 텍스트 파일들에서 keyword포함한 모든 줄의 위치와 그 줄을 출력하는 명령어  

 

5. 파일 속성

  • 권한은 r, w, x (읽기, 쓰기, 실행) 로 나뉨.
  • 사용자는 owner, group, others(소유주, 그룹, 기타)로 구분함. 
명령어 의미 사용
chmod [8진수 3자리] [file] 8진수에 맞춰 file의 사용권한 지정 $chmod 664 cs.txt 

=> rw- rw- r-- 의 사용권한 가짐.
chown [userfile] 파일, 디렉터리 소유자 변경  
chgrp [groupfile] 파일의 그룹 변경  

 

6. 입출력 재지정 및 파이프

  • 출력 재지정 : 표준출력 내용을 파일에 저장.
  • 입력 재지정 : 표준입력을 파일에서 받음.
명령어 의미 사용
cat > list1.txt (출력 재지정) list1.txt 에 입력된 내용 생성 $cat > list1.txt
내용
^D

=> list1.txt 를 생성해 내용 입력.
cat  list1.txt list2.txt > list3.txt list1.txt 와 list2.txt 를 연결하여 list3 생성  
cat >> list1.txt
내용
^D
list1.txt 에 내용추가  
wc < list1. txt 표준입력을 (키보드대신) 파일에서 받는다. $wc < list.txt
4 17 71 list.txt
wc << 단어 명령어 << 단어
=> 해당 단어가 나타날때까지 입력내용으로 받는다.
$wc << end
hello !
word count
end

2 4 20

 

  • 파이프 :  명령어 1의 표준출력이 파이프를 통해  명령어2의 표준 입력이된다.
<파이프 활용 예제>
1. 현재 폴더 내 파일 이름 내림차순 정렬
$ls | sort -r

2. 로그인된 사용자수 출력
$ls | wc -l