Programming/리눅스

리눅스 정리

cbw1030 2021. 7. 11. 00:49
반응형

사용자

sudo(Super User DO)   su(Switch User)

sudo su - root : 루트 계정으로 전환

sudo su - : 루트 계정으로 전환

sudo su : 루트 계정으로 전환하는 것이 아닌 현재 사용자를 유지한 상태에서 루트의 권한만 가짐

 

리눅스에서는 root 계정으로 직접 로그인 자체가 불가능하다.

따라서 일반 사용자로 로그인을 한 후에 루트 계정으로 전환을 하거나 권한을 얻어서 사용한다.

 

관리자 계정에서 일반 사용자 계정으로 전환하는 명령어는 exit

리눅스 초기 root 비밀번호는 sudo passwd 명령어를 통해 초기 설정을 해야 한다.

 

파일 시스템

간단하게만 알아보자

bin : 윈도우에서 c드라이브 내 system 폴더 역할을 한다. 모든 유저가 사용하는 실행 파일을 두는 곳이다.

sbin : 어드민 계정이 사용하는 실행 파일을 두는 곳이다.

home : 윈도우에서 users 폴더와 용도가 같다.

media or mnt(마운트): 장치를 연결해서 사용하는 디렉토리로 사용한다.

usr : 윈도우에서 c드라이브 내 programfiles 폴더 역할을 한다.

etc : usr 폴더에 설치되어 있는 파일들을 초기화할 설정들을 둔다.

var :  usr 폴더에 설치되어 있는 파일들이 실행되다가 만들어지는 값들이 저장되는 폴더이다.

tmp : 운영체제가 사용하던 프로그램이 사용하던 임시로 데이터들을 저장하는 공간이다.

sys : 시스템에 대한 설정들...

 

 

rm -rf에서 r은 recursive를 의미하고 재귀적으로 어떤 폴더의 내부까지 차례대로 쭉 지운다는 의미이다.

 

명령어

head -n2 hello.java

tail -n2 hello.java

grep "hello" hello.java

 

redirect

history > hello (hello 파일에 history 내용을 넣어 만든다. 기존에 hello 파일에 내용이 있다면 덮어쓰기 된다)

history >> hello (hello 파일에 history 내용을 덮어쓰기가 아닌 추가한다)

 

piping

cat test | grep hello (test 파일에 있는 것을 cat 명령어를 쳤을 때 '|' (파이프)가 있다면 결과값이 파이프 오른쪽으로 이전된다. 여기서는 test 파일 내용에서 hello 문자열을 검색한다)

ls | less

ls | more

 

압축하기

tar -cf name.tar a b c  (tar로 묶기만 한 것임. 크기는 큼)

tar -zcf name.tar.gz a b c (tar로 묶고 압축을 한 번 더함. 크기가 작음)

공통적으로 사용하는 c 옵션은 create이다.

 

압축풀기

tar -xvf name.tar (tar 파일을 품)

tar -zxvf name.tar.gz (gz 파일을 품)

공통적으로 사용하는 v는 '내용을 자세히 출력한다'는 의미인데 보통 압축을 풀 때 파일 크기가 크면 시간이 걸린다. 

만약 v 옵션을 넣지 않으면 압축을 해제하는 과정들이 눈에 보이지 않아 멈춰있는 것 처럼 느껴진다.

따라서 v 옵션을 주어 압축을 해제하는 과정들을 볼 수 있도록 한다.

 

링크파일

심볼릭 링크

ls -l

원본을 가리키는 바로가기 파일이 만들어진다.

rm -f로 삭제하면 됨

마지막에 /를 붙이면 안됨

