유닉스 커맨드
commend -명령어
Command Line Interface(CLI)
리눅스와 같이 키보드를 통해 커맨드 입력하는 방식
Graphical User Interface(GUI)
화면과 마우스를 사용하는 방식
리눅스(Linux): 무료 GNU/linux 운영체제
유닉스(unix): 유료 1970년대 초반에 개발된 윤영체제
소프트웨어를 개발하고 실행할 수 있는 편리한 플랫폼
쉽게 수정해서 다른 컴퓨터에 적용가능
유닉스를 기반으로 하는 다양한 운영체제
유닉스 운영체제(유닉스커맨드)
ex) macOS , Linux, 우분투(Ubuntu)
윈도우 운영체제
윈도우 커맨드
웹사이트 배포과정에서 유닉스커맨드 사용
서버 컴퓨터를 사용하는데 유닉스 커맨드 사용
● 커널
CPU에 명령을 내리는 소프트웨어
OS에서 컨트롤타워 역할을 하는 가장 중요한 프로그램
(메모리 관리, 프로세스 관리 등)
● shell
커멘드를 해석해주는 프로그램
ex)
커맨드(명령어)를 입력해주면 컴퓨터가 이해할수 있는 형태로 변경해서 전달하면 그걸 컴퓨터가 실행하고 결과를 돌려줌
● bash
shell의 종류중 하나임 ubuntu, zsh도 기본 shell임
● 터미널
인풋을 받고 아웃풋을 출력해주는 프로그램
●WSL(Windows Subsystem for Linux(리눅스용 윈도우 하위 시스템))
리눅스 커맨드와 커맨드라인 앱을 윈도우에서 실행할 수 있게 하는 가벼운 툴
wsl 설치
아래커맨드 복사( WSL 사용을 허용하는 명령어)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
설치후 컴퓨터 다시 실행
커멘드에는 아규먼트(어느대상에대해 실행을 정함)와 옵션(어떻게 실행하는지를 정함)을 줌
명령어
▶ whoami: 사용자 아이디를 알려줌
▶date: 날짜와 시간을 알려준다 Mon Sep 11 13:02:19 KST 2023
▶cal: 달력이 입력된다
입력이 안될시 설치 명령어
1. sudo apt-get update -y
2. sudo apt-get install -y bsdmainutils
September 2023
Su Mo Tu We Th Fr Sa
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
▶cal 10 2022: 2022 10월달 달력을 축력해줌( 뒤에 숫자는 아규먼트라함)
October 2022
Su Mo Tu We Th Fr Sa
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
▶cal -j 10 2022: j옵션은 몇번째 날인지 알려줌
October 2022
Su Mo Tu We Th Fr Sa
274
275 276 277 278 279 280 281
282 283 284 285 286 287 288
289 290 291 292 293 294 295
296 297 298 299 300 301 302
303 304
▶cal -y 2022 : 2022년도 달력 전체 출력
▶cal -yj 2020 & cal -j 2020: 몇번째날인지 적힌 2020년도 달력을 출력해줌
▶ man: 명령어에 대한 메뉴얼 검색
ex)
man cal
아래방향: 한줄씩 내림
위방향: 한줄씩 올림
space f : 한페이지씩 내려갈려면
b: 한페이지씩 올라가려면
▶ncal 은 cal과 비슷하지만 메뉴얼과 같이 제공
▶cal [-3hjy] [-A number] [-B number] [[month] year]
대괄호는 옵셔널(아규먼트) 대괄호 써도되고 안써도됨
[[month] year] 아규먼트를 하나만 입력하면 year만 입력됨
ex) cal 3 입력하면 3년에대한 값을 보내줌
description 은 옵션에 대해 설명해줌
메뉴얼 나가려면 q입력
위 명령어 사용 예시
cal -B 3 -A 3 : 현재 날짜에서 3개월 전 3개월 후 출력
cal -j -B 3 -A 3 : 몇번째날인지 적힌 현재 날짜에서 3개월 전 3개월 후 출력
※ 터미널에서 방향키 ↑ 방향은 전에 사용한 명령어를 불러옴
▶커서이동
터미널에서
cal -j -B 3 -A 3 이런 긴 명렁어를 입력할때
ctrl + a 줄 앞으로 커서가 이동함
ctrl + e 줄 뒤로 커서 이동
alt + 왼쪽방향 : 왼쪽으로 한 단어씩 이동
alt + 오른쪽 방향 오른쪽으로
▶실행 취소
ctrl + c : 입력 취소 새로운 프롬프 생성, 실행중인거 취소가능
▶터미널 화면 지우는 법
clear
▶작성하고있는 커멘드 자동 완성
tap
ex)
unc 치고 tap 누르면 자동완성
파일경로도 파일명 짧게입력하고 tap입력하면 자동완성됨
유닉스 디렉토리 구조는
나뭇가지랑 비슷하다
- 최상위 디렉토리는 root
- 사용자의 홈 디렉토리는 home
.각종문서
.바탕화면 파일
.다운로드 파일
개인파일들은 home 디렉토리 안에 있고
컴퓨터에 필요한 파일들은 home 디렉토리 밖에 있음
※ linux는 home , macOS는 users
- 파일 경로
/ 를 사용한다
home/user/files
- 현재 사용자의 홈 디렉토리: ~
~ = /home/user
그 하위에 dd파일이 있으면
~/dd
디렉토리 파일 둘러보기
pwd : 현재위치에 있는 디렉토리 정보
cd: 디렉토리 이동
ls:디렉토리 내용들을 list 출력해줌
ls -a: 디렉토리 내용+ 숨은 내용들을 list 출력해줌
ls -l: 디렉토리 내용들을 상세하게 어떤내용인지 list 출력해줌(long format)
ls -al: 디렉토리 내용들+ 숨은 내용을 상세하게 어떤내용인지 list 출력해줌
1. 앞에 drwxr은 권한
2. 그 옆 숫자는 현재파일과 링크된 갯수
3. 파일소유자
4. 소유자가 속한그룹
5. 파일 크기 몇바이트인지(유닉스파일 시스템)
6. 마지막 수정날짜 시간
7. 파일이름
- 절대경로
디렉토리의 고유의 경로
- 상대경로
현재 디렉토리는 .으로 표시
/home/user/dfile
./dfile
현재보다 더 상위의 디렉토리 ..으로 표시
../dfile
- 디렉토리 이름이 한칸 띄워져있을때
cd 'hello world'
cd "hello world"
cd hello\ world(역슬러쉬)
root 디렉토리 안
/bin : 컴퓨터가 실행할수 있는 프로그램
/sbin: bin과 비슷한데 관리자 전용 프로그램
/etc: 컴퓨터 설정 파일(각종 프로그램의 성절파일, 관리자 권한 설정파일 등)
/home(리눅스), /user(macOS) : 사용자의 모든 파일을 저장해 놓는곳
/usr: 사용자에게 필요한 파일들을 저장
(usr 안 bin은 컴퓨터가 필요하기보다는 사용자가 필요한 커맨드가있음)
/usr/local 은 사용자가 직접 설치한 프로그램, 관련된 프로그램 있음
→ 참고자료
https://www.tuwlab.com/ece/11309
https://averagelinuxuser.com/linux-root-folders-explained/
디렉토리와 파일 만들기
1. mkdir practice (절대경로 상대경로 아무거나 사용가능)
2. ls 확인
3. cd practice 이동
4. mkdir notes 디렉토리 만들기
5. ls 확인
6. cd notes 이동
7. mkdir One 만들기
8. mkdir Two Three 파일2개 만듬
9. ls 확인
10. cd One 이동
11. touch finances.txt performance.txt 메모장파일 생성
12. ls 확인
13. cd .. 전 디렉토리 이동
14. ls 확인
15. touch Two/finances.txt Two/performance.txt
16. ls Two 확인
GUI: microsoft word, VS Code, PyCharm, 메모장
CLI환경: Vim (많은 기능과 단축기있음, 마우스 x , only 키보드)
▶vim
cd 원하는 디렉토리로 이동하고
그 파일에서 vim 사용
vim 4가지 사용모드
일반모드(normal mode) 커서 이동, 텍스트 붙여넣기, 작업취소
입력모드(insert mode) 텍스트 입력
비주얼 모드(visual mode) 텍스트 블록 지정, 텍스트 복사
명령모드(command mode) 내용 저장,vim 종료
일반모드 -> 입력모드 이동 i
일반모드 -> 비주얼 모드 이동 v
일반모드 -> 명령 모드 :(콜론)
일반모드로 돌아오려면 esc 클릭
- 텍스트 작성
i 눌러서
ex)
hello world
hello world
hello world
hello world
esc 누르고 일반모드 이동
- 복사
복사 원하는곳 커서 이동후 (글자단위는 v, 줄단위는 V )
y키를 누르면 복사됨
p키를 누르면 붙여넣기 됨
- 잘라내기
d키 누르면 잘라내기
붙여넣기는 p
비쥬얼모드 갈 필요 없이
yy 복사
dd는 잘라내기
p 붙여넣기
- 파일 저정하기
: 키 눌러서 커맨더모드 이동
ex)
:w 파일이름.txt엔터
:q 나가기
ls 로 확인
- 파일 수정
vim 파일명.txt
잘라낼곳 dd
:wq 누르면 수정 저장되면서 나가짐
- 내용 추가
vim 파일명.txt
i 입력모드 이동
내용추가후 일반모드 이동
저장하지 않고 나가려고해서 에러뜨는데
:q! 하면 저장되지 않고 나갈수 있음
파일 여는 방법 vim 말고 다른방법
- cat: 간단하게 파일 조회
ex)
cd music
ls 확인
txt 파일 있으면
cat 파일이름.txt
내용~~~~~~
cat 파일이름.txt 파일이름.txt
파일 2개도 조회 가능
- less : 파일 조회
less 파일이름.txt
페이지 단위로 보여줌
G마지막 페이지 g 맨처음 페이지
- head: 파일의 시작부분 확인
head 파일이름.txt
head -n 5 파일이름.txt 앞부분 5줄만 출력
- tail: 파일의 끝부분확인
tail 파일이름.txt
tail -n 5 파일이름.txt 끝부분 5줄만 출력
파일 디렉토리 옮기기 & 이름 변경
mv file1(작업할 대상의 경로) file2(이동할 목적지 또는 변경할 이름)
mv 파일이름.txt 변경할 파일이름.txt
mv 폴더이름 변경할 폴더이름
파일 이동
mv 폴더이름 존재하는 변경할 폴더이름 -> 폴더이름이 존재하는 변경할 폴더안에 들어가있음
안에 폴더 밖으로 뺴기
mv 현재폴더/안에있는 폴더 .
▶정리하자면 변경해야하는 디렉토리 이름이 존재한다면 그 안으로 디렉토리가 이동함
변경해야할 디렉토리 이름이 존재하지 않는다면 이름변경 가능
※ 주의할 점
-i를 사용하지 않고 mv만 쓸경우 덮어쓰지 말아야하는것도 있기때문에
쫌더 안전하게 사용하기위해 -i를 사용함
mv -i file1.txt file2.text
덮어씌울건지 아닌지 물어봄(y/n)
- 파일복사
cp -i test1.txt ./파일경로
현재 파일 위치 화인
- 디렉토리 복사
cp -r file1 file1_copy
삭제기능은 휴지통으로 가지않고 영구삭제임
- 파일 삭제(여러파일 가능)
rm test1.txt
- 디렉토리 삭제
rm -r file
- 확인 후 삭제
rm -ri file
안에있는 파일과 디렉토리 지울건지 물어봄 y
- 물어보지 않고 삭제해줌(디렉토리 삭제때 사용)
rm -rf 디렉토리 경로
CLI 환경에서 외부파일 설치
우분투에서는 apt라는 커맨드
맥은 homebrew 라는 커맨드
apt update 를 하면 관리자 권한이 필요하다고 에러가 뜬다
잠깐 관리자 권한을 얻기 위해서
sudo apt update
sudo를 써주면 된다
그리고 설치 방법
sudo apt install 설치할 파일명
sudo apt install mc
mc는 현재 디렉토리 정보를 보여줌
방향키로 위아래로 이동가능하고 엔터누를시 이동함
파일생성도 가능함 아래에 mkdir 파일명 입력하면 생성됨
맨밑 옵션은 f1 f2.... 누르면 접근가능
esc 누르면 옵션 종료
f10누르면 mc 나가짐
외부파일 삭제
sudo apt remove mc
sudo: 일시적으로 일반유저에게 관리자 권한 부여
WSL 장점
윈도우에 있는 파일에 쉽게 접근 가능(윈도우 안에 존재하는 하위시스템이기 때문)
/mnt/c 경로가 c: c드라이브
사용자 홈 디렉토리는 /mnt/c/Users/username(이름)
*윈도우에서 리눅스 파일에 접근하는것도 있지만 윈도우 툴로 접근하게 되면 리눅스 파일 손상될 수 있음
powerShell 이란
윈도우 전용 커맨드 툴
시스템관리, 자동화 개발 등 다양한 작업 가능
기본 유닉스 커맨드 지원
powerShell 과 cmd 차이
cmd도 윈도우 전용 커맨드 툴
powerShell에 비해 기능이 적고 cmd에서 할 수 있는건 powerShell에서 가능
간단한 작업할때 cmd
powerShell 도움말 업데이트
커맨드의 도움말을 제대로 확인 가능
관리자로 실행 후
Update-Help 입력
에러 뜨더라도 무시해도됨
'Git & Github&유닉스 커맨드' 카테고리의 다른 글
Git(참고용) (0) | 2023.09.12 |
---|---|
Github (0) | 2023.09.12 |
댓글