public:computer:linux

Differences

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

Link to this comparison view

Next revision
Previous revision
public:computer:linux [2021/08/21 02:29] – created 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 227: Line 274:
 </grid> </grid>
  
 +
 +  * raid(Redundant  of Inexpensive/Independent Disks)
 +    * 단순볼륨
 +    * linear raid
 +    * raid 0; stripping
 +    * raid 1; mirroring, fault-tolerance
 +    * raid 5; parity
 +    * raid 6; 
 +    * raid 1+0, 1+6
 +
 +
 +  * quota; /etc/fstab -> reboot -> quota heck, quotaon/quotaoff -> edquota
 +
 +
 +==== bash shell script ====
 +  * alias
 +  * history
 +  * 연산기능
 +  * job control 기능
 +  * 자동 이름 완성 기능
 +  * 프롬프트 제어 기능
 +  * 명령 편집 기능
 +  * shebang(hashbang)
 +
 +^  환경변수 ^^
 +| HOME  | 현재 사용자의 홈 디렉토리  |
 +| PATH  | 실행 파일을 찾는 디렉토리 경로  |
 +| LANG  | 기본 지원되는 언어  |
 +| PWD  | 사용자의 현재 작업 디렉토리  |
 +| TERM  | 로그인 터미널 타입  |
 +| SHELL  | 로그인해서 사용하는 쉘  |
 +| USER  | 현재 사용자의 이름  |
 +| DISPLAY  | X 디스플레이 이름  |
 +| COLUMNS  | 현재 터미널의 컬럼 수  |
 +| LINES  | 현재 터미널 라인 수  |
 +| PS1  | 1차 명령 프롬프트 변수  |
 +| PS2  | 2차 명령 프롬프트 (대개는 '>' |
 +| BASH  | bash 쉘의 경로  |
 +| BASH_VERSION  | bash 버전  |
 +| HISTFILE  | 히스토리 파일의 경로  |
 +| HISTSIZE  | 히스토리 파일에 저장되는 개수  |
 +| HOSTNAME  | 호스트의 이름  |
 +| USERNAME  | 현재 사용자 이름  |
 +| LOGNAME  | 로그인 이름  |
 +| LS_COLORS  | ls 명령의 확장자 색상 옵션  |
 +| MAIL  | 메일을 보관하는 경로  |
 +| OSTYPE  | 운영체제 타입  |
 +
 +  * export 환경변수=값, printenv
 +  * .sh
 +  * echo
 +  * chmod +x
 +  * 변수
 +    * 변수=값; = 앞뒤로 공백 없음, 문자열
 +  * 숫자 계산; 역따옴표`, expr \(, \), \*,
 +  * 파라미터; $0, $1, $2, …
 +  * if ~ fi, else
 +<alert type="info">
 +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.1629480585.txt.gz
  • Last modified: 2021/08/21 02:29
  • by alex