250327 목 TIL
bash에서
- start .
-> 탐색기 열기
- pwd
-> 현재 디렉토리 확인
-rmdir dir1
-> dir1 폴더 삭제
-rm -r bashTest
-> bashTest 폴더와 내부 파일 삭제
- rm -rf ~/bashTest
-> bashTest 폴더와 내부 파일 강제 삭제
-> 권한 제한도 삭제 확인도 없이 그냥 삭제해버림
- mkdir ~/bashTest
->bashTest 폴더 생성
-mkdir dir1 dir2
-> dir1, dir2 폴더 한번에 생성
-mkdir -p ./dir1/dir2
-> 현재 디렉토리에서 dir1폴더를 만들고 그 안에 dir2 폴더를 만든다
-> -p는 필요한 경우 상위 디렉토리도 생성하는 옵션.
- cd ~/bashTest
->bashTest 폴더 경로로 이동
- touch test.txt
-> test.txt라는 빈 파일 생성
->동일한 이름의 기존 파일이 있다면 파일을 변경하지 않지만 변경시간은 최신화된다
- ls
-> 현재 폴더의 파일 폴더 보기
-ls -a
-> 숨김 파일까지 보기
-ls -l
-> 상세보기
-ls -al(보통 ll로 alias 되어 있음)
-> 숨김 파일 보기 & 상세보기
-alias ll="ls -al"
-> ll이라는 alias로 ls -al을 지정
-> 프로필에 등록하지 않는 한 터미널을 종료하면 사라진다
-ls -R
-> 디렉토리 내용 전체를 재귀적으로 트리 형태로 탐색해 표시
-clear
->터미널 창에서 화면 정리
-cd -
-> 직전 디렉토리로 이동
-cd ~
-> 최상위 디렉토리로 이동
-cd ..
-> 상위 디렉토리로 이동
-echo "hello world"
-> hello world를 화면에 표시
-echo "hello world" > test.txt
-> test.txt 파일에 내용을 덮어씌운다
-> test.txt파일이 없다면 만들어서 넣는다
-echo "hello world" >> test.txt
-> test.txt파일에 내용을 추가한다
-cat test1.txt
-> test1.txt 파일을 읽어서 화면에 표시
-cat test1.txt test2.txt > mergeText.txt
-> test1.txt와 test2.txt의 내용을 mergeText.txt에 추가한다
-less longText.txt
-> 긴 텍스트파일의 내용을 페이지단위로 볼 수 있음
-> q로 종료 가능
-head -n longText.txt
-> 긴 텍스트파일의 첫 n번째 줄까지 표시(n은 생략하면 10)
-tail -n longText.txt
-> 긴 텍스트파일의 마지막 n번째 줄까지 표시(n은 생략하면 10)
-cp from.txt to.txt
-> from.txt 파일 내용을 to.txt라는 파일에 복사
-cp from.txt dir1/
->from.txt 파일을 dir1 폴더 안에 복사
-cp from.txt dir1/copy.txt
->from.txt 파일을 dir1 폴더 안에 copy.txt라는 이름으로 복사
-cp -r dir1 dir2
-> dir1 폴더를 dir2라는 이름으로 복사
-cp r test.txt dir1 dir3/
-> test.txt와 dir1 폴더를 dir3 안에 복사
-cp -i text.txt copy.txt
-> 만일 copy.txt가 이미 디렉토리에 존재하는 경우 덮어쓰기 전에 물어봄
-mv test.txt dir1/
-> dir1 폴더에 test.txt를 이동
-mv test.txt rename.txt
-> test.txt를 rename.txt로 이름을 변경
-find ~/testDir/ -name "*.txt"
-> testDir 디렉토리 안의 txt 파일 검색
-find ~/testDir/ -size +1c
-> testDir 디렉토리 안의 1바이트 이상인 파일 검색(-1c라면 1바이트 이하인 파일 검색)
-find ~/testDir/ -mtime -1
-> testDir 디렉토리 안의 파일 중 만들어진지 1일 이하의 파일 검색(분단위도 가능)
-grep "search word" text1.txt
-> test1.txt에서 search word를 검색해서 search word가 포함된 그 줄들을 보여줌
-> -i 옵션을 붙이면 대소문자 구분 안 함
-grep -v "word" text.txt
-> word가 포함되지 않은 줄들을 보여줌
-grep -v "mug" text.txt | grep "jar" text.txt
-> "mug"가 포함되지 않은 것들 중 "jar"가 포함된 줄들을 출력
-history
-> 실행했던 명령어 목록과 번호 확인
-history | grep 검색어
-> 검색어로 실행했던 명령어 검색
-!번호
-> 특정 번호에 해당하는 명령어 다시 실행
->!!
->가장 마지막에 실행한 명령어 다시 실행
-!명령어
-> 가장 최근에 실행한 특정 명령어 다시 실행(이전 실행한 명령어를 검색해 그 명령 다시 실행)
----
bash 말고 리눅스에서 실행 가능한 명령어들
- procps-ng 설치 후(dnf install -y procps-ng)
-ps
-> 현재 실행중인 프로세스 확인
-ps -e
-> 모든 실행중인 프로세스를 확인
-ps aux
-> 실행 중인 프로세스를 상세히 확인
-ps aux
-> 실행 중인 프로세스를 상세히 출력
-ps aux | grep 프로세스명
-> 실행중인 프로세스 중 프로세스명인 특정 프로세스만 출력
-kill [pid]
-> ps로 볼 수 있는 프로세스 아이디 pid 에 해당하는 프로세스를 종료
-kill -9 [pid]
-> ps로 볼 수 있는 프로세스 아이디 pid 에 해당하는 프로세스를 강제 종료
- pkill 프로세스명
-> 프로세스명과 일치하는 모든 프로세스를 종료
-ls - l
->파일의 현재 권한을 확인
->권한이 drwdr-xr-x라고 한다면
->첫 번째 d는 디렉토리라는 뜻이며 파일이면 -로 표현됨
->나머지 9자리를 3자리씩 끊어서 w는 읽기 권한/r는 쓰기 권한/x는 실행 권한
->각 세 자리는 각각 소유자, 그룹, other의 권한을 나타냄
-chmod +x 파일명
-> 실행 권한(x를 하면 실행 권한이지만 읽기 권한은 r, 쓰기 권한은 w) 추가(+를 -로 변경해 권한을 뺏을 수 있음)
-chmod 500 파일명
->r은 4, w는 2, x는 1로 해서 숫자를 더해 권한을 변경할 수 있음
->500이므로, 소유자의 권한 중 읽기 권한(4), 실행 권한(1)을 주고 그룹과 other에게는 권한을 주지 않는다는 뜻
->만약 chmod 777 파일명이라면 모든 사용자에게 모든 권한을 준다는 뜻
-chown 사용자 파일명
->파일의 소유자를 변경
- chown 사용자: 그룹 파일명
-> 파일의 소유자와 그룹을 변경.
- chown -R 사용자:그룹 디렉토리명
-> 디렉토리 및 내부 파일들의 소유권을 변경
-df -h
-> 전체 디스크 사용량을 GB/MB 단위로 표시
-du -h
-> 하위 디렉토리의 크기 확인
-du -sh
->해당 디렉토리의 총 크기 확인
-diff text1.txt text2.txt
->두 파일 차이점 비교
- diff -q text1.txt text2.txt
-> 두 파일이 다른지 여부만 출력
- diff -y text1.txt text2.txt
-> 두 파일의 차이점을 나란히 표시
- diff --suppress-common-lines text1.txt text2.txt
-> 변경된 줄만 출력
- diff -r text1.txt text2.txt
->두 디렉토리의 파일 차이점 비교
-sed 's/기존문자열/새문자열/' 파일명
-> 특정 문자열을 한 줄에 하나만 찾아 변경
-sed 's/기존문자열/새문자열/g' 파일명
-> 특정 문자열을 전부 찾아 변경
-sed '숫자s/기존문자열/새문자열/' 파일명
-> 특정 줄에서만 문자열 변경
-sed '숫자d'
-> 특정 줄 삭제
-sed '/패턴/d' 파일명
-> 특정 패턴이 포함된 줄 삭제
-sed -i 's/기존문자/새문자/g' 파일명
-> 원본 파일을 직접 수정
-awk '{print $1}' 파일명
->1번 열 추출
-> 행렬 형태의 텍스트 파일에서 특정 열을 추출하고 가공하는데 사용
-awk '/패턴/ {print $1}' 파일명
-> 특정 패턴이 포함된 행의 $1열 출력
- awk '$2 > 25 {print $1, $2}' 파일명
-> $2가 25보다 큰 행의 $1, $2열 출력
- awk '{printf "출력형식", $1, $2, $3}' 파일명
-> 출력 형식을 지정해서 $1, $2, $3열 출력
-> 출력 형식의 예시 "%-10s %-10s %-5d\n"
- awk 'NR > 1 {print $1}' 파일명
-> 첫 행을 제외하고 나머지 행 중 $1열 출력
- awk 'NR > 1 {sum += $2} END {print "총 나이:", sum}' 파일명
-> 첫 행을 제외하고 나머지 행 중에서, $2열들을 sum으로 합하고, 총 나이: sum을 출력하도록 함
----
dnf install -y wget으로 설치 후 진행
-wget URL
-> 특정 URL의 파일 다운로드
-wget -O 새이름 URL
-> 특정 URL의 파일을 다운로드하고 다른 이름으로 저장
- wget -b URL
-> 특정 URL의 파일을 백그라운드 다운로드
- wget -i 파일명
-> 파일에 저장된 여러 개의 URL을 한번에 다운로드
-curl 파일명
->파일 받아오지만 저장하지 않고 출력
-> wget처럼 파일 다운로드도 가능하지만, curl은 기본적으로 응답을 보여주기만 하며, API 테스트나 HTTP 요청 조작을 할 때 주로 사용
-curl -o 파일명
->파일 다운로드
-curl -I URL
-> http 응답 헤더 정보만 출력
-curl -H 헤더 URL
-> 요청 시 헤더를 포함해 요청
-curl -X POST -H "Content-Type: application/json" -d '데이터' URL
->예시: curl -X POST -H "Content-type: application/json" -d '{"name": "john"}' URL
-> JSON 데이터를 URL에 POST 요청으로 전송.
-ln -s ~/bashWork/dirA/dirB/example.txt ~/bashWork/dirA/symlink.txt
-> example.txt를 가리키는 symlink.txt라는 심볼릭 링크를 생성
- realpath 파일경로
-> 파일의 절대 경로를 출력
-realpath 심볼릭링크
-> 심볼릭 링크가 가리키는 실제 경로 출력
-stat 파일명
-> 파일 상세보기(크기, 소유자, 수정시간 등)
-stat 심볼릭링크
-> 심볼릭 링크 자체의 상세보기
-stat -L 심볼릭링크
->링크가 가리키는 실제 파일 상세보기
-locate [파일명]
-> 색인된 데이터베이스를 활용하여 빠르게 파일 검색
-> find보다 빠르지만, 최신 파일이 즉시 반영되지 않음
-updatedb
-> 색인 데이터베이스를 최신 상태로 업데이트
-locate -i "*.확장자"
-> 특정 확장자의 파일 검색 (대소문자 무시)
-locate -S
-> 색인된 파일 개수 및 통계 확인
-find [경로] -name "패턴" | xargs 명령어
-> 검색한 결과를 xargs를 통해 명령어에 전달
-xargs -I {} 명령어 {}
-> {} 위치에 파일명을 넣어서 실행
-xargs -n 숫자
-> 입력을 숫자 개씩 나누어 처리
-xargs -P 숫자
-> 최대 숫자 개의 작업을 병렬로 실행
----
dnf install -y tree로 설치 후 진행
-tree
-> 현재 디렉토리 구조를 트리 형태로 출력
-tree 디렉토리주소
->디렉토리 주소 아래의 디렉토리 구조를 트리 형태로 출력
-tree -L 숫자
-> 특정 깊이까지만 출력
-tree -h
-> 파일 크기 포함하여 출력
-tree -d
-> 디렉토리만 출력
-tree -P "패턴"
-> 특정 패턴의 파일만 출력
-tree > 파일명
-> 트리 구조를 파일로 저장
-sort 파일명
-> 기본 정렬 (알파벳순)
-sort -r 파일명
-> 역순 정렬
-sort -n 파일명
-> 숫자 크기 기준으로 정렬
-sort -nr 파일명
-> 숫자 역순 정렬
-sort -k숫자 파일명
-> 숫자번째 열 기준으로 정렬
-sort | uniq
-> 중복 제거 후 정렬
-wc 파일명
-> 줄, 단어, 문자 개수를 출력
-> 여러 파일을 입력하면 각각의 값과 총합을 출력
-wc -l 파일명
-> 줄 개수만 출력
-wc -w 파일명
-> 단어 개수만 출력
-wc -m 파일명
-> 문자 개수 출력
-wc -c 파일명
-> 파일의 바이트 크기 출력
-echo "내용" | tee 파일명
-> 출력 내용을 화면과 파일에 저장
-echo "내용" | tee 파일1 파일2
-> 여러 파일에 동시에 저장
-echo "내용" | tee -a 파일명
-> 기존 파일 내용을 유지하면서 추가
-명령어 | tee 파일명
-> 명령어 출력을 화면과 파일에 저장
-명령어 | sudo tee 파일명
-> sudo 권한이 필요한 파일 수정 시 유용
-명령어 &
-> 백그라운드에서 실행
-jobs
-> 실행 중인 백그라운드 작업 목록 확인
-Ctrl + Z
-> 현재 실행 중인 작업을 중지
-bg %번호
-> 중지된 작업을 백그라운드에서 다시 실행
-fg %번호
-> 백그라운드 작업을 포그라운드로 전환
-kill %번호
-> 특정 백그라운드 작업 종료
-nohup 명령어 &
-> 터미널 종료 후에도 실행 유지
-nohup 명령어 > output.log 2>&1 &
-> 출력을 output.log 파일에 저장하며 실행
->2가 에러, 1이 출력
-ps aux | grep "프로세스명"
-> 실행 중인 프로세스 확인
-kill PID
-> 특정 프로세스 종료
----
dnf install -y epel-release && dnf install -y htop 로 설치 후 진행
-top
-> 실시간으로 CPU, 메모리 사용량 및 프로세스를 모니터링
->htop를 쓰므로 top는 설치 안 돼 있음
-htop
-> top의 개선된 UI 버전, 키보드 조작이 더 쉬움
-top -u 사용자명
-> 특정 사용자 프로세스만 보기
-htop 사용 시 F3(검색), F5(트리 보기), F9(프로세스 종료)
-> 단축키를 활용한 빠른 조작 가능