open .
사용하면 새 창 띄워주고, 이동 가능)man
쉘 커맨드의 manual을 보여주는 명령어
man python
종료하는 법 : :q
입력
mkdir
폴더 생성하기
mkdir kyle-school-week3
cd
Change Directory
cd kyle-school-week3
echo
echo "출력할 텍스트"로 사용
echo "Awesome Kyle School!"
echo `커맨드`를 하면 커맨드를 실행한 결과가 출력됨(` : backtick)
echo `ls`
vi
vim 사용 팁이 궁금하면 VIM 자주 사용하는 명령어 및 Tip 참고
man vi
vi hi.sh
(새로운 창이 뜨면) echo "hi"
ESC :wq
vi .hello.sh
(새로운 창이 뜨면) echo "hello"
ESC :wq
ESC :wq
: 저장하고 나오기
ESC :wq!
: 강제로 저장하고 나오기readonly
option is set(add ! to override)라고 뜸 ls
옵션
-a
: .으로 시작하는 파일, 폴더 포함해(전체 파일) 출력-l
: 퍼미션, 소유자, 만든 날짜, 용량까지 출력-h
: 용량을 사람이 읽기 쉽도록(GB, MB 등) 표현ls ~
ls
ls -al
ls -alh
ls -l
ls -lh
wget
네트워크 상에서 데이터를 다운로드함
wget www.naver.com
pwd
mv
파일 또는 폴더 이동하기(또는 이름 바꾸기)
mv hi.sh hi2.sh
clear
cp
파일 또는 폴더 복사하기
cp hi2.sh hi3.sh
cp hi2.sh hi.sh
옵션
-r
: 디렉토리를 복사할 때 폴더 안에 내용이 있다면 recursive(재귀적으로) 복사해야 하는데, 이럴 경우 사용-f
: 복사할 때 강제로 실행하기(파일이 존재해도 강제로 저장)-p
: 그냥 cp할 경우 현재 사용자의 기본 쇼유권, 퍼미션이 지정되는데 p 옵션을 줄 경우 원본 파일의 속성을 그대로 복사함cat
여러 파일을 인자로 주면 합쳐서 출력
cat hi.sh
cat hi.sh .hello.sh
Redirect(>
, >>
) (★★★★★)
>>
사용그 외에 <, << 등도 있긴한데 >, >>를 제일 많이 사용
echo "kyle-school" > kyle.sh
cat kyle.sh
echo "kyle-school" > kyle.sh
cat kyle.sh
echo "kyle-school2222" >> kyle.sh
echo "kyle-school3" >> kyle.sh
echo "kyle-school5" >> kyle.sh
echo "kyle-school4" >> kyle.sh
cat kyle.sh
Pipe(|
) (★★★★★)
현재 폴더에 있는 파일명 중 hi가 들어가는 것을 찾고 싶은 경우
ls | grep "hi"
위 결과를 output.txt에 저장하고 싶은 경우
ls | grep "hi" > output.txt
최근에 입력한 커맨드 중 echo가 들어가는 명령어를 찾고 싶은 경우
history | grep "echo"
특정 파일 마지막 줄에 단어 추가하고 싶은 경우
echo "hi" >> output.txt
echo "Hi!!!!" > test.txt
echo "kkkk" >> test.txt
cat test.txt | wc -l
head, tail
파일의 앞/뒤 n행 출력
head -n 5 kyle.sh
wc
옵션
-l
: 라인 수(행)을 count표준 출력을 count하는 방식으로 많이 사용
cat kyle.sh | wc -l
sort
-r
: 정렬을 내림차순으로 정렬-n
: numeric sort파일 생성
vi fruits.txt
banana
orange
apple
apple
orange
orange
apple
banana
# ESC :wq로 저장
cat fruits.txt | sort
cat fruits.txt | sort -r
uniq
옵션
-c
: 중복 행의 개수를 출력cat fruits.txt | uniq
cat fruits.txt | sort | uniq
cat fruits.txt | uniq | wc -l
cat fruits.txt | sort | uniq | wc -l
^
: 라인 검색$
: 라인 끝.
: 하나 문자 매칭[]
: [] 안의 문자 하나라도 매칭[^]
: [] 안의 문자 중 하나도 매칭되지 않는 문자-i
: insensitively하게, 대소문자 구분 없이 찾기-w
: 정확히 그 단어만 설정-v
: 특정 패턴 제외한 결과 출력-E
: 정규 표현식 사용-B
: before 행 출력vi demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line
empty is umm
cat demo_file
grep -i "the" demo_file
grep -i "is" demo_file
grep -iw "is" demo_file
grep -E "lines.*empty" demo_file
grep -E 'is|this' demo_file
grep -E "this.*last" demo_file
grep -B 2 "And" demo_file
grep "empty" demo_file
grep -E "First|Upper" demo_file
grep -iw "above" | wc -m
grep -E "
cut
옵션
-f
: 잘라낼 필드를 지정-d
: 필드를 구분하는 문자 지정. 디폴트는 탭vi cut_file
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ESC :wq
cat cut_file | cut -d : -f 1,7
# 1번째, 7번째 값을 가져옴
cat cut_file | cut -d / -f 1
cat cut_file | cut -d / -f 1 | cut -d : -f 1
head kakao-chat.csv
# 또는
cat kakao-chat.csv
cat kakao-chat.csv | grep -E '^2019'
cat kakao-chat.csv | grep -E '^2019' | cut -d ','
cat kakao-chat.csv | grep -E '^2019' | cut -d ',' -f 2
cat kakao-chat.csv | grep -E '^2019' | cut -d ',' -f 2 | sort
cat kakao-chat.csv | grep -E '^2019' | cut -d ',' -f 2 | sort | uniq -c
cat kakao-chat.csv | grep -E '^2019' | cut -d ',' -f 2 | sort | uniq -c | sort -rn
cat kakao-chat.csv | grep -E '^2019' | cut -d ',' -f 2 | sort | uniq -c | sort -rn | head -n 10
-e
: 모든 프로세스-f
: full format으로 자세히 보여줌curl
cURL : 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리
curl -X localhost:5000/ {data}
httpie : python으로 개발된 http client 유틸리티
출력을 포매팅해줘서 가독성이 뛰어남
pip3 install httpie
http -v localhost:5000/ {data}
df
옵션
-h
: 사람이 읽기 쉬운 형태로 출력쉘 스크립트에 대해서 진행할 예정
오늘 숙제