public:computer:linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
public:computer:linux [2021/08/21 21:04] alexpublic:computer:linux [2021/08/23 23:19] (current) alex
Line 17: Line 17:
  
  
-  * ls+  * ls; list 파일 목록
 <grid> <grid>
 <col sm="6"> <col sm="6">
 <cli prompt="$ " comment="  #"> <cli prompt="$ " comment="  #">
-$ ls +$ ls  # 현재 디렉토리 파일 목록 
-$ ls /etc/systemd +$ ls /etc/systemd  # /etc/systemd 디렉토리의 목록 
-$ ls -a +$ ls -a  # 현재 디렉토리의 목록(숨김 파일 포함) 
-$ ls -l +$ ls -l  # 현재 디렉토리의 목록을 자세히 
-$ ls *.conf +$ ls *.conf  # 확장자가 conf인 목록 
-$ ls -l /etc/systemd/b*+$ ls -l /etc/systemd/b*  # /etc/systemd 디렉토리에 있는 목록 중 앞 b로 시작하는 파일 목록을 자세히
 </cli> </cli>
 </col> </col>
 </grid> </grid>
  
-  * cd +  * cd; change directory 디렉토리 이동 
-  * pwd +<grid> 
-  * rm +<col sm="6"> 
-  * cp +<cli prompt="$ " comment="  #"> 
-  * touch +$ cd 
-  * mv +$ cd ~ubuntu 
-  * mkdir +$ cd .. 
-  * rmdir +</cli> 
-  * cat +</col> 
-  * head +</grid> 
-  * tail + 
-  * more +  * pwd; print working directory 
-  * less +  * rm; remove 
-  * file +<grid> 
-  * clear +<col sm="6"> 
-  * pwd+<cli prompt="$ " comment="  #"> 
 +$ rm abc.txt 
 +$ rm -i abc.txt 
 +$ rm -f abc.txt 
 +$ rm -r abc 
 +</cli> 
 +</col> 
 +</grid> 
 + 
 +  * cp; copy 
 +  * touch; 사이즈 0인 파일 생성, 파일이 존재할 경우 최종 수정 시간 변경 
 +  * mv; move 
 +  * mkdir; make directory 
 +  * rmdir; remove directory 
 +  * cat; concatenate, 파일의 내용을 화면 출력 
 +  * head; 텍스트 파일의 앞 10행 출력 
 +  * tail; 텍스트 파일의 뒤 10행 출력 
 +  * more; 텍스 파일 페이지 단위로 화면 출력, space bar, b, q 
 +  * less; more의 확장, pageUp, pageDown 
 +  * file; 파일의 종류 표시 
 +  * df; 디스크 사용량 
 +  * wc; word count 
 +  * clear; 화면 지움 
 +  * date, time, cal; 날짜, 시간, 달력 출력 
   * 파이프; |   * 파이프; |
   * 필터; grep, tail, wc, sort, awk, sed 등   * 필터; grep, tail, wc, sort, awk, sed 등
Line 72: Line 96:
   * uname -r;  커널 버전 확인   * uname -r;  커널 버전 확인
   * /etc/issue; 우분투 버전   * /etc/issue; 우분투 버전
 +  * lsb_release -a
  
   * wget   * wget
   * curl   * curl
-  * +
  
  
Line 88: Line 113:
     * 파일 이름     * 파일 이름
   * chmod; u(user), g(group), o(others)   * chmod; u(user), g(group), o(others)
-  * chown+  * chown;
   * chgrp   * chgrp
   * whoami   * whoami
Line 109: Line 134:
  
   * 파일 압축   * 파일 압축
-    * xz +    * xz; 확장명 xz로 압축/해제 
-    * bzip2 +    * bzip2; bz2로 압축/해제 
-    * gzip +    * gzip; gz 압축/해제 
-    * zip / unzip+    * zip / unzip; zip 압축/해제
   * 파일 묶기   * 파일 묶기
