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
Last revisionBoth sides next revision
public:computer:linux [2021/08/21 21:04] alexpublic:computer:linux [2021/08/22 10:27] 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
Line 140: Line 186:
     * /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 274:
  
  
-  * raid(Redundant Array of Inexpensive/Independent Disks)+  * raid(Redundant  of Inexpensive/Independent Disks)
     * 단순볼륨     * 단순볼륨
     * linear raid     * linear raid
Line 251: Line 297:
   * 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 327:
   * 변수   * 변수
     * 변수=값; = 앞뒤로 공백 없음, 문자열     * 변수=값; = 앞뒤로 공백 없음, 문자열
-  * 숫자 계산; 역따옴표, 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.txt
  • Last modified: 2021/08/23 23:19
  • by alex