1. 여러 파일을 인자로 주면 합쳐서(CONCAT) 출력 cat vi-test2.sh vi-test3.sh
2. 파일에 저장하고(OVERWRITE) 싶은 경우 cat vi-test2.sh vi-test3.sh > new_test.sh
3. 파일에 추가(APPEND) 싶은 경우 cat vi-test2.sh vi-test3.sh >> new_test.sh
find
파일 및 디렉토리를 검색할 때 사용 find . -name “File” : 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리 검색
history
최근에 입력한 쉘 커맨드 History 출력 History 결과에서 느낌표를 붙이고 숫자 입력시 그 커맨드를 다시 활용할 수 있음
bash
bash로 쉘 스크립트 실행 esx) bash vi-test.sh
export
export로 환경 변수 설정
단, export로 환경 변수 설정한 경우, 터미널이 꺼지면 사라지게 됨 매번 쉘을 실행할 때마다 환경변수를 저장하고 싶으면 .bashrc, .zshrc에 저장하면 됨
(Linux) vi ~/.bashrc 또는 vi ~/.zshrc (자신이 사용하는 쉘에 따라 다름) -> 제일 하단에 export water=”물"을 저장하고 나옴(ESC :wq) -> 그 후 source ~/.bashrc 또는 source ~/.zshrc Linux 환경 설정을 재로그인하지 않고 즉시 적용하고 싶은 경우 source 사용
alias
터미널에서 alias라고 치면 현재 별칭으로 설정된 것을 볼 수 있음 alias는 기본 명령어를 간단히 줄일 수 있는 것 ex) ll는 ls -l로 별칭이 지정( alias ll2=’ls -l’ ) -> ll2를 입력하면 ls -l이 동작됨
grep
파일에 주어진 패턴 목록과 매칭되는 라인 검색 grep 옵션 패턴 파일명
<옵션> -i : Insensitively하게, 대소문자 구분 없이 찾기 -w : 정확히 그 단어만 찾기 -v: 특정 패턴 제외한 결과 출력 -E : 정규 표현식 사용
표준 Stream(Stream)
Unix에서 동작하는 프로그램은 커맨드 실행시 3개의 Stream이 생성된다
stdin : 0으로 표현, 입력(비밀번호, 커맨드 등)
stdout : 1로 표현, 출력 값(터미널에 나오는 값)
stderr : 2로 표현, 디버깅 정보나 에러 출력
Redirection & Pipe
Redirection은 프로그램의 출력(stdout)을 다른 파일이나 스트림으로 전달하는 것이다.
Pipe는 프로그램의 출력(stdout)을 다른 프로그램의 입력으로 사용하고 싶은 경우에 다양한 커맨드를 조합해서 사용한다.
즉, A의 Output을 B의 Input으로 사용하고 싶은 경우에 사용한다.
ex. 현재 폴더에 있는 파일 명 중에 vi가 들어간 단어를 찾고 싶은 경우
=> ls | grep "vi"
ex2. 위의 결과를 output.txt에 저장하고 싶은 경우
=> ls | grep "vi" > output.txt
ex3. 최근 입력한 커맨드 중 echo가 들어간 명령어를 찾고 싶은 경우
=> history | grep "echo"
서버에서 사용하는 쉘 커맨드
ps
현재 실행되고 있는 프로세스 출력하기(Process Status)
<옵션> -e : 모든 프로세스 -f : Full Format으로 자세히 보여줌
curl
Command Line 기반의 Data Transfer 커맨드(Client URL) Request를 테스트할 수 있는 명령어 웹 서버를 작성한 후 요청이 제대로 실행되는지 확인할 수 있음 curl 외에 httpie 등도 있음(더 가독성있게 출력)
ex) curl -X localhost:5000/ {data}
df
현재 사용 중인 디스크 용량 확인(Disk Free)
<옵션> -h : 사람이 읽기 쉬운 형태로 출력
scp
SSH을 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어 (Secure Copy)(Remote file copy program)
<옵션> -r : 재귀적으로 복사 -P : ssh 포트 지정 -i : SSH 설정을 활용해 실행
ex. local 에서 remote 로 scp local_path user@ip:remote_directory ex2. remote 에서 local로 scpuser@ip:remote_directory local_path ex3. remote에서 remote로 scp user@ip:remote_directoryuser2@ip2:target_remote_directory
nohup
터미널 종료 후에도 계속 작업이 유지하도록 실행(백그라운드 실행) nohup으로 실행될 파일은 Permission이 755여야 함 nohup 외에도 screen이란 도구도 있음
ex. nohup python3 app.py &
종료는 ps ef | grep app.py => pid(Process ID) 찾고 => kill -9 pid 로 프로세스를 Kill ( 로그는 nohup.out에 저장됨 )
chmod
파일의 권한을 변경하는 경우 사용 (Change Mode) 유닉스에서 파일이나 디렉토리의 시스템 모드를 변경함
권한의 종류는 r, w, x, -, r-x가 있다. r = Read(읽기), 4 w = Write(쓰기), 2 x = eXecute(실행하기), 1 - = Denied r-x : 읽거나 실행할 수는 있지만 수정은 불가능
이는 ls -l 명령어를 통해 확인할 수 있다. 755, 644로 퍼미션을 요청하는 경우가 존재한다. ex. chmod 755 vi-test2.sh