1. config 파일
[1] config 파일 만들기
Host ubuntu22
Hostname localhost
User last
Port 2200
#IdentityFile ~/.ssh/idrsa
- 하나의 서버에 대한 ssh접속용 정보를 담아둔다.
- 여담으로, aws는 암호화 키파일로 들어감, 암호화 파일을 IdentityFile경로에 ~/.ssh/이하에 둠
2. 파일 전송
[1] 파일 전송하기
3. 명령어
[1] rmdir
- 디렉토리를 지우는 명령어이다.
[2] touch
- touch[파일명]: 해당파일이 없으면 사이즈가 0인 파일을 생성, 있으면 최종수정시간으로 업데이트한다.
1) 해당 파일이 없을 때
touch text01
touch text02
touch text03
- text01, text02, text03은 해당 디렉토리에 없기 때문에 사이즈가 0인 파일이 생성된다.
2) 해당 파일이 있을 때
[3] rm 디렉토리명/*,rm -R
rm 디렉토리명/*, rm -R: 디렉토리를 강제제삭제한다.
1) rm 디렉토리명/*
2) rm -R
[4] 파일 사용정도 확인하기
1) df: 파일 시스템 디스크 공간 확인
2) df -h: 보기편하게 출력
3) du -h: 디스크의 용량을 확인한다. h 옵션은 보기 쉬운 단위(바이트 단위)로 출력한다.
3) du -hs: h-보기편하고, 지정된 디렉토리 내 파일들의 용량을 합쳐서 출력한다.
[5] top
top: 서버의 상태를 파악한다.
[6] :se list
se list: 숨겨진 기호들을 표시한다.
[7] vimrc
set cindent
set tabstop=4
set shiftwidth=4
- cindent: c언어 형식의 들여쓰기 적용
- tabstop: tab을 4칸으로 한정
- shiftwidth: 자동들여쓰기
[8] colors
4. make 유틸리티
- make 유틸리티: 프로그램 그룹 중에서 어느 부분이 새롭게 컴파일 되어야 하는지를 자동적으로 판단해서 필요한 커맨드(gcc 따위)를 이용해서 컴파일 시킨다.
[1] 디렉토리 만들기
[2] c언어 파일 만들기
int int_add(int a, int b)
{
return a+b;
}
#include <stdio.h>
extern int int_add(int, int);
int main(void)
{
int num1 = 10, num2 = 30;
print("num1 + num2 = %d\n",int_add(num1,num2));
return 0;
}
[3] 컴파일하기
[4] 실행하기
[5] .bashrc
- export: 프로그램 생성해서 띄울때 해당 PATH를 들어있게 하는 것.
[6] 실행파일 통합하기
1) Makefile 만들기
cal_main: int_add.o cal_main.o
gcc -o cal_main int_add.o cal_main.o
int_add.o: int_add.c
gcc -c int_add.c
cal_main.o: cal_main.c
gcc -c cal_main.c
- cal_main 실행파일 만들때 int_add.o, cal_main.o가 필요하다.
- 왼쪽에는 반드시 탭을 쓴다.
2) clean 추가
cal_main: int_add.o cal_main.o
gcc -o cal_main int_add.o cal_main.o
int_add.o: int_add.c
gcc -c int_add.c
cal_main.o: cal_main.c
gcc -c cal_main.c
clean:
rm -f cal_main cal_main.o int_add.o
- make clean을 입력하면 이전에 입력된 내용이 지워진다.
3) Makefile 만들기(gnu 기능 적용)
cal_main: int_add.o cal_main.o
gcc -o $@ int_add.o cal_main.o
int_add.o: int_add.c
gcc -c $<
cal_main.o: cal_main.c
gcc -c $<
clean:
rm -f cal_main cal_main.o int_add.o
all: cal_main
- gnu에서 제공하는 기능으로 $@는 현재 타겟을 나타냄
- $<는 수정한 것들을 다시 컴파일해 int_add.o 혹은 cal_main.o를 다시 생성
- all: cal_main을 입력해 make all을 입력하면 make와 같은 역할을 해준다. 레이블을 달아 실행할 수 있음을 보여준다.
4) 생성할 오브젝트 파일 합치기
cal_main: int_add.o cal_main.o
gcc -o $@ int_add.o cal_main.o
%.o: %.c
gcc -c $<
clean:
rm -f cal_main cal_main.o int_add.o
all: cal_main
5) 변수생성
OBJS=int_add.o cal_main.o
TARGET=cal_main
OFLAGS=-o
CFLAGS=-c
CC=gcc
$(TARGET): $(OBJS)
$(CC) $(OFLAGS) $@ $(OBJS)
%.o: %.c
$(CC) $(CFLAGS) $<
clean:
rm -f $(TARGET) $(OBJS)
all: $(TARGET)
[7] 현재 쓰고 있는 셸 검색하기
#This is test script
var1="Hello, world!!"
echo $var1
[8] chmod
- chmod: 파일들이나 디렉터리의 파일 시스템 모드들을 바꾼다. 그 모드들은 허가나 특별한 모드들을 포함한다.
u(사용자, user) | g(그룹, group) | o(다른 사람들, others) | ||||||
r(읽기) | w(쓰기) | x(실행) | r(읽기) | w(쓰기) | x(실행) | r(읽기) | w(쓰기) | x(실행) |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
- 바꾸려는 권한에 대해 표기된 숫자들을 더하면 된다.
- 만약, user에 읽기, 쓰기, 실행을 활성화 하고 싶으면 4+2+1을 더해 7을 입력하면 된다. 이와 같은 방식으로 ugo순으로 숫자를 입력하면 권한을 부여할 수 있다.
- 빼기 기호를 이용할 수 있다. -x -x -x는 각각 사용자, 그룹, 다른 사람들쪽의 실행권을 없앤다. 비슷한 방법으로 +를 이용해 권한을 부여할 수 있다.
[9] 셸스크립트 배포
#!/bin/bash
#This is test script
var1="Hello, world!!"
echo $var1
- 기존 코딩문에 #!/bin/bash를 추가한다.
- bash로 스크립트를 실행한다.
[10] bash
1) for문(1)
#!/bin/bash
for i in 1 2 3
do
echo $i
done
2) for문(2)
#!/bin/bash
for i in $(ls)
do
echo $i
done
3) for문(3)
#!/bin/bash
for i in {0..9}
do
echo $i
done
4) cp(파일 복사하기)
#!/bin/bash
for i in {0..9}
do
echo $i
done
[11] which, find
1) which
- 입력한 명령어의 실행 파일 경로를 찾아준다.
- path에 등록되어 있는 곳에서만 찾는다.
- which ls는 ls명령어의 실행 파일 경로를 찾는다.
2) find
- 파일과 디렉토리를 검색한다.
- find . -name script01 print ./work/script/script01 명령어를 입력했을때 path위치에 script01이 없어서 아무런 결과가 안떴다.
[12] cat
- 파일에 있는 내용을 출력해준다.
[13] head, tail
1) head
- 파일의 상단 부분을 보여준다.
2) tail
- 파일의 하단 부분을 보여준다.
[14] grep
- grep: 입력으로 전달된 파일에서 특정 문자열을 찾을 때 사용하는 명령어이다.
1) for가 있는 파일 찾기
- grep for *를 입력하면 for가 들어있는 파일을 찾아준다.
2) 1 2 3 이 있는 파일 찾기
- grep "1 2 3" *를 입력하면 1 2 3이 있는 파일을 찾아준다.
3) 파이프 라인
- 파이프: 여러개의 명령어를 하나의 라인에서 연결시켜서 사용할 수 있게 해주는 명령어이다.
- 'ls -l | grep 2월'을 입력하면 날짜가 2월인 디렉토리들을 표시해준다.
- 'ls -l *conf'를 입력하면 마지막 부분이 conf인 디렉토리를 출력한다.
[15] ps
- ps: 현재 실행중인 프로세스 목록과 상태를 출력하여 보여주는 기능을 한다.
[16] awk
https://ko.wikipedia.org/wiki/AWK
AWK - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. AWK패러다임스크립트, 절차적, 데이터 드리븐[1]설계자앨프리드 에이호, 피터 와인버거, 브라이언 커니핸발표일1977년(46년 전)(1977)최근 버전IEEE Std 1003.1-2008 (POSIX
ko.wikipedia.org
awk: 유닉스에서 처음 개발된 일반 스크립트 언어이다.
James Dean 176 1974/10/24 2345987
Matt Daemon 181 1980/04/02 2328923
Kate Moss 179 1975/05/21 2319472
Harrison Ford 183 1965/08/12 234518
[17] wc
wc: 특정 파일내에서 존재하는 바이트(Bytes)수, 단어(Words)수, 행(Lines)수를 카운트하여 화면에 출력해 주는 명령어이다.
[18] l-node
🐧 리눅스 파일 링크 (하드 링크 / 심볼릭 링크 / inode)
윈도우 바로가기 vs 리눅스 링크 윈도우를 사용하다 보면 어떤 파일을 실행할 때, 바로가기를 통해 접근해본 경험을 해 봤을 것이다. 리눅스 역시 윈도우의 바로가기와 비슷한 기능을 제공하는
inpa.tistory.com
- inode: 유닉스 계통 파일 시스템에서 사용하는 자료구조이다.
-Hard Link: 원본 파일의 inode를 하드 링크 파일도 같이 사용하게 되어, 하드링크가 걸린 파일을 이동시켜도 계속 원본 파일을 가리키게 된다.
-Soft Link: 원본 파일의 inode와는 별개로 새로운 inode를 만들고 포인터는 원본파일을 가리킨다. 소프트 링크가 걸린 파일을 이동시키면 링크는 원본파일을 가리키지 못한다. 후에 다시 원위치로 되돌리면 다시 원본파일을 가리킨다.
1) softlink 예제
[19] TAR
TAR: 여러 파일을하나로 묷는다. Tape Archive의 약자이고 zip하고 다르다.
1) script디렉토리 묶기
2) 묶은 것 풀기
[20] gzip
gzip: 파일을 압축해준다.
1) 압축하기
- 코드에서 5같은 숫자는 압축률로 9가 압축률이 높지만 속도가 느리다.
- v는 verbose이다.
2) 압축해제
3) 압축파일과 압축된 파일 둘다 남기기
'비트교육센터 > 리눅스' 카테고리의 다른 글
[비트교육센터][리눅스] 4일차 nginx, su, aws (0) | 2023.08.23 |
---|---|
[비트교육센터][리눅스] 3일차 리눅스에 JDK, MySql, 스프링부트 설치, guincorn (0) | 2023.08.23 |
[비트교육센터][리눅스] 2일차 내용보강 (0) | 2023.08.22 |
[비트교육센터][리눅스] 1일차 리눅스 설치, 명령어, SSH (0) | 2023.08.19 |