AIFFEL 노드스터디
❤️: 필수로 꼭 알아두어야 하는 가장 기본적인 명령어입니다.
👍️: 사용법을 기억해두면 편리한 명령어입니다.
👌️: 이런 명령어가 있다는 것만 알아두고 필요할 때마다 검색해서 사용하면 충분합니다.
❤️echo
: 뒤이어입력한 내용출력
👍️pwd
: Present Workong Directory 약자 현재 내가 위치한 디렉토리 위치 출력
❤️ls
: 현재 디렉토리 내의 파일 및 폴더들을 출력
~
홈디렉토리 / .
현재폴더 / ..
상위폴더 .으로 시작하는 파일은 숨김파일
ls --all(-a)
숨김파일들까지 표시
ls --help
: 도움말
❤️cd: Change Directory의 약자로, 뒤에 따라오는 폴더로 내가 있는 셸의 현재 위치를 이동
@상대경로
와절대경로
: 명령을 입력하는 시점에 내가 현재 있는 디렉토리에 영향을 받는 위치 표시 방식을 상대 경로라고 합니다. 반면에 /home/june/aiffel와 같이 어디서 입력하든 똑같은 곳을 가리키도록 위치 전체를 적어주는 것을 절대 경로
👍️ls -alrt
:유용할때가 많다.
=ls -l -a -rt(최신파일이라래쪽으로 표시됨)
👌️ 일부 주요 폴더들의 용도 및 내용물
/home
: 사용자별 홈 디렉토리들이 있는 곳
/root
: 최고 관리자 계정의 홈 디렉토리
/mnt
: 저장장치(HDD, SSD)가 붙는 위치
/media
: 이동식 미디어(USB 드라이브)가 붙는 위치
/tmp
: 재부팅 시 삭제될 임시 파일들을 저장하는 폴더
/dev
: 컴퓨터에 연결된 하드웨어 및 가상 기기(device)들을 가리키는 파일들
/proc
: 현재 실행 중인 프로세스들을 가리키는 파일들
/etc
: 각종 설정 파일들
/bin
: 실행 가능한 프로그램(binary)들
/sbin
: 시스템 관리용 프로그램들
/usr
: 다중 사용자 모드에서 사용 가능한 파일 및 프로그램들 (root 계정만 있는 단일 사용자 모드에서는 사용 불가)
/var
: 캐시, 로그 등 시스템 구동 간 계속 내용이 바뀌는 파일들
2.1 운영체제란
컴퓨터라는 대저택을 관리하는 집사와 같은 존재. 집주인(최고관리자)의 권한을 위임받아 요리사, 정원사, 청소부 등 각각의 보조 인원(어플리케이션)들에게 재산(연산 자원)을 적절히 분배하여 운영하고, 서로 권한을 침범할 수 없도록 관리하는 역할
커널은 보안, 자원관리, 디바이스 인터페이스 추상화 등 바로 대저택의 집사와 같은 역할을 하는 운영체제의 가장 핵심적인 구성요소
2.2 셀
운영체제껍데기
그래픽기반 GUI셀 컴퓨팅작업을 수행하기 위해 그래픽(아이콘 및 이미지)를 제공, GUI 사용하는 동안 명령을 기억할 필요없다. window, 우분투 및 mac
텍스트기반 CLI 셀 명령을 사용해서 컴퓨팅 작업을 수행함. 사용자는 명령에 대해 잘 알고있어야 한다 . Dos Linux 운영체제
2.3 프로세스와 스레드
😥프로세스와 스레드라는 것에 대해 이해하기가 쉽지않아 여러자료를 살펴봄
유튜브:https://www.youtube.com/watch?v=LLiV5Yz1AWg\
3.1 프로세스 관리와 시스템 콜
👍️ ps
: 현재 터미널과 관련된 프로세스 목록을 출력합니다.
👍️ ps -ef
: 모든 터미널에서 현재 실행중인 프로세스 목록 및 부가정보를 출력합니다.
👍️ grep
: 입력으로 전달된 내용에서 특정 문자열을 포함한 라인만 선택해서 출력합니다. 파이프(|)를 통해 다른 명령문 실행결과와 결합해서 사용할 때 특히 유용합니다.
❤️ sudo
: 이어지는 명령을 최고 관리자 권한으로 실행합니다.
👍️ kill
: PID에 해당하는 프로세스에 시그널을 보냅니다.
3.2 프로그램과 환경변수
👌️ which
: 명령어의 전체 경로를 출력합니다.
✅$PATH
$
가 붙으면 환경 변수(environment variable) 를 의미 echo $PATH
는 PATH
라는 이름의 환경 변수($
)의 값을 출력(echo
)하라는 뜻👌️ export
: 셸 변수나 함수를 현재 환경으로 내보냅니다.
👌️ env
: 명령어가 제공된다면 해당 명령어를 새로운 환경에서 실행합니다. 명령어가 제공되지 않은 경우 현재 환경의 정보를 출력합니다.
❤️ apt-get
: APT 패키지 관리자를 통해 공인 저장소에서 패키지를 가져다 설치하거나 제거합니다.
❤️ cat
: 하나 이상의 텍스트 파일을 순서대로 출력합니다.
👍️ chown
: 대상 파일의 소유 사용자와 그룹을 변경합니다.
👍️ chmod
: 대상 파일의 권한을 변경합니다.
👍️ sort: 입력된 텍스트를 줄 단위로 정렬합니다.
✅sudo
(Switch User Do) 명령어
✅ 셸 편리한 기능
✅ 셸 명령어모음
셸 환경
👍history: 셸 명령어 이력을 출력합니다.
👍man: 프로그램의 매뉴얼 페이지를 출력합니다.
👌which: 명령어의 전체 경로를 출력합니다.
👌export: 셸 변수나 함수를 현재 환경으로 내보냅니다.
👌env: 명령어가 제공된다면 해당 명령어를 새로운 환경에서 실행합니다. 명령어가 제공되지 않은 경우 현재 환경의 정보를 출력합니다.
텍스트 처리
❤️echo: 뒤이어 입력한 내용을 출력합니다.
❤️cat: 하나 이상의 텍스트 파일을 순서대로 출력합니다.
👍sort: 입력된 텍스트를 줄 단위로 정렬합니다.
👍less: 텍스트 파일의 내용을 자유롭게 조회하고 검색합니다.
👍head: 텍스트 파일의 앞 몇 줄만 출력합니다.
👍tail: 텍스트 파일의 마지막 몇 줄만 출력합니다.
👍cut: 텍스트를 구분자(delimiter)에 따라 나눕니다.
👍uniq: 텍스트 중 중복 값들을 제거합니다.
👍grep: 정규식을 활용해 텍스트를 검색합니다.
👍wc: 텍스트를 단어, 줄, 문자 등 단위로 셉니다.
👌comm: 텍스트 파일을 비교합니다.
👌zcat: 압축된 텍스트 파일을 출력합니다.
👌sed: 정규식을 활용해 텍스트를 변형합니다.
👌awk: 텍스트를 스캔하고 변형합니다.
파일 제어 및 이동
❤️ls: 현재 디렉토리 내의 파일 및 폴더들을 출력합니다.
❤️cd: Change Directory의 약자로, 뒤에 따라오는 폴더로 내가 있는 셸의 현재 위치를 이동시킵니다.
❤️cp: 파일을 복사합니다.
❤️mv: 파일을 이동합니다.
❤️rm: 파일을 삭제합니다. 폴더를 삭제하기 위해서는 -r (recursive) 옵션을, 빈 폴더가 아니더라도 내부까지 삭제하려면 -f (force) 옵션을 함께 사용해야 합니다.
👍chown: 대상 파일의 소유 사용자와 그룹을 변경합니다.
👍chmod: 대상 파일의 권한을 변경합니다.
👍find: 파일을 찾습니다.
👍pwd: Present Working Directory의 약자입니다. 현재 내가 >위치한 디렉토리 위치를 출력합니다.
👌ln: 파일에 대한 링크를 생성합니다.
👌touch: 파일 접근 및 수정 시간을 변경합니다. 빈 파일을 만드는데도 사용할 수 있습니다.
👌tar: 파일 및 폴더를 하나의 아카이브 파일로 통합하고 압축합니다.
👌mount: 새로운 저장장치를 파일시스템으로서 추가합니다.
👌rename: 여러 파일들의 이름을 규칙에 따라 한번에 변경합니다.
👌df: 파일시스템의 남은 용량을 표시합니다.
시스템 및 프로세스 제어
❤️sudo: 이어지는 명령을 최고 관리자 권한으로 실행합니다.
❤️apt-get: APT 패키지 관리자를 통해 공인 저장소에서 패 >키지를 가져다 설치하거나 제거합니다.
👍ps: 현재 프로세스 목록을 출력합니다.
👍kill: PID에 해당하는 프로세스에 시그널을 보냅니다.
👌fg: 배경에서 실행되는 작업을 전경(foreground)으로 가져옵니다.
👌bg: 작업을 배경(backgound)으로 보냅니다.
👌jobs: 전경 및 배경 작업의 목록을 표시합니다.
기타
❤️ssh: 원격으로 셸에 접속합니다.
👍tmux: 여러 개의 셸 세션을 관리하고, 터미널 접속이 끊어지더라도 셸 세션을 유지합니다.
👍watch: 이어지는 명령을 주기적으로 실행하여 표시합니다.
👍curl: 주어진 URL과 통신합니다.
👍wget: 네트워크를 통해 파일을 다운로드합니다.
👍scp: SSH를 통해 원격으로 파일을 전송합니다.
👌ssh-keygen: SSH 공개키 비밀키 쌍을 생성합니다.
👌ssh-copy: SSH 공개키를 해당 서버에 등록합니다.
👌rsync: 원격으로 파일을 동기화합니다.
👌xarg: 명령어를 구성하여 실행합니다. 이전 명령에서 인자를 넘겨받아 실행하거나, 다중 프로세스를 사용하여 명령을 병렬로 실행하는 등의 작업이 가능합니다.
👌cron: 주기적으로 실행될 명령을 등록합니다.
👌htop: 프로세스 목록 및 자원 사용량을 시각적으로 표시합니다.
1.1 print(1) : 함수(인자)
str
타입간의 -
연산은 지원하지않음1.2 변수: 어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수, 스스로 값을 갖기보단 다른 값을 가리키는 존재
ex) x = '안녕하세요' => [변수명] = [변수값]
1.3 새로운 함수 정의
:
붙여주고 이어서 함수가 불릴때 실행할 작업들을 한줄씩 나열def
줄부터 함수가 끝날때 까지 띄어쓰기 4칸으로 들여쓰기를 해주어야함1.4 스코프: 함수의 유효범위
1.5 매개변수
1.6 함수에 인자 여러개 한꺼번에 전달하기
1.7 함수의 결과로 값 반환 return
NoneType과 int(정수, integer) 사이에 + 연산은 금지
return
2.1 if
2.2 while
2.3 for : for 뒤에는 a in A의 형태로, 값이 여러 개 들어있는 목록 A에서 값을 하나씩 꺼내서 a 변수에 담아 반복문을 실행
풀잎스쿨
the grown-ups' response, this time, was to advise me to lay aside my drawings of boa constrictors, whether from the inside or the outside, and devote myself instead to geography, history, arithmetic, and grammar. That is why, at the, age of six, I gave up what might have been a magnificent career as a painter. I had been disheartened by the failure of my Drawing Number One and my Drawing Number Two. Grown-ups never understand anything by themselves, and it is tiresome for children to be always and forever explaining things to the.
Q. 왜 count = 0 으로 시작하고 for문을 생각해내는 것의 포인트는 무엇인가?
A. 질문방에 올렸고, 그분 덕분에 문제를 보고 해결방법을 찾아내가는 과정을 적어봄