본문 바로가기

Linux

리눅스 튜토리얼

명령어란?

 

 

명령어는 하나의 프로그램으로
which 명령어를 통해 
명령어가 저장된 위치를 확인할 수 있음

터미널 (CLI) 사용 기본 구조

[명령어] - [전달인자(argument)] - [옵션]

ping 8.8.8.8 -c 3

// ping = 명령어
// 8.8.8.8 = 전달인자(argument)
// -c = 옵션

명령어의 옵션을 확인하는 방법

-h 옵션 (=help)


PID : 프로세스 번호
PPID : 부모(상위) 프로세스 번호

zsh은 qterminal에 상속 돼 있음. (=qterminal 에서 zsh 을 실행)

vi 텍스트 편집기 사용법

 

i - 입력 모드
esc - 명령 모드

esc (명령 모드) 옵션

:w [파일 제목] - 저장
:q - 종료
:! - 강제?
// wq! - 강제? 저장 종료

/[찾을 문자열] - 문자열 검색 기능
/apple - apple 문자열 검색
ㄴ> 찾는 문자열이 여러 개인 경우 키보드에 n (next)을 이용해서 다음 문자열로 이동할 수 있음
// 대문자 N 은 역순 방향으로 찾는 문자열로 이동

:[이동할 줄] - 원하는 줄로 이동 가능
// :8 - 8번째 줄로 이동

dd - 줄 삭제
// 3dd - 마우스 커서 아래 3줄 삭제

파일 확장자

file 명령어 - 파일의 확장자 확인 가능


텍스트 파일 읽기 (cat, more)

more 명령어 - 내용이 긴 파일을 읽을 때, 사용
스페이스바로 끊어 읽기 가능
중간에 나가고 싶은 때, q

디렉토리 생성

mkdir [폴더 이름] - 폴더생성


복사

파일 복사
파일 복사
디렉토리 복사

※ 파일 복사 시
cp [복사 대상] [복사할 경로] [복사본 이름]
// cp text_file /home/kali/Desktop/text_file2

※ 디렉토리(폴더) 복사 시
cp -r [복사 대상] [복사할 경로] [복사본 이름]
// cp -r my_dir /home/kali/Desktop

 


삭제

rm [경로][파일]
// re /home/kali/Desktop/vi_test

rm -r [경로][디렉토리]
// re -r /home/kali/Desktop/rm_dir

-f : 강제 삭제 옵션
// re -rf /home/kali/Desktop/rm_dir
// rm -rf /

이동 (파일, 디렉토리 이동하기, 옮기기)

파일 이동
파일 이름 변경

 

※ 파일 이동 시
mv [이동 대상] [이동할 경로]
// mv /home/kali/Desktop/mv_test ~/my_dir

※ 파일 이름 변경 시
// mv mv_test mv_ChangeName

사용자 생성 & UID, GID

useradd [사용자 이름] - 사용자 생성

/etc/passwd

root:x:0:0:root:/root:/usr/bin/zsh

1. 계정이름 (ID)
2. 비밀번호 (PW) -> /etc/shadow
3. UID
4. GID
5. 사용자의 별명
6. 홈 디렉토리
7. 로그인 쉘

/*
alioth:x:1001:1001::/home/alioth:/bin/sh

1. 계정이름 (ID) : alioth
2. 비밀번호 (PW) : shadow
3. UID : 1001
4. GID : 1001
5. 사용자의 별명 : none
6. 홈 디렉토리 : /home/alioth
7. 로그인 쉘 : /bin/sh
*/

rwx 권한

-rw-r--r-- 1 root root

1. 소유자 권한
2. 그룹 권한
3. 기타 사용자 권한
4. 소유자
5. 그룹

특수권한

1. setuid
// 파일 실행 시, 파일의 소유주 권한으로 실행
// -rwsr-xr-x 1 root root 72344 Feb  4 15:28 /usr/bin/passwd
// 실행권한이 있을 때, rws(rwx)
// 실행권한이 없을 때, rwS(rw-)
// passwd -> 비밀번호 변경 명령어 -> 비밀번호 변경할 때(passwd 명령어를 실행할 때)는 root의 권한으로 실행

2. setgid
// 파일 실행 시, 파일의 그룹 권한으로 실행
// -rwsr-sr-x (r-x)
// -rwsr-Sr-x (r--)

3. sticky bit
// 디렉토리에 설정 -> 공유 디렉토리 (tmp)
// 스티키 비트를 설정한 디렉토리는 누구나 파일을 생성할 수 있고, 생성자만 삭제할 수 있음
// drwxrwxrwt  13 root root       4096 Apr  5 10:09 tmp
// rwt(rwx)
// rwT(rw-)

권한 변경

chmod [권한 변경] [파일 이름]
// chmod o-w test_file
// chmod 644 test_file 	(rw-r--r--)

/*
사용자 : u
그룹 : g
기타 사용자 : o

권한 부여 : +
권한 회수 : -

읽기 권한 : r (4)
쓰기 권한 : w (2)
실행 권한 : x (1)
*/

리눅스 데이터 스트림 (Data Stream)

파일 디스크립터(File Descriptor) : 값
- 표준 입력(Standard Input Stream) : 0
- 표준 출력(Standard Output Stream) : 1
- 표준 에러(Standard error Stream) : 2

리다이렉션 (Redirection)

명령어의 결과를 화면이 아닌 파일로 저장하고 싶을 때

출력 결과를 pwd_result 파일로 리다이렉션

pwd > result 
// (=pwd 1> result)

/*
cat result
/root/redirection_test
*/

id >> result 
// (=id 1>> result)
// 리다이렉션 기호(>)를 하나만 사용하면 result 파일에 먼저 존재하던 내용이 지워지기 때문에 >> 두 개 사용

/*
cat result
/root/redirection_test
uid=0(root) gid=0(root) groups=0(root)
*/

에러 메시지 때문에 찾는 파일의 경로를 보기에 가독성이 좋지 않은 상황
에러 메시지를 휴지통으로 리다이렉션함으로써 원하는 값만 출력
에러 메시지를 파일로 저장

find / -name "rockyou.text.gz"
// 권한이 없다는 에러 메시지 때문에 결과 값을 보기 힘듬

find / -name "rockyou.text.gz" 2> /dev/null
// find / -name "rockyou.text.gz" 2> /tmp/errorMsg
// 에러 메시지(2)를 리다이렉션 기호(>)를 통해 휴지통(/dev/null)으로 보냄
// 가독성 좋은 결과 값을 얻음

파이프 (PIPE)

어떤 프로세스의 출력을 다른 프로세스의 입력으로 넣어주고 싶을 때

디렉토리에서 파일 찾기

grep [찾을 패턴] [수색 범위(파일, 디렉토리)]
// grep root /etc/passwd

cat /etc/passwd | grep root
/*
파이프 기호(|) 사용 시, 
앞의 결과(cat /etc/passwd)를 표준 출력하지 않고, 
파이프 뒤 grep 명령어의 [수색 범위]에 해당하는 입력으로 넘김
*/

'Linux' 카테고리의 다른 글

칼리 리눅스 환경 세팅  (1) 2024.04.05