리눅스 쉘 명령어 정리

임정우·2023년 7월 17일

man

man + 명령어 : 명령어애 대한 manual을 출력한다

example: man ln

gzip

gzip 압축 명령어: gzip [-v][파일 이름]
gzip 압축해제 명령어: gunzip [-v][파일 이름]
*-v는 verbose output으로 진행중인 로그를 표시한다

example: gunzip resource.tar.gz

tar

*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

cat는 concatenate (사슬같이 잇다)에서 유래하였다.
파일 입력, 다른 파일과 프로그램을 이을 때 사용한다.
cat [file1][file2][file3].....

  1. 파일생성: cat > 파일이름

    example: cat > helloworld.txt
    hello word
    나가기: ctrl + d

현재 디렉토리에 파일이 생성된 것을 알 수 있다.

  1. 파일읽기: cat 파일이름

    example: cat helloworld.txt
    hello world

ls

현재 위치에 있는 내용을 확인한다. 내용에는 디렉토리, 허가권, 파일 등을 포함한다.

옵션
-al: 숨겨진 파일과 디렉토리의 내용을 자세히 출력한다.
-alS: al + Sort이다. al의 내용을 정렬하여 보여준다.
-alt: al+time이다. 시간순으로 파일을 정렬한다.
-l: log를 표시한다.

example: ls -l

ln

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

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

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

가 입력된다.

profile
경희대학교 소프트웨어융합학과

0개의 댓글