CS/운영체제

[Linux]CLI 기본명령어

용감한 개복치 2022. 2. 9. 14:52

#2. 리눅스 운영체제(1)_CLI 기본 명령어

 

Today I Learned,

 

1. 리눅스

 리누스 토발즈가 만든 오픈소스 운영체제. 공짜다. 그 종류로 데비안, 우분투, 레드햇,,, 가계도를 찾아보면 어마무시하게 다양하다. 애초에 오픈소스이기 때문에 원한다면(할 수 있다면) 커스터마이징한 나만의 리눅스를 가질 수도 있기 때문이다. 하지만 난 그런 거 못하기 때문에 공식문서 잘되어있고 소스많은 우분투 써야지!

듀얼부팅같은 것도 어려우니까 가상머신써야지!

 

+) 흔히 운영체제니까 데스크탑위주 시장에서 사용되는 것 같지만 물론 맞다. 맞는데, 안드로이드 역시 모바일 시장에서 리눅스 커널을 사용한다. 최근에 핫해진 이유는 클라우드, 웹서버 이런데서 사용하다보니 맞물려서 인기가 늘어난 것 같다. 대학생때 이걸 만들었다는 리누스씨는...ㅎㄷㄷ

 

2. 용어

CLI : Command-Line Ineterface

프롬프트 : 프롬프트 CLI의 명령줄 대기모드를 가리키는 것으로써, 터미널 화면에서 글자가 입력되는 한 줄의 공간

 

3. 사용해 볼 명령어

일단 터미널을 켜보자

ctrl + alt + t

 

현재위치 확인하기

pwd

 

파일을 만들고, 확인하기

mkdir

ls

파일이름은 helloworld를 만들었다. gui 환경에서치면 바탕화면에서 오른쪽 버튼 누르고 파일 만들어본 정도

+ ) 원래 새로운거 배우면 hello world가 국룰이다. hello world의 기쁨을 모르면 애초에 전공을 이걸 고르면 안된다고 하셨던 교수님은 찐변태였다. 근데 나도 그게 좋아서 학교 다녔다...어리석었다..도망쳐...

아, 추가로 옵션 항목이 있는데

ls 가 파일을 보여준다면 cli환경에서는 - 뒤가 옵션이다.

어어어엄청 다양한데 일단 대표적인거 a, l

-a : 여깄는거 all 전부 출력

-l : 자세한 포맷 전부 출력

-aF 숨긴파일까지 몽땅

d로 시작하면 폴더 : cd 명령어로 진입 가능, directory

-로 시작하면 파일 : cd 명령어로 진입 X,

l로 시작하면 : symbolic link, 윈도우식으로 말하면 바로가기

이런 d,-,l 다음부터가 파일에 대한 권한

rwxr-xr-x

 

세 개씩 끊어읽으면 된다. 소유자/ 그룹사용자/ 그 외 사용자

rwx : read write execute 해당 파일이나 디렉토리를 읽고 쓰고 실행 가능

r-x : 읽고 실행만 가능

이렇게 -가 있는건 그 부분의 권한이 없다는 뜻.

 

+)rwxr-xr-x 로 전부 찍혀있는데 이걸 755라고 부른다고했다. 학교 다닐때 os시간에 필기된거라 들고왔는데 왜 였는지는기억이 안난다...

 

+) 권한에 대한 추가정보

whoami 현재 내 권한 확인
sudo 사용자 환경에서 관리자 권한으로 실행
ls -l 각 파일들의 권한을 알고싶다

d / rwx / rwx / rwx

각 자리에 대한 설명은 다음과 같다. 각 자리에 대해서 숫자로 나타낼 수 있다.
디렉토리인가 / 소유자 권한 / 그룹 권한 / 그외 권한 

chmod [권한을 나타내는 숫자] [파일 or 폴더]
r w x
0 0 0 -> 0
0 0 1 -> 1
0 1 0 -> 2
0 1 1 -> 3
1 0 0 -> 4
1 0 1 -> 5
1 1 0 -> 6
1 1 1 -> 7

자주 쓰는건 기억하자..
755 유저에게 모든 권한 / 그룹은 읽고 실행 / 그외는 읽고 실행
400 유저는 읽기만 / 나머진 다 조용

 

 

파일 탐색기

nautilus .

띄우고 . 까지가 명령어니까 조심

