본문 바로가기

프로그래밍 공부/리눅스

리눅스 연습하기 --5. GUI 설정 , 디렉토리 관리와 파일

1.GNU 와 GNOME

GNOME = GNU Network Object Model Environment

 

2.gui 설치

a. os 버전 확인

cat /etc/os-release 

b. gui 패키지 설치

yum groupinstall "GNOME Desktop" "Graphical Administration Tools" 

c. gui로 실행 하기 위한 설정

ln -sf  /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

d.reboot 로 다시시작(그냥 다시시작 하면 된다.)

 

 

3.디렉토리 관리

 

3-1. pwd 

현재 위치한 디렉토리의 절대경오를 출력한다. (= Printing Working Directory)

 

3-2.ls 

현재 디렉토리의 파일 목록 표시(=LiSt) 

3-2-1.옵션

a> -l : 권한 등 상세정보 출력 (=Long)

b> -a : 숨긴 정보등을 포함한 모든 내용을 출력 (=All)

c> -h :  사람이 보기 좋게 출력 (=Human readable)

d> -s : 파일 크기순 정력 (Size)

e> -r : 거꾸로 출력

f> -R : 하위 디렉토리까지 출력(=Reculsive) 

g> -F :실행 파일이나 디렉토리 등이 쉽게 구분 될 수 있도록 출력(=Fromat)

 

3-3.mkdir

디렉토리를 만든다.(=MaKe DIRectory)

a> -m: 디렉토리 권한 지정 , 기본값은 755

b> -p 상위 디렉토리가 없으면 상위 디렉토리도 만든다.

 

 

3-4.rmdir

디렉토리 삭제

하위 디렉토리가 있는 경우에는 삭제되지 않는다.

그때는 하위 디렉토리에 가서 상위 디렉토리 까지 함께 지워야 된다.

a> -p 상위 디렉토리까지 함께 삭제

 

3-5. 디렉토리 이동

cd [절대경로 | 상대경로] 

디렉토리로 이동 (=Change Directory)

그냥 cd일 경우 계정의 홈 디렉토리로 이동

 

a> cd ~유저명 : 유저명 유저의 홈 디렉토리로 이동

 

 

 

4.파일

리눅스에서는 디렉토리 역시도 파일이다.

a> - : 일반 파일 

b>  b : 블록 디바이스 파일 (=Block)

c>  c : 문자열 디바이스 파일 (=Character)

d> d : 디렉토리 (=Directory)

e> l : 심볼릭 링크 (=Link) , 바로가기의 역할

f> p 또는 = : 명명된 파이프(=nanmed Pipe)

g> s : 소켓 (=Socket)

 

4-1.파일 소유권

파일에는 소유자와 권한이 존재한다.

대부분은 처음 생성한 계정에 소유권과 권한이 부여되지만 chown 로 권한 변경이 가능하다

 

4-2.파일 권한

파일 권한은 ls -al 에서 맨 앞의 문자들로 표현된다. 

맨앞글자는 파일의 유형이다. 그걸 제외하면 권한은 9자리이다.

각 3자리들은 앞에서부터 user / group / other 권한을 나타낸다.

권한은 r,w,x 3가지 종류가 있으며 각각 3자리에 맞춰서 쓴다.

각각 read , write , 실행 을 뜻한다. 

예시로 -rw-r--r--.  권한은

user가 읽고 쓰는것, group 이 읽는것 , 타 유저가 읽는것은 된다는 것이다.

 

4-3.파일권한의 숫자

권한은 숫자로 표시 될 수 있다.

r = 4 , w=2 , x=1

만약 -rwx r-x r-x 의 형식이면 755 라고 숫자 표시를 할 수 있다.

 

4-4. 파일의 시간정보 변경

touch 파일

touch 를 하면 touch를 한 시점의 시간으로 변경이 된다.

크기가  0인 파일을 생성하는 용도로 쓴다.

a> -c : 현재시간으로 파일 시간을 변경

b> -d : 현재 시간 대신 지정한 시간으로 시간을 변경 

          예시> touch '2021-02-02 16:00:00' 파일이름

c>  -t : 현재 시간 대신 지정한 시간으로 변경

           예시> touch 20210202160000 파일이름

 

 

5.파일 복사

cp 복사할 파일 복사할 경로 

파일을 복사한다. (= CoPy)

a> -a : 원본 파일의 속성과 링크 정보를 유지

b> -i : 복사 대상에 같은 이름의 파일이 존재하면 사용자에게 물음(=Interaction)

c> -f :  복사 대상에 같은 이름의 파일이 존재하면 강제로 지우고 복사 (=Force)

d> -R : 디렉토리를 복사할 경우 그 안에 포함된 모든 하위 디렉토리와 파일들을 모두 복사한다.

예시 cp copyFile toCopyDirectory

 

6.파일 이동

mv [옵션] 원본파일 목적지경로

파일을 이동 (=MoVe)

파일의 이름을 바꿀때도 사용이된다. 

mv [옵션] 원본파일이름 바꿀파일이름

a> -b : 덮어 쓸 경우 백업 파일을 만들고 파일을 만든다.

