echo hello?
pwd
홈 디렉터리
~
로도 표시터미널에 떠있던 문구 해석해보기
root@w6k2klczk39t8b56oysi8tfuc-967dd9dc8-nbspw:~#
#
: 현재 로그인한 사용자가 root 계정임을 알림(일반 사용자는 $)셸(shell)
ls
ls --all
.
: 현재 폴더
..
: 상위 폴더
참고
- 리눅스에서
.
으로 시작하는 파일 : 숨김 파일 -> --all을 이용하면 다 볼 수 있다!
ls --help
command+Shift+↑/↓
Shift+PageUp/PageDown
인자들 살펴보기
-a
: --all
을 줄여쓸 수 있음.-l
: 파일 및 폴더 권한, 소유자, 크기, 수정일시 등 상세 정보 출력-t
: 수정시간 순 정렬 출력(최신 파일 위쪽)-r
: 정렬 순서 뒤집기(-rt
: 최신 파일 아래쪽 표시되어 유용)인자는 서로 붙여쓸 수 있다!
Tip : ls -alrt
문제 : data 디렉터리 안에 있는 파일이 무엇이고, 크기가 얼마인지?
- 명령어 :
ls -lh data
- 파일 이름 : titanic.csv
- 파일 크기 : 60K
cd aiffel
cd ..
그냥 cd만 입력하면?
주요 폴더 종류
- /home: 사용자별 홈 디렉토리 모음
- /root: 관리자 계정 홈 디렉토리
- /mnt: 저장장치의 위치(마운트 약어)
- /media: USB 드라이브 위치
- /tmp: 임시 파일 저장 폴더(임시 temp)
- /dev: 컴퓨터에 연결된 하드웨어, 가상 디바이스 파일들
- /proc: 현재 실행 중인 프로세스
- /etc: 각종 설정 파일
- /bin: 실행 가능한 프로그램
- /sbin: 시스템 관리용 프로그램
- /usr: 다중 사용자 모드에서 사용 가능한 파일 및 프로그램(root 계정만 있는 모드에서는 X)
- /var: 캐시, 로그 등
문제 : cloud shell의 홈 디렉토리에서 라이브러리들이 설치된 폴더로 이동하기, 폴더의 내용을 보는 법은?
cd /opt/conda/lib/python3.9/site-packages/
ls -l
운영체제
A. (윈도우 기준) 전체 운영체제 버전이 8, 커널 버전이 6.3
GUI 셸
CUI 셸
zsh
운영체제는 프로세스 단위로 컴퓨팅 자원을 분배한다!
메모리 관리
CPU 자원 관리
프로세스는 스레드(thread) 단위로 코어를 하나씩 사용 가능
하나의 프로세스가 시작되면 기본적으로 하나의 스레드를 가짐.
다중 CPU 코어의 이점을 극대화하기 위해 프로그램이 더 많은 스레드를 사용하도록 설계 가능
프로세스 vs 스레드
- 프로세스 : 작업 단위
- 스레드 : 실행 단위
- 멀티프로세싱(Multiprocessing) : 하나의 프로그램 안 여러개 프로세스 활용
- 멀티스레딩(Multithreading) : 하나의 프로세스 안 여러개 스레드 활용
터미널이란?
teletype의 흔적
ps -e
현재 실행 중인 프로세스 확인
PID
: process ID 번호
TTY
: 해당 프로세스 터미널
TTY
칸에 ?
: 터미널에 붙지 않은 프로세스들
👍️
ps
: 현재 터미널과 관련된 프로세스 목록 출력
👍️ps -ef
: 모든 터미널에서 현재 실행중인 프로세스 목록 및 부가정보 출력
sudo kill -s KILL [PID]
ps -ef
ps -ef | grep 문자열
👍️
grep
: 입력 내용 중 특정 문자열 포함한 라인만 선택해 출력(| 로 결합해 사용하는 것이 좋음)
❤️sudo
: root 권한으로 실행
👍️kill
: PID에 해당하는 프로세스에 시그널 보내기
시스템 콜(system call)
kill
문제 : 'grep'이 포함된 라인은 총 몇 개?
- 내가 쓴 답 :
grep 'grep' <(grep --help) | wc -l
-> 이는 실제 라인 수를 카운트해서 알려줌.
grep --help | grep grep
which
echo $PATH
👌️export
👌️ env
패키지 관리자
❤️ apt-get
sudo apt-get update
sudo apt-get install htop
htop
sudo apt-get remove htop
sudo
사용자 그룹
cat
: 하나 이상의 텍스트 파일을 순서대로 출력cat /etc/group
접근 권한
chown
: 대상 파일의 소유 사용자 및 그룹 변경sudo chown root:adm .
777 권한
drwxr-xr-x
: 디렉토리 파일의 소유자는 읽기, 쓰기, 실행 가능, 소유 그룹 사용자 및 기타 사용자들은 읽기, 실행만 가능!이진수로 보기
👍️ chmod
: 대상 파일 권한 변경
기계어
명령어 집합
메모리와의 관계
GPU
TPU
저장장치
딥러닝과 저장장치
클라우드 컴퓨팅
가상화
history
: 기존 실행 명령어 표시, !번호 -> 해당 번호 명령 다시 수행touch
: 빈 파일 생성||
: 이전 명령이 false를 반환한 경우에만 다음 명령 실행&&
: 이전 명령이 true를 반환한 경우에만 다음 명령 실행>
: 명령어 결과를 파일에 저장(>>는 기존 파일 뒤에 추가)|
: 앞 명령어의 결과를 입력으로 받아 이어 처리 가능sort
: 입력된 텍스트를 줄 단위로 정렬셸 환경
history
: 셸 명령어 이력 출력man
: 프로그램의 매뉴얼 페이지 출력which
: 명령어 전체 경로 출력export
: 셸 변수나 함수를 현재 환경으로 내보냄.env
: 명령어가 제공 -> 해당 명령어를 새로운 환경에서 실행(명령어가 없다면 현재 환경의 정보 출력)텍스트 처리
echo
: 뒤 입력 출력cat
: 하나 이상의 텍스트 파일을 순서대로 출력sort
: 줄 단위로 정렬less
: 텍스트 파일 내용 조회 및 검색head
: 앞 몇 줄만 출력tail
: 마지막 몇 줄만 출력cut
: 텍스트를 구분자(delimiter)로 나눔uniq
: 중복 값 제거grep
: 텍스트 검색wc
: 텍스트를 단어, 줄, 문자 등 단위 세기comm
: 텍스트 파일 비교zcat
: 압축된 텍스트 파일 출력sed
: 텍스트 변형awk
: 텍스트 스캔 및 변형파일 제어 및 이동
ls
: 현재 디렉토리 내의 파일 및 폴더들 출력cd
: 셸의 현재 위치를 이동cp
: 파일 복사mv
: 파일 이동rm
: 파일 삭제chown
: 대상 파일 소유 사용자, 그룹 변경 chmod
: 대상 파일 권한 변경find
: 파일 찾기pwd
: 현재 위치 출력시스템 및 프로세스 제어
sudo
: root 권한apt-get
: 패키지 설치 or 제거ps
: 현재 프로세스 목록 출력kill
: PID에 해당하는 프로세스에 시그널 보내기기타
ssh
: 셸 원격 접속tmux
: 여러 개의 셸 세션 관리, 터미널 접속 끊어져도 셸 세션 유지watch
: 명령 주기적 실행 및 표시curl
: 주어진 URL과 통신wget
: 네트워크로 접속해 파일 다운로드scp
: SSH를 통해 원격 파일 전송