man + 명령어 : 명령어애 대한 manual을 출력한다
example: man ln
gzip 압축 명령어: gzip [-v][파일 이름]
gzip 압축해제 명령어: gunzip [-v][파일 이름]
*-v는 verbose output으로 진행중인 로그를 표시한다
example: gunzip resource.tar.gz
*tar: Taping Archiving의 약자
tar + [c|t|x ] +[flag] + 파일이름
-c : 아카이빙 하기
-t : tar 아카이브에 포함된 내용 확인
-x : 아카이빙 해제(언아키이빙)
-v : Verbose 작업 로그 출력
-f : 출력 파일(output) 지정
-x : 아카이빙 해제(언아키이빙)
-z : gzip으로 압축과 동시에 아카이빙
example: tar -xvf resources.tar
x: 언아카이빙
v: 로그 출력
f: 출력 파일 지정
example2: tar -cvf. resources.tar *
현재 디렉토리에 있는 모든 파일을 아카이빙
cat는 concatenate (사슬같이 잇다)에서 유래하였다.
파일 입력, 다른 파일과 프로그램을 이을 때 사용한다.
cat [file1][file2][file3].....
example: cat > helloworld.txt
hello word
나가기: ctrl + d
현재 디렉토리에 파일이 생성된 것을 알 수 있다.
example: cat helloworld.txt
hello world
현재 위치에 있는 내용을 확인한다. 내용에는 디렉토리, 허가권, 파일 등을 포함한다.
옵션
-al: 숨겨진 파일과 디렉토리의 내용을 자세히 출력한다.
-alS: al + Sort이다. al의 내용을 정렬하여 보여준다.
-alt: al+time이다. 시간순으로 파일을 정렬한다.
-l: log를 표시한다.
example: ls -l
ls -l을 했을 때 파일과 파일이 -> 로 연결되어있는 경우 실제 파일을 point하고 있는 것이다.
rm 명령어로 파일을 삭제할 수 있고
ln 명령어로 link를 생성할 수 있다.
-s는 symbolic link를 생성하는 옵션이다.
example:
ln test0 test6
ln -l의 결과: lrwxr-xr-x 1 jungim 2023_seoul 5 Jul 17 14:51 test6 -> test0
touch는 디렉토리의 access time과 modification time을 현재 시간 혹은 원하는 시간으로 바꾸는 명령어이다.
touch 파일이름 : time stamp를 현재 시간으로 바꾼다.
touch -t "원하는 시간.00" 파일이름 : time stamp를 원하는 시간으로 바꾼다.
원래 리눅스에서는 fallocate 명령어를 사용할 수 있다는데, 맥에서는 안되는 것 같다.
dd 명령어를 이용하여 수행할 수 있다. bs에 원하는 byte를 입력하면 된다.
example:
dd if=/dev/zero of=test3 bs=1 count=1
eval은 해당 라인을 다시 해석해달라는 의미이다.
예를 들어
$ set b=$a #환경변수 b에 $a를 할당
$ set a=foo #환경변수 a에 foo를 할당
다음과 같은 상황에서는 b에는 'foo'가 아닌 '$a'가 저장이 된다.
$ echo $b
$a
이런 상황에서 echo $b를 다시 해석하라고 명령하면 정상적으로 b에 foo가 저장이 된다.
$ eval echo $b
foo
실제로 brew를 설치한 후 brew update를 입력했는데, command not found brew 에러가 발생했다.
이럴 때 다음을 입력했더니 해결되었다.
eval $(/opt/homebrew/bin/brew shellenv)
작은따옴표로 감싸진 문자열은 변화 없이 그대로 출력
큰따옴표 안에 넣으면 변수가 실제 값으로 치환된 후 출력
에를 들어 vimrc에서 매크로를 지정하는데 다음과 같이 지정한다면,
ㅣet @t='\nhi\n'
매크로 t를 실행했을 때, 말그대로
\nhi\n
가 입력된다.
반면 다음과 같이 입력했을 때
ㅣet @t="\nhi\n"
매크로 t를 실행하면
hi
가 입력된다.