LINUX 노트 첫 주 4.13 - 4.19
1. 리 눅 스 의 발행 판 을 시리즈 별로 나열 하고 발행 판 간 의 관계 와 차 이 를 설명 한다.
2. Centos 7.6 운영 체 제 를 설치 하여 자신의 이름 을 가 진 사용자 이름 을 만 들 고 정상적으로 로그 인하 여 주요 절 차 를 캡 처 할 수 있 습 니 다.
3. 환경 변 수 를 설정 하고 history 를 실행 할 때 명령 을 실행 하 는 시간 을 볼 수 있 습 니 다.
4. 리 눅 스 철학 사상 을 정리한다.
5. Linux 상용 명령 사용 형식 을 정리 하고 인 스 턴 스 로 설명 합 니 다.예 를 들 어 echo, screen, date, ifconfig, export 등 명령
1 리 눅 스 의 발행 판 을 시리즈 별로 나열 하고 발행 판 간 의 관계 와 차 이 를 묘사한다.
1) Linux 배포 판 (distribution)
Debian、RedHat、SUSE
2) 연락
LINUX 의 발전 을 바탕 으로 공 개 된 표준 POSIX 표준 을 바탕 으로 재 작성 되 었 습 니 다. LINUXJ 는 자유 소프트웨어 로 소스 코드 를 무료 로 공개 합 니 다.
LINUX 의 사상 은 UNIX 에서 기원 되 었 다.
GPL 프로 토 콜 기반
LINUX 는 커 널 일 뿐 발행 버 전 은 모두 여기에서 이 루어 진다.
3) 구별
발행 버 전에 따라 하 나 는 상업 회사, 예 를 들 어 RedHat 이 고 하 나 는 debian 을 대표 로 하 며 지역사회 조직 유지 이다.
Debian 은 Ubuntu 를 포함 하고 GNU 규범 에 따라 패키지 관리 도구 apt - get / dpkg
RedHat 은 Fedora, Rhel, Centos 를 포함 한 빨 간 모자 회사 의 연구 개발 이다.
2. Centos 7.6 운영 체 제 를 설치 하여 자신의 이름 을 가 진 사용자 이름 을 만 들 고 정상적으로 로그 인하 여 주요 절 차 를 캡 처 할 수 있 습 니 다.
설치 무시
ubuntu
groupadd -g 1002 developer
useradd -u 1002 -g 1002 -d /home/zzw1 -s /bin/bash -m zzw1
passwd zzw1
id zzw1
uid=1002(zzw1) gid=1002(developer) groups=1002(developer)
3. 환경 변 수 를 설정 합 니 다. history 를 실행 할 때 명령 을 실행 하 는 시간 을 볼 수 있 습 니 다.
vim ~/.bashrc
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
. ~/.bashrc
4 리 눅 스 철학 사상 총화
1) 모든 파일
2) 매우 작은 단일 용도 의 프로그램 을 제공한다
3) 연결 프로그램, 복잡 한 기능 수행
4) 설정 데 이 터 를 텍스트 에 저장
5. Linux 상용 명령 사용 형식 을 정리 하고 인 스 턴 스 로 설명 합 니 다.예 를 들 어 echo, screen, date, ifconfig, export 등 명령
내부 명령 과 외부 명령 으로 나 뉘 어 type 으로 보기
내 장 된 명령 xxx 는 echo, export 와 같은 셸 빌 트 인 입 니 다.
화면, 날짜, ifconfig 와 같은 외부 명령 xxx 는 $PATH / xxx 입 니 다.
내 장 된 명령 보기
help echo
echo: echo [-neE] [arg ...]
Write arguments to the standard output.
Display the ARGs, separated by a single space character and followed by a
newline, on the standard output.
Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
-E explicitly suppress interpretation of backslash escapes
외부 명령 xxx -- help
screen --help
Use: screen [-opts] [cmd [args]]
or: screen -r [host.tty]
Options:
-4 Resolve hostnames only to IPv4 addresses.
-6 Resolve hostnames only to IPv6 addresses.
-a Force all capabilities into each window's termcap.
-A -[r|R] Adapt all windows to the new display width & height.
-c file Read configuration file instead of '.screenrc'.
-d (-r) Detach the elsewhere running screen (and reattach here).
-dmS name Start as daemon: Screen session in detached mode.
-D (-r) Detach and logout remote (and reattach here).
-D -RR Do whatever is needed to get a screen session.
-e xy Change command characters.
-f Flow control on, -fn = off, -fa = auto.
-h lines Set the size of the scrollback history buffer.
-i Interrupt output sooner when flow control is on.
외부 명령 과 man 도움말 매 뉴 얼 을 볼 수 있 습 니 다.
man 수첩 의 분류 (일반적으로 9 가지 로 나 뉘 지만 앞의 8 가지 만 자주 사용 합 니 다)
1 일반적인 명령 (외부 프로그램 이나 셸 명령)
2 시스템 호출 (커 널 에서 제공 하 는 함수)
3 라 이브 러 리 호출 (라 이브 러 리 에서 제공 하 는 함수)
4. 특수 파일 (항상 / dev 에서 장치 파일)
5 파일 형식, 설정 파일 의 형식 을 설명 합 니 다.
6 게임 관련
잡다 한 항목
8 관리자 명령
9. 커 널 프로그램 (비 표준)
man - f man 을 통 해 어떤 종 류 를 볼 수도 있 고 whatis 를 통 해 볼 수도 있 습 니 다.
일반 형식
command [options] [arguments]
- command:
- options:-- -
- arguments: , 。
진급 하 다
1. LNMP 를 컴 파일 하고 사용자 정의 404 페이지 를 설정 하 며 접근 로 그 를 json 형식 으로 설정 합 니 다.
컴 파일 php
./configure --prefix=/opt/php74 --enable-fpm --with-libzip --with-openssl --with-freetype --with-jpeg --enable-bcmath --enable-pcntl
make
make install
vim /lib/systemd/system/php74-fpm.service
[Unit]
Description=The PHP 7.4 FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php74/var/run/php-fpm.pid
ExecStart=/opt/php74/sbin/php-fpm --nodaemonize --fpm-config /opt/php74/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
systemctl start php74-fpm
openresty 컴 파일
./configure --prefix=/opt/openresty --with-luajit --with-http_iconv_module
gmake
gmake install
nginx 프로필
json 형식 으로 404 와 질문 로 그 를 사용자 정의 합 니 다.
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format log_json '{ "@timestamp": "$time_local", '
'"remote_addr": "$remote_addr", '
'"referer": "$http_referer", '
'"request": "$request", '
'"status": $status, '
'"bytes": $body_bytes_sent, '
'"agent": "$http_user_agent", '
'"x_forwarded": "$http_x_forwarded_for", '
'"up_addr": "$upstream_addr",'
'"up_host": "$upstream_http_host",'
'"up_resp_time": "$upstream_response_time",'
'"request_time": "$request_time"'
' }';
access_log /var/run/access.log log_json;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name blog.chromev.com localhost;
root /var/www/php;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
index index.html index.htm index.php;
}
error_page 404 404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location = /404.html {
root /var/www/html2;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
json 형식
tail -f /var/run/access.log
{ "@timestamp": "19/Apr/2020:21:48:52 +0800", "remote_addr": "108.162.215.50", "referer": "http://blog.chromev.com/asd", "request": "GET /404.html HTTP/1.1", "status": 304, "bytes": 0, "agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36", "x_forwarded": "36.57.145.226", "up_addr": "-","up_host": "-","up_resp_time": "-","request_time": "0.000" }
2. 가상 호스트 를 설정 하여 https 가 www. x. com (x. com 이 정의 한 도 메 인 이름) 에 접근 하도록 합 니 다.
OpenSSL 기반 자체 CA 및 SSL 인증서 발급
CA 서버 에서 작 동
1 루트 인증서 생 성
1) 프로필
/etc/pki/tls/openssl.cnf
2) CA 디 렉 터 리 에 두 개의 초기 파일 만 들 기
cd /etc/pki/CA
touch index.txt serial
echo 01 > serial
3) 루트 키 생 성
cd /etc/pki/CA/
openssl genrsa -out private/cakey.pem 2048
안전 을 위해 cake. pem 비밀 키 파일 권한 을 600 또는 400 으로 수정 하거나 하위 셸 생 성
( umask 077; openssl genrsa -out private/cakey.pem 2048 )
을 사용 할 수 있 습 니 다. 다음은 중복 되 지 않 습 니 다.4) 루트 인증서 생 성 (이 컴퓨터 에 가입 해 야 함)
req 명령 을 사용 하여 자체 서명 인증 서 를 생 성 합 니 다.
cd /etc/pki/CA/
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
WEB 서버 에서
2 nginx 웹 서버 생 성 ssl 키
1) 비밀 키 생 성
cd /opt/openresty/nginx/ssl/
openssl genrsa -out nginx.key 2048
2) nginx 인증서 생 성 요청
cd /opt/openresty/nginx/ssl/
openssl req -new -key nginx.key -out nginx.csr
...
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:SZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:COMPANY
Organizational Unit Name (eg, section) []:IT_SECTION
Common Name (e.g. server FQDN or YOUR name) []: blog.chroemv.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
...
또한 일부 내용 을 입력 하 는 것 을 알려 줍 니 다. 다른 것 은 마음대로
Commone Name
를 제외 하고 인증서 의 서버 도 메 인 이나 호스트 이름 을 부여 하려 면 challenge password 를 입력 하지 않 습 니 다.3) CA 공개 키 로 서명
openssl ca -in nginx.csr -out nginx.crt
3 인증서 사용
1) Nginx ssl 인증서 사용
# HTTPS server
#
server {
listen 443 ssl;
server_name blog.chromev.com;
root /var/www/php/;
#ssl_certificate cert.pem;
#ssl_certificate_key cert.key;
ssl_certificate /opt/openresty/nginx/ssl/nginx.crt;
ssl_certificate_key /opt/openresty/nginx/ssl/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
2 운영 체제 에 CA 루트 인증 서 를 추가 하여 신뢰 받 기
mac 추가
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /cacert.pem
명령 행 으로 인증 서 를 관리 하 는 것 외 에
에서 도 관리 할 수 있다.Linux (CentOs 6)
# ca-certificates package:
yum install ca-certificates
# dynamic CA configuration feature:
update-ca-trust force-enable
# /etc/pki/ca-trust/source/anchors/
mv /cacert.pem /etc/pki/ca-trust/source/anchors/
# :
update-ca-trust extract
3 성공 여부 검증
curl -k https://blog.chromev.com
Hello World
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.