외울 필요는 없다. 자주 사용하는 명령어는 알아서 외워질테니까.
서버와 클라이언트 리눅스를 start 한다.
서버는 루트 계정, 클라이언트는 자동 로그인 상태이다.
1. 시스템 시작과 종료
2가지 방법이 있다.
파워버튼 - 컴퓨터 끄기/로그아웃 - 컴퓨터 끄기 - 컴퓨터 끄기
터미널에서
poweroff
shutdown -P now
halt -p
init 0
-P -p 와 같은 명령은 다음에 설명한다.
대소문자 구분에 유의한다.
shoutdown -P + 10
shoutdown -r 22:00
shoutdown -c
shoutdown -k +15
10분 뒤에 종료 - 22시에 재부팅(-r 옵션) - 예약된 shoutdown 명령 취소 - 접속한 사용자에게 15분 뒤에 종료된다는 메시지 전송 (실제로 종료하지 않는다.)
2. 시스템 재부팅
shutdown -r now
reboot
init 6
3. 로그아웃
logout
exit
접속한 사용자만 로그아웃하고 다른 사용자는 접속된 상태이다.
4. 가상 콘솔
가상의 모니터로 6개까지 제공한다.
ctrl + alt + f1~f6
윈도우 기준 단축키이다.
맥의 경우 가상머신 - send key 를 통해서 실행할수 있다는 정보만 확인했다.
단축키 작동하지 않을때 챗GPT 가 알려준 방법이다.
vmware 에서 환경설정 열기 - 키보드 마우스 - 사용자가 직접 단축키 조합해서 사용한다.
터미널에서 사용방법
루트 계정으로 로그인 상태
chvt 3
터미널에서 입력
tty4 로 가상콘솔 4를 뜻한다.
만들어둔 사용자 계정으로 로그인한다. devport와 비밀번호를 입력.
chvt 2
가상콘솔창에서 입력.
다시 루트 계정으로 돌아와서
shutdown -h +5
chvt 3
터미널 입력.
가상콘솔 변경
devport(사용자)의 가상콘솔창에 서버 종료 메시지가 뜨는 것을 확인할수 있다.
chvt 2
사용자 가상콘솔에서 입력.
루트 계정으로 돌아와서
shut down -c
터미널 입력하면 서버 종료 예정 알림 설정이 취소된다.
사용자 계정에서도 취소 메시지를 확인할수 있다.
logout
후 ctrl + alt + f2 로 루트계정으로 돌아온다.
5. 런레벨
cd /lib/systemd/system
ls -l runlevel?.target
런레벨은 7가지이다. 터미널 명령으로 확인할수 있다.
0 : 종료모드
1 : 시스템 복구 - 단일 사용자
2 : 멀티유저 -사용하지 않음
3 : 멀티유저 - 텍스트 모드의 다중 사용자 모드
4 : 2와 동일
5 : 그래픽 모드의 다중 사용자 모드
6 : 재부팅
앞에 init 0은 즉시 0모드로 시스템을 전환하라는 의미이다. 즉 즉시 시스템을 종료하라는 명령이다.
서버와 클라이언트 가상머신은 x윈도로 부팅되므로 5번으로 자동 지정이다.
서버(B)는 CLI 이므로 3번으로 자동 지정이다.
cd
ls -l /etc/systemd/system/default.target
홈 디렉토리로 이동
기본으로 설정된 런레벨을 확인한다. 그래픽 타겟이다.
ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
ls -l /etc/systemd/system/default.target
reboot
텍스트 모드로 부팅되도록 변경했다.
텍스트 모드로 부팅되는 것을 확인되면
루트 계정으로 로그인하고
startx
x윈도를 실행한다.
영문모드로 실행되기 때문에 기존 한글폴더를 영문으로 변경하는지 물어보는 창이 나온다. keep 선택
ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
터미널에서 입력.
다시 그래픽모드(런레벨5)를 기본모드로 변경한다.
재부팅후 그놈 화면이 나타나면 성공이다.
6. 자동완성과 히스토리
자동완성
파일이나 폴더 이름을 자동으로 채우는 기능이다.
etc라면 e, tab 이면 etc가 완성된다.
터미널에서
⬆︎,⬇︎ 키로 과거에 입력한 커맨드 라인을 다시 사용할수 있다. 도스 키라고도 부른다.
history
사용한 명령이 출력된다.
history -c
히스토리 삭제
cd
ls
cat a + tab키
홈 폴더에 anaconda-ks.cfg 파일이 자동완성되고 파일 내용이 화면에 출력된다.
7. 에디터 사용
CLI에서는 gedit를 사용할수 없기 때문에 vi에디터의 사용법을 알아야 한다.
nano 에디터는 vi 에디터보다 더 편리하게 사용할 있기 때문에 이 에디터의 사용법도 알아본다.
터미널에서
gedit
텍스트를 입력하고 test1 으로 홈폴더에 저장하고 종료한다.
저장할때는 test1.txt 로 확장자까지 포함해야된다.
gedit /root/test1.txt
저장했던 파일이 열린다. 다시 종료.
루트 사용자가 아니라면 /사용자name/test1.txt 경로가 될것이다.
nano
나노 에디터 실행.
테스트 문구를 입력하고
ctrl + x 입력. 저장 메시지가 나오면 Y
저장할 이름 설정. nano1.txt 임의의 파일명 입력
nano nano1.txt
저장한 파일 불러오기.
ctrl + c : 아래쪽에 현재행과 전체행정보가 나타난다.
nano -c nano1.txt
-c 옵션을 붙이면 항상 행 정보를 표시해준다. 유용한 옵션이다.
cd
vi
홈폴더 이동 - vi 에디터 실행
esc 키
:q
enter 키
순서대로 입력 하면 vi 편집기 종료
vi new.txt
new.txt 파일을 생성하여 vi편집기로 열기. 파일이 존재하면 해당 파일을 연다.
하단에 [새로운] 표시를 볼수 없다.
현재는 명령 모드 이기 때문에 입력을 할 수 없다.
I 또는
A
하나만 키 입력. insert 또는 append 명령을 내린다.
[끼워넣기] 로 표시된다.
내용 입력 후
esc 키
:wq
enter 키
명령 모드로 전환 - 내용 저장 후 저장 명령
저장 후 변경된 내용이 없으면 그냥 :q 라고만 입력도 문제없다.
:q!
변경된 내용은 무시하고 종료
vi 에디터가 비정상적으로 종료 되었을때 조치법
비정상적인 종료 상황을 만들어 본다.
vi에디터로 파일을 열고 내용을 수정한다.
우상단 x 클릭으로 터미널을 종료하면 확인 메시지가 출력된다.
터미널 닫기 클릭
다시 터미널을 실행하면 E425 비정상적인 종료가 되었다는 메시지가 출력된다.
q
vi 에디터를 닫는다.
터미널에서
ls -a
파일을 확인하면 .new.txt.swp 파일을 볼수 있다.
앞에 .은 숨김파일 뜻이다.
swp은 vi편집기에서 명령을 입력하면 자동으로 생성되고 정상적으로 종료되면 삭제되는 파일이다. swp 파일이 있다면 비정상적인 종료를 의미한다.
rm -f .new.txt.swp
ls -a
터미널에서 입력하여 swp 파일삭제 - 파일 확인
vi new.txt
다시 vi 편집기를 실행하면 경고 메시지가 사라진것을 확인할수 있다.
vi 편집기 유용한 단축키 정리
명령 모드에서 입력모드로 전환하기 위한 키
커서는 편집기에서 흰색칸으로 나타난다.
i : 현재 커서의 위치부터 입력
I : 현재 커서의 줄의 맨앞에서부터 입력
a : 현재 커서의 위치 다음 칸 부터 입력. (그러니까 한칸 이동이다.)
A : 현재 커서의 줄의 맨 마지막부터 입력.
o : 현재 커서의 다음 줄에 입력. 줄 바꿈.
O : 커서 이전 줄에 입력
s : 커서에서 한글자 지우고 입력
S: 커서 위치 한줄 삭제하고 입력
대소문자 구분한다. I는 shift+i와 같다. 페이지 up ,down 키가 없는 키보드의 경우 유용하다.
h 왼쪽 이동. ⬅︎키
j 아래 이동. ⬇︎키
k 위 이동. ⬆︎키
l 오른쪽 이동. ➜키
ctrl + f : page down
ctrl + b : page up
^(shift+6) : home
$ : end
gg : 첫 행 이동
G : 끝 행 이동
숫자G(ex. 11G) - 11행으로 이동
:숫자enter(11 + enter 키) - 11행으로 이동
마지막에 행으로 이동이 매우 유용하니 기억해두자.
x. del
X. backspac
dd. 커서 행 삭제\
숫자dd. 현재커서부터 숫자만큼의 행 삭제.
yy. 현재 커서 행 복사
숫자yy. 현재커서부터 숫자만큼의 행 복사
p. 현재행 이후에 복사한 내용 붙여 넣기
P. 현재행 이전에 복사한 내용 붙여 넣기
/문자열 + enter키
예. /root
root 글자를 문서에서 찾는다
test를 찾아 보았다.
:%/test/linux
test 문자열을 찾아 linux로 변경한다.
행번호를 표시할려면
:set number
도움말 사용하기
man 명령어
예시 man ls
방향키와 page up, down 키로 전체 내용을 확인할수 있다.
/단어
/all
n 키
단어를 찾는다. 설명에서 all을 찾아서 모두 표시한다.
n 키는 다음 all로 이동
q키
종료
8. 마운트와 CD/DVD/USB 활용
물리적인 장치를 특정한 위치에 연결하는 것을 마운트라고 한다.
서버 리눅스이다
터미널에서
mount
실행
책에서는 /dev/sda2 가 루트 파티션으로 마운트되어 있다고 나오는데 나는 조금 다른듯 하다.
마지막에 /dev/sr0이 아래의 /dev/cdrom과 사실상 동일하지만 버전에 따라 다를수 있다.
umount /dev/cdrom
처음에는 어떤 메시지도 출력되지 않는다. 마운트가 해제된것이다.
두번째는 장치가 마운트 되어 있지 않다는 메시지 표시된다.
mount
다시 확인 해보면 마지막에
/dev/sr0이 사라져있다.
vmware에서 server 이미지에서 설정-cdrom 체크해제
연결을 끊으면 스샷처럼 확인 메시지가 출력된다.
yes 해본다.
다시 vmware 설정에서 cdrom 체크
시디롬이 연결되자 disk가 마운트 됐다는 알림이 상단에 출력된다.
터미널에서 mount로 확인하면
/dev/sr0 이 출력된다. 시디롬이 정상연결된것이다.
cd /run/media/root/Ro+tab키
pwd
ls
마운트 된 시디롬 위치로 이동한다. 디렉토리명이 길기 때문에 자동완성을 사용한다.
현재 위치를 출력한다.
디렉토리 파일 확인
root 는 계정이름이다. 사용자 계정 이름 따라 달리한다.
cd BaseOS/Pa + tab키
ls
cd a
ls
패키지 폴더로 이동 - 파일 리스트 출력 - a 폴더로 이동 - 파일 리스트 출력
이제 시디롬을 umount 한다.
umount /dev/cdrom
시디롬 폴더에서 명령을 입력하면 폴더가 사용중이기 때문에 마운트 해제에 실패한다. 주의할것.
usb 장치도 이와 같이 vmware - server 이미지 우클릭 - setting - usb&bluetooth - 필요한 장치 체크
과정을 통해서 연결 할 수 있다.
Rocky linux에서 usb 장치는 기본적으로 fat32 방식으로 포멧해야 인식된다.
텍스트 모드에서 usb 장치 활용
vmware 상에서 usb장치를 추가한다.
root 계정으로 로그인
mount 명령으로 장치 마운트 확인
텍스트 모드에서는 그래픽모드와 달리 자동으로 마운트 하지 않는다.
ls /dev/sd*
명령을 입력해 장치 이름을 확인한다.
책에서는 장치 이름이 나열되는데 나는 파일이나 디렉토리가 없다는 메시지만 나왔다. /dev 디렉토리는 존재한다. 파일이 없는 모양이다.
mkdir /meida/cdrom
mkdir /meida/usb
mount /dev/cdrom /meida/cdrom
mount /dev/sdb1 /meida/usb
폴더 2개를 생성하고 각각 마운트 하는 명령이다.
sdb1 은 사용자마다 다른 이름일수도 있다.
챗gpt에게 물어봤다.
lsblk
sr0이 존재. cdrom이 있다는 의미이다.
mkdir -p /media/cdrom
media 폴더에 cdrom 폴더 생성
mount /dev/sr0 /media/cdrom
sr0을 cdrom으로 마운트
cd /media/cdrom
마운트한 폴더로 이동
ls
마운트 시디롬 파일 확인
umount /media/cdrom
마운트 해제. 메시지 출력은 없다. cdrom 폴더에서 실행하면 busy 메시지가 출력되고 언마운트 되지 않는다.
'이것이 리눅스다 따라하기' 카테고리의 다른 글
11. 이것이 리눅스다 공부하기 - 표준시간대 변경, cron, at 예약 명령지정 (0) | 2024.03.23 |
---|---|
10. 이것이 리눅스다 공부하기 - 파일 압축과 묶기, 파일 위치 검색 (0) | 2024.03.23 |
09. 이것이 리눅스다 공부하기 - 리눅스 관리자를 위한 명령어 (0) | 2024.03.23 |
07. 이것이 리눅스다 공부하기 -사용자 관리와 파일 속성 (0) | 2024.03.22 |
06. 이것이 리눅스다 공부하기 - 리눅스 기본 명령 (0) | 2024.03.22 |
03. 이것이 리눅스다 공부하기 Sever(B)와 Client 용 리눅스 설치 (0) | 2024.03.22 |
02. 이것이 리눅스다 공부하기 - 가상환경에 운영체제 설치하기 (4) | 2024.03.22 |
01. 이것이 리눅스다 공부하기 설치파일 다운로드하기 (0) | 2024.03.21 |