[Linux] - CLI

박채은·2022년 10월 27일
0

Java

목록 보기
4/30
post-custom-banner

개요

CLI vs GUI

  • CLI(Command Line Interface): 명령어로 컴퓨터를 제어
  • GUI(Graphic User Interface): 그래픽을 통해서 컴퓨터를 제어

왜 CLI를 사용하나요?

상대적으로 높은 안정성빠른 속도 때문에

  • GUI는 쉽게 컴퓨터를 제어할 수 있지만, 그래픽에 컴퓨터 자원을 많이 사용하게 되므로 CLI에 비해 느리다.
  • CLI는 그래픽 작업을 거치지 않아 상대적으로 빠르다.

용어

  • 프롬프트(Prompt): 터미널에 키보드 입력할 수 있는 한 줄의 공간
  • 디렉토리(directory): 폴더

경로

  • / : 루트 폴더
  • ~ : /home/[username](사용자 폴더)
  • . : 현재 폴더
  • .. : 이전 폴더
  • ./ : 현재 폴더의 아래의
  • 절대 경로: /로부터 절대적인 경로를 나타냄
  • 상대 경로: 현재 위치로부터의 상대적인 경로를 나타냄

CLI 기본 명령어

pwd: 현재 위치 확인

  • print working directory

mkdir: 새로운 폴더 생성

  • make directories
mkdir 폴더명

ls: 특정 폴더에 포함된 파일이나 하위 폴더의 리스트 출력

  • list

ls -a

  • a는 "all"을 의미
  • 숨겨져 있는 폴더나 파일을 모두 포함하여 리스트 출력

ls -l

  • 폴더나 파일의 포맷까지 출력
  • d로 시작하는 경우) 디렉토리
  • -로 시작하는 경우) 파일
  • l로 시작하는 경우는?
    • 심볼릭 링크임을 나타낸다. 심볼릭 링크일 경우에는 cd 명령어를 이용하여 해당 폴더로 이동하기 못한다.

cd: 폴더에 진입

  • change directory

touch: 파일 생성

touch hi.txt

echo: 뒤의 내용을 화면에 출력

>: 실행 결과를 파일로 저장

echo 내용 > hi.txt
  • hi.txt에 내용을 저장한다.

cat: 파일의 내용을 출력

  • 파일의 모든 내용을 출력
  • 큰 용량의 파일을 여는 경우에는, 적합하지 않다!
cat t1.txt t2.txt t3.txt

-> t1.txt, t2.txt, t3.txt를 모두 출력

rm: 폴더나 파일 삭제

  • rm으로 삭제된 폴더나 파일은 휴지통을 거치지 않고 삭제된다!(주의)
  • 옵션없이 rm을 사용한 경우에는 단일 파일만 삭제할 수 있다!
  • 옵션 rf이 있어야 폴더도 삭제 가능
rm 단일파일
rm -rf 폴더
  • 옵션 r은 폴더를 지우고, f는 질문을 받지 않고 삭제한다는 옵션

mv: 폴더나 파일 이름을 변경/위치 옮기기

컴퓨터는 파일을 옮길 때, 새로운 파일을 생성하여 그 곳에 가져온 파일 내용을 넣어준다.

위치 옮기기

mv [옮길 파일이나 폴더] [도착 폴더의 이름]

파일 이름 변경

mv [파일/폴더명] [변경할 이름]

cp: 폴더나 파일 복사

// 파일 복사
cp [원본 파일 이름] [복사되는 파일 이름]

// 폴더 복사
cp -rf [원본 폴더] [복사되는 폴더 이름]

// 다른 디렉토리로 복사
cp [원본 파일 이름] [디렉토리 주소(절대/상대)]
cp -rf [원본 폴더 이름] [디렉토리 주소(절대/상대)]

Issue

  • Desktop, Documents 같은 기본 폴더들로의 이동이 안됨
  • Desktop은 심볼릭 링크로, 링크가 무한루프 형태로 걸려있어 해당 위치로 이동하지 못함
  • 심볼릭 링크를 삭제해야하나 싶었지만, 에러라기 보다는 폴더가 아니라서 이동하지 못하는 것이었다.
  • 아마 WSL에서 해당 폴더들을 의도적으로 막은 것 같다는 의견이 있었다.(다시 확인)

-> 결론은 WSL에서 막은 것이기 때문에, window 내부의 기본 폴더들에 접근하지 못하지만 설정을 잘못한 건 아니라는 것!

https://linuxize.com/post/how-to-remove-symbolic-links-in-linux/


Ubuntu 꾸미기

https://llighter.github.io/install_zsh_in_wsl2/
위의 블로그를 보고 따라했다.

무작정 따라하긴 했으나, 이 자체를 이해하고 따라한 건 아니여서 이후에 제대로 공부해보고 이해해봐야겠다.


관리자 권한

사용자와 관리자

컴퓨터에는 사용자관리자가 있다.
컴퓨터를 사용하는 우리는 사용자이고, 관리자는 사용자가 접근할 수 없는 영역에 접근할 수 있는 권한을 갖고 있다.

과거에는 PC는 항상 관리자 권한으로 실행되었는데, 모든 권한이 주어지다보니 개발에 대한 지식이 없이 악성 코드를 설치하거나, 해킹을 당하는 일이 많았다.

이로 인해 MS사는 시스템을 관리하는 관리자와, 일상적으로 PC를 사용하는 사용자를 구분하게 되었다.

관리자

  • 프로그램을 설치, 변경, 삭제
  • 루트 폴더는 관리자의 영역이므로 사용자가 접근할 수 없다.
  • Linux 관리자는 어떤 경우에도 관리자 권한을 완전히 넘기진 않는다.
    • 프로그램을 설치, 변경, 삭제할 때도 그에 관련된 권한만 넘길 뿐, 전체를 넘기진 않는다.

사용자

  • 하나의 PC로 여러 사용자를 등록 가능
  • 프로그램을 실행할 수 있다.
  • 사용자 권한은 username 폴더 내에서만 자유롭게 사용할 수 있다.

sudo: 관리자 권한을 획득하는 명령어

  • sudo는 가장 앞에 붙인다.

텍스트 에디터

텍스트 에디터로는 vim, emacs, nano 등이 있는데 지금은 진입장벽이 낮은 nano를 간단하게 사용해보았다.

개인적으로 vim을 사용하는 것이 장기적으로 좋아보여 nano는 간단하게만 사용해보았다.

vim의 기본적인 사용법
vi 명령어
vi와 vim의 차이점

post-custom-banner

0개의 댓글