다음 실습을 위해 ctrl + c 종료라는 뜻의 단축키

 

폴더 진입

cd

cd ~ 홈으로 가는 명령어 == /home/peachdo

경로보면 바뀐거 확인 가능

 

파일만들기

touch

이렇게 txt 파일을 하나 만들었다. 이거 물론 여기서 만든거 가상머신안에 있는거니까 내 컴퓨터로 가져올 수 있다.

+) 블로그 이사 중이라..빨리 들고와야지

+)그리고 만들고나면서부터 사실 문제 시작이다. vim 사용법 가물가물한데...

 

파일내용 출력

cat

파일 내용을 이번에는 gui로 입력했다. 그거 출력하기. 메일주소가 출력된다

 

파일 삭제

rm 파일명

rm으로는 파일만 지울 수 있다.

이렇게 mkdir로 만든 폴더의 경우

추가 옵션이 필요한데, 지ㅣㅣㅣ인짜 조심해야하는 옵션 -rf를 붙여준다.

+) r은 재귀, 재귀적 명령어 실행해라 f는 강제. 액세스권환이 없어도 건드릴 수 있게함. 그래서 전부를 뜻하는 *이랑 합쳐지면 아찔..

rm -rf

 

파일 이동

mv [이동 할 파일이름] [도착 할 디렉토리]/

helloworld 파일안에 디렉토리 만들고, txt 파일도 맹글고 그걸 옮겨보자~~

여기서 mv [원래 폴더, 파일명] [바꾸고싶은 이름] 으로 하면 파일명도 바꾸기 ok

 

파일복사

cp [복사하고싶은 파일명] [복사해서 새로만들 파일명]

역시 디렉토리는 복사가 안돼기 때문에 -rf옵션.

-rf [복사하고 싶은 폴더명] [복사해서 새로만들 폴더명]

+) sudo도 그렇고 rf도 그렇고 안된다 한걸 되게하는 명령어들은 전부 조심

 

head 

파일의 처음 부분을 설명한 라인만큼 출력, 기본 10줄


grep [옵션] [문자열] [파일명]

 

-b : 문자와 일치하는 줄의 시작점 출력
-c : 문자와 일치하는 줄의 수 출력
-h : 여러 파일에서 문자열을 찾을 때, 파일이름이 붙는것을 방지
-i : 대소문자를 구분하지 않는다.
-n : 줄의 번호와 내용을 같이 출력
-v : 문자가 포함되지 않는 행 출력
-w : 문자와 한 단어로 일치해야 출력
-l : 문자가 들어간 파일 이름을 출력
-r : 하위 디렉토리에서도 문자를 찾는다.
-A : 특정문자 아래 추가로 여러 행 출력
-B : 특정문자 위 추가로 여러행 출력

 

자주 쓰이는 세트메뉴


$ grep [^문자열]       = 문자열로 행이 시작되는 경우 출력 
$ grep [문자열&]      = 문자열로 행이 끝나는 경우 출력
$ grep [문자1\ |문자2] = 여러 문자열을 한번에 검색
$ grep -A2 [문자열]    = 해당 문자열이 들어강 행을 포함해 아래 2행 출력
$ grep -v [문자열]      = 해당 문자를 제외한 행 출력
$ grep [문자열] *       = 현재 위치의 모든파일 (*)에서 특정 문자열 출력
$ grep [문자열] [파일이름] = 하나의 파일에서 특정 문자열 찾기, 해당 행 출력, 파일이름 공백기준 여러개 쓰면 여러개에서 찾기가능

 

4. 관리자권한

sudo

/ : 루트디렉토리

~ : 홈디렉토리

경로설정 :

    절대경로의 시작은 /(vscode라던가 비쥬얼스튜디오같은 ide에선 백슬래시를 쓰기도함.

    상대 경로의 시작은 . (.의 의미는 지금 여기를 기준으로-라는 뜻이니까)

 

'CS > 운영체제' 카테고리의 다른 글

[Linux]입출력, 표준 스트림  (0) 2022.02.11
[Linux]패키지&프로세스  (0) 2022.02.10
[os]운영체제  (0) 2022.02.10
[Linux] 리눅스 디렉토리 구조  (1) 2022.02.09
[Linux]_CLI 기본명령어(2)  (0) 2022.02.09