계정관리


 

1. 계정 정보 확인

  • 계정에 대한 정보는  /etc/passwd 파일에 저장되어 있음
  •  /etc/passwd  파일의 구성 내용은 앞에서부터 사용자 ID, 암호, UID, GID, 설명, 홈 디렉터리, 로그인 쉘로 구성
  • 계정에 대한 패스워드는  /etc/shadow   파일에 저장되어 있음 (관리자 계정으로만 확인 가능)

 

2. 계정 생성

  • 계정을 생성하려면 adduser 명령어를 사용
sudo adduser [계정이름]
$ sudo adduser chaechae

계정 생성

 

3. 계정 삭제

  • 계정을 생성하려면 adduser 명령어를 사용
sudo userdel [사용자명]
$ sudo userdel chaechae

생성한 유저 삭제

# 유저를 생성하면서 만들어지는 폴더도 함께 삭제
sudo rm -r /home/chaechae

chaechae 폴더 삭제

 

4. 생성한 사용자로 로그인

$ su - test

test 사용자로 로그인

 

더보기

 

계정마다 권할을 설정하는 것은 번거러운 작업이기때문에 그룹을 설정하여 계정별로 권한을 설정


$ ls /home/beyond/
현재 test 계정이기 때문에 beyond에 접근할 수 없음
ls -l /home
기타 사용자에 test는 beyond에 접근 권한이 없을 확인
sudo ls /home/beyond
beyond 계정은 최초 계정이므로 sudo기능을 사용할 수 있지만 test는 불가능함

 

5. 계정 로그아웃

exit

test 사용자 로그아웃

 

 

 

파일 접근 권한


1. 접근 권한

  • 리눅스는 여러 사용자가 동시에 접속하여 사용하기 때문에 파일들에 대해 접근 권한을 부여 가능
  • 리눅스 파일에 대한 접근 권한의 종류에는 읽기(r), 쓰기(w), 실행(x) 권한이 존재
  • 접근 권한은 세 문자씩 묶어 한 세트로 구성되며 각 묶음 순서대로 소유자, 소유 그룹, 기타 사용자로 분류

 

2. 접근 권한 변경

  • 파일에 대한 접근 권한을 변경하려면 chmod 명령어를 사용
더보기
# hello.txt 파일과 temp 폴더를 생성

$ echo "Hello" > hello.txt
$ mkdir temp
hello.txt 파일과 temp 폴더를 생성

 

hello.txt 파일 정보
temp 폴더 정보
  • 권한 제거
# 사용자의 읽기 권한 삭제
chmod u-r helllo.txt

hello.txt에서 유저 읽기권한 삭제
사용자의 읽기 권한이 삭제

# 기타 사용자의 읽기 권한 삭제
chmod o-r hello.txt

hello.txt에서 기타사용자의 읽기권한 삭제
기타 사용자의 읽기 권한 삭제

# 디렉터리에 대해 읽기권한을 제거하면 ls 명령어 사용 불가
chmod u-r temp

유저로부터 temp 폴더의 읽기 권한을 제거

# 실행권한을 제거하면 해당 디렉터리로 이동하는 것이 불가(cd 명령어를 사용할 수 없음)
chmod u-x temp

유저로부터 temp 폴더의 실행 권한을 제거

# 파일의 쓰기 권한을 제거하면 해당 폴더에 새로운 파일이나 폴더를 생성하는 것이 불가
chmod u-w temp

유저로부터 temp 폴더의 쓰기 권한을 제거


  • 권한 추가
# 사용자에게 읽기권한 부여
chmod u+r hello.txt

읽기 권한 부여
유저에게 hello.txt에 대한 읽기 권한이 부여됨

#사용자에게 실행권한 부여
chmod u+x hello.txt

실행권한 부여
사용자에게 실행 권한이 부여됨


  • 모든 권한 변경
# 파일유형 |  rwx | rwx | rwx : rwx는 이진수로 표현
#662는 소유자 소유그룹 기타사용자에 대해 한자리씩 십진수로 권한 표현

chmod 662 temp

소유자 110 ❘ 소유그룹 010 ❘ 기타소유자 010

 

 

더보기

 

grep


grep alias .bashrc
alias가 포함된 모든 행을 출력

 

grep -c alias .bashrc
.bashrc에 존재하는 alias의 개수 출력

 

grep -i alias .bashrc
대소문자를 구별하지 않고 alias가 포함된 모든 행을 출력

 

grep -n alias .bashrc
alias가 포함된 모든 행을 행 번호와 함께 출력

 

# ls-l의 검색 결과의 문자 데이터에서 temp가 포함된 문자열을 출력
ls -l | grep temp
ls -l에서 temp를 찾는 방법



 

'Linux' 카테고리의 다른 글

