728x90

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

30강 설치 후 할 일

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

CentOS7

1.  System Time Check

[root@hj0216 ~]# date

 

2. Installed pkg num check

[root@hj0216 ~]# rpm -qa | wc -l
343

➕ pkg install 여부 확인

[root@hj0216 ~]# rdate
-bash: rdate: command not found # uninstalled
[root@hj0216 ~]# gcc
-bash: rdate: command not found # uninstalled
[root@hj0216 ~]# javac
-bash: rdate: command not found # uninstalled
[root@hj0216 ~]# locate
-bash: rdate: command not found # uninstalled

 

3. Network Test

[root@hj0216 ~]# ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=33.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=31.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=31.7 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 31.442/32.097/33.088/0.712 ms

 

4. ssh server connect

[root@hj0216 ~]# systemctl stop firewalld # 해당 session에서만 방화벽 끄기
[root@hj0216 ~]# systemctl disable firewalld # 모든 session에서 방화벽 끄기
[root@hj0216 ~]# systemctl start sshd # 해당 session에서만 ssh service 실행
[root@hj0216 ~]# systemctl enable sshd # 모든 session에서 ssh service 실행

[설정] -> [네트워크] -> [고급] -> [포트 포워딩]

포트 번호: 22, 80 추가

[파일] -> [환경설정] -> [입력] -> [가상머신] 호스트키 조합: F11 입력

(마우스 포인터를 리눅스에서 꺼내주는 역할)

 

PuTTY login

[root@hj0216 ~]# date
2023. 02. 05. (일) 14:18:32 KST
[root@hj0216 ~]# date -s "2000-12-12 21:30"
# 일자 및 시간 임의 지정

rdate 설치를 통한 시간 자동 설정

[root@hj0216 ~]# yum -y install rdate
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
...
==============================================================================
 Package         Arch             Version                 Repository      Size
==============================================================================
Installing:
 rdate           x86_64           1.4-25.el7              base            19 k

Transaction Summary
==============================================================================
Install  1 Package

Total download size: 19 k
Installed size: 29 k
Downloading packages:
rdate-1.4-25.el7.x86_64.rpm                               |  19 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : rdate-1.4-25.el7.x86_64                                     1/1
  Verifying  : rdate-1.4-25.el7.x86_64                                     1/1

Installed:
  rdate.x86_64 0:1.4-25.el7

Complete!
[root@hj0216 ~]# rdate -s time.bora.net
[root@hj0216 ~]# date
2023. 02. 05. (일) 14:23:05 KST

timeZone 변경

[root@hj0216 ~]# timedatectl
      Local time: 일 2023-02-05 14:23:41 KST
  Universal time: 일 2023-02-05 05:23:41 UTC
        RTC time: 일 2023-02-05 05:23:43
       Time zone: Asia/Seoul (KST, +0900)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
