✔ 리눅스 명령어 구조
- 형식
- 명령어 [옵션] [인자]
- 명령어 : 리눅스를 사용하기 위해 사용자가 입력하는 명령
- 옵션 : 명령의 세부 기능으로 -나 --로 시작함
- 대부분의 경우 -다음에는 한 글자고, -- 다음에는 단어가 옴
- 인자 : 명령에 전달하는 값
- 각 요소는 공백으로 구분합니다.
- []안에 나오면 생략 가능
- | 다음에 나오면 선택
- 문자열, {}, <, > 은 필수
실습
- ls 명령은 현재 디렉토리에 있는 모든 내용을 출력
- ls -a
- ls -l
- ls -a -l
- ls -l -a
- ls -al 이렇게 다 가능함
종료와 재시작
- 종료 : shutdown
- shutdown -P +분단위시간 : 분단위 시간 뒤에 종료
- shutdown -r 시간 : 시간에 재부팅
- shutdown -c : 예약된 종료 취소
- shutdown -k +분단위시간 : 분단위시간 뒤에 종료한다는 메시지 출력
재부팅
- reboot
- shutdown -r now
- init 6
로그아웃
명령어
명령어 도움말
- man 도움말
- clear 도움말을 원한다면 : man clear
현재 화면 클리어
비밀번호 변경
명령어에 별명(alias) 붙이기
- alias 별명='실제명령'
- alias lsa='ls -a'
명령어 자동 완성
- cmd와 같이 현재 입력 중인 내용으로 시작하는 명령이 1개 밖에 없는 경우 입력 도중 tab을 누르면 명령어를 자동완성해줌
- 명령어가 여러 개 존재하는 경우 tab 한번 더 누르면 모든 명령어 출력
History Recall
- 위 아래 화살표 이용하면 이전 수행 명령어 확인 가능함
date
timedatectl
사용자 정보
- logname
- 사용중인 로그인 이름 확인
- users
- 접속한 사용자의 아이디
- who
- 로그인 한 모든 사용자 계정
- whoami
- 현재 우분투 사용자 확인
시스템 정보 확인
- uname [옵션]
- 옵션
- -a : 모든 정보 확인
- -m : 사용중인 하드웨어 정보 확인
- -n : 호스트 이름 확인
- -r : 운영체제 릴리즈 번호
- -s : 운영체제 이름
- -v : 버전 출시 일자
sudo
- sudo 명령어 : 관리자 권한으로 명령어 실행
- sudo su : 현재 계정의 환경 변수를 유지하면서 관리자 계정으로 전환
- sudo su - : 환경변수까지 완전히 전환할 때 사용함
✔ 파일 시스템
파일과 디렉토리
리눅스 파일의 종류
- 일반파일
- 데이터를 저장하는데 사용
- 텍스트 파일, 실행 파일, 이미지 파일 등
- 텍스트 파일은 파일 내용을 확인하는 명령으로 내용 확인 가능하고, 문서 편집기를 사용해서 내용을 보거나 편집할 수 있다.
- 그 이외 파일들은 데이터가 바이너리 형태로 되어 있어서 바이너리 파일이라고도 하고, 특정 응용 프로그램이 있어야만 사용이 가능함
- 디렉토리
- 리눅스에서는 디렉토리도 파일로 간주
- 심볼릭 링크
- 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한 것
- 윈도우즈의 바로가기 아이콘과 유사
- 장치 파일
- 하드 디스크가 키보드와 같은 장치도 파일로 취급
- 대부분의 장치 파일은 /dev 디렉토리 안에 존재
file 명령을 이용해서 파일의 종류를 확인하는 것이 가능
- file .profile
- file .ssh
- file /bin/bash
디렉토리 계층 구조
- 루트 디렉토리로부터 시작하는 계층 구조
- 루트 디렉토리를 표시하는 기호가
/
이다.
- 루트 디렉토리 안에 bin, etc, usr, home, boot, dev 등의 디렉토리가 존재함
- 루트 디렉토리 안의 서브 디렉토리 확인 : ls -F /
- @이 붙은 것은 symbolic link
- 루트 디렉토리 안의 디렉토리의 주요 기능
- dev : 장치 파일이 담긴 디렉토리
- home : 사용자 홈 디렉토리가 생성되는 디렉토리
- mdeia : USB 와 같은 외부 장치를 연결하는 디렉토리
- opt : 추가 패키지가 설치되는 디렉토리
- root :루트 계정의 홈 디렉토리
- sys : 리눅스 커널과 관련된 파일이 존재하는 디렉토리
- usr :기본 실행 파일과 라이브러리 파일, 헤더 파일이 위치 - unix system resource의 약자
- boot : 부팅에 관련된 파일
- etc : 리눅스 설정을 위한 파일
- lost+found : 파일 시스템에 문제가 발생해서 복구할 경우 문제가 되는 파일이 저장되는 디렉토리로 보통은 비어 있음
- mnt : 파일 시스템을 임시로 마운트하는 디렉토리
- proc : 프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리
- run : 실행 중인 서비스와 관련된 파일이 저장되는 디렉토리
- srv : FTP나 WEB 등 시스템에서 제공하는 서비스의 데이터가 저장되는 디렉토리
- tmp : 임시 디렉토리로 재부팅하면 내용이 모두 소멸
- var : 시스템 운영 중에 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장
- 작업 디렉토리
- 현재 작업 디렉토리를 확인하는 명령은 pwd
- 홈 디렉토리
- 각 사용자에게 할당된 디렉토리
- 홈 디렉토리를 표시하는 기호는 ~
- 홈 디렉토리로 프롬프트 옮기는 명령은 cd ~
절대경로와 상대경로
- 절대경로
- 루트로부터의 경로
- 유닉스나 리눅스에서는 / 로 시작함
- / 로 시작해서 모든 중간 경로를 기재하는 방식
- 경로는 절대 불변
- 상대경로
- 현재 경로로부터의 경로
- / 이외의 문자로 시작
- ./ 는 현재 디렉토리를 의미하는 예약어
- ../ 는 상위 디렉토리로 이동하는 예약어
- 루트 디렉토리의 etc안의 hosts 디렉토리로 이동
- 절대 경로 : cd /etc/hosts
- 상대 경로 : 현 디렉이 사용자 홈 디렉
- /home/유저이름 이기에 ../home ../ 하면 루트 -> ../../etc/hosts
- 상대 경로를 사용할 때, 현 디렉 의미하는 ./는 생략해도 되는 경우가 있지만, 실행을 할 때는 생략하면 절대 안됩니다.
실습
- 홈디렉 이동 : cd ~
- 절대 경로로 etc/hosts까지 이동하기
- cd /etc/hosts
- 프롬프트 확인 혹은 pwd 명령어로 확인하ㅣㄱ
- 상대경로로 이동하기
- cd ../../etc/hosts
- 절대 경로와 상대 경로를 사용하는 방법을 알아야 하는 이유는 웹 프로그래밍에서 요청 경로를 설저어할 때도 동일한 방식을 사용합니다.
- 웹 프로그래밍을 할 때, 절대 경로를 사용하는게 편리하지만, 프레임워크들은 상대 경로 형태로 지정하는 것을 강제하는 경우도 있습니다.