shell00

koeyhoyh·2022년 2월 1일
1

42Seoul

목록 보기
1/11

01 testShell00

압축 풀기
tar xvf [***.tar]

chmod (change mode) : 권한을 부여해준다.

각각

User / Group / others

Read / Write / Execute

문자와,
8진법으로 표기할 수 있다.

Read : 4
Write : 2
Execute : 1

ex) chmod 777 test
-rwxrwxrwx test 파일이 생성된다.

touch : 파일을 생성하거나, 수정할 수 있다.
touch -t 시간을 수정해준다. 202106010000 test

test 파일을 2021/06/01/00:00 시간으로 수정한다.


02 Oh yeah, mooore...

mkdir : 파일 디렉토리 생성

ln : 링크를 만드는 명령어
(default 값은 하드 링크)
원본의 파일을 이름만 바꾸어 그대로 사용한다.
이름이 긴 파일을 줄여서 사용하는데 많이 사용된다고 합니다!

ln -s : symbolic (soft) 링크를 만든다.
( -> 표시로, 바로가기 기능과 비슷하다.)

  • 하드링크는 연결된 파일을 지운다고 해서 사라지지 않음.
    i-node라는 ---로 연결되어서.

03 Connect me!

kinit : ticket 생성

klist 명령어 : 유효한 Kerberos 티켓 목록을 보여준다.

klist > klist.txt 로 바로 파일을 만들어 해결하였습니다.

kerberos : 커버로스는 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜이다.
보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 요청을 받는 서버가 서로의 신뢰성을 확보하기위해 사용된다.


04 midLS

ls : 현재 디렉토리의 파일 목록을 보여준다.

-U 생성일 순서로 (-t) 정렬
-m 쉼표(콤마)로 분리
-p 디렉토리는 슬래시 추가

ls -Utmp

05 GiT commit

shell script가 다른 환경에서도 잘 실행될 수 있도록, bash 환경에서 실행된다는

#!/bin/bash

git log -(n)5 --pretty="%H"

git log를 보여준다.
-(n)x : 최근 x개의 로그를 보여준다.

--pretty="%H" : format을 지정해 줄 수 있다. "%H" 만 지정해 주었으므로, 커밋 해시 (ID)만 표기하게 됩니다.

보기 쉽게 사용하고 싶다면 format:"%H - %h" 등... 이렇게 지정해주시면 됩니다!!


06 gitignore

git 의 명령어 git ls-files을 사용한다.

이 명령어만 사용하면 깃에 추적되고 있는 파일 전부를 보여준다.
찾고 싶은 것에 따라 option 명령어를 추가로 입력해야 한다.

git ls-files --others --ignored --exclude-standard

--others : 추적되지 않은 파일 표시

-- ignored : Show only ignored files in the output. When showing files in the index, print only those matched by an exclude pattern. When showing "other" files, show only those matched by an exclude pattern. Standard ignore rules are not automatically activated, therefore at least one of the --exclude* options is required.

other파일을 출력할 때, ignore된 파일만 출력한다.
사용하려면 추가로 --exclude 옵션이 필요하다.
(Standard ignore rule이 자동으로 활성화되지 않기 때문)

우리는 --exclude-standard : git의 표준 제외 룰으로 정했습니다.

+추가!
--others 표시를 하면 git에 들어가 있지도 않고, 표준 규칙과 .gitignore 파일에 의해 무시되고 있는 파일들만 표시합니다.
--others 표시가 없다면, git에 들어가 있지만 무시되는 파일은 표시되지 않는 것 같습니다.

+추가!
git check-ignore 명령어도 비슷한 내용이라고 생각합니다.
: 어떤 파일들이 Git 에서 ignore 처리되어 있는지 알려주는 명령어입니다. 다만, git check-ignore * 로는 통과가 되지 않는다고 합니다.
참고 : https://nochoco-lee.tistory.com/47


07 diff

patch [options]originalfile [patchfile]]

patch와 diff를 이용한다.

제공해준 a 파일과 sw.diff 파일을 이용해 a 파일을 패치, 새로운 b 파일을 만든다.

sw.diff 파일에는 변경점(패치 할 부분)이 들어가 있다. 어떤 부분은 빼고, 어떤 부분은 수정하고 추가해야 한다는 형식이 나와 있어서
1. a 파일을 sw.diff 파일을 이용해 패치해 b 파일을 만들고,
2. diff a b 명령어를 입력하면 sw.diff 파일과 같게 나오는 것으로 확인할 수 있습니다!

patch a sw.diff -o b

-> a를 sw.diff 파일을 이용해 패치하고, b를 outfile로 내보내라.

08 clean

주의 : "오직 하나의 명령어만 사용해야 합니다"

find . -type f ( -name "~" -or -name "##" -or -name "#" ) | xargs /bin/rm -v

혹은,

find . -type f ( -name "~" -or -name "##" -or -name "#" ) -print -delete

둘 다 명령어를 여러 개 사용하는 것 같은데... 문제의 의도는 한 줄에 답을 적으라는 말인 것 같습니다... (보충 필요)

find . : 현재 디렉토리 및 하위 디렉토리로 범위 설정

-type f : 파일만을 선택

( -name "~" -or -name "##" -or -name "#" )

: 지정한 텍스트만 선택할 수 있도록 (-name) +
조건이 여러 개 이므로 (-or)

|(pipe) : 여러 개의 명령을 하나의 라인으로

xargs : 파이프와 함께 사용하며, 앞 명령어의 결과를 뒤로 내보내준다.

-> find 명령어를 통해 찾은 것을 "받아"준다.

-delete, -print 와 같은 명령어를 직접 사용하는 것이 아니라, 경로와 파일을 사용해 실행시킨다.

rm -> 명령어 = X
/bin/rm -> 파일 = O
-v (rm 의 option. 삭제하는 것을 출력시킨다.)


09 magic_ft

command file : 지정된 파일 타입을 알 수 있다.

-> 파일을 구별해주는 magic Number, magic Database, magic file 가 있다.

매직 파일 컴파일
file -C -m [magicfiles]

컴파일한 매직 파일을 이용해 검사
file -m [magicfile][testfile]

-C, --compile

Write a magic.mgc output file that contains a pre-parsed version of the magic file or directory.

-m, --magic-file list

Specify an alternate list of files and directories containing magic. This can be a single item, or a colon-separated list.

If a compiled magic file is found alongside a file or directory, it will be used instead.

내가 이해한 바로는,

각 파일은 형식에 따라 고유한 번호나 형식이 있다. 그 파일 형식을 검사해 주는 것이 매직 파일이다.

여기서는 가장 간단하게,

41 string 42 42 file

offset (X index 이후부터 감지하겠다.) / 문자형 / 42 / 42 file로,

42번째 인덱스에 문자열 42가 나오면 42 file 이라는 파일 형식으로 출력합니다.

profile
내가 만들어낸 것들로 세계에 많은 가치를 창출해내고 싶어요.

0개의 댓글