-    * tar+    * tar; tar로 묶음/해제 
 +      * c; 새로운 묶음 
 +      * x; 묶인 파일 해제 
 +      * t; 묶을 풀기 전에 묶인 경로 보여줌 
 +      * C; 묶음을 풀 때 지정된 디렉토리에 압축 해제. 
 +      * f(필수); 묶음 파일 이름 지정 
 +      * v; visual 
 +      * J; tar + xz 
 +      * z; tar + gzip 
 +      * j; tar + bzip2
   * 파일 위치 검색   * 파일 위치 검색
-    * find +    * find 경로 옵션 조건 action; 
-    * which +<grid> 
-    * whereis +<col sm="6"> 
-    * locate+<cli prompt="$ " comment="  #"> 
 +$ find /etc -name "*.conf" 
 +$ find /home -user ubuntu 
 +$ find ~ -perm 644 
 +$ find /user/bin -size +10k -size -100k 
 +$ find ~ -size 0k -exec ls -l { } \; 
 +$ find /home -name "*.swp" -exec rm { } \; 
 +</cli> 
 +</col> 
 +</grid> 
 +    * which; PATH에 설정된 디렉토리 검색. 절대 경로를 포함한 위치 검색 
 +    * whereis; 실행 파일 및 소스, man 페이지 까지 검색 
 +    * locate; updatedb 실행 필요
  
   * cron; crond : /etc/crontab   * cron; crond : /etc/crontab
   * at   * at
  
 +  * https://explainshell.com/
  
 ==== 네트워크 ==== ==== 네트워크 ====
Line 140: Line 187:
     * /etc/passwd; 사용자이름:암호:사용자ID:사용자소속그룹ID:추가정보:홈디렉토리:기본쉘     * /etc/passwd; 사용자이름:암호:사용자ID:사용자소속그룹ID:추가정보:홈디렉토리:기본쉘
     * /etc/group; 그룹이름:비밀번호:그룹ID:보조그룹사용자     * /etc/group; 그룹이름:비밀번호:그룹ID:보조그룹사용자
-    * adduser +    * adduser; 새로운 사용자 추가 /etc/passwd, /etc/shadow, etc/group 파일에 사용자 추가 
-    * passwd +    * passwd; 비밀번호 변경 
-    * usermod +    * usermod; 사용자 속성 변경 
-    * userdel +    * userdel; 사용자 삭제 
-    * chage +    * chage; 사용자의 암호를 주기적으로 변경하도록 설정(change age) 
-    * groups +    * groups; 사용자 소속 그룹 출력 
-    * groupadd +    * groupadd; 새로운 그룹 생성 
-    * groupmod +    * groupmod; 그숩 속성 변경 
-    * groupdel +    * groupdel; 그룹 삭제 
-    * gpasswd+    * gpasswd; 그룹 암호 설정, 그룹 관리
  
  
Line 228: Line 275:
  
  
-  * raid(Redundant Array of Inexpensive/Independent Disks)+  * raid(Redundant  of Inexpensive/Independent Disks)
     * 단순볼륨     * 단순볼륨
     * linear raid     * linear raid
Line 251: Line 298:
   * shebang(hashbang)   * shebang(hashbang)
  