심볼릭링크 폴더는 rm -rf 삭제시 원본이 삭제[된다.

 

하드 링크(별칭 느낌이다)

옵션 x

설정한 이름을 제외한 원본과 동일한 파일이 만들어진다.

원본 파일을 지우면 하드 링크 파일은 남아있다.

하드 링크 파일을 지우면 원본 파일은 남아있다.

 

 사용자 관리

useradd - 사용자 추가

usermod - 사용자 변경

userdel - 사용자 삭제

 

사용자를 추가하면 /etc/passwd에 사용자가 추가된다.

예를 들어 dragon이란 사용자를 useradd dragon 명령어로 추가했다면

dragon:x:1001:1001::/home/dragon이 /etc/passwd에 추가된다.

첫 번째 1001차례대로 리눅스에서 사용하는 사용자 식별자를 의미한다.

두 번째 1001사용자가 추가될 때마다 사용자 이름과 동일한 그룹이 만들어지는데 그룹의 id이다.

 

dragon을 만들어주고 초기 비밀번호도 셋팅을 해줘야 한다.

방법은 루트 권한으로 sudo passwd dragon을 입력하면 된다.

 

그런데 이 상태로 dragon 계정으로 로그인하면 홈디렉토리조차 없다.

따라서 루트 권한으로 sudo mkdir /home/dragon을 통해 만들어주고 해당 폴더의 소유권을 dragon을 줘야 한다.

폴더의 소유권을 dragon으로 주지 않으면 root로 되어 있기 때문에 파일을 생성할 수가 없다.

 

홈 디렉토리 생성 소유권을 변경하는 방법은 chown 명령어를 사용한다. 당연히 root 권한으로 해야한다.

sudo chown dragon /home/dragon (dragon이란 폴더를 dragon이 owner가 되게 한다)

 

이렇게 sh을 짜고 실행하면 계정이 만들어진 이후 알아서 비밀번호 초기화가 뜬다. 

 

tomcat이란 그룹(tomcat을 사용하는 유저들을 한 번에 관리하기 위함)을 만들어서 각 유저에 적용시켜보자(뉴렉처 인강 47강 참고)

sudo groupadd tomcat  <- 그룹만들기

sudo usermod -a -G tomcat cbw1030 <- cbw1030 유저를 tomcat 그룹에 넣기

id 명령어로 확인해보기. 바로 확인하면 적용이 안되서 logout 후 다시 로그인을 해야함

 

이제 아파치톰캣 폴더의 소유 그룹을 바꿔야 한다.

sudo chown -R root:tomcat apache-tomcat-9.0.14 (Recursive옵션을 주어 apache-tomcat-9.0.14 폴더의 내부까지 다 적용되게 했고 소유자는 root, 그룹은 tomcat으로 바꾼다.

 

톰캣 설치 후 해야할 것

(그룹을 사용했을 때)

/bin/startup.sh 바로 실행하면 logs 폴더쪽 에러가 난다. 그룹에 쓰기 권한이 없기 때문인데 logs 폴더 전체에 쓰기 권한을 주고 실행을 하자. sudo chmod -R g+w logs/ (logs 폴더에 그룹에 쓰기 권한을 주기)

그런데 또 실행을 하면 tomcat started라는 문구가 뜨지만 작동하지 않는다.

이는 conf 폴더에 그룹이 읽고 실행할 수 있는 권한이 없기 때문이다.

sudo chmod -R g+rx conf/

 

명령 프롬프트 변경하기

이건 너무 길다.

PS1="$"; 을 치면 아래와 같다.

이렇게 변경하면 일회성이다. exit 후 로그인을 다시 하면 초기화된다.

 

색상 변경하기

LS_COLORS="di=0;33" -> 디렉토리 33번 색(오렌지)으로 변경한다

 

 

리눅스 프로필과 환경변수를 설정하는 방법

1. 전역 프로필 설정

/etc/profile에 설정을 하거나 /etc/profile.d 폴더에 sh파일을 만들거나!

profile.d 폴더에 sh파일을 만들면 파일 권한에 x가 없어도 적용된다.

리눅스를 시작할 때 위 두 개를 모두 읽는다.

 

2. 개인 프로필 설정

/home/{user}/profile 파일을 수정한다.

 

전역 프로필에 없지만 개인적으로 alias를 사용할 때 개인 프로필 설정하여 사용한다.

 

중간중간에 bashrc에서도 설정할 수 있다.

 

JDK 전역화하기

/etc/environment에다가 설정하자.

블로그마다 profile에 설정해라 등 말이 다른데 /etc/environment가 정확하다. 

다른 사용자들과 공유해야 하기 때문에 전역화를 해야하므로!

 

우분투에 프로그램 깔려있는지 확인하는 방법

dpkg -s telnetd (데비안 패키지에서 telnetd가 깔려있는지 여부를 알려준다)

 

Telnet, FTP 접속 방법(뉴렉처 인강 41~44강 참고)

Telnet은 cmd에서 telnet localhost 로 접속하면되고 ftp는 ftp localhost로 접속하면 된다.SSH는 cmd에서 접속이 불가능하여 putty로 접속해야 한다.

 

접속하기 전에는 반드시 포트포워딩을 설정해놔야 한다(telnet: 23, ssh:22, ftp21)나는 가상머신 설정에서 포트포워딩을 해놨다(텔넷은 포트포워딩 이외에도 클라이언트에서 텔넷을 사용할 수 있도록 권한 체크를 해줘야 한다)뿐만 아니라 가상 리눅스가 우분투라면 apt install 명령어를 사용해 telnet, ftp, ssh 패키지를 설치해놔야 한다.

 

 

 

 

 

참고

https://www.youtube.com/playlist?list=PLq8wAnVUcTFU9zLWK-dHWrvTJ0PF8Y0Sf

 

 

 

반응형