b> -i : 덮어 쓸 때 사용자에게 물어본다.

c> -f : 덮어 쓸 때 물어보지 않는다. 

 

8.파일 삭제 

rm 

파일 삭제, 삭제하면 복구가 안된다.

디렉토리 삭제시에는 rm-rf를 사용하는 것이 일반적이다.

 

9.파일 내용 출력

cat [옵션] 파일이름

그냥 파일 확인용으로도 쓰인다.

a> -n: 줄 번호를 표시한다.

b> -b: 빈 행은 제외하고 줄 번호를 표시한다.

c> -E: 각 행마다 끝에 $ 문자를 출력한다.

 

10.파일 내용 화면 단위 분할 출력

more [ 옵션] 파일이름

a> -d :스페이스 혹은 q키를 누르라는 안내 메세지가 하단에 출력된다.

b> -s : 연속되는 빈 공백 행을 하나의 행으로 출력한다. 

 

11. 파일의 검색

find [시작 디렉토리] [조건]

시작 디렉토리부터 시작해서 하위 디렉토리를 훑으면서 조건에 맞는 파일을 검색한다.

시작 디렉토리를 / 로 지정하면 시스템 내 파일 전체를 검사한다.

유저 이름도 검색할 수 있는데 find / -user 유저명 으로 검색 할 수 있다.

퍼미션 이름도 검색 가능하다.  find /디렉토리 -perm 권한숫자코드(ex755)

 

옵션은 -name , -user , -perm, -type 등이 있다.

a> file : 파일이름이 file인 파일을 찾는다.

b> *file : 파일이름이 file 로 끝나는 모든 파일을 찾는다.

c>  filr* : 파일이름이 file 로 시작하는 모든 파일을 찾는다.

d> *file* : 파일이름 중간에 file 이 있는 모든 파일을 찾는다.

e> ?file : 파일 이름에서 첫 글자 상관없이 file로 끝나는 5글자 파일

f>  file?? : 파일 이름이 file로 시작하고 끝의 문자 두개가 어떤 것이여도 상관없는 6글자 파일

 

12. 필터링

grep 

입력값으로부터 특정 패턴을 검사한다.

grep [옵션] 표현 [파일들]
a> -v : 일치되는 내용이 없는 라인을 표시한다. (= View)

b> -c : 일치되는 행의 개수를 표시 (=Count) 

c> -n : 일치되는 내용이 있는 행은 행 번호와 함께 표시

 

 

13.파이프

프로그램의 실행결과를 다른 프로그램의 입력으로 연결

스트림, 혹은 메소드 체이닝이라 생각하면 쉽다.

 

 

14.리다이렉션

명령의 출력 결과를 변경한다. 기본적으로 명령어의 결과는 터미널이지만,

리다이렉션을 이용하면 파일에 기록할 수 있다.

a>명령어 > 파일 : 파일이 없으면 생성하고 , 있다면 기존에 내용을 지운다.

b> 명령어 >> 파일 : 파일이 없으면 생성하고, 있으면 기존의 내용에 추가한다.

c> 명령어 < 파일 : 파일에서 표준 입력을 찾는다.

 

 

15.chown  소유시킬 유저  파일 혹은 그룹

파일의 소유자나 소유그룹을 변경한다.

예시로 chown user /home/user/text.txt 

라고 하면 text1.txt 를 user계정의 소유로 돌린다.

chown 소유자:소유그룹 파일명 

예시로 chown user:usergroup /home/user/text.txt

라고 하면 usergroup 까지 user 소유로 바꾼다.

a> -R : 경로와 그 하위 파일들을 모두 변경

b> --help : 도움말을 출력

c> --version : 버전정보를 출력

 

 

16.tar

압축을 하지 않고 묶어 주는 역할이다.(= Tape ARchive) 

사용법은

묶을 때 : tar [옵션] 생성파일.tar 묶을파일

해체할 때 : tar [옵션] 파일.tar

a> -c : 새 저장 파일을 만든다. 즉, 묶을 때 사용한다. (=Create)

b> -x : 묶인 파일을 해제 한다. (= eXtract)

c> -v : 처리중인 파일을 자세하게 보여준다. (=View)

d> -f : 파일을 지정한다. (=File)

보통 파일을 묶을때는 -cvf 옵션을 사용한다.

보통 파일을 풀 때는 -xvf 옵션을 사용한다.

e> tar -z 을 사용하면 각 gzip 을 사용해서 묶인파일에 대해 압축을 하거나 압축을 해제한다.

예시로 tar -cvzf file.tar.gz /압축할 경로

압축을 풀려면 tar -cxzf file.tar.gz 를 하면 된다.

--transform 옵션을 사용해서 경로를 지정해 풀 수도 있다.

f> -j 옵션을 사용하면 bzip2 압축을 하거나 해제를 한다.

예시로 tar -cvjf file.tar.bz2 압축할 경로

압축을 풀려면 tar -xvjf file.tar.bz2 를 하면 된다.

 

 

17.gzip

압축하기다.

gzip 파일.tar 형식이다.

확장자는 tar..gz 형식으로 된다.

압축을 풀 때는

gzip -d 혹은 gunzip 명령어를 사용한다.