-
Linux Ubuntu 정리(기본)Back end/Server 2024. 4. 4. 09:59
1. 커맨드라인 사용법
1.기본 명령어
- 매뉴얼 조회: man
- 파일목록/내용 조회 관련 명령어: ls, cat, head, tail
- 검색/탐색 관련 명령어: grep, find
- 압축/해제 관련 명령어: tar, gzip/gunzip. zip/unzip
- 시간 관련 명령어: date, cal
- 기타 명령어: echo, exit, history
- 관리자 권한 실행: sudo
- 패키지 매니저: apt
- 텍스트 에디터: nano
+ 호스트네임 확인: hostname
+ ip 확인: hostname -i2. 디렉토리 내용 조회/이동/확인
- 직전 이동했던 디렉토리로 이동: cd -
- 모든 하위 디렉토리 조회: ls -al3. 파일 내용 조회
- 파일 내용 조회: cat
- 앞에 3줄만 조회: head 파일명 -n 3
(tail도 커맨드 똑같음)
- man과 비슷하게 보여줌: less 파일명4. 파일 내용 검색
- 파일 내용 검색: grep
ex) : hello를 찾아라 dpkg.log 에서 : grep "hello" dpkg.log
- ls -al 안에 있는 kern.log 파일 검색(파이프 기법): ls -al | grep "kern.log"
- dpkg.log 안에 있는 "2021-03-25 22:15:49" 내용을 찾아라: cat dpg.log | grep "2021-03-25 22:15:49"5. 파일 검색
- 파일 검색: find
ex 1) conf 라는 파일명을 가진 이름을 찾아라: find /etc -name "*.conf" -print
ex 2) conf 라는 파일명을 가진 이름을 찾아라(상대경로 이용) : find . -name "*.conf" -print
ex 3) conf 라는 파일명을 가진 이름을 찾아라(파이프 이용) : find | grep "conf"6. 압축 관련 커맨드
- 파일 압축하기 : gzip 파일명
- 파일 압축풀기 : ungzip 파일명
* 많이 쓰는 압축명
- test.tar.gz 파일 안에 filelist.gz 과 snap / 그리고 시작을 압축 할것이다. (tar명령어를 사용한 압축 방법)
: tar -zcf test.tar.gz filelist.gz snap/ 시작
- 하위 디렉토리의 testdir 안에 test.tar.gz파일을 푼다.
: tar -zxf ../test.tar.gz7. 시간 및 기타 커맨드
- 현재 시간 : date
- cal : 달력보기
- 전 명령어들 찾기 : history
- 전 명령어 중 12번 명령어 실행 하기: !12
- PWD라는 변수가 어떻게 실행하는지 궁금하다? : echo $PWD
(즉 ECHO를 이용하면 변수의 내용을 볼수가 있음.)
- echo $PATH 안에 hello가 존재하는지 보고싶다? echo $PATH 타이핑 후 hello
- 해당 명령어가 사용되도록 저장된 디렉토리 위치 표시: which ls8. 관리자 권한 실행
관리자권한 : sudo9. 패키지 매니저 사용(apt)
패키지 설치: sudo apt install 패키지이름
패키지 삭제: sudo apt remove 패키지이름
설치된 패키지 조회: apt list | grep 패키지이름
설치된 패키지 조회: apt list --installed | grep 패키지이름10. nano 편집기
^X : nano 편집기 커맨드인데 여기서 ^은 ctrl 키를 의미함.
M-A: 여기서 M은 alt키를 의미함2. 파일
● 파일의 종류
● 디렉터리 종류
● 추가 디렉터리 내용● 파일 만들기
- 빈 파일 만들기 : touch 파일명
- 이름 변경: mv 파일명 수정할파일명
ex1) 파일 디렉토리 경로 이동 가능하다(기존 디렉터리 폴더에서 /tmp/pineapple로 옮김)
: mv apple /tmp/ pineapple
ex2) (절대경로 이용) 이동했던 /tmp/pineapple을 현재 디렉토리로 옮겨라
: mv /tmp/pineapple . (.은 현재 디렉토리를 나타냄)
ex3) (상대경로 이용) 기존 /home/test/pineapple 파일을 /tmp/pineapple로 이동하라
: mv pineapple ../../tmp
● 디렉터리
- 생성: mkdir 생성할 디렉터리명
- 삭제: rm 삭제할 디렉터리명
- -i : 파일이나 디렉토리가 삭제될 때마다 확인한다.(y : 삭제, n : 취소)
- -f : 사용자에게 확인하지 않고 삭제한다.
- -v : 각각의 파일 지우는 정보를 자세하게 모두 보여준다.
- -r : 해당 디렉토리의 하위 디렉토리까지 모두 삭제
- 강제 삭제2: rm -rf 삭제할 디렉터리명 (상제 여부 안물어보고 바로 삭제)
- 디렉터리명 및 위치 변경 : mv 기존 디렉터리명 변경할 디렉터리명
mv 기존 디렉터리명 /tmp (위치할 디렉터리 위치)● 아이노드 && 하드링크 || 소프트 링크
- 아이노드: 파일의 데이터를 저장해 놓은 구조체
- 하드 링크는 동일한 파일에 대한 다른 이름의 링크로, 모든 링크가 동일한 데이터 블록을 가리킵니다.
- 소프트 링크는 다른 파일이나 디렉터리에 대한 참조를 저장하며, 원본 파일의 경로를 가리키기 때문에 간접적으로 접근 - 가능합니다.
● 하드링크 && 아이노드
- 아이노드 아이디 확인 : ls -ali
- 하드링크 방법 : ln 기존파일 하드링크할 파일
- stat을 이용하면 파일의 자세한 내용을 확인 가능
● 소프트링크 : 하드링크보다 많이 사용함
- 소프트링크 방법: ln -s 기존파일 소프트링크할 파일
- 하드링크 vs 소프트링크
하드링크는 링크가 된 파일이 다른 디렉토리로 이동해도 데이터 연결성이 있지만 소프트링크는 그와 반대로 연결이 안됨.- 파일 권한
● 사용자 추가
sudo adduser 추가할아이디
● 사용자 삭제
sudo deluser 사용자명 --remove-home (home밑에 있는 사용자 삭제)
● 그룹 추가
- sudo addgroup 그룹명
● 프로세스 목록 조회 및 구조 파악
- 프로세스 목록 조회 : ps -f
- 모든 프로세스 목록 조회: ps -ef
● 프로세스 종료 상태 확인 : echo $?
● 시그널 전송
- 프로세스 강제 종료: kill -옵션 PID
( 가장 강력한 옵션은 kill -9 옵션임)
● 포어그라운드 && 백그라운드
- 포어그라운드는 입력시 프로세스가 사용자에게 연결이 됨
- 백그라운드는 입력시 프로세스가 사용자에게 연결이 안됨
=> 뒤에 & 붙이면 백그라운드로 실행이 됨.
=> 백그라운드에서 포어그라운드로 전환은 fg를 타이핑 입력● 리디렉션과 파이프 라인
- 출력 리디렉션 : ls & > result (파일 예시)
: &는 리눅스나 유닉스 시스템에서 사용되는 기호로, 명령어를 백그라운드(background)에서 실행하도록 지시하는 역할을 합니다.
예를 들어, "ls &"는 현재 디렉토리의 파일 목록을 표시하는 ls 명령어를 백그라운드에서 실행하라는 뜻입니다. 이렇게 하면 명령을 실행하는 동안 다른 작업을 할 수 있습니다.
"& > result"에서는 ">"는 출력을 파일로 리다이렉션하는 명령입니다. 그리고 "&"는 앞의 명령을 백그라운드에서 실행하도록 하고, 동시에 그 명령의 출력을 파일 "result"로 리다이렉션하라는 뜻입니다. 따라서 이 명령은 현재 디렉토리의 파일 목록을 "result" 파일로 저장하면서 백그라운드에서 실행합니다.
- 입력 리디렉션: wc < process.sh(파일 예시)- "command << world": 이 구문은 히어 도큐먼트(Here Document)를 사용합니다. 이 구문은 "command"의 표준 입력(stdin)으로 여러 줄의 데이터를 제공하는 방식입니다. "world"는 히어 도큐먼트의 종료 문자열을 나타내며, 이 문자열이 나올 때까지 사용자가 입력한 모든 줄이 "command"의 입력으로 전달됩니다.
ex:
cat << EOF
Hello
World
EOF
위의 예시는 "Hello"와 "World"를 출력하는 cat 명령을 실행합니다.
- "command <<< word": 이 구문은 히어 스트링(Here String)을 사용합니다. 이 구문은 "command"의 표준 입력(stdin)으로 문자열 "word"를 제공하는 방식입니다. (자주 사용안함)
ex:
cat <<< "Hello World"
위의 예시는 "Hello World"를 출력하는 cat 명령을 실행합니다.
따라서, "command << world"는 히어 도큐먼트를 사용하고, "command <<< word"는 히어 스트링을 사용합니다.- 파이프라인은 연결해서 쓸수가 있음
출저: 리눅스 입문 - 개념으로 탄탄히!!(인프런) | 개인적인 공부 기록입니다.
https://www.inflearn.com/course/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%9E%85%EB%AC%B8/dashboard
+ 추가추가
- "~"를 사용하는 이유 중 하나는 특정 사용자의 홈 디렉토리를 가리키기 위해 사용됩니다. 만약 사용자 "rocky"의 홈 디렉토리 경 로가 "/home/rocky"라면, "mv test ~rocky/" 명령어는 "mv test /home/rocky/"와 동일한 역할을 합니다. ldd는 리눅스에서 실행 파일이나 공유 라이브러리의 의존성을 확인하는 명령어입니다. 이 명령어는 해당 실행 파일이나 공유 라이브러리가 다른 어떤 라이브러리들에 의존하고 있는지를 보여줍니다.
보통은 ldd 명령어 다음에 확인하고자 하는 실행 파일의 경로를 입력하여 사용합니다. 예를 들어:
ldd /bin/ls
위와 같이 입력하면 /bin/ls 파일이 어떤 공유 라이브러리에 의존하고 있는지를 확인할 수 있습니다.'Back end > Server' 카테고리의 다른 글
FTP 파일 전송 프로그램 (Filezila, mobaXterm 등) 없이 전송하는 법(~ing) (0) 2024.04.04 리눅스 관련 추가사항 정리 (0) 2024.04.04 AIX Server? (0) 2024.04.03 디스크 추가하기 (0) 2024.03.15 Cron 과 at 기능 (0) 2024.03.08