Windows
유저 → Bash Shell(or PowerShell) → CMD(명령 처리기) → 커널 → 드라이버 → 하드웨어
Linux
유저 → 쉘(Bash 등) → 커널 → 드라이버 → 하드웨어
-> 쉘: 사용자가 운영체제에 명령을 전달하는 인터페이스
+) Linux는 쉘에서 커널로 바로 연결
pwd (print working directory)
현재 내가 위치한 디렉터리(작업 경로)를 출력한다.
예) /home/user/project
현재 디렉터리에 존재하는 파일과 폴더 목록을 출력한다.
옵션:
ls -l : 파일 권한, 소유자, 크기, 수정 시간 등 상세 정보를 표시한다ll 로도 같은 결과를 얻을 수 있다(일부 환경에서는 alias 로 설정되어 있음)사용자별_권한 하드링크_수 파일의_소유자 파일의_그룹 파일크기 수정날짜 파일명ls -a : 숨김 파일(.으로 시작하는 파일)까지 모두 출력한다ls -al : 숨김 파일 + 상세 정보 모두 보기터미널 화면의 출력 내용을 모두 지우고 깨끗하게 만든다.
(단축키: Ctrl + L)
디렉터리를 이동할 때 사용하는 명령어.
형식: cd [경로]
주요 사용법:
cd /절대경로 : 루트(/) 기준으로 이동하는 절대 경로 방식cd .. : 상위 디렉터리로 이동cd ~ : 현재 로그인한 사용자의 홈 디렉터리로 이동cd - : 직전에 있었던 디렉터리로 이동 디렉터리 생성
옵션:
mkdir -p : 하위 디렉터리까지 생성디렉터리 삭제 (빈 디렉터리만 삭제)
파일 삭제
옵션:
rm -r : 디렉터리 삭제rm -rf : 빈 디렉터리가 아니여도 강제 삭제파일이 없으면 생성, 있으면 수정시간 변경
문자열 출력
주요 사용법:
echo $변수 : 변수 출력echo "출력내용" > file.txt : 출력 결과를 파일로 저장echo "출력내용" >> file.txt : 출력 결과를 기존 파일에 저장파일 내용 출력
주요 사용법:
cat file1.txt file2.txt > merged.txt : 파일 2개를 출력하고, 출력 결과를 파일로 저장 (= 파일 2개 합치기)긴 파일 페이지 단위로 보기
+) 나올 때는 q
주요 사용법:
/검색 내용 : less 후 하면 파일 내 검색. (n과 N으로 이전, 다음 검색 결과로 이동 가능)파일의 처음 10줄 출력
옵션:
head -n : n개 줄 출력파일의 마지막 10줄 출력
옵션:
tail -n : n개 줄 출력파일 복사
옵션:
cp -r : 디렉터리 복사cp -i : 덮어쓰기 방지파일, 디렉터리 이동 및 이름 변경
(같은 위치에 파일 명만 다르면 이름 변경 됨)
옵션:
mv -i : 덮어쓰기 방지파일, 디렉터리 검색
옵션:
find [경로] -name "파일명" : 특정 이름의 파일을 검색.find [경로] -name "*.확장자" : 특정 확장자를 가진 파일을 검색.find [경로] -size +숫자c : 특정 크기 이상의 파일을 검색.find [경로] -mtime -숫자 : 최근 숫자일 이내에 수정된 파일을 검색.파일 내 특정 문자열 검색
옵션:
grep -n : 검색 결과에 줄 번호 표시grep -i : 대소문자 구분 없이 검색grep -v : 특정 문자열이 포함되지 않은 줄 출력현재 실행 중인 프로세스 확인
옵션:
ps -e : 모든 실행 중인 프로세스 확인ps -aux : 실행 중인 프로세스 상세 출력ps aux | grep "프로세스명" : 특정 프로세스 검색프로세스 종료
옵션:
kill -9 : 강제 종료pkill 프로세스명 : 특정 이름 가진 프로세스 전부 종료이전에 실행한 명령어 목록 확인
옵션:
history | grep "명령어" : 특정 명령어 검색!번호 : 특정 번호에 해당하는 명령어 다시 실행!! : 가장 최근에 실행한 명령어 다시 실행.!명령어 : 가장 최근에 실행한 특정 명령어 다시 실행.파일 및 디렉토리 권한 변경
+) 권한 : 유저권한/그룹권한/이외권한 순서.
읽기 : 4
쓰기 : 2
실행 : 1
그리고 권한이 있는 걸 다 더해서 씀
ex)
760은
유저는 읽기/쓰기/실행 가능
그룹은 읽기/쓰기 가능
이외는 권한 없음
아니면 그냥 chmod 대상연산자권한 파일명 같이 써도 된다.
대상 : u(user), g(group), a(all) (이거 설정 안하면 모두에게 추가 됨)
연산자 : +(권한추가), -(권한제거), =(해당 권한 설정후 나머지는 제거)
권한 : r(읽기), w(쓰기), x(실행)
ex) chmod u+w file.txt
유저에게 쓰기 권한 추가
파일 및 디렉토리 소유권 변경
+)chown 사용자:그룹 파일명 으로 파일의 소유자와 그룹도 변경 가능.
옵션:
chown -R 사용자:그룹 디렉토리명 : 디렉토리 및 내부 파일들도 소유권을 변경.전체 디스크 용량 확인
+)du -h 하면 특정 디렉토리 용량 확인
원격서버로 SSH를 이용한 파일 전송
옵션:
scp -r 디렉토리 user@서버:/경로/ : 원격 서버로 디렉토리 전송.scp user@서버:/경로/파일명 로컬경로/ : 원격 서버에서 파일 다운로드.scp -r user@서버:/경로/ 로컬경로/ : 원격 서버에서 디렉토리 다운로드.인터넷에서 파일을 다운로드
옵션:
wget -O 저장할파일명 URL : 다운로드할 파일 이름을 변경.wget -b URL : 백그라운드에서 다운로드 실행.wget -i 파일명 : 파일에 저장된 여러 개의 URL을 한 번에 다운로드.특정 웹 페이지의 데이터를 가져오기
옵션:
curl -o 파일명 URL : 데이터를 파일로 저장.curl -I URL : HTTP 응답 헤더만 출력.curl -H "헤더" URL : 특정 요청 헤더를 추가하여 API 요청.curl -X POST -H "Content-Type: application/json" -d '데이터' URL : JSON 데이터를 POST 요청으로 전송.curl -s -o /dev/null -w "%{http_code}\n" URL : 응답 상태 코드만 출력.명령어를 백그라운드에서 실행.
실행중인 백그라운드 작업목록 확인
중지된 작업을 백그라운드에서 다시 실행.
백그라운드 작업을 포그라운드로 전환.
터미널 종료 후에도 프로세스 실행 유지.
옵션:
nohup 명령어 > output.log 2>&1 & : 출력을 특정 파일에 저장하며 실행.