일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CF
- Python
- 오라클 데이터 처리방식
- 랜덤포레스트
- 앙상블
- 데이터분석
- 통계분석
- 네트워크
- git 기본명령어
- 의사결정나무
- 배깅
- enq: FB - contention
- Oracle ASSM
- Oracle 논리적 저장 구조
- eda
- Spark Data Read
- airflow 정리
- BFS
- Spark 튜닝
- Spark jdbc parallel read
- 알고리즘
- git init
- SQL
- git stash
- Collaborative filtering
- Linux
- Decision Tree
- 추천시스템
- 데이터 분석
- 리눅스 환경변수
- Today
- Total
[Alex] 데이터 장인의 블로그
[Linux] 기본명령어 (쉘스크립트, 쉘 명령어) 본문
Linux - 오픈소스 컴퓨터 운영체제(OS) 또는 커널
SSH: 네트워크 프로토콜 중 하나. 서로 통신을 할 때 보안적으로 안전한 통신을 하기 위해 사용하는 프로토콜
- 데이터 전송
- 원격 제어
FTP, Telnet 등의 프로토콜보다 보안성이 높음.
보안 유지 방법
- Public Key - Private Key(내가) 쌍을 통해 접속 보안을 유지
Port: Host 프로세스에 연결하기 위한 구분
ex) 123.234.345.456:8080
기본 명령어(자주 사용하는)
clear
- CLI 창 모두 깨끗히
ls
- 파일 리스트
- ls -l 권한까지.
- ls -al 숨김처리한거 까지 .앞에 붙은 파일을 모두 숨겼다 취급.
touch
- 빈파일 생성
- 타임스탬프를 현재로 바꿔주는 역할도 수행
mkdir
- 폴더(root) 생성
alias
- 앨리어스 위에 기본 명령어를 앨리어스로 설정
- 사용자 지정 가능.
mv
- 파일정보 변경 (이름바꾸기, 파일 위치)
cp
- 파일 복사(폴더는 불가능)
rm
- 파일 삭제 (-rf 는 폴더 전체 강제 삭제 <주의>)
top
- cpu 나 컴퓨터 상태 값.
htop
- 프로세스 할당량 확인.
ps
- ex) ps -af
- - pid 확인하여 실행중인 프로세스 보여준다. 강제 종료하거나 너무 리소스를 많이 잡아먹을 때 확인하는 방법 중 하나.
- PID (Processor ID)
df
- 파일 시스템의 디스크 공간에 대한 필수 정보를 표시. 시스템 관리자가 실시간 서버 or 네트워크 지향 시스템을 모니터링하고 분석.
du (-a all)
- 디렉터리나 사용자별 디스크 사용량 확인 시 사용. (특정 디렉터리 별로 사용량을 알려줌)
find | grep [찾을 단어]
- 파일 검색 시 사용하는 명령어
man
- 메뉴얼 정리 스크립트
which [리눅스 명령어]
ex) which python3
- 명령어의 위치를 보여준다. (환경변수 세팅 관련하여 중요한 변수)
- 실행하는 명령어 위치 보여준다.
tail
- ex) tail -f [파일 이름]
- 파일의 내용을 뒤에서부터 출력. 파이프를 통해서 받은 입력을 출력. 보통 특정 프로세스나 파일의 로그를 볼 때 주로 사용.
다중 명령어( ||(or), &&(and) )
- 지정한 어떤 명령어를 동시에 작업
cat
- 터미널에서 파일 내용을 볼때, 출력을 다른 도구나 파일로 redirection 하는데 사용함.
- ex) cat hello.py
- ex) cat hello.py | grep "input" -n : "input" 이라는 텍스트가 몇 줄에 있는지 확인.
[파일 명 및 파일 실행] > ./[새로 만들 파일명].txt
- 파일 내용 복사나 파일 실행한 결과 값을 txt 파일에 저장.
awk
- 리눅스에서 텍스트를 처리하기 위한 기본 명령어
- ex) cat python_result.txt | awk '{print $1 $2;}'
apt-get
- 필요한 패키지, 프로그램을 설치 할 수 있는 패키지 관리 도구
nohup
- 내 스크립트가 터미널을 끄더라도 계속 실행시키고 싶을 때 & 와 함께 백그라운드로 실행
screen (tmux)
- nohup을 통해 백그라운드로 가버린 프로세스는 다시 볼 수 없지만
- Screen을 띄워서 실행하면, 해당 세션을 다시 복원할 수 있음
sudo - 해당 명령어에 대해서만 루트 권한을 실행하겠다.
- ex) sudo reboot (그때 그때 필요할 때만 root계정을 사용.)
vi 편집기
커맨드 모드에서 i, Editor mode 전환
Editor mode에서 커맨드 모드 전환 : ESC
참고 :
환경 변수
- echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
환경변수 디렉토리
디렉토리 | 용도 | 사용권한 |
/bin | 기본적인 명령어 | 일반 사용자 |
/sbin | 시스템 관리를 위한 | 슈퍼유저(root) |
/usr/bin | /bin 있는 명령을 제외한 기본적인 명령어 | 일반 사용자 |
/usr/sbin | /sbin에 있는 명령을 제외한 시스템 관리르 위한 명령어 | 슈퍼유저(root) |
왼쪽으로 갈수록 우선순위가 높으며 발견 즉시 바로 실행.
local 이면 나만, global 하게 실행하려면 bin/ sbin으로
셔뱅
셸 스크립트를 시작할 때 맨 처음에 기입하는 것으로 스크립트를 해석하는 인터프리터를 지정하는 것.
- 셔뱅에 인터프리터 경로를 입력하고 난 다음에, 혹은 환경변수에 등록하고 난 이후에 실행 명령이 이루어지지 않는다면 접근권한 변경 (chmod)을 확인해야 한다.
셔뱅을 지정한 뒤, 파일 실행방법 :
python3 test.py -> ./test.py (root 지정 필요)
만약 root지정 없이 실행하고 싶다면 환경변수에 지정하고 난 이후
실행하면 된다.
변수
주의해야할 점: 변수와 "=" 사이 space 간격을 두지 않는다. (공백 없이 입력해야 함)
#!/bin/bash
echo $1, $2 # 매개변수
echo $* # 매개변수 전부
VAR1=DDD # 변수 선언
VAR2=AAA
VAR4="DI EFJ" # 띄어쓰기 사용시 큰 따옴표 사용
echo $VAR1, $VAR2, $VAR4 # 변수 사용
echo "VAR1은 ${VAR1} 입니다." # 특수 경우
실행:
./vtt 123 566 334
결과:
"""
123, 566
123 566 334
DDD, AAA, DI EFJ
VAR1은 DDD 입니다.
"""
선언: VAR=?
사용: $VAR
특수한 경우: ${VAR}
매개변수: $1, $2
- ALL : $*
조건문
#!/bin/bash
echo $1, $2
if [ ${1} -eq 123 ] ; then
echo "VALUE is 123!"
else
echo "VALUE is not 123!"
fi
VAR1=100
VAR2=300
if [ ${VAR1} -gt 50 -a ${VAR2} -gt 150 ] ; then
echo "Variable1 is greater than 50 and Variable2 is greater than 150!"
fi
실행:
./vtt2 1233
결과:
"""
1233,
VALUE is not 123!
Variable1 is greater than 50 and Variable2 is greater than 150!
"""
* 정수와 문자열의 비교방식이 다름.
if then ~ elif then ~fi
정수 -eq, -ne, -gt, -lt, -ge, -le
문자열 ==, !=, -z, -n
괄호를 2개를 넣는다던가 [[]]
문자열로 인식되도록 변환 하는 방법이 있음.
반복문
#!/bin/bash
for var in A B C D E
do
echo var value :$var
echo "value ${var}"
done
#case 1
list="1 2 3 4 5"
for var in $list
do
echo var value : $var
done
#case 2
for var2 in [1 2 3 4 5]
do
echo var2 value : $var2
done
결과 :
"""
var value :A
value A
var value :B
value B
var value :C
value C
var value :D
value D
var value :E
value E
var value : 1
var value : 2
var value : 3
var value : 4
var value : 5
var2 value : [1
var2 value : 2
var2 value : 3
var2 value : 4
var2 value : 5]
"""
while: 조건에 만족한다면
for : 지정된 범위 안에서
break, continue, exit 로제어
유의사항
- space가 필요한 곳은 확실하게 넣어줘야함.
- 중간에 에러가 나도 계속 진행 ( Ctrl + C 활용 )
엔터 잘못쳤다가 모두 날려먹을수도 있음. # 줄바꿈에 주의해야함.
'Linux&OS' 카테고리의 다른 글
[Linux] 권한(Permission) 조정 feat. chmod, chown (0) | 2021.04.15 |
---|---|
[Linux] CentOS 방화벽 활용 feat. Firewall (0) | 2021.04.12 |
[Linux] CentOS 사용자 계정 추가 및 확인 (0) | 2021.03.25 |
[Linux] CentOS 기본 사양 확인 방법(feat. 환경변수, RAM) (0) | 2021.03.25 |
[Linux] VScode 활용하여 AWS 인스턴스 접속하기 (0) | 2021.01.31 |