[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

Vim


1. Vim

  • 윈도에 메모장 맥의 텍스트 편집기와 같은 편집기로 대부분의 리눅스 배포판에 기본으로 설치되어 있는 편집기
더보기

<vim 설치>

#1
$ vim --version
vim --version을 통해 vim 설치 확인

#2
# sudo : 관리자 권한
$ sudo apt update
apt 패키지 update vim 설치 이전에 apt를 update하는 것을 추천

#3
$ sudo apt install vim
패스워드 입력후 y 입력하여 vim을 설치

#4
$ vim --version
vim --version을 통해 vim이 설치되었는지 확인

 

2. 실행과 종료

  • Vim을 실행하려면 vim 명령어를 사용
vim <파일명>
vim

vim 명령어를 입력시 화면

  • Vim을 실행할 때 파일 이름을 지정하면 해당 파일을 열 수 있음
  • 이때 존재하지 않는 파일을 지정하면 해당 이름으로 파일을 새로 생성
  • Vim을 종료하려면 Vim이 실행된 상태에서 :q를 입력하고 엔터

 

# 기존 파일 열기
$ echo "sample" > sample.txt

sample.txt 파일 생성

# vim 명령어로 텍스트편집기에 sample.txt파일 열기
 $ vim .sample.txt


# 새로운 파일 만들기 1

$ vim
$ :w[파일명]

hello1.txt 생성

 


# 새로운 파일 만들기 2
$ vim hello2.txt

# 파일 저장
$ :w

 

 

3. Vim의 모드

  • Vim은 다른 에디터와 달리 모드(Mode)라는 것이 존재
  • Vim은 명령어를 입력할 수 있는 보통 모드(Normal Mode)와 텍스트를 입력할 수 있는 입력 모드(Insert Mode)
  • Vim을 실행하면 보통 모드에서 시작
  •  i, a, o를 누르면 입력 모드가 되고 입력 모드, esc를 누르면 보통 모드
# vim 모드 사용
$ vim hello1.txt

보통모드

# 입력모드
i

# 내용을 입력하고 esc를 눌러 다시 보통모드로 전환

입력모드

# 저장 후 종료
:wq
# 파일 생성이 잘 되었는지 확인
$ cat hello1

cat 명령어로 변경 내용이 저장되었는지 확인

 

 

4. Vim 명령어

4.1. 파일 저장

  • 편집 중인 파일을 저장하려면 보통 모드에서 :w 명령어를 사용
    • 기존 파일을 열은 상태라면 덮어쓰게 되고, 새로운 파일 편집 중이라면 새로운 파일을 생성

 

4.2. 커서 이동

  • 단어 단위로 커서를 이동하려면 보통 모드에서 w, b 명령어를 사용
    • w는 다음 단어의 첫 글자로 이동
    • b는 이전 단어의 첫 글자로 이동
    • 공백을 기준으로 커서를 이동하고 싶을 때는 W, B 명령어를 사용한다.
  • 행의 처음과 끝으로 커서를 이동하려면 보통 모드에서 0, $ 명령어를 사용
  • 번호로 커서를 이동하려면 보통 모드에서 <행 번호>G 명령어를 사용
  • 파일의 처음으로 커서를 이동하려면 gg, 파일의 마지막으로 커서를 이동하려면 G 명령어를 사용
# set number 명령어
# 보통 모드에서
:set number

행별로 숫자 출력

 

4.3. 자르기(삭제), 복사, 붙여넣기

  • 문자 하나를 자르려면 보통 모드에서 x 명령어를 사용
  • 문자의 범위를 지정해서 자르려면 d 명령어로 범위를 지정해서 문자를 삭제 가능
    • d$는 현재 커서 위치에서 행의 마지막까지 잘라냄
    • d0는 현재 커서 위치에서 행의 시작까지 잘라냄
    • dl은 문자 한 개를 잘라냄
    • dw는 단어 한 개를 잘라냄
      - dW : 공백 전까지 단어 한개를 잘라냄
    • dgg는 현재 커서 위치의 행에서 문서 시작까지 잘라냄
    • dG는 현재 커서 위치의 행에서 문서 끝까지 잘라냄
  • 전체 행을 자르려면 보통 모드에서 dd 명령어를 사용한다.

 

4.4. 복사

  • 문자의 범위를 지정해서 복사하려면 y 명령어로 범위를 지정해서 문자를 복사
    • y$는 현재 커서 위치에서 행의 마지막까지 복사
    • y0는 현재 커서 위치에서 행의 시작까지 복사
    • yl은 문자 한 개를 복사
    • yw는 단어 한 개를 복사
    • ygg는 현재 커서 위치의 행에서 문서 시작까지 복사
    • yG는 현재 커서 위치의 행에서 문서 끝까지 복사.
  • 전체 행을 복사하려면 보통 모드에서 yy 명령어를 사용

 

4.5. 붙여넣기

  • 삭제(자르기), 복사한 텍스트는 보통 모드에서 p 명령어로 원하는 곳에 붙여 넣을 수 있음

 

4.6. 취소와 재실행

  • 보통 모드에서 u 명령어를 입력하면 방금 실행한 동작을 취소
  • 취소한 동작에 대해 다시 실행하고 싶은 경우에는 보통 모드에서 Ctrl + r 명령어를 입력

 

4.7. 검색

  • Vim은 파일에서 문자열을 검색할 수 있다.
    • /문자열은 문자열을 아래 방향으로 검색
    • ?문자열은 문자열을 위 방향으로 검색
    • n은 검색 결과가 여러 개라면 다음 검색 결과로 이동
    • N은 검색 결과가 여러 개라면 이전 검색 결과로 이동

 

 

텍스트 처리


1. 텍스트 처리

  • 리눅스에서는 애플리케이션의 데이터나 시스템의 설정 항목이 대부분 텍스트로 되어 있다.
  • 따라서 리눅스에는 텍스트를 효과적으로 다루는 명령어가 다수 존재한다.

 

2. 바이트 수, 단어 수, 행의 수 세기

  • 바이트 수, 단어 수, 행의 수를 출력하려면 wc 명령어를 사용
# 행의 수, 단어 수, 바이트 수를 출력
$ wc <파일 이름>

행 ❘ 단어 ❘ 바이트 ❘ 파일명
행의 수, 바이트 수 확인


# 행의 수만 출력
$ wc -l <파일 이름>

행의수 ❘ 파일명


# 단어 수만 출력
$ wc -w <파일 이름>

단어 수 ❘ 파일명


# 바이트 수만 출력
$ wc -c <파일 이름>

바이트 수 ❘ 파일명

 

3. 행 단위로 정렬

  • 행 단위로 정렬하여 출력하려면 sort 명령어를 사용

더보기
hello1.txt 내용
sample.txt 내용
# 공백 > 숫자 > 영어(글자수 적은 것 부터  |대문자 > 소문자 | 알파벳 순)
# > 한글(글자수 적은것부터 | 가나다순)

$ sort [파일명]

sort hello1.txt 결과
sort ssample.txt 결과


더보기
sample.txt 수정
sort sample.txt 결과
# 문자열을 code값으로 저장하기 때문에 숫자로 정렬하는 것이 아닌 code값으로 비교
# 숫자의 첫번째 자리의 code값으로 정렬한 후 다음번째 자리의 code값으로 정렬을 반복
# 숫자 값으로 정렬

$ sort -n <파일 이름>

sort -n sample.txt 정렬 결과

# 역순으로 정렬
$ sort -r <파일 이름>

sort -nr sample.txt 결과

# 숫자 값이 큰 순으로 정렬
$ sort -nr <파일 이름>

sort -nr sample.txt 결과

#명령어 여러개 한번에 사용하기 ( | : 파이프라인 기호)
# |는 앞에 있는 연산의 결과를 다음에 있는 다음 명령어에게 전달(표준 입력으로 전달)
# -k는 field를 나타내는 옵션
# 5는 5번째 filed를 의미

ls -l | sort -k 5

작업 디렉터리의 파일들을 바이트 순으로 정렬



4. 중복 제거

  • 연속된 중복 데이터를 하나만 출력하려면 uniq 명령어를 사용
더보기
sample.txt 내용
# 중복된 데이터를 제거
# 연속된 문자열에 한에서만 중복을 제거

$ uniq <파일 이름>

uniq sample.txt 결과

# sample.txt 정렬 후에 uniq 연산 실행

$ sort sample.txt | uniq

sample.txt 정렬 후에 uniq 연산 실행결과

# sort 옵션 -u와 sort sample.txt|uniq 결과 동일

$sort -u sample.txt

sort -u sample.txt 실행 결과

# 중복된 행의 개수 출력
$ uniq -c <파일 이름>

 

 

5. 일부 추출

  • 입력의 일부를 추출하여 출력하려면 cut 명령어를 사용
더보기
students.csv 파일 생성

 > .csv 파일 : 몇가지 필드를 콤마(,)로 구분한 텍스트 데이터 및 텍스트 파일

cut -d, -f 2 studnets.csv

두번째 필드의 데이터만 가져오기

#passwd 파일은 계정의 정보를 가지고 있음
cat /etc/passwd

 

cut -d : -f 1/ etc/passwd

cut -d : -f 1.7 /etc/passwd

 

cut -d : -f 1,7 etc/passwd | grep '/bin/bash'

 

 

6. 문자 치환

  • 문자를 치환하려면 tr 명령어를 사용
# tr은 표준 입력으로만 입력값을 받음

$ tr <치환 전 문자> <치환 후 문자>

 

#  passwd의 :(콜론) 기호를 ,(콤마)로 바꾸는 작업

#방법 1
cat /etc/passwd | tr : ,

#방법2
# 파일을 직접 지정한 것이 아님
tr : , < /etc/passwd

방법 1
방법 2

더보기

 

명령어에 따라 출력하는 값을 콘솔에 출력는데 이것을 표준출력이라고 함




 > 기호 : 표준 출력을 변경해줌 (표준 출력 리다이렉션)

# >>기호는 중복했을때 덮어쓸 것인지 진행여부 확인
ls > ls.txt​

 

ls의 결과를 ls.txt파일로 출력하도록 리다이렉션
에러출력을 리다이렉션할때는 2> 기호를 사용
ls /aaa 2> error.txt
표준 에러 출력을 리다이렉션

 

 <기호 : 표준입력을 변경해줌(표준 입력 리다이렉션)

# 표준출력인 키보드로부터가 아닌 students.csv파일을 입력으로 받도록 리다이렉션
cat students.csv​
표준 입력을 파일로 리다이렉션
# passwd의 소문자를 모두 대문자로 변경하는 작업
# | 명령어는 실행결과를 다음 명령어에게 표준 입력으로 전달해줌

cat /etc/passwd | tr a-z A-Z

 

7. 파일의 마지막 부분 출력

  • 파일의 마지막 내용부터 출력하려면 tail 명령어를 사용
# 파일의 마지막 10개 행을 출력
tail <파일 이름>

tail .bashrc 결과

# 파일의 마지막 5개 행을 출력
tail -n 5  <파일 이름>

tail -n 5 .bashrc 결과


  • tail 명령어에 -f 옵션을 사용하면 파일의 내용이 추가될 때마다 실시간으로 내용을 출력하여 파일을 모니터링할 수 있음
# 종료시 ctrl+c
tail -f <파일 이름>
$ tail -f sample.txt

tail -f sample.txt 실행결과 프롬프트가 변경되지 않음 파일에 내용이 추가된다면 추가할 수 있도록 계속 모니터링함

# tail -f sample.txt 실행중
# 다른 세션에서 sample.txt에 "오렌지" 텍스트 추가

ehco "오렌지" >> sample.txt

다른 세션에서 sample.txt에 내용을 추가

# 처음부터 계속 실행중
# 모니터링을 계속하다가 다른 세션에서 "오렌지" 데이터 추가시
# "오렌지" 출력

$ tail -f sample.txt

오렌지가 추가되면 tail -f sample.txt 명령어를 통해 모니터링하고 있기때문에 변경내용을 추가하여 출력해줌


  • tail의 반대로 동작하는 명령어는 head 명령어
# 파일의 처음 10개 행을 출력
head <파일 이름>
$ head .bashrc

head .bashrc 결과

# 파일의 처음 5개 행을 출력
head -n 5  <파일 이름>

head -n 5 .bashrc 결과

 

'Linux' 카테고리의 다른 글

[Linux] 계정 관리 / 파일 접근 권한  (0) 2024.05.18
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

파일/디렉터리 조작


1. 파일/디렉터리 만들기

  • 새로운 디렉터리를 생성하려면  mkdir  명령어를 사용
    $ mkdir [옵션] <디렉터리 이름>​
# mkdir : make directory

$ ls
$ mkdir develop
$ ls

develop 디렉터리 생성


# mkdir 명령어로 중첩된 디렉터리를 만들려고 할 때 중간 경로의 디렉터리가 존재하지 않으면
# 에러 발생

$ mkdir ./develop/test1
$ mkdir ./develop/test2
$ mkdir ./develop/test3
$ mkdir ./develop/test4
$ ls develop/

test1 - test4 디렉터리 생성


# 한번에 디렉터리를 여러개 만들 수 있음
$ mkdir test5 test6 test7
$ ls

test5 - test7 디렉터리 생성


  •  -p  옵션으로 중간 단계의 디렉터리가 없는 경우에 자동으로 생성되도록 할 수 있음
$ mkdir -p ./dev/test
# -p 옵션을 사용하여 test8 디렉터리를 생성한 후에 test9 디렉터리를 사용

$ mkdir -p ./develop/test8/test9

mkdir -p 으로 디렉터리 생성


  • 내용이 없는 빈 파일을 생성하려면  touch  명령어를 사용
  •  touch  명령어를 사용할 때 파일 여러 개를 한꺼번에 생성할 수 있음
$ touch <생성할 파일 이름> <생성할 파일 이름> ...
# touch 명령어는 파일의 타임스탬프를 갱신하는 명령어인데 대상이 되는 파일이 존재하지 않으면 새롭게 파일 생성
# 마지막 수정시간을 갱신, 존재하지 않는다면 내용이 없는 파일 하나 생성
# 옵션 -c : 마지막 수정시간을 갱신, 파일이 없다면 파일을 만들지 않음
$ touch sample.txt

touch명령어로 파일 생성

 

2. 파일/디렉터리 삭제

  • 파일을 삭제하려면 rm 명령어를 사용
  •  rm  명령어를 사용할 때 파일 여러개를 한꺼번에 삭제 가능
$ rm [옵션] <삭제할 파일 이름> <삭제할 파일 이름> ...
  •  rm  명령어를 사용해서 디렉터리도 삭제할 수 있는데 디렉터리를 삭제하는 옵션인 -r을 지정
# 디렉터리에 존재하는 파일, 디렉터리 모두 삭제됨
$ rm -r <삭제할 디렉터리 이름>
# test1 디렉터리 삭제

$ rm - r test1
$ ls

test1 디렉터리가 삭제됨


# 여러개 디렉터리를 한번에 삭제

$ rm -r test2 test3 test4 test5 test6 test7

공백으로 폴더를 구분하여 한번에 삭제


  • 빈 디렉터리를 삭제할 때는  rmdir  명령어를 사용
$ rmdir <삭제할 디렉터리 이름> <삭제할 디렉터리 이름> ...
#1 비어있지 않은 디렉터리 삭제
$ rmdir test8

#2 비어있는 디렉터리 삭제
$ rmdir ./test8/test9
$rmdir ./test8

#1 : 디렉터리가 비어있지 않은 경우 삭제할 수 없음

 

#2 : 비어있는 디렉터리 삭제


# 옵션 -ir : 삭제한 디렉터리를 삭제할 것인지 한번더 확인하기 위한 옵션
$ rm -ir test1
$ y
$ n
$ ls

 

-ir 옵션을 사용하여 폴더 삭제

 

3. 파일 내용 출력

  • 파일의 내용을 출력하려면  cat  명령어를 사용
  •   cat   명령어의 인자로 여러 파일을 지정하면 순차적으로 그 내용이 출력
$ cat [옵션] <파일 이름> <파일 이름> ...
<1-1>
# 'Hello World'라는 내용을 가진 sample.txt 파일을 생성
# 간단한 파일을 만들때에는 echo라는 명령어를 사용

$ echo "Hello World" > sample.txt
$ ls

ample.txt 파일을 생성


<1-2>
# > : 파일명이 동일할때는 덮어씌움

$ echo "Heloo World!!" > sample.txt
$ cat sample.txt


 

<1-3>
# >> : 내용을 추가

$ echo "Hello~~~" >> sample.txt
$ cat sample.txt

 

 
더보기
#파일을 지정해주지 않으면 표준입력을 받음
cat
종료시 ctrl+c

 

 


  •  -n   옵션을 사용하여 내용을 출력할 때 행 번호를 출력할 수 있음
$ cat -n <파일 이름>
$ cat -n sample.txt

-n 옵션을 사용하여 파일 내용 출력


# 여러개의 파일을 공백으로 구분하여 함께 출력 가능
$ cat -n sample.txt test.txt

2개의 파일을 함께 출력 가능

 

  • 화면 단위로 파일의 내용을 출력하려면  less   명령어를 사용
$ less [옵션] <파일 이름>

 

  • 아래의 단축키를 사용해서 파일의 내용을 위아래로 스크롤 하며 볼 수 있다.
    •  Space   키는 한 화면 아래로 스크롤
    •  b  키는 한 화면 위로 스크롤
    •  Enter  키는 한 행 아래로 스크롤
    •  k  키는 한 행 위로 스크롤
    •  q  키는 less 명령어를 종료
  • less 명령어로 열려있는 파일에서 문자열을 검색할 수 있다.
    •  / 문자열은 문자열을 아래 방향으로 검색
    •  ? 문자열은 문자열을 위 방향으로 검색
    •  n  은 검색 결과가 여러 개라면 다음 검색 결과로 이동
    •  N  은 검색 결과가 여러 개라면 이전 검색 결과로 이동

 

 

4. 파일/디렉터리 복사

  • 파일이나 디렉터리를 복사할 때는  cp  명령어를 사용
  • 복사할 위치에 디렉터리를 지정하면 해당 디렉터리 안에 복사
  • 디렉터리 안에 파일을 복사할 때 여러 파일을 한꺼번에 복사 가능
$ cp [옵션] <복사할 파일> <복사할 파일> ... <복사할 위치>
# cp [원본파일명] [복사할 파일명]

$ cp sample.txt sample_copy.txt
$ ls

sample.txt를 복사하여 sample_copy 파일 생성

  •  cp  명령어로 복사할 때 이미 같은 이름의 파일이 있으면 덮어씀
  •  -i  옵션을 사용하면 덮어써도 되는지 진행 여부를 확인
$ cp -r dir1 dir2

복사본 파읾여이 이미 존재한면 진행 여부를 확인


<ex1-2>
# sample.txt 파일을 temp 디렉터리로 복사

$ cp sample.txt
$ ls
$ cd temp
$ ls

파일 1개만 다른 디렉터리로 이동


<ex1-2>
# sample.txt와 sample_copy.txt를 temp 폴더로 복사
$ cp sample.txt sample_copy.txt temp
$ ls
$ cd temp
$ ls

파일 2개를 다른 디렉터리로 복사




5. 파일/디렉터리 이동

  • 파일이나 디렉터리를 다른 디렉터리로 이동시키려면 mv 명령어를 사용
  • 디렉터리 안으로 파일을 이동할 때 여러 파일을 한꺼번에 이동할 수 있음
  •  mv   명령어도 cp 명령어와 비슷하게 이동할 위치에 따라 다르게 동작
$ mv [옵션] <이동할 파일> <이동할 파일> ... <이동할 위치>
# temp 디렉터리를 temp2 디렉터리로 이동

$ mv temp temp2
$ ls
$ ls ./temp2

디렉터리를 다른 디렉터리로 이동

  •  mv 명령어로 이동할 때 이미 같은 이름의 파일이 있으면 덮어씀
  •  -i  옵션을 사용하면 덮어써도 되는지 진행 여부를 확인
$ mv -i hello.txt copy.txt
# -i 옵션을 사용하여 이동하는 폴더에 동일한 파일명이 존재할 경우 덮어쓰는지에 대한 진행여부 확인

$ mv -i test_renmae.txt temp_mv/

이동하는 폴더에 동일한 파일이 존재할 경우 덮어쓰는지에 대한 진행여부 확인



  • mv 명령어는 파일이나 디렉터리의 이름을 바꿀때도 사용
# mv 명령어로 test.txt 파일의 이름을 test_rename.txt로 변경
# ./는 생략 가능

$ mv test.txt ./test_rename.txt
$ ls

mv 명령어로 파일 이름 변경

 

6. 링크 (바로가기)

  • 리눅스 파일 시스템에서는 파일에 별명을 붙이는 것 (윈도의 바로 가기와 비슷)
  • 링크에는 하드 링크와 심볼릭 링크 두 종류가 있는데 보통 심볼릭 링크가 많이 사용
    • 하드 링크란 한 파일 원본에 이름을 여러 개 붙이는 기능
    • 심볼릭 링크란 원본 파일에 대한 정보가 담긴 작은 특수 파일이며 하드 링크와 달리 원본과 구별
  • 링크 파일을 생성하려면  ln 명령어를 사용하고 -s 옵션을 붙이면 심볼릭 링크 생성
$ ln [옵션] <링크할 파일> <링크 이름>
# hello.txt의 링크파일인 hello_ln 생성

$ ln -s hello.txt hello_ln
$ ls -l

hello_ln 링크파일 생성


# 폴더의 링크 파일 생성
# temp의 링크 파일인 temp_ln 생성

$ ln -s temp temp_ln
$ ls
$ ls -l

temp_ln 링크파일 생성
temp_ln은 폴더를 링크파일로 만들었기 때문에 temp_ln/으로 명령어를 작성해야함


# 링크파일의 원본을 지울 경우

$ rm hello.txt
$ ls
$ ls -l

원본이 사라진 링크파일의 색이 변함

 

원본 파일이 삭제되어 바로가기가 가리키는 것이 없으므로 출력이 불가

 

7. 파일 검색

  • 특정 디렉터리 안에서 파일을 검색하려면  find   명령어를 사용
  •  find  명령어는 지정한 디렉터리 트리를 내려가면서 검색 조건에 일치하는 파일을 검색
  • 검색 조건에 일치하는 파일을 검색, 액션을 생략하면 기본적으로 검색 조건을 만족하는 파일의 경로를 출력
$ find <검색할 디렉터리> <검색 조건> <액션>
  • 파일을 이름으로 검색하려면 검색 조건에 -name 또는 -iname으로 이름을 지정
    # 대소문자를 구분
    $ find . -name hello.txt -print
    
    # 대소문자를 구분하지 않음
    $ find . -iname hello.txt -print​
$ find . -name hello.txt -print ./hello.txt

현재 폴더에 hello.txt를 찾아서 출력

 

  • 파일 형식으로 검색하려면 검색 조건에  -type  으로 파일 형식을 지정
# 일반 파일
$ find . -type f -print

# 디렉터리
$ find . -type d -print

# 심볼릭 링크
$ find . -type l -print
# 링크파일형식을 가진 파일들을 검색
$ find . -type l

링크 파일 형식 검색 결과

  • 검색 조건을 여러 개 지정하려면  -a(and)  를 사용하여 검색 조건을 지정
$ find . -type f -a -name hello.txt -print

# -a 생략 가능
$ find . -type f -name hello.txt -print
# 파일 형태의 이름이 hello.txt인 파일 검색

$ find . -type f -name hello.txt -print

-a 옵션을 생략 가능

 

'Linux' 카테고리의 다른 글

[Linux] 계정 관리 / 파일 접근 권한  (0) 2024.05.18
[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

파일/디렉터리


1. 리눅스 파일

  • 리눅스에서는 모든 것을 파일로 다룸
  • 정보(데이터), 이미지, 영상, 프로그램 등을 파일로 보존
  • 리눅스에서는 시스템을 구성하는 장치조차도 파일로 다룸(하드디스크, 키보드, 프린트, 커널 등)

 

2. 리눅스 디렉터리(Directory)

  • 여러 개의 파일을 담아서 정리할 수 있는 것 (윈도나 맥의 폴더와 동일)
  • 서브 디렉터리 혹은 자식 디렉터리 : 디렉터리 안에 있는 디렉터리
  • 상위 디렉터리 혹은 부모 디렉터리 : 디렉터리 위에 있는 디렉터리

 

3. 루트 디렉터리(Root Directory)

  • 리눅스의 디렉터리 구조에서 맨 위에 있는  디렉터리
  •  루트 디렉터리 아래에 디렉터리와 파일이 있는 계층 구조를 트리라고 함
  • 리눅스는 언제나 시스템 전체에서 단 하나의 트리만을 가짐

 

4. 작업 디렉터리(Working Directory)

  • 리눅스를 사용하다 보면 많은 디렉터리를 이동하면서 작업하게 되는데 이때 현재 위치한 디렉터리
  • 리눅스에 로그인한 직후에는 사용자의 홈 디렉터리에서 시작 (홈 디렉터리는 명령 프롬프트에서  ~ 로 표시)
  • 현재 작업 중인 디렉터리를 확인하려면   pwd  명령어를 사용
# beyond는 윈도우의 계정과 같음
# ~$ : 홈디렉터리에 위치하고 있음을 표시

$ pwd
/home/beyond

현재 디렉터리(작업디렉터리)를 검색하는 명령어 pwd

 

5. 절대 경로와 상대 경로

  • 절대경로 : 루트 디렉터리에서 해당 파일에 이르는 경로를 표시하는 것
  • 절대경로는 해당 파일의 위치를 명학하게 나타내지만 디렉터리의 깊이가 깊으면 경로가 길어진다는 문제가 존재
/usr/share/zoneinfo/Asia
  • 상대경로 : 현재 디렉터리의 위치를 기준으로 표기하는 경로
  • 상대경로를 사용할 때는 특수 디렉터리인  .    ..  를 사용
  •  .  은 현재 디렉터리를 뜻하고   ..  는 상위(부모) 디렉터리르 뜻함

 

6. 디렉터리 이동

  • 현재 작업 디렉터리를 변경하려면 cd 명령어를 사용
$ cd [이동할 디렉터리 이름]

 

# cd : change directory
# ls : list segments
# cd 명령어는 명령어 뒤에 지정한 디렉터리로 이동하는데 이때 명령어 뒤에 스페이스로 구분하여 전달하는 문자열을 커맨드 라인 인자
# 디렉터리를 지정할 때 절대 경로와 상대 경로 모두 지정이 가능

cd /home
ls

home 디렉터리로 이동

 

7. 디렉터리 내용 확인

  • 현재 작업 디렉터리에 있는 파일이나 하위 디렉터리의 목록을 확인하려면  ls  명령어를 사용
$ ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

 

# ls :  현재 작업 디렉터리에 있는 파일과 폴더를 확인

$ ls

현재 디렉터리에 있는 내용 확인

 

  • 인자로 파일 또는 디렉터리를 지정하면 해당 경로를 출력 (여러 경로를 지정 가능)
$ ls [파일 또는 디렉터리 이름]

 

$ ls / /home ~

ls에 3개의 인자를 전달



  • ls 명령어는 -으로 시작하는 옵션을 지정할 수 있는데 이를 옵션 또는 커맨드 라인 옵션이라고 부름
# 파일의 속성과 상세 정보까지 함께 출력
$ ls -l 

파일의 속성과 상세 정보까지 함께 출력


 

# 숨겨진 파일도 함께 출력
$ ls -a

숨겨진 파일도 함께 출력


# 파일 이름 뒤에 파일을 의미하는 기호를 추가해 출력
# / : 디렉터리, * : 실행 파일, @ : 심볼릭 링크
$ ls -F 

파일 이름 뒤에 파일을 의미하는 기호를 추가해 출력


# 옵션 조합
$ ls -alf

원하는 조건에 맞게 조합 가능


# 옵션의 종류와 기능 정보를 제공
$ ls --help

옵션의 종류와 기능 정보를 제공

 

리눅스(Linux)


1. 리눅스(Linux)

  • 리눅스는 윈도나 맥 OS와 같은 운영체제
  • 운영체제는 컴퓨터와 같은 기계장치인 하드웨어와 컴퓨터에 설치되는 모든 소프트웨어를 관리하는 역할

 

2. 리눅스의 장점

  • 오픈 소스로 무료로 사용 가능하며 운영 체제의 내부 동작 확인 가능
  • 높은 품질로 다양한 소프트 웨어를 리눅스에서 실행 가능
  • 스크립트를 통해 많은 부분을 자동화할 수 있어 운영에 편리
  • 서버용 운영체제로 많이 사용

 

3. 리눅스의 단점

  • 윈도나 맥보다 문서를  편집하거나 이미지나 영상과 같은 멀티미디어를  편집하는 소프트웨어가 부족
  • 공식 문서나 도움말이 영어로만 되어있거나 소프트웨어에 따라 한글이 깨지기도 함

 

4. 리눅스 배포판

  • 리눅스 커널과 함께 기본적인 명령어와 애플리케이션을 묶어서 사용자가 바로 사용할 수 있게 패키징한 것
  • 리눅스 커널이란 운영 체제의 중심에서 하드웨어를 제어하는 역할을 담당하는 소프트웨어
  • 리눅스 배포판은 무척 다양한데 대표적으로 레드헷 계열데비안 계열이 존재

 

 

셸(Shell)


1. 셸(Shell)

  • 리눅스는 키보드로 명령어를 입력하는 방식을 더 많이 사용하는데 이때 리눅스와 사용자를 연결하는 것
  • 리눅스에서는 사용자가 커널을 직접 조작할 수 없게 되어있게 때문에 둘 사이에서 명령어를 받아들이고 커널의 실행 결과를 출력하는 소프트웨어가 필요한데 이 역할을 수행하는 소프트웨어
  • 커널의 인터페이스에 해당
  • 리눅스에서는 다양한 셸을 사용할 수 있는데 대표적으로 sh, csh, bash, tsch, zsh가 존재

 

2. 터미널(Terminal)

  • 컴퓨터의 입출력만을 담당하는 전용 하드웨어
  • 현재 리눅스를 다를 때 하드웨어 터미널을 사용하는 경우는 거의 없으며 소프트웨어로 구현한 터미널을 사용
  • 터미널과 셸은 완전히 다른 소프트웨어이니 혼동하면 안됨

'Linux' 카테고리의 다른 글

[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14
[Linux] 윈도우 VirtualBox 설치 & MobaXterm 원격 접속  (0) 2024.05.13

1. home 디렉터리 확인

pwd

home 디렉터리 beyond는 계정 이름

 

2. ssh-key 발급

#ssh-keygen - opnssh의 명령어
ssh-keygen -t rsa

명령어 입력후 enter 반복하면 키가 생성

 

3. 발급 확인

# -a옵션은 숨겨진 파일을 모두 보여줌
ls -a

.ssh 생성 확인

# id_rsa : 비공개키, 윈도우로 이동해주어야함
# id_rsa.pub : 공개키, 서버에 있어야함
cd .ssh
ls

id_rsa, id_rsa.pub 키 발급 확인

 

4. 공개키 이름 변경

# 변경 필수 ! key를 사용하기 위한 규칙
mv id_rsa.pub authorized_keys

mv 명령어로 id_rsa.pub키 이름 변경

 

 

5. 비공개키 윈도우로 이동

id_rsa키를 윈도우로 이동

- .ssh로 이동

- id_rsa를 윈도우에 다운로드

 

선택 위치에 다운로드 되었는지 윈도우에서 확인

- 윈도우에 다운로드 되었는지 확인

 

6. 세션 만들기

Use private key 선택하고 id_rsa 파일 입력
id_rsa파일 선택
ok버튼 누르면 ssh인증키 설정 완료!

1. Oracle VM VirtualBox 설치

windows host로 설치
모두 기본값으로 install 후 Finish

 

2. 가상 시스템 가져오기

도구 > 우클릭 > 가상시트템 가져오기
파일 이코티콘 선택
파일 > 가상머신 가져오기
완료 클릭

 

가상 시스템 가져오기가 완료되면 성공!

 

3. 가상 머신 전원 켜기

우클릭 > 시작
시작 클릭
가상 머신 전원 켜는 중-
비밀번호 입력
터미널 열린것 확인하면 성공!

 

3. MobaXterm 설치

GET MOBAXTERM NOW! 클릭
Home Edition 버전으로 Download now 클릭
MobaXterm Home Edition v24.1(Installer edition) download
기본값으로 install

 

start local terminal

4. 가상머신 원격접속

# 가상 머신 터미널
# 네트워크 툴인 net-tools 설치
sudo apt install net-tools

sudo apt install net-tools

# 네트워크 인터페이스에 주소를 지정하고 현재 네트워크 인터페이스 구성 정보를 구성 또는 표시
ifconfig

게스트 IP 확인

#openssh-server 다운로드
#openssh-server는 원격접속할때 허용하게 해주는 서버
sudo apt install openssh-server

openssh-server install

 

#systemctl로 실행되는 서비스 리스트를 확인
sudo systemctl list-units | grep ssh

# MobaXterm local terminal
inconfig

 

ipconfig 명령어를 통해 window ip 확인 (pc마다 할당된 ip이기 때문에 중복되지 않음)

 

Session 클릭
SSH 클릭
가상머신 > 우클릭 > 설정
설정 > 네트워크
네트워크 > 고급 > 포트 포워딩 ❘ 호스트 IP, 호스트 포트, 게스트 IP, 게스트포트 입력
완료!

'Linux' 카테고리의 다른 글

[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

+ Recent posts