내가 보려고 정리한 명령어 시리즈 `Linux편`
지금껏 코딩 공부를 하면서 조금씩 정리된 내용들입니다.
노션에서 정리된 내용들이지만 노션을 사용할 수 없는 상황을 대비해 블로그에서도 볼수있도록 포스팅합니다.
새롭게 알게되는 명령어가 생기면 언제든지 수정될 수 있습니다.
Linux 디렉토리 관련
- 디렉토리는 root라고 하는 '/'로 시작한다.
- 디렉토리 이름 '.'은 현재 위치 이다.
- 디렉토리 이름 '..'은 상위 디렉토리 이다
Linux 명령어
- Python
- 실행 : python
- 라이브러리 설치 : pip
- 디렉토리/파일
- 디렉토리 위치 이동 : cd
- 현재 디렉토리 보기 : pwd
- 파일 내용 보기 : ls
- 디렉토리 생성 : mkdir
- 디렉토리/파일 삭제 : rm
- 디렉토리/파일 카피 : cp
- 디렉토리/파일 이동 : mv
- 파일 보기
- 파일 전체 보기 : cat
- 파일 앞부분 보기 : head
- 파일 뒷두분 보기 : tail
- 다운로드
- git 프로젝트 다운로드 : git
- 파일 다운로드 : wget
- 압축
- tar 파일 압출 풀기 : tar
- rar 파일 압축 풀기 : unrar
- zip 파일 압축 풀기 : unzip
- 기타
- 프로그램 설치 : apt
- 파일 내용으로 검색 : grep
- 갯수 세기 : wc
- 디렉토리 구조 보기 : tree
Python
실행
# 스크립트 my_script.py 실행
$ python my_script.py
pip
# 라이브러리 some 설치
$ pip install some
디렉토리/파일
디렉토리 위치 이동 : cd
- change directory
- . : 현재 위치
- .. : 상위 디렉토리
- / : root 디렉토리
# 홈 디렉토리로 이동
$ cd
# 상위 디렉토리로 이동
$ cd ..
# 하위 path로 이동
$ cd path
# 하위 path1/path2로 이동
$ cd path1/path2
현재 디렉토리 보기 : pwd
- print working directory
# 현재의 디렉토리
$ pwd
/some/path
파일 내용 보기 : ls
- list
# 현재 디렉토리 내용을 이름만 보기
$ ls
# 현재 디렉토리 내용을 자세히 보기
$ ls -al
# path1 디렉토리 내용을 자세히 보기
$ ls -al path1
# path1/path2 디렉토리 내용을 자세히 보기
$ ls -al path1/path2
# /some/absolute/path 디렉토리 내용을 자세히 보기
$ ls -al /some/absolute/path
# 현재 디렉토리에 있는 .txt로 끝나는 파일과 디렉토리 들을 자세히 보기
$ ls -al *.txt로
# path 디렉토리 밑에 있는 data로 시작하고 .csv로 끝나는 파일과 디렉토리 들을 자세히 보기
$ ls -al path/data*.csv
ls -al 의 경우 alias를 지정하여 ll 로도 많이 사용한다.
디렉토리 생성 : mkdir
- 옵션
- -p(parent) : 전체 경로가 없으면 하나씩 다 생성
# tmp 디렉토리 생성
$ mkdir tmp
# path1/path2 디렉토리 생성
$ mkdir -p path1/path2
디렉토리/파일 삭제 : rm
- 옵션-f(force) : 강제로 삭제
- -r(recursive) : 하위 파일까지 삭제
# 파일 file1.txt를 삭제한다. Y/n를 대답해야 한다.
$ rm file1.txt
# 파일 file1.txt를 무조건 삭제한다.
$ rm -rf file1.txt
# 디렉토리 path1을. Y/n를 대답해야 한다. 디렉토리에 무언가 있으면 실패한다.
$ rm path1
# 디렉토리 path1을 무조건 삭제한다.
$ rm -rf path1
디렉토리/파일 복사 : cp
- 디렉토리를 카피할때는 '-r' 옵션을 넣어주면 카피 가능
# 현재 위치의 file1.txt를 복사하여 file2.txt를 생성한다.
$ cp file1.txt file2.txt
# 현재 위치의 file1.txt를 path 디렉토리 밑에 카피한다.
$ cp file1.txt path/
# 현재 위치의 path1 디렉토리의 모든 것을 카피하여 path2를 생성한다.
$ cp -r path1 path2
# 현재 위치의 path1 디렉토리의 모든 것을 path2밑에 카피한다.
$ cp -r path1 path2/
디렉토리/파일 이동 : mv
- 파일 이동 및 파일 이름 변경에 사용
# 현재 위치의 file1.txt의 이름을 file2.txt로 변경한다.
$ mv file1.txt file2.txt
# 현재 위치의 file1.txt를 path 디렉토리 밑으로 이동한다.
$ mv file1.txt path/
# 현재 위치의 디렉토리 path1의 이름을 path2로 변경한다.
$ mv path1 path2
# 현재 위치의 디렉토리 path1을 path2 디렉토리 밑으로 이동한다.
$ mv path1 path2/
파일 보기
파일 전체 보기 : cat
# 파일 내용 전부 다 보기
$ cat file.txt
파일 앞부분 보기 : head
- 기본값으로 10줄을 보여준다.
# file.txt의 앞 10줄 보기
$ head file.txt
$ head -10 file.txt
파일 뒷부분 보기 : tail
- 기본값으로 10줄을 보여준다.
# file.txt의 뒷 10줄 보기
$ tail file.txt
$ tail -10 file.txt
다운로드
git 프로젝트 다운로드 : git
# github의 프로젝트 전체 다운로드
$ git clone <http://github.com/some_project>
파일 다운로드 : wget
# 파일 1개를 다운로드
$ wget <http://some.com/path/file_name>
- 다운로드 링크 획득하기
압축
tar 파일 압축 풀기/하기 : tar
# 압축된 tar.gz 파일을 풀기
$ tar xvfz file.tar.gz
# tar 파일을 풀기
$ tar xvf file.tar
# tar로 묶기
$ tar cvf dir.tar dir
# tar.gz 로 압축 하기
$ tar cvfz dir.tar.gz dir
- 리눅스에서는 압축파일 형식으로 tar.gz가 많이 사용됨
rar 파일 압축 풀기/하기 : unrar, rar
# rar 파일 풀기
$ unrar x file.rar
# raw 압축 하기
$ rar a -r dir.rar dir
zip 파일 압축 풀기/하기 : unzip, zip
# zip 파일 풀기
$ unzip file.zip
# zip으로 압축 하기
$ zip -r dogs-cat.zip dogs-cat
기타
프로그램 설치 : apt
- 리눅스 표준 설치 툴
# apt 정보 업데이트
$ apt-get update
$ 프로그램 설치
$ apt inatll git
$ apt inatll tree
파일 내용으로 검색 : grep
# 현재 디렉토리에서 .txt로 끝나는 파일중에 hi가 포함된 부분 찾기
$ grep hi *.txt
# 현재 디렉토리(.)와 밑의 모든 파일에서 hi가 포함된 부분 찾기
$ grep -r hi .
갯수 세기 : wc
# 특정 파일의 줄수 세기
$ wc some_file.txt
# 현 디렉토리의 파일 수 세기
$ ls -al | wc
디렉토리 구조 보기 : tree
# 디렉토리 구조와 파일들 보기
$ tree
# 디렉토리 구조만 보기
# tree -d
- tree 사용 전 설치 필요
$ apt install tree
- tree 명령어 확인
- -d 는 현재 디렉토리에서만
Vim 으로 메모장 생성
vim test.txt
ex 모드 -> 입력 모드 (i / esc)
ex 모드에서 :wq > 저장 후 종료(write, quit)
:w , :write - 문서 저장
:q, :quit - 편집기 종료
:wq (파일) - 저장하고 종료
:q! - 저장하지않고 종료
cat test.txt - 텍스트 파일 내용 확인
cat 파일 - 파일 내용 표시
cat 파일1, 파일2 … 파일n > 새파일 - 파일 n개를 차례로 연결해서 새 파일 생성
cat 파일1 >> 파일2 - 파일1의 내용을 파일2의 끝에 연결
'Tools' 카테고리의 다른 글
[Conda] 내가 보려고 정리한 Anaconda 명령어 (0) | 2023.02.06 |
---|---|
[MySQL] 내가 보려고 정리한 MySQL 명령어 (0) | 2023.02.06 |
[Kaggle] Kaggle API 데이터셋 다운로드 (0) | 2023.02.02 |
[Tools] Notion(노션) 무한로딩 해결하기 (0) | 2023.01.25 |
[Jupyter Notebook] 시작 경로 변경 (0) | 2022.12.09 |
댓글