-환경변수 +^  환경변수 ^^ 
-HOME +HOME  | 현재 사용자의 홈 디렉토리  | 
-LANG +PATH  | 실행 파일을 찾는 디렉토리 경로  | 
-TERM +| LANG  | 기본 지원되는 언어 
-USER +PWD  | 사용자의 현재 작업 디렉토리 
-COLUMNS +| TERM  | 로그인 터미널 타입  | 
-PS1 +SHELL  | 로그인해서 사용하는 쉘  | 
-BASH +| USER  | 현재 사용자의 이름 
-HISTFILE +DISPLAY  | X 디스플레이 이름  | 
-HOSTNAME +| COLUMNS  | 현재 터미널의 컬럼 수  | 
-LOGNAME +LINES  | 현재 터미널 라인 수  | 
-MAIL +| PS1  | 1차 명령 프롬프트 변수 
-PATH +PS2  | 2차 명령 프롬프트 (대개는 '>' | 
-PWD +| BASH  | bash 쉘의 경로 
-SHELL +BASH_VERSION  | bash 버전 
-DISPLAY +| HISTFILE  | 히스토리 파일의 경로  | 
-LINES +HISTSIZE  | 히스토리 파일에 저장되는 개수  | 
-PS2 +| HOSTNAME  | 호스트의 이름 
-BASH_VERSION +USERNAME  | 현재 사용자 이름  | 
-HISTSIZE +| LOGNAME  | 로그인 이름 
-USERNAME +LS_COLORS  | ls 명령의 확장자 색상 옵션 
-LS_COLORS +| MAIL  | 메일을 보관하는 경로  | 
-OSTYPE+OSTYPE  | 운영체제 타입  |
  
 +  * export 환경변수=값, printenv
   * .sh   * .sh
   * echo   * echo
Line 280: Line 328:
   * 변수   * 변수
     * 변수=값; = 앞뒤로 공백 없음, 문자열     * 변수=값; = 앞뒤로 공백 없음, 문자열
-  * 숫자 계산; 역따옴표, expr \(, \), \*,+  * 숫자 계산; 역따옴표`, expr \(, \), \*,
   * 파라미터; $0, $1, $2, …   * 파라미터; $0, $1, $2, …
-  * if ~ if +  * if ~ fi, else 
-  * case ~ esac +<alert type="info"> 
-  * else +if [ 조건 ] 
-  * +then 
 +  참일 경우 실행 
 +else 
 +  거짓인 경우 실행 
 +fi 
 +</alert> 
 +  * case ~ esac, 비교할내용) 명령 끝에만;; *) 나머지 조건;; 
 +  * and; -a, &&,  
 +    * [ 식1 ] && [ 식2 ]; then 
 +    * [ \(식1\) -a \(식2\) ]; then 
 +  * or; -o, || 
 +  * for ~ in; <nowiki>((i=1;i<=10;i++))</nowiki> 괄호 두개, seq 1 10 
 +<alert type="info"> 
 +for 변수 in 값1 값2 값3 
 +do 
 +  반복할 문자 
 +done 
 +</alert> 
 +  * while 참이면, until 참이 될 때 까지, break, continue, exit, return 
 +<alert type="info"> 
 +while [ 참 ] 
 +do 
 +  명령 
 +done 
 +</alert> 
 +  * 사용자 정의 함수 
 +<alert type="info"> 
 +함수이름 () { 
 +  $1, $2, 
 +  실행 
 +
 + 
 +함수이름 
 +</alert> 
 +  * eval; 문자열을 명령문으로 인식하여 실행 
 +  * printf;  
 +  * set과 $(명령) 
 + 
 +^  문자열 비교 연산자  ^^ 
 +^ 문자열 비교  ^ 결과 
 +| "문자열1" = "문자열2"  | 두 문자열이 같은면 참  | 
 +| "문자열1" != "문자열2"  | 두 물자열이 같지 않으면 참  | 
 +| -n "문자열"  | 문자열이 NULL(빈 문자열)이 아니면 참  | 
 +| -z "문자열"  | 문자열이 NULL(빈 문자열)이면 참  | 
 + 
 +^  산술 비교 연산자  ^^ 
 +^ 산술 비교  ^ 결과 
 +| 수식1 -eq 수식2  | 두 수식(또는 변수)이 같으면 참  | 
 +| 수식1 -ne 수식2  | 두 수식(또는 변수)이 같지 않으면 참  | 
 +| 수식1 -gt 수식2  | 수식1이 크다면 참  | 
 +| 수식1 -ge 수식2  | 수식1이 크거나 같으면 참  | 
 +| 수식1 -lt 수식2  | 수식1이 작으면 참  | 
 +| 수식1 -le 수식2  | 수식1이 작거나 같으면 참  | 
 +| !수직  | 수식이 거짓이라면 참  | 
 + 
 +^  파일 조건  ^^ 
 +^ 파일 조건  ^ 결과 
 +| -d 파일이름  | 파일이 디렉토리라면 참  | 
 +| -e 파일이름  | 파일이 존재하면 참  | 
 +| -f 파일이름  | 파일이 일반 파일이면 참  | 
 +| -g 파일이름  | 파일에 set-group-id가 설정되면 참  | 
 +| -r 파일이름  | 파일이 읽기 가능이면 참  | 
 +| -s 파일이름  | 파일 크기가 0이 아니면 참  | 
 +| -u 파일이름  | 파일에 set-user-id가 설정되면 참  | 
 +| -w 파일이름  | 파일이 쓰기 가능 상태이면 참  | 
 +| -x 파일이름  | 파일이 실행 가능 상태이면 참  | 
 + 
 + 
 +==== OpenSSH ==== 
 +  * apt-get -y install openssh-server 
 +  * port 22/tcp 
 +  * systemctl restart/enable/status ssh 
 + 
 +==== Name Server ==== 
 +  * DNS(Domain Name System) Server 
 +  * 캐싱 
 +    * apt-get -y install bind9 bind9utils 
 +    * /etc/bind/named.conf.options 
 +      * recursion yes; 
 +      * allow-query { any; }; 
 +    * systemctl restart/enable/status bind9 
 +    * port 53 
 +    * dig @네임서버IP 조회할URL 
 +  * 마스터 네임서버 
 +    * /etc/bind/named.conf 
 +    * named-checkconf 
 + 
 +==== Mail Server ==== 
 +  * SMTP(Simple Mail Transfer Protocol), POP(Post Office Protocol), IMAP(Internet Mail Access Protocol) 
 +  * Sendmail 
 +    * apt-get -y install sendmail 
 +    * apt-get -y install dovecot-pop3d 
 +    * /etc/mail/sendmail.cf 
 +    * /etc/mail/access 
 +    * /etc/dovecot/dovecot.conf 
 +    * /etc/dovecot/conf.d/10-mail.conf 
 +    * systemctl restart/enable sendmail 
 +    * systemctl restart/enable dovecot 
 +  * 라운드큐브 웹메일 
 +    * apt-get -y install dovecot-imapd lamp-server^ 
 +    * apt-get -y install roundcube 
 +    * /etc/apache2/conf-enabled/roundcube.conf 
 +    * /etc/roundcube/config.inc.php 
 +  * Postfix 
 +  * 네임서버 세팅 먼저 
 + 
 +==== Database Server ==== 
 +  * MySQL, mariaDB 
 +    * apt-get -y install mariadb-server mariadb-client 
 +    * port 3306 
 +    * 서버스크립트; /etc/systemd/system/mysql.service 
 +    * 클라이언트 실행파일; /usr/bin/mysql 
 +    * phpMyAdmin; apt-get -y install phpmyadmin 
 + 
 +==== Web Server ==== 
 +  * LAMP 
 +    * apt-get -y install lamp-server^ 
 +  * Apache2 
 +    * /etc/apache2/apache2.conf 
 +  * nginx 
 +  * nextCloud 
  
 +==== Firewall ====
 +  * ufw [[https://webdir.tistory.com/206|[Ubuntu] 우분투 방화벽(UFW) 설정]]
 +  * iptables [[https://happist.com/573574/%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%B0%A9%ED%99%94%EB%B2%BD-%EA%B0%95%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%9A%B0%EB%B6%84%ED%88%AC-iptables-%EC%84%A4%EC%A0%95%EB%B2%95-ddos-%EB%B0%A9%EC%96%B4|우분투 방화벽 강화를 위한 우분투 IPtables 설정법 – DDoS 방어 포함]]
  • public/computer/linux.1629547492.txt.gz
  • Last modified: 2021/08/21 21:04
  • by alex