일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네이티브쿼리
- WeNews
- querydsl
- docker명령어
- 커밋메세지수정
- 테스트메소드
- 서브쿼리
- 예약
- subquery
- 포트
- 추후정리
- application.yml
- ubuntu
- appspec
- appspec.yml
- 참조키
- 2 > /dev/null
- ㅔㄴ션
- 메소드명
- EC2
- 외부키
- 테스트
- Query
- 적용우선순위
- AuthenticationEntryPoint
- foreignkey
- 컨테이너실행
- 검색
- 메세지수정
- MySQL
Archives
- Today
- Total
제뉴어리의 모든것
[Section1][Linux] 기초 [추후 보완] 본문
리눅스란?
윈도우와 같은 OS의 한 종류로 무료이면서 전세계적으로 널리 쓰이는 OS의 한 종류.
리눅스와 함께 알아야 하는 개념
- 커널
운영체제에 존재하며 하드웨어를 제어하는데 운영체제의 대부분을 차지한다. - 콘솔
하드웨어이며 일종의 입출력장치이다.
물리적 터미널로써 불린다. - 터미널
사용자와 컴퓨터간의 소통을 위한 인터페이스(접점)를 제공.
쉘을 사용하기 위해 필요한 프로그램 - 쉘
우리가 사용하는 언어로 터미널과 직접 소통하기에는 무리가 있기에 중간에
사용자 명령어를 기계어로 번역하여주는 번역기
cmd가 대표적. - 프롬프트
cmd창에 사용자가 명령을 내리기를 기다리는 명령줄 대기모드 - 패키지 :
여러 파일의 압축상태로 압축안에는
프로그램 파일, 프로그램 설치파일, 프로그램 설치 설명서, 프로그램에 대한 데이터
들이 존재한다.
리눅스의 명령어
- pwd
print working directory의 약자로 현재 위치의 경로는 출력한다
- ls
현재 위치의 존재하는 파일, 디렉토리 목록을 출력한다
ex : ls -l (파일, 폴더의 권한정보나 만든시점 같은 부수 정보까지 보여줌)
권한정보 해석 방법 :
d : 디렉토리임
- : not 디렉토리임 (파일)
r : 일기
w : 쓰기
x : 실행
- ls
- mkdir [디렉토리명]
디렉토리를 생성한다
생성할 디렉토리명에 공백이 있을 경우 \ (역슬래쉬와 공백) 를 사용하거나 ""로 묶도록 한다 - touch [파일명]
파일을 생성한다 - cat [파일명]
파일의 내용을 출력하여 보여준다. - echo [문자열]
문자열을 어떤 대상에 출력한다.
echo helloworld : 쉘창에 단순히 helloworld를 출력하여 준다
echo helloworld > text.txt : text.txt 파일에 helloworld란 문자열을 출력(입력하여 저장) 하여 준다 - cd [이동할 경로]
현재 작업중인 디렉토리(현재위치)를 입력한 이동할 경로로 이동시켜준다 - rm [삭제할 파일명 | 디렉토리명]
파일은 그냥 바로 삭제 되지만, 디렉토리 삭제시에는 -rf 옵션을 넣어주어야 한다
ex : rm -rf [디렉토리명]
f 옵션으로 질문과정 없이 무조건 삭제가 되므로 신중히 할것.
-모든 파일 삭제 : rm * (디렉토리가 포함 되어 있을 경우 위에 설명처럼 옵션 추가) - mv
- mv [이동할대상] [이동될위치] (대상 이동시킬때)
이동할 대상은 파일, 폴더 모두 가능하다.
이동될 위치는 절대경로, 상대경로 모두 가능하다
- mv [원본이름] [변경할이름] (이름 변경시)
ex :
1. mv hellojava.java fighting.java (현재 위치에서 이름 바꾸기)
2. mv hellojava.java ../fighting.java (상위 경로로 이름 바꿔 이동시키기)
- 파일 이동과 복사의 원리
파일을 복사할때는 원본 파일을 그대로 복사하여 이동할 위치에 파일을 생성하지만
파일을 이동할때는 원본 파일을 임시 버퍼공간에 복사하고 원본파일을 삭제한뒤 이동할 위치에 생성한다. (삭제과정이 추가된다) - 경로 나타내기
. : 현재 경로
/ : 폴더 내부
.. : 상위 경로
../.. : 상위 경로의 상위경로
~ : root 경로에서 home 디렉토리에 있는 사용자 디렉토리까지의 경로를 축약한 의미 (홈 디렉토리라고 한다)
ex : january란 사용자가 cd ~ 입력시
-> /home/january 로 이동됨. (january 사용자의 home 디렉토리가 /home/january인 경우)
ex : ./ : 현재 폴더 내부를 의미 - whoami
현재 쉘을 이용하여 터미널과 소통하는 사용자 유저이름 보여줌 (지금 whoami란 명령어를 입력한 사용자) - sudo
명령어를 입력할때 맨 앞쪽에 sudo만 추가로 입력하면 해당 명령어를 관리자 권한으로 실행시킴을 나타냄
- chmod
파일, 폴더에 대한 권한 변경 명령어
사용방법
1. Symbolic method
chmod [액세스 클래스][연산자][액세스타입] 파일명|폴더명
Access classOperatorAccess Type
u (user) | + (add access) | r (read) |
g (group) | - (remove access) | w (write) |
o (other) | = (set exact access) | x (execute) |
a (all: u, g, o) |
ex :
chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod a=rw hello.java # -rw-rw-rw-
chmod u= hello.java # ----rw-rw-
chmod a+rx hello.java # -r-xrwxrwx
chmod go-wx hello.java # -r-xr--r--
chmod a= hello.java # ----------
2. Absolute form
사용자, 그룹, 또는 다른 사용자나 그룹마다 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있음.
PermissionNumber
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |
만약, user는 rwx 를, group과 other은 r-- 로 권한을 변경하려고 한다면, 위 표에 나와있는 숫자의 합을 user, group, other 순으로 입력하여 사용합니다.
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 hello.java # -rwxr--r--
- 소유자, 그룹, 기타 개념
소유자 : 파일을 만든 사람.
소유자가 즉 유저.
그룹 : 여러 유저를 포함 하는 범위로.
그룹에 속한 모든 유저는 같은 권한을 가진다.
기타 : 파일에 대한 권한이 있는 소유자 이외의 유저. 해당 권한을 풀면 권한이 global해짐.
- 패키지매니저 명령어
- apt update (관리자권한)
패키지 목록 갱신
- 패키지를 다운로드할 수 있는 여러 저장소의 최신 정보를 업데이트합니다. 새로운 저장소를 추가하거나, 패키지를 설치하기 전, 최신 정보를 갱신합니다.
- 설치된 프로그램이 새로운 버전으로 변경되지 않습니다.
- apt list --upgradable
업그레이드 가능한 패키지 목록을 출력: apt list -—upgradable - apt upgrade (관리자권한)
전체 패키지 업그레이드(버전 업) - apt --only-upgrade install [패키지명] (관리자권한)
특정 패키지만 업그레이드(버전 업) - apt install [패키지명] (관리자권한)
패키지 설치 - apt list --installed
설치된 패키지 보기 - apt search [검색어]
패키지 검색 - apt show [패키지명]
패키지 정보 확인 - apt remove [패키지명] (관리자권한)
패키지 삭제
+ apt 대신에 apt-get을 사용하여도 된다.
- apt와 apt-get의 차이점
사용의미는 같다.
패키지 매니저로 무언가 작업을 할때 쓰여지는 그냥 명령어이다.
단지, apt-get은 기존부터 존재하던 것이다.
그러므로 apt-get은 디테일은 기능이 더 많고 다양하다. 그리고 apt는 apt-get의 기능 중 주로 많이 쓰이는 기능들만 모아 놓은것이고 명령어 실행시 작성상황 표시를 보다 친사용자적으로 표시한다.
참조 : https://coding-groot.tistory.com/90
- 사용자 추가 명령어
- useradd
1. useradd [option] 사용자계정이름 :
(사용자 계정의 이름만 등록함, 비밀번호, 홈 디렉토리 등은 생성되지 않음, 우분투만 홈 디렉토리를 설정해 주지만 실제 폴더를 만들어주진 않음)
옵션들
-p : 비밀번호 같이 지정
-d : 홈디렉토리 같이 지정
ex : useradd januaryman -d /home/sub_home/januaryman
(주의할 점은 최종 디렉토리만 만들어 주므로 중간 경로의 폴더들을 미리 생성해줘야함)
2. passwd [사용자계정이름] : 해당 이름 사용자의 비밀번호 설정
(최초에 useradd만 한 경우 비밀번호 설정이 안되어 있어서 접속 불가)
참조 사이트 :
https://jhnyang.tistory.com/10
- adduser
계정 생성과 동시에 유저 홈 디렉토리까지 생성됨.
계정 생성
1. adduser [생성될 계정 아이디]
- 생성하며 발생되는 질문사항
1) Full Name : 계정의 소유자 이름
2) Room Nuber : 진짜 말 그대로 Room Number, 엔터로 스킵 가능
3) Work Phone : 회사 연락처, 엔터로 스킵 가능
4) Home Phone : 집 연락처, 엔터로 스킵 가능
5) Other : (뭔지 모르겠음), 엔터로 스킵 가능
참조 : https://kbs4674.tistory.com/134
- 사용자 삭제 명령어
1. 계정+홈 디렉토리 삭제
userdel -r 계정명
2. 계정만 삭제
userdel 계정명
참조 : https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B3%84%EC%A0%95_%EC%82%AD%EC%A0%9C_userdel - ps [옵션]
현재 프로세스(실행중인 프로그램) 확인
옵션값 :
- a (All processes) : 프로세스 현황 표시
- u (User) : 유저 지향적 (top 포맷)
- x : 터미널 제어 없이 프로세스 현황 보기
- e (All processes) : 현재 시스템 내에서 실행중인 모든 프로세스 정보를 출력
- f (Full listing) : 모든 정보 확인
- o (User) : 유저 포맷팅
* ps -f 명령으로 나타나는 항목들의 의미
UID
프로세스의 실행 / 소유자 아이디
PID
프로세스의 고유 번호(Process Identification Number)
PPID
부모 프로세스의 PID(Parent PID)
C
프로세스 우선순위
STIME
프로세스가 시작된 시간
TTY
프로세스와 연결된 터미널
TIME
실행에 걸린 시간
CMD
프로세스를 생성하는데 내린 명령
참조 : https://eehoeskrap.tistory.com/245 [Enough is not enough:티스토리] - 사용자 목록 확인
1. 전체 목록 확인
cat /etc/passwd
2. 사용자 아이디만 확인
cut -f1 -d: /etc/passwd
3. useradd를 통해 등록된 계정만 보기
grep /bin/bash /etc/passwd
+ 아이디만 보기
grep /bin/bash /etc/passwd | cut -f1 -d:
참고 사이트 :
https://overcode.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%82%AC%EC%9A%A9%EC%9E%90-%EB%AA%A9%EB%A1%9D-%ED%99%95%EC%9D%B8-Linux-User-List - 사용자 전환 명령어
1. 일반 사용자 -> 관리자
셸에 접속하여 일반 사용자 접속 상태에서
sudo su
2. 관리자 -> 일반 사용자
su [사용자명]
3. 일반 사용자 -> 일반 사용자
참고 사이트:
https://reubwe.tistory.com/375
https://mytory.net/archives/27 - wget 명령어
apt install wget (관리자권한) 을 사용하여 우선 패키지를 설치하여야 한다
www와 get에서 가져온 명령어로
쉽게 말해 특정 패키지의 웹상 url을 입력하여 패키지를 바로 내려받을 수 있다
사용방법 :
wget [url]
- nano 사용법
[추후 정리]
기타 배운점
- Unable to locate package 에러
- 해결방법
"sudo apt install 패키지명"
명령을 내려 패키지를 설치하려 할때
"Unable to locate package" 와 같은 에러가 발생하여 설치가 중지가 될 수 있다.
이 경우, 패키지 매니저가 패키지를 설치하려 하는데 패키지를 찾을 수 없다는 것이다.
패키지매니저는 패키지들마다 다운받을 url 정보와 버전등과 같은 데이터를 가지고 있는데, 패키지를 설치하기 위해 가지고 있는 데이터로 저장소를 찾아갔더니 패키지를 찾을 수 없다는 것이다.
이러한 이유는 여러가지 있겠지만, 아마도 저장소 위치가 바뀌었을 가능성이 높다.
그러므로 패키지가 존재하는 최신 저장소 정보로 패키지 매니저의 데이터를 update 해준다.
1. sudo apt-get update
2. 다시 해당 패키지 설치
참조 : https://integer-ji.tistory.com/370 - 윈도우상에서 wsl의 root 디렉토리 접근
윈도우 탐색기 주소창에
\\wsl$ 를 입력한다
참조 : https://velog.io/@dom_hxrdy/wsl2-%EC%9C%88%EB%8F%84%EC%9A%B0-%ED%83%90%EC%83%89%EC%B0%BD%EC%9C%BC%EB%A1%9C-wsl-home-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90-%EC%9E%88%EB%8A%94-%ED%8C%8C%EC%9D%BC-%EC%97%B4%EA%B8%B0 - 유용한 리눅스 명령어 사이트
https://www.44bits.io/ko/post/linux-and-mac-command-line-survival-guide-for-beginner#%ED%8C%8C%EC%9D%BC-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC-%EC%A1%B0%EC%9E%91%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%93%A4
'코드스테이츠 > 정리 블로깅' 카테고리의 다른 글
[Section1][JAVA] 기초 (0) | 2022.07.05 |
---|---|
[Section1][Git] 기초 [추후 보완] (0) | 2022.07.02 |
[Section1][Publishing] HTML, CSS - 2 [추후 추가 정리 필요] (0) | 2022.06.30 |
[Section1][Publishing] HTML, CSS (0) | 2022.06.27 |
[Section1][Development] 기초 - 2. 웹 (0) | 2022.06.24 |