[Linux]기초 1
디렉토리와 파일
- ls
현재 디렉토리의 파일 목록을 출력하는 명령어
ls
ls -l
은 자세히 보기(-
은 파라미터(parameter)라는 의미) - pwd 현재 위치하고 있는 디렉토리를 알려주는 명령어
- mkdir
mkdir 새로 생성할 디렉토리명
- cd
cd 이동할 디렉토리의 경로명
change directory - 부모 디렉토리로 가는 방법 2가지
cd /home/sua
절대 경로cd ..
부모 디렉토리로 이동하는 명령. 참고로 현재 디렉토리는.
상대 경로 (최상위 디렉토리는 루트(root) 디렉토리라고 하며/
이다.)
-
clear 화면을 깨끗이
- rm
remove 삭제
rm 파일명
rm -r 디렉토리명
–help와 man
- –help
명령어 뒤에 –help를 붙이면 명령의 사용설명서가 출력된다.
ls --help
rm --help
mkdir --help
pwd --help
- man
man ls
man rm
특정 단어를 검색하고 싶을 때는/
입력 후 원하는 단어 검색, 알파벳N
으로 이동Q
로 빠져나옴
help는 화면을 빠져나가지 않고 간단한 매뉴얼을 출력 man은 전용페이지로 이동해서 상세한 매뉴얼을 출력
-
사용설명서 보는 법 1)
mkdir --help
mkdir -p dir1/dir2/dir3/dir4
부모 디렉토리를 생성하고 자식 디렉토리를 만든다.mkdir -parents dir1/dir2/dir3/dir4
위와 같은 의미2)
ls --help
ls -a
모든 파일을 보여 준다. 숨김 파일은 앞에.
이 붙는다.ls -al
감춰진 파일을 보여주는 것(ls -a
)과 자세히 보여주는 것(ls -l
)을 함께 하고 싶을 경우, 많이 씀.ls -S
대문자 구분, 파일 사이즈를 기준으로 sort, largest부터
필요한 명령을 검색으로 찾는 법
- 구글에서 영어로 검색 create directory in linux, file copy in linux, move file in linux
cp cp.txt dir1/cp.txt
파일 복사하기mv mv.txt dir1/mv.txt
파일 이동하기mv rename.txt rename2.txt
파일 이름 바꾸기
sudo
- sudo - super user do
- 리눅스, 유닉스 계열 컴퓨터는 다중 사용자 시스템, 각 사용자마다 permission 부여
- super user, root user로 활동하면
rm -rf /
루트 디렉토리에 있는 모든 파일을 삭제하라는 명령을 실수할 수 있음(절대 하면 안 됨) - 새로운 프로그램을 설치하고 싶을 때
apt-get install git
하면 거부됨.sudo apt-get install git
라고 해야 함. 즉, 임시로 그 명령만 super user의 권한으로 실행하도록 하는 것이sudo
파일편집 (nano)
- 파일에 정보를 추가하고 편집하는 방법으로서 nano 에디터를 사용하는 방법을 알아본다.
- 파일 = 정보를 저장하는 가장 기본적인 저장소 디렉토리 = 그 파일을 잘 보관하기 위한 수납함
- 파일에 정보를 저장하는 방법? 명령어 기반의 시스템에서도 메모장 같은 편집기가 있다. 초급은 nano, 중고급은 vi을 추천한다.
- 입력창에
nano
입력 - 내용 입력
- ^O(Write Out)은
ctrl + O
파일 이름 입력hello.html
엔터키 ctrl + X
로 빠져나옴.- 다시 편집하고 싶으면
nano hello.html
- 내용 편집
ctrl + K
Cut Text 잘라내기(한 줄 다)ctrl + U
Uncut Text 붙여넣기- 일부만 잘라내기, 붙여넣기 하고 싶을 경우
ctrl + 6
누르면 Mark Set이 된다. - 검색
ctrl + W
패키지 매니저
- 운영체제에 기본적으로 설치되어 있지 않은 프로그램을 쉽게 설치할 수 있는 방법이 패키지 매니저를 이용하는 것이다. apt를 이용해서 패키지를 관리하는 방법에 대해 알아본다. (yum도 있다.)
- apt로 설치할 수 있는 소프트웨어의 목록을 최신 상태로 업데이트
sudo apt-get update;
- 검색
sudo apt-cache search htop
htop과 관련된 패키지들의 목록을 보여줌- htop이란? 기본적으로 리눅스에는 top이라는 프로그램이 설치되어 있음. 작업관리자. 하지만 보기가 어려움. top을 개선한 프로그램이 htop.
- 설치
sudo apt-get install htop
설치할 것인지 물어보면y
입력 - 설치된 프로그램 업그레이드
sudo apt-get upgrade htop
- 삭제
sudo apt-get remove htop
다운로드 방법 (wget, git)
명령어 기반의 시스템에서 파일을 다운로드 하는 방법을 소개한다.
wget
- wget으로 url을 통해 파일을 다운로드할 수 있다.
wget 파일url
git
- git은 버전 관리 시스템 중 하나
- git을 통해 오픈소스 코드를 다운로드 하는 법
- React github 사이트로 들어가서, 소스코드의 url 다운 https://github.com/facebook/react.git
- git 설치
sudo apt-get install git
- 오픈소스 복제(clone)
git clone https://github.com/facebook/react.git react_src
react_src
라는 디렉토리에 이 주소가 가리키는 오픈소스 프로젝트가 다운로드됨(오픈소스의 파일 뿐만 아니라 모든 변천사들을 다 복제) - 확인
ls -l
로 확인cd react_src/
로 들어가서ls -l
하면 모든 소스코드가 클론되어 있음
왜 CLI인가?
- 왜 배우기 어려운 명령어(CLI)를 사용하는 것일까?
- GUI에 비해서 용량, 메모리, CPU가 적게 든다.
- 순차적 진행이 가능하다.
mkdir why
와cd why
명령을 한 번에mkdir why; cd why
로 실행할 수 있다. 즉, 여러 명령을 한 번에 전달 후 종료 시 결과만 보고 받는다.(계속 지켜볼 필요가 없다.) - 파이프라인? 하나의 프로그램의 결과를 다른 프로그램의 입력으로 준다.
grep
이란? 원하는 정보가 들어있는 행을 찾는 명령어grep linux linux.txt
linux.txt 파일에서 linux가 포함된 행만을 화면에 출력- 파이프 라인
파이프( | )로 프로그램을 연결, 앞 프로그램의 출력을 뒷 프로그램의 입력으로 연결
- 예시1
ls --help | grep sort
–help로 출력된 내용을 (파이프로 연결해서) grep의 명령으로 입력한다. 그리고 grep은 sort를 포함한 행을 불러온다. - 예시2
ps aux | grep apache
ps aux
로 컴퓨터에서 현재 실행되는 프로그램의 리스트를 확인 가능, 그 중apache
라는 텍스트가 포함된 것들만 출력
- 예시1
IO Redirection
- Input/Output 입력/출력 Redirection 방향을 바꾼다
output
ls -l
의 결과값을 파일로 저장하고 싶으면?ls -l > result.txt
(cat result.txt
로 저장되었는지 확인) -> 원래 화면에 출력되는 것인데 파일에 저장되게 했음 = output의 출력의 방향을 바꿈, 리다이렉션- 유닉스 계열의 시스템은 어떤 프로그램이 실행(process)될 때 출력 형식이 2가지이다.
Standard Output(성공)와 Standard Error(오류가 있을 때)
- Standard Output
ls -l 1> result.txt
1
:Standard Output(생략 가능) />
: Redirection - Standard Error
rm rename2.txt 2> error.log
2
: Standard Error />
: Redirection - 둘 다 적용
rm rename2.txt 1> result.txt 2> error.log
실행 결과에 따라 저장됨
- Standard Output
프로그램? 프로세스?
프로그램은 컴퓨터에 저장되어 있는 코드, 그 프로그램이 실행되고 있는 상태를 프로세스 하나의 프로그램은 여러 개의 프로세스를 가질 수 있다.
input
- 예시1
cat hello.txt
cat
이라는 프로그램의 인자로hello.txt
를 받은 것, Command-line Arguments- Standard Input
cat
명령, 사용자가 입력하는 정보를 Standard Input 받음 (ctrl + D
를 누르면 나옴) - 리다이렉션
cat < hello.txt
cat
은 기본적으로 키보드의 입력값을 받지만<
로 리다이렉션을 시켜주면 파일에 저장된 내용을 입력으로 받는다. 1번 방식처럼 그냥 인자로 받으면 되기 때문에 실용적이지 않다.
- 예시2
head linux.txt
10줄만 출력(기본)head -n1 linux.txt
1줄만 출력(Command-line Arguments)head -n1 < linux.txt
1줄만 출력(Standard Input, Redirection),<
있어도 결과는 같음- 출력된 결과를 다시 텍스트에 저장
head -n1 < linux.txt > one.txt
linux.txt 파일의 첫 번째 행만 one.txt에 저장
append
- 리다이렉션한 결과를 덮어쓰는 게 아니라 추가(append)하고 싶다면
>>
꺽쇠를 두 번 쓴다.ls -al >> result.txt
-
반대로
<<
은 여러 개의 입력을 합친다. - 만약 실행한 결과를 어디에도 출력하고 싶지 않다면?
ls -al > /dev/null
쉘과 커널
Shell vs Kernel
-
kernel 알맹이, 핵심 / 하드웨어를 직접적으로 제어하는 운영체제에서 가장 중심이 되는 코어
-
Shell
주변, 껍데기 / 사용자가 입력한 명령을 해석해서 kernel에 전달하는 프로그램
- (처리 과정) 사용자가 입력한 명령을 해석해서 kernel에게 전달 -> kernel은 하드웨어를 제어해서 어떠한 처리를 수행할 수 있도록 명령 -> 하드웨어는 처리결과를 kernel에게 알려주고, kernel은 shell에게 전달
- (why shell?) kernel을 직접 제어할 수 없기 때문에 이해할 수 있는 명령어를 입력하면 shell이 해석해서 kernel에 전달하는 것임
bash vs zsh
- bash, zsh은 여러 shell 중에 하나, zsh이 편의성이 높다. 선호하는 shell을 깔아서 쓰면 된다.
echo $0
로 어떤 쉘을 사용하고 있는지 확인
쉘 스크립트
-
쉘을 통해서 여러 명령을 실행시키는 작업을 한번에 실행할 수 있다.
- 쉘 스크립트는 명령어들이 실행되어야 할 순서를 각본을 짜서 저장해둔 것.
- 예시
확장자 log로 끝나는 파일을 정기적으로 bak 파일에 백업을 시키고 싶을 때(bash 사용)
nano backup
backup 이라는 이름의 프로그램을 만들 것 -> nano 안으로 들어감
// nano에서 작성
#!/bin/bash` // 먼저 이 코드를 무조건 작성해준다. 밑에 작성된 코드가 /bin/bash를 통해 해석되어야 한다는 의미
if ! [ -d bak ]; then // 현재 디렉토리에 bak라는 디렉토리가 존재하지 않으면(!)
mkdir bak // bak 디렉토리를 만든다
fi // 조건문 종료
cp *.log bak // 현재 디렉토리의 log로 끝나는 파일을 bak 디렉토리로 저장한다
위 내용 저장 ctrl + X
yes
enter
./backup
하면 권한이 없다고 나옴
chmod +x backup
으로 실행가능한 모드 부여하고, 다시 ./backup
하면 실행됨!
디렉토리의 구조
/
: 최상위 디렉토리, root/bin
: User Binaries, 실행가능한 프로그램, 사용자들이 사용하는 명령들이 위치/sbin
: System Binaries, 컴퓨터를 끄거나 재부팅, 시스템 관리자가 사용하는 프로그램/etc
: Configuration Files, 어떤 프로그램의 동작하는 방법의 설정을 변경하고자 할 때/dev
: Device Files/proc
: Process Information/var
: Variable Files, 내용이 변하는 파일들(ex. log files)/tep
: 재부팅하면 내용이 사라지는 임시 저장 파일들/usr
: User Programs/home
: 유저의 personal files를 저장하기 위한 디렉토리. Username으로 된 하위 디렉토리가 존재한다. 홈 디렉토리로 바로 이동하기 위해서는cd ~
을 사용하면 된다./opt
: 어떤 프로그램을 설치할 때 자동으로 특정 디렉토리에 설치되는데, 수동으로 설정할 경우 opt에 설치하면 된다.
프로세스
- 프로세스는 실행되고 있는 프로그램을 의미한다. 여기서는 프로세스에 대해서 알아보고 프로세스의 상태를 확인하는 방법을 공부한다.
컴퓨터의 구조
- SSD, HDD : Storage, 가격이 싸다. 저장 용량이 크다. 속도가 느리다
- RAM : Memory, 가격이 비싸다. 저장 용량이 적다. 속도가 빠르다
-
CPU : Processor
- storage에 깔려 있는 프로그램을 읽어서 memory에 적재, memory의 올라와 있는 프로그램을 cpu가 읽어서 동작
- process란? 사용자가 입력하는 명령어(command ex. mkdir, top, rm)는 /bin, /sbin 등에 파일의 형태로 저장(storage), 이것이 바로 프로그램. 그 프로그램을 실행하면 memory에 적재. 그리고 processor에 의해 실행되고 있는 프로그램을 process라고 한다.
프로세스 모니터링 (ps, top, htop)
ps aux
프로세스 리스트를 보여주는 명령ps aux | grep apache
apache라는 텍스트를 포함하고 있는 텍스트만 출력-
sudo kill 22142
프로세스 강제로 종료, 22142는 원하는 프로세스 아이디 값으로 변경 가능 - top, htop이 좀더 실용적임
sudo top
sudo htop
파일을 찾는 법
파일은 2가지 용도로 사용된다. 데이터를 보관하는 파일, 명령을 보관하는 실행파일
locate와 find
-
locate 파일이름
(mlocate 설치해야 함)
- 디렉토리를 뒤지지 않고 데이터베이스를 뒤진다.
- 처리속도가 빠르다. 미리 목록을 업데이트 해놓기 때문에(
sudo updatedb
현재 파일들의 정보를 저장하는 명령. 리눅스에서는 하루에 한 번 실행) - ex)
locate *.log
-
find [시작 디렉토리] [어떤 파일인지]
- 디렉토리를 직접 뒤진다.
- 현재 상태를 가져올 수 있다.
- 다양한 사용법이 있어서 많이 쓰인다.
- ex)
sudo find / -name *.log
루트 디렉토리에서 시작해서 하위 디렉토리에서 찾겠다. 이름으로 찾겠다. .log로 끝나는 파일을 찾겠다.find ~ -name *.log
홈 디렉토리에서 찾겠다. sudo를 안 써도 된다.find . -type f -name tecmint.php
파일 확장자를 f(file)로 지정한다.
whereis와 $PATH
whereis
실행파일을 찾아주는 명령어, 실행파일, 소스, 매뉴얼을 찾아준다.$PATH
- 현재 디렉토리에
ls
등의 명령어가 존재하지 않음에도 불구하고 그냥ls
만 쳤을때 수행될 수 있는 것은$PATH
때문이다. - $PATH에는 여러 경로들이 저장되어 있는데, 만약 어떤 명령을 실행하면 이 경로들을 검색하여 해당 프로그램이 존재하는지 확인하고 발견하면 실행시킨다.
- 현재 디렉토리에
PATH와 관련된 참고사이트 https://m.blog.naver.com/PostView.nhn?blogId=occidere&logNo=220821140420&proxyReferer=https:%2F%2Fwww.google.co.kr%2F
백그라운드 실행
멀티태스킹을 리눅스에서도 할 수 있다.
ctrl + z
: 실행중인 프로그램을 백그라운드로 보내는 단축키. 이 기능을 실행하면 명령어가 일시 정지된다.fg
: 작업하던 프로그램이 다시 켜진다.fg %2
2번째 프로그램이 켜진다.jobs
: 백그라운드 작업들의 목록을 보여준다.kill
: 프로그램을 종료시킨다.kill %4
일반적인 종료kill -9 %4
강제종료- &가 명령어 뒤에 붙으면 명령어가 실행될 때 백그라운드로 실행된다.
ls -alR / > result.txt 2> error.log &
항상 실행 (daemon, service)
데몬의 개념
- 지금까지 배운
ls
,mkdir
,rm
는 필요할 때 키고 필요없을 때는 꺼져있는 프로그램이다. 반면, 데몬은 항상 켜져 있어야 하는 프로그램이다. - 예를 들어
web server
는 언제web client
가 요청을 보낼 지 모르므로 항상 켜져 있어야 한다.
service와 자동실행
sudo apt-get install apache2
apache라는 web server 설치cd /etc/init.d
로 데몬 프로그램들을 확인 가능함- 데몬 프로그램을 켜고 끄는 것은
service
라는 명령을 통해 수행sudo service apache2 start
켜기 (ps aux | grep apache2
로 확인)sudo service apache2 stop
끄기 - 추가 내용
만약 어떤 프로그램이 부팅될 때 자동으로 실행하고 싶으면
/etc/rc3.d
에 프로그램의 링크를 걸면 된다. (rc3.d
CLI로 구동하고 있을 경우,rc5.d
GUI로 구동하고 있을 경우) 이 때 이름이 S로 시작하면 시작, K로 시작하면 시작하지 않는다.
정기적으로 실행 (cron)
- cron은 정기적으로 명령을 실행해야 할 경우에 사용한다. 정기적으로 메일을 보내거나 백업을 하는 등
crontab -e
로 에디터 입장 minute / hour / day of month / month / day of week / command 순서로 입력한다.- ex)
*/1 * * * * date >> date.log 2>&1
- 1분에 한 번 현재 시간을 date.log에 입력한다는 의미
- 각 위치에 *을 입력하면 아무것도 설정하지 않는 것이다.
2>&1
표준에러를 표준출력으로 리다이렉션, 즉 에러도 함께 출력된다.
tail -f date.log
date.log를 감시하고 있다가 뒤 쪽에 텍스트가 추가되면 자동으로 화면에 리프레시
쉘을 시작할 때 실행
Startup script
- Startup script은 쉘을 시작했을 때 특정 명령어가 자동으로 실행되도록 하는 방법이다.
alias l='ls -al'
별명, 단축키alias ..='cs ..'
alias c='clear'
- 이러한 명령어를 쉘이 시작될 때마다 실행되도록 하려면? (bash에서)
cd ~
nano .bashrc
안에서 작성해두면 된다.
다중 사용자
- 유닉스 계열 운영체제는 여러 명이 함께 사용할 수 있는 기능을 가지고 있다. 이 기능은 강력 하지만 혹독한 대가도 따른다. 배우기 어렵고, 보안의 문제가 발생할 수 있다
id
나는 누구인가who
이 컴퓨터에 누가 접속해있는가
관리자와 일반 사용자
- super(root) user vs user
sudo 명령어
일시적으로 슈퍼 유저의 권한으로 실행한다. 슈퍼 유저가 될 수 있는 일반 유저만 가능- 슈퍼 유저가 되는 방법?
먼저 자신이 슈퍼 유저인지 판단. 슈퍼 유저는 root라는 이름을 가지고 있음.
$
일반유저,#
슈퍼유저- 슈퍼 유저 되려면
su - root
로 슈퍼 유저 되기exit
로 빠져 나오기 - 우분투에서 수퍼 유저 되려면
sudo passwd -u root
u는 unlock의 의미 (안 되면sudo passwd root
로 먼저 비밀번호를 설정)su - root
로 슈퍼 유저 되기exit
로 빠져 나오기sudo passwd -l root
로 super user 사용을 잠그기
- 슈퍼 유저 되려면
- 루트 사용자의 홈 디렉토리는
/root
이다.
사용자의 추가
sudo useradd -m [username]
사용자 추가sudo passwd [username]
비밀번호 설정sudo usermod -a -G sudo [username]
super user 권한을 가질 수 있도록 설정su - [username]
해당 유저로 로그인
권한 (permission)
Permission
- 유닉스 계열에서 퍼미션이란 User가 File & Directory를 Read & Write & Excute 할 수 있도록 또는 할 수 없도록 제어하는 것이다.
- 사용자1
touch perm.txt
파일 생성ls -l perm.txt
로 파일의 소유자 확인echo 'hi' > perm.txt
파일에 내용 넣기 - 사용자2
cd /home/사용자1
echo 'hello' > perm.txt
소유자가 아닌 사람이 쓰기를 했을 때 Permission denied 당한다.
ls -l perm.txt
했을 때 나오는 정보를 자세히 알아보기
- type :
-
이면 파일,d
면 디렉토리 - access mode : 3등분으로 나눠서 owner, group, other 각각의 권한을 의미한다.
r
: read 읽기,w
: write 쓰기,x
: excute 실행rw-rw-r--
는 소유자와 그룹은 읽기와 쓰기가 가능하고, 그 외는 읽기만 가능한다는 의미
- owner와 group의 이름
권한을 변경하는 방법(chmod)
access mode를 변경하고 싶다면 chmod
명령어를 사용한다.
- other의 read 권한을 없애고 싶다면?
chmod o-r perm.txt
- 모든 사용자가 읽을 수 있게 하고 싶다면?
chmod o+r perm.txt
- 소유자가 읽을 수 없게 하고 싶다면?
chmod u-r perm.txt
실행의 개념과 권한 설정
실행이란?
-
실행 가능한 파일 만들기
nano hi-machine.sh
->nano
로 들어옴#!/bin/bash
/bin/bash를 이용해서 아래 코드를 해석해서 실행하라 뜻echo 'hi hi hi hi'
->nano
나감 ./hi-machine.sh
라고 치면 에러가 나온다. (Permission denied) 반면,/bin/bash hi-machine.sh
이라고 치면 실행된다.- 어떤 특정한 파일을 프로그램처럼 실행하고 싶다면 파일에 실행 권한을 주어야 한다.
chmod u+x hi-machine.sh;
이렇게 실행 권한을 주면./hi-machine.sh
이 정상적으로 실행된다.
directory의 권한
- 디렉토리는 읽기, 쓰기, 실행이 불명확하다.
- 실습을 위해
mkdir perm;cd perm;echo 'hi' > perm.txt
작성 - perm 디렉토리 정보 :
drwxrwxr-x 2 sua sua 4096 1월 7 17:50 perm
- r : 디렉토리 안에 소속되어 있는 파일과 디렉토리를 열람할 수 있느냐
- w : 디렉토리 안에 파일을 생성할 수 있느냐, 파일 이름 변경, 파일 삭제 등
- x :
cd
명령으로 그 디렉토리에 들어갈 수 있느냐
- Tip) 디렉토리 안에 디렉토리가 있을 경우, 한꺼번에 모두를 바꾸고 싶을 경우
chmod -R o+w perm
R은 recursive 재귀적
chmod 사용법 정리
-
chmod는 중급자로 갈수록 중요해지는 명령
chmod [options] mode[,mode] file1 [file2 ...]
-
이 때까지는 액세스 모드를 지정할 때
chmod o+w perm.txt
방식을 사용했었음. 사람이 이해하기 쉬우나, 한 번에 여러 설정을 바꿀 수 없다.chmod o+r perm.txt
chmod o+x perm.txt
이렇게 여러 번 작성해야 함. -
방법 1: 8진수 모드
# Permission rwx Binary 7 read, write and execute rwx 111 6 read and write rw- 110 5 read and execute r-x 101 4 read only r– 100 3 write and execute -wx 011 2 write only -w- 010 1 execute only –x 001 0 none — 000 chmod 111 perm.txt
하면---x--x--x 1 sua sua 3 1월 7 17:50 perm.txt
으로 한 번에 변경됨
-
방법 2
chmod a+r perm.txt
모든 사용자에 대해서 r 권한 부여chmod a=rwx perm.txt
모든 사용자에 대해 모든 권한 부여chmod a= perm.txt
모든 사용자에 대해 모든 권한 삭제
https://en.wikipedia.org/wiki/Chmod 참고하기
그룹
-
user, other가 아닌 특정 사람들에게만 파일에 대한 권한을 주고 싶을 때, group으로 묶고 이름(ex. developer)을 부여한다. (리눅스는 다중 사용자 시스템이므로 그룹이 별로 중요하지는 않다.)
-
예시 developer라는 그룹에 속한 사용자는 파일을 수정할 수 있는 권한이 있고, 속하지 않는 사용자는 수정할 수 있는 권한이 없다라고 가정
cd /var
이 디렉토리는 변화가 잦은 파일이 위치mkdir developer
Permission deniedsudo mkdir developer
cd developer
echo 'hi, egoing > egoing.txt
Permission denied -
그룹 만들기
기억할 필요없이 필요할 때마다 검색을 통해 해결
groupadd developer
developer라는 group 생성, Permission deniedsudo !!
!!은 직전에 입력했던 명령어 잘 됐는지 확인하려면nano /etc/group
파일을 열어보면 된다. -
그룹 멤버 모으기
usermod -a -G developer egoing
Permission deniedsudo usermod -a -G developer egoing
sudo usermod -a -G developer k8805
exit
후 다시 접속해야 함cd /var/developer/
으로 이동 -
디렉토리의 그룹 변경
sudo chown root:developer .
.은 현재 디렉토리라는 의미 -
그룹의 권한 변경
sudo chmod g+w
echo 'hi, egoing' > egoing.txt
오류 없이 실행!
본 포스팅은 생활코딩 리눅스 강의(https://opentutorials.org/course/2598)를 참고하여 작성하였습니다.
댓글남기기