우분투 Desktop과 Server 차이
Desktop용과 Server용의 가장 큰 차이는 GUI환경 유무이다.
Desktop용은 GUI가 있지만, Server용은 GUI가 없다.
따라서 Server용은 텍스트로만 되어있는 터미널에서 명령어를 입력하게 된다.
다른 차이는 패키지 차이이다.
Server용은 가장 기본적인 패키지만을 포함해 필요한 패키지를 그때그때 설치해서 사용할 수 있는 반면,
Desktop용은 사용할만한 패키지들을 기본적으로 제공하고 있어 용량이 비교적 더 크다.
Ubuntu Desktop | 편리하지만 느림, 용량이 큼 |
Ubuntu Server | 용량이 작고 빠르지만 GUI가 없어 불편함 |
<Ubuntu Server에서 많이 쓰는 명령어>
1. pwd(print working directory)
: 현재 사용자가 위치하고 있는 경로를 출력해줌
2. ls(list)
: 현재 위치한 디렉토리에 있는 파일과 디렉토리 리스트를 보여줌
[Option]
-> ls -l : 파일과 디렉토리에 대한 내용을 구체적으로 출력
-> ls -a : 현재 디렉토리에서 숨김파일을 포함하여 출력함
-> ls -li : ls -l 상태에서 inode 번호를 함께 출력함
-> ll : ls -l 과 동일
3. chmod(change Mode)
: 권한 변경
-> chmod 664 fileName
-> chmod u+x fileName
-> u(user), g(group), o(other)를 의미하며 +는 권한부여, -는 권한 박탈
ex) u + x => 유저에게 execute 권한 부여
4. mkdir(make Directory)
: 디렉토리 생성
-> mkdir directory_name
5. touch
: 빈 파일 생성
-> touch fileName
6. rm(remove)
: 파일 삭제 명령
-> rm filename
-> rm -r directory_name (-f 옵션이 없다면, directory는 지워지지 않음)
7. cd(change Directory)
: 디렉토리를 이동함
-> cd path
8. mv(move)
: 파일, 디렉토리를 이동시키거나 이름을 변경시키는 명령어
-> mv file1 file2 (이름 변경)
-> mv file1 dir1 (file을 dir1로 이동)
-> mv dir1 dir2 (dir1을 dir2 하위로 이동)
9. cp(copy)
: 파일, 디렉토리를 복사함
-> cp file1 copy_file
-> cp -r dir1 copy_dir (-r 옵션이 없으면 directory 복사 안됨)
10. ln(link)
: 링크파일을 생성
-> ln -s source target
-> ln source target (hardlink, 같은 inode 번호를 가짐)
11. cat
: 파일의 내용을 출력
-> cat FileName (filename의 내용을 출력)
-> cat FileName | more (내용이 많을 경우 좀 더 편하게 볼 수 있음)
-> cat source > target (출력의 방향을 파일로 변경함, source를 target으로 복사했다고 볼 수 있음. 주의할건 만약 target으로 지정한 파일의 이름이 이미 존재 할 경우, 그 파일에 source의 내용이 덮어쓰기됨)
-> cat source >> target (source의 내용이 target 파일에 append됨)
12. head
: 파일의 맨 앞에서 몇 라인만을 출력
-> head fileName
-> option으로 Line 수를 지정할 수 있음
13. tail
: 파일의 맨 아래 몇 라인만을 출력
-> tail fileName
-> tail -f fileName(파일의 마지막에 데이터가 추가되는 즉시, 파일의 내용을 출력해주고 개발 시 로그파일을 볼 때 많이 사용)
14. grep
: 검색하고자 하는 문자를 옵션으로 주면 해당 문자열과 일치하는 파일을 찾아줌
-> grep 문자열 파일 이름 ex) grep test *.log
-> grep -H 문자열 파일 이름 (어떤 파일인지를 함께 출력)
-> grep -w 문자열 파일 이름 (입력한 문자열과 정확히 일치하는 파일만 출력)
15. less
: 파일을 열고 내용을 볼 수 있는 TextViewer 기능을 가짐
: 목적도 용도가 vi와는 다르기 때문에 별도로 알아야 됨
-> 1GB 정도 되는 로그파일을 vi로 열게되면 1GB가 모두 메모리에 올라가고, 네트워크 트래픽 또한 1GB만큼 발생하게 됨. 하지만, less 명령어를 이용해 열면 화면에 보이는 만큼만 메모리에 올라감. 즉, 용량이 큰 로그파일을 열때는 less 명령어를 사용하는 것이 좋음
<System 명령어>
1. tar
: 압축 관련 명령어
-> tar cvfz target.tar.gz source1 source2 (source1, source2를 target으로 압축함. 현재 디렉토리를 모두 압축하고싶은 경우 *를 사용)
-> cvfz중 c가 create를 의미함
-> tar.gz는 tar(파일과 디렉토리를 한 묶음으로 만든다)라는 명령어를 이용해 gzip으로 압축함을 의미
-> tar xvfz source.tar.gz
-> xvfz중 x는 extract를 의미. 압축을 해제할 때 사용
2. sudo
: 관리자 권한을 사용할 수 있는 명령어
-> root 계정으로 접속해 etc/sudoers 파일에서 계정에 권한을 주어야함
3. chown(change Owner)
: 파일 또는 디렉토리의 소유자, 그룹명을 변경하는 명령어
: 소유권을 뺏을수도 있는 것이기 때문에 관리자 권한이 필요(sudo)
-> chown user: group(or user) target
4. find
: 파일이나 디렉토리를 찾을 때 사용하는 명령어
: 검색조건이 매우 다양함
-> find 경로 조건 target
5. which
: 명령어의 위치를 조회하는 명령어
-> which 찾을 명령어
6. top
: 운영중인 서버의 CPU, Memory 등의 상태를 확인하는 명령어
: 상단에는 CPU 사용률과 메모리 사용률을 표시
: 하단에는 프로세스 별 CPU 사용률과 메모리 사용률을 표시
: 갱신하는 주기는 default 3초
-> 매 초마다 갱신하고 싶다면, 화면에서 d를 누르고 1을 입력하거나 top 명령어를 실행할 때 top -d 1 처럼 옵션을 입력해 실행해도 됨
-> 실행 화면에서 h를 누르면 사용할 수 있는 명령어가 나옴
7. w
: 현재 리눅스 장비에 접속한 사용자가 누구인지 조회하는 명령어
: 사용자 아이디, 접속한 시간, IP, CPU 사용률, 어떤 작업을 수행중인지 출력
: 간단하게 보고싶으면 who 명령어를 사용하면 됨
8. ping
: 네트워크 설정이 잘 되어있는지 알아볼때 사용
-> ping domain(or IP)
9. nslookup
: domain을 이용하여 IP를 알아낼 때 사용하는 명령어
-> nslookup domain
10. ps(process status)
: 현재 구동중인 모든 프로세스 정보를 조회할 때 사용하는 명령어
: 너무 많은 정보를 보여주기 때문에 주로 옵션과 함께 사용
-> ps -ef | grep apache (프로세스 중 apache가 들어간 것을 조회)
: PID는 각 프로세스마다 할당되는 유니크한 번호
: PID 오른쪽에는 해당 프로세스의 부모 프로세스 PID를 나타냄
11. kill
: 프로세스를 종료하는 경우 사용하는 명령어
: PID를 이용해 종료시킴
: kill은 관리자 권한이 필요
-> kill -9 PID (-9 옵션을 주면 강제종료)
12. man
: 명령어에 대한 메뉴얼 제공
-> man 3 sleep 처럼 3을 옵션으로 주면 프로그래밍에 대한 메뉴얼을 제공받을 수 있음
13. adduser
: 새로운 사용자를 추가하는 경우 사용하는 명령어
: 관리자 권한이 필요한 명령어
-> adduser 사용자ID
14. su
: 사용자를 변경할 때 사용하는 명령어
-> su - (root 계정 접속)
-> su -l userID (해당 userID로 접속)
15. deluser
: 사용자를 삭제하는 경우 사용하는 명령어
: 관리자 권한이 필요한 명령어
-> deluser 사용자ID