[root@hj0216 ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
...
[root@hj0216 ~]# timedatectl set-timezone "Continent/Country"

 

5. Essential pkg installment

[root@hj0216 ~]# yum -y install vim gcc gcc-c++ tree psmisc bc zip unzip man-pages \
man-pages-ko rdate ntpdate strace mloacte ftp wget dialog lsof bzip2 \
rsyslog ncurses at vsftpd httpd php net-tools mariadb-server mariadb \
java-1.8.0-openjdk java-1.8.0-openjdk-devel tomcat lpr quota

# \ 줄바꿈을 위한 Enter 무시

설치되는 pkg list

vim: Vim: Vi IMproved

Bram Moolenaar가 만든 vi 호환 텍스트 편집기

gcc gcc-c++

c, c++ compiler

tree

dir 하위 구조를 계층적으로 표시해 주는 유틸리티로 전체 구조를 대략적으로 파악할 때 유용

psmisc

fuser 사용을 위한 pkg, 특정 file이나 dir를 사용하고 있는 user or process ID를 찾거나 종료시킬 때 사용

특정 파일 시스템을 umount or service stop할 때 특정 process 때문에 진행이 안 될 경우, 그 process를 kill하기 위해 사용

bc: basic calculator

zip unzip

압축 및 압축해제 pkg

man-pages, man-pages-ko: manual pages
rdate: remote date

원격지의 timeserver에서 시간정보를 가져와 local system의 시간과 동기화를 하는 명령어

ntpdate: network time protocol

NTP server를 이용해서 시간을 동기화할 때 사용하는 명령어

strace

Linux에서 서버 병목을 확인할 수 있도록 system call을 측정하는 tool

리눅스 커널과 프로세스 사이에서 발생하는 시스템 콜, 시그널 전달, 프로세스 상태 변화 등을 모니터링할 수 있음

mloacte

file, dir list를 주기적으로 DB에 저장하고, 편리하게 검색할 수 있도록 도와주는 유틸리티

ftp: File Transfer Protocol

인터넷을 통해 파일을 교환할 수 있게해주는 서비스

wget: web get

웹 상에서 파일을 다운로드 받을 때 사용하는 명령어

dialog

Shell script의 대화 상자를 사용하여 다양한 질문을 제시하거나 메세지를 표시할 수 있는 프로그램

lsof: list open files

system에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일 종류 등 상세한 정보를 출력

bzip2

압축 pkg
rsyslog: Rocket-Fast System for Log Processing

IP network에서 로그 메세지를 전달하기 위해 UNIX, Unix 계열 컴퓨터에서 사용하는 open source

ncurses

terminal graphic lib

at

지정된 시간에 명령어나 프로그램을 실행시키는 명령어

vsftpd: Very Secure File Transfer Protocol Daemon

FTP의 보안을 강조한 파일 전송 프로토콜

httpd: http demon

서비스를 처리해주는 program을 demon이라하며, http를 처리해주는 서비스를 httpd라고 함

php

server pragramming language

net-tools: network tools

ipconfig 명령어 사용 시 필요한 pkg

mariadb-server mariadb

DB server
java-1.8.0-openjdk java-1.8.0-openjdk-devel: Java Development Kit

Java 환경에서 돌아가는 프로그램을 개발하는데 필요한 툴들을 모아놓은 SW pkg

tomcat

동적 페이지를 구현하기 위해 java에서 만든 프로그램이 servlet이며, 이런 servlet들의 실행을 돕는 프로그램이 tomcat

lpr: Line printer Demon

파일 내용 출력

quota

사용자별 디스크 사용량을 제한하는 pkg

 

6. Image Backup(Set restore point)

Essential pkg Install 후,

PuTTY logout

CentOS7 현재 시스템 상태 저장하기

VirtualBox: 파일 -> 가상 시스템 내보내기

 

➕ 가상 시스템 가져오기(기존에 사용하던 CentOS와는 다른 OS로 취급됨)

-> 내문서에 자동 저장된 가상 시스템 Default로 가져오기

-> PuTTY 실행 후, pkg 설치 상태 확인

login as: root
root@127.0.0.1's password:
Last login: Sun Feb  5 14:18:18 2023 from gateway
[root@hj0216 ~]# rpm -qa | wc -l
475

 

 

 

참고 자료

📑 리눅스 fuser 설치 및 사용법

📑 [리눅스 명령어] rdate - 타임서버와 시스템 시간 동기화

📑 strace가 -k 옵션을 만난 날

📑 리눅스 기본명령어 - wget

📑 dialog - display dialog boxes from shell scripts

📑 [Linux] rsyslog을 이용한 history 내역 남기기

📑 리눅스 vsftpd 서정하는 방법과 ftp 서버 만들기에서 파일업로드까지

📑 4. Servlet - Tomcat(WAS)과  Servlet이란?

📑 Linux, 사용자 및 그룹별 디스크사용량제한하기

 

728x90
728x90

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

29강 출력 내용 저장

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

출력 내용 저장(명령어 > 파일명)

[49][~]$cal > a1
[50][~]$nl a1
     1        2월 2023
     2  일 월 화 수 목 금 토
     3            1  2  3  4
     4   5  6  7  8  9 10 11
     5  12 13 14 15 16 17 18
     6  19 20 21 22 23 24 25
     7  26 27 28

[51][~]$who > a2
[52][~]$rpm -qa > rpmList
[53][~]$ll
합계 20
-rw-rw-r--. 1 j j   144  2월  4 12:55 a1
-rw-rw-r--. 1 j j    49  2월  4 12:56 a2
-rw-rw-r--. 1 j j 11016  2월  4 12:56 rpmList

>: 표준 출력(모니터)에 대해 redirection, 재지향을 통해서 파일로 출력함

 

⚠️ 만일 기존 파일과 동일한 이름의 파일명으로 저장할 경우, 덮어쓰기 됨

[55][~]$nl a2
     1  j        pts/0        2023-02-03 22:51 (gateway)
[56][~]$date > a2
[57][~]$nl a2
     1  2023. 02. 04. (토) 12:59:00 KST

 

⚠️ 덮어쓰기가 아닌 내용 추가를 하고 싶은 경우, '>>' 활용

[57][~]$nl a2
     1  2023. 02. 04. (토) 12:59:00 KST
[58][~]$who >> a2
[59][~]$nl a2
     1  2023. 02. 04. (토) 12:59:00 KST
     2  j        pts/0        2023-02-03 22:51 (gateway)

 

➕ PuTTY에서의 복사, 붙여넣기

복사: 드래그

붙여넣기: 오른쪽 마우스 클릭

 

728x90
728x90

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

28강 bash - 3

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

PS1: Prompt Status1, 명령 프롬프트

PS2: Prompt Status2, 보조 프롬프트

[j@hj0216 ~]$ echo $PS1
[\u@\h \w]\$
[j@hj0216 ~]$ echo $PS2
>

 

PS1, PS2 설정 변경

[j@hj0216 ~]$ PS1='[\!][\w]\$'
[31][~]$

[\!]: command number

[w]: current location

[43][~]$PS2='HELLO'
[43][~]$echo '
HELLO'


[44][~]$

 

자동 완성(tab)

[44][~]$history
    1  2023-02-04 08:02:55 history
    2  2023-02-04 08:09:26 echo $SHELL
    3  2023-02-04 08:10:21 env

자동 완성이 가능한 리스트 출력(tab * 2)

[45][~]$h
h            hardlink     head         history      hostn
h2ph         hash         help         hostid       hwclo
halt         hdsploader   hexdump      hostname
728x90
728x90

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

27강 bash - 2

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

 로그인 시, Booting 과정

1. 파일 읽어오기 및 내용 적용

/etc/profile

/etc/profile.d/*.sh

 

 

2. 홈 dir 내 파일 읽어오기 및 내용 적용

~/.bash_profile (각 사용자의 master file)

[j@hj0216 ~]$ nl .bash_profile
     1  # .bash_profile

     2  # Get the aliases and functions
     3  if [ -f ~/.bashrc ]; then
     4          . ~/.bashrc
     5  fi

     6  # User specific environment and startup programs

     7  PATH=$PATH:$HOME/.local/bin:$HOME/bin

     8  export PATH

#: 주석

if [ -f ~/.bashrc ]; then: ~/.bashrc home dir에 .bashrc file이 존재한다면,

        . ~/.bashrc: .bashrc file을 읽어 올 것

PATH=$PATH:$HOME/.local/bin:$HOME/bin: PATH 변수에 $PATH, 원래 PATH가 갖고 있는 값을 넣고 $HOME/.local/bin, $HOME/bin 추가

export PATH: 지역변수를 전역변수화 시킴

[j@hj0216 ~]$ echo $AGE
30
[j@hj0216 ~]$ bash
# 새로운 shell 실행
[j@hj0216 ~]$ echo $AGE

# bashrc에서 설정한 AGE변수는 지역변수이므로 해당 shell이 아닌 다른 shell에서는 적용되지 않음

[j@hj0216 ~]$ exit
[j@hj0216 ~]$ export AGE
# 변수를 export하므로써 지역변수->전역변수
[j@hj0216 ~]$ bash
[j@hj0216 ~]$ echo $AGE
30

.bashrc 파일 수정 시, 해당 session에는 반영이 되어있지 않으므로 수정 후 . ~/.bashrc_profile 수정 파일 재실행

 

 

~/.bashrc (각 사용자의 보조 file)

[j@hj0216 ~]$ nl .bashrc
     1  # .bashrc

     2  # Source global definitions
     3  if [ -f /etc/bashrc ]; then
     4          . /etc/bashrc
     5  fi

     6  # Uncomment the following line if you don't like systemctl's auto-paging feature:
     7  # export SYSTEMD_PAGER=

     8  # User specific aliases and functions

 if [ -f /etc/bashrc ]; then : etc dir 밑에 bashrc 파일이 존재할 경우,
          . /etc/bashrc: etc dir 밑에 bashrc 파일 실행

 alias and functions를 .bashrc에 저장하여 session 변경 시에도 사용할 수 있도록 할 수 있음

 

 

/etc/bashrc (모든 사용자들에게 적용되는 bashrc 파일, $PS1* 설정)

[j@hj0216 ~]$ cat /etc/bashrc
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

...

Prompt란 컴퓨터가 입력을 받아들일 준비가 되어서 기다리고 있다는 것을 알려주는 메세지로 Linux창에서 $(일반유저), #(관리자)을 의미

윈도우 CMD에서는 Prompt가 1개뿐이지만, Linux에서는 PS(Prompt String)1, PS2, 총 2개가 존재

PS1에서 주로 작업을 하게되며, PS1에서 명령어를 불완전하게 입력할 경우, '>' 표시의 단순한 prompt로 변화하게 되는데, 이 때 이 prompt를 PS2라고 함

 

 

~/.bash_history (로그아웃 전 작업 내용 저장)

[j@hj0216 ~]$ nl .bash_history
     1  who am i
     2  whoami
     3  exit

 

 

~.bash_logout (로그아웃 시 필요한 작업 내용 저장)

[j@hj0216 ~]$ nl .bash_logout
     1  # ~/.bash_logout

 

 

참고 자료

📑 [리눅스] 셸 환경변수, 프롬프트(Prompt)란, PS1과 PS2 차이점, 관련 문제

 

728x90
728x90

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

26강 bash - 1

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

환경변수 목록 조회

[j@hj0216 ~/dd]$ env
HOSTNAME=hj0216.linux.kr
HISTSIZE=1000
SSH_CLIENT=10.0.2.2 55897 22
USER=j
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/j/.local/bin:/home/j/bin
PWD=/home/j/dd
LANG=ko_KR.UTF-8
HOME=/home/j
LOGNAME=j

 

변수값 조회

[j@hj0216 ~/dd]$ echo $HOSTNAME
hj0216.linux.kr
[j@hj0216 ~/dd]$ hostname
hj0216.linux.kr

 

현재 사용중인 shell 조회

[j@hj0216 ~/dd]$ echo $SHELL
/bin/bash

shell list 조회

[j@hj0216 ~/dd]$ chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

sh: Bourne shell

bash: Bourne again Shell (Linux가 기본적으로 사용하는 Shell)

 

User Home dir 내 모든 file list 조회

[j@hj0216 ~]$ ls -al
합계 20
drwx------. 2 j    j     99  2월  4 08:24 .
drwxr-xr-x. 3 root root  15  1월 15 19:13 ..
-rw-------. 1 j    j    416  2월  4 02:40 .bash_history
-rw-r--r--. 1 j    j     18 10월 31  2018 .bash_logout
-rw-r--r--. 1 j    j    193 10월 31  2018 .bash_profile
-rw-r--r--. 1 j    j    231 10월 31  2018 .bashrc
-rw-------. 1 j    j    905  2월  4 06:37 .viminfo

 

 로그인 시, Booting 과정

1. 파일 읽어오기 및 내용 적용

/etc/profile

/etc/profile.d/*.sh

2. 홈 dir 내 파일 읽어오기 및 내용 적용

~/.bash_profile (각 사용자의 master file)

[j@hj0216 ~]$ nl .bash_profile
     1  # .bash_profile

     2  # Get the aliases and functions
     3  if [ -f ~/.bashrc ]; then
     4          . ~/.bashrc
     5  fi

     6  # User specific environment and startup programs

     7  PATH=$PATH:$HOME/.local/bin:$HOME/bin

     8  export PATH

~/.bashrc (각 사용자의 보조 file)

[j@hj0216 ~]$ nl .bashrc
     1  # .bashrc

     2  # Source global definitions
     3  if [ -f /etc/bashrc ]; then
     4          . /etc/bashrc
     5  fi

     6  # Uncomment the following line if you don't like systemctl's auto-paging feature:
     7  # export SYSTEMD_PAGER=

     8  # User specific aliases and functions

~/.bash_history (로그아웃 전 작업 내용 저장)

[j@hj0216 ~]$ nl .bash_history
     1  who am i
     2  whoami
     3  exit

~.bash_logout (로그아웃 시 필요한 작업 내용 저장)

[j@hj0216 ~]$ nl .bash_logout
     1  # ~/.bash_logout

 

728x90