728x90
반응형

cd 

 

change directory의 약자. 다른 디렉토리로 이동할 때 사용 만약 /usr/local/apache 디렉토리로 이동하고 싶다면.

cd/user/local/apache 입니다.

디렉토리 이름 없이 그냥 cd만 타이핑하면 자신의 홈 디렉토리로 갑니다. 예를 들어 내가 "linuxer"라는 이름으로 로그인했다면 현재 어느 디렉토리에 있든지 cd를 치면 /home/linuvxer로 이동합니다. 내가 root라면 /root로 가겠죠 ? 또 하나, ~ 물결표시는 로그인한 유저의 홈 디렉토리를 의미합니다. 즉 cd는 cd ~와 똑같습니다. 참고로 련재 머물고 있는 디렉토리 이름 알려주는 명령어는 pwd 입니다. "print working directory"의 약자입니다.

 

ls 

 

디렉토리의 내용물을 보여주는 커맨드입니다. 자주 쓰는 옵션으로는 ls -a와 ls -l이 있습니다. ls -a는 "all", 숨겨진 파일까지 모두 보여줍니다. 파일 이름이 점으로 시작하는 파일은 보통의 ls 명령에서 나타나지 않는 숨겨진 파일입니다. 

숨겨진 파일은 특정 프로그램의 설정 파일인 경우가 많습니다. 이를테면 vi의 환경설정 파일인 .exrc같은 것 입니다. 

분명히 개별 홈 디렉토리에 존재함에도 ls만 쳐서 나타나지 않습니다. 잃게 숨겨진 파일까지 모두 보여주는 명령어가 

ls -a입니다. 

ls -l은 "long", 즉, 긴 형태로 리스팅하는 명령어 입니다. 

 

ls -l 

 

drwxr-xr-x 2 linuxer users 3242 Nov 2 10:14 perltips 

-rw-r--r-- 1 linuxer user 12 Dec 13 11:10 counter.pl

 

앞의 drwxr- 부분은 퍼미션을 나타냅니다. "d"로 시작하는 것은 디렉토리를 나타내고 "-"로 시작하는 것은 보통의 파일이라는 정도만 알아두세요. 퍼미션은 밑에서 자세히 다룹니다.

퍼미션 다음의 1,2라는 숫자는 하드링크의 갯수를 나타내고 그 다음은 파일의 소유자,그 다음은 그룹, 그 다음은 파일의 크기, 그 다음은 파일의 생성시간,그리고 마지막으로 파일이나 디렉토리의 이름이 나옵니다. 이렇게 길게 리스팅하는 명령어가 ls -l 입니다. 레드햇 리눅스 배포본인 경우 ls -l을 줄여서 ll로 해도 됩니다.

 

참고로, 점 하나는 현재 디렉토리를 가리키고 두 개는.. 한 단계 위 디렉토리를 가리킵니다. 그러므로 한 단계 위 디렉토리의 파일들을 리스팅하려면 ls.. 이라고 하면 되겠죠 ? 

 

mkdir 

 

이름처럼 "make directory"입니다. 디렉토리를 만듭니다.

mkdir newDirectory 

처럼 사용합니다. 이것과 반대되는 것은, 

 

rm 

 

rm은 "remove"의 약자로 생각하세요. 파일이나 디렉토리를 지울때 사용합니다.

re useless

rm는 파일은 삭제할 수 있지만 디렉토리는 삭제하지 못 합니다. 디렉토리와 그 내용물을 모두 삭제하려면 rm -r이라고 하면 됩니다. 또는, 삭제 확인 질문이 뜨지 않게 하려면 rm -rf라고 해도 됩니다. 

 

rm -r oldDirectory 

rm -rf는 확인절차 없이 삭제하므로 극도로 조심해서 사용해야 합니다. 리눅스에서 삭제된 파일이나 디렉토리를 절대 복구 못합니다. 

 

cp 

 

cp는 "copy"의 약자 입니다.

 

cp somefile somewhere 

형태로 사용합니다. 그냥 cp만 사용하는 경우 디렉토리 내의 모든 파일들과 서브 디렉토리 내의 파일들을 한 번에 카피랗 수가 없습니다. 이럴때 사용하는 것이 cp -r입니다. 이 명령어는 해당 디렉토리의 모든 파일과 서브 디렉토리를 원하는 곳으로 카피 합니다. 새로 카피할 디렉토리가 없는 경우 만들어서 카피하기 때문에 아주 편리합니다. 

 

cp -r. /home/linuxer 

 

라고 하면 현재 디렉토리에 있는 모든 파일과 서브 디렉토리를 /home/liunxer로 복사합니다.

눈치채셨는지 모르겠지만 rm -r과 cp -r에서 -r은 비슷한 의미를 갖습니다. -r은 "recursive" (순환의,반복의)의 약자로, 

밑에 서브 디렉토리가 있으면 계속해서 그 내용물까지 파고 든다는 의미입니다. 유닉스 커맨드는 이렇게 한 가지를 알면 다른 곳에서도 활용할 수 있는 경우가 많습니다. 예를 들어 -a 옵션은 여러 명령어에 붙어서 "all"의 의미를 갖는 경우가 많습니다. 

 

mv 

 

이름처럼 "move", 파일을 이동하는 명령어 입니다.

mv file1 ~ 이렇게 하면 현재 머물고 있는 디렉토리 내의 file1을 내 홈 디렉토리로 옮깁니다. 물결 표시는 로그인한 유저의 홈 디렉토리라고 했죠 ? 옮길 목적지 디렉토리가 없다면 디렉토리를 만들어서 옮깁니다. 

 

mv filename destination

처럼 사용합니다.

mv는 파일 이름이나 디렉토리 이름을 바꾸는 데도 사용합니다.

 

mv old.txt new.txt 

 

old.txt라는 파일이름을 new.txt라는 파일이름으로 바꿉니다. 리눅스에서 "rename"이라는 명령어가 따로 없습니다.

 

mv가 그 역할을 합니다.(펄에는 rename old,new가 있습니다)

 

In -s 

 

심볼릭 링크를 만드는 명령어 입니다. 심볼릭 링크의 윈도우즈의 "바로가기", 맥의 "가상본"과 유사한 것으로 

이해하세요 

 

In -s filename linkname 

 

퍼미션 

 

퍼미션은 이름처럼 '허가'를 뜻합니다. 파일이나 디렉토리를 누가 볼 수 있으며 누가 새로운 내용을 기록할 수 있으며 또 실행할 수 있는지 설정하는 것입니다. 유닉스에서는 개별 파일 별로 퍼미션을 설정할 수 있습니다. 바꿔 말하면 "파일 수준의 보안"이 가능합니다. 유닉스의 큰 강점 중 하나입니다. 퍼미션이 없는 사용자가 특정 파일이나 디렉토리에 접근하면 "Permission denied"라는 메세지가 뜨면서 사용자의 행동을 차단. 개별 파일 별로 확실한 보안이 이뤄짐.

 

위의 ls 명령어 설명에서 잠깐 보았지만 퍼미션은 총 10개의 알파벳으로 이뤄져 있습니다. 맨 첫 번째 자리는 파일인지, 디렉토리인지를 나타내는 것으로 퍼미션과 직접적인 관계가 없습니다. 첫 번째 자리는 파일인 경우 -, 디렉토리인 경우 d로 표시되어 있습니다. 그 다음부터 나오는 9개의 알파벳이 해당 파일 또는 디렉토리의 퍼미션을 나타냅니다.

 

퍼미션에는 크게 세 종류가 있습니다. r은 "read"를 뜻하고, w는 "write", x는 "execute"을 뜻합니다. 읽기 허가,쓰기 허가,실행 허가 입니다. 

 

퍼미션을 나타내는 9개의 알파벳은 3개씩 끊어서 각각 "user","group","others"의 퍼미션을 나타냅니다. 예를 들어, 어떤 파일의 퍼미션이 다음과 같다면,

 

-rwxrw-r-- 

 

이것은 세개씩 끊어서, rwx,rw-,r--로 읽고 (맨 앞의 -는 파일이라는 의미로 퍼미션과 직접 상관 없습니다.) 각각이 "user"의 퍼미션,"others"의 퍼미션입니다. user 퍼미션은 rwx이므로, 읽기/쓰기/실행 모든 것이 다 허용되어 있습니다. 

group퍼미션은 rw-이므로 "read","write"이므로 읽기,쓰기 퍼미션이 허용되어 있습니다. 

others 퍼미션은 r--이므로 읽기 퍼미션만 허용되어 있습니다. 그러므로 이 파일은, 파일의 owner(user)는 읽기,쓰기,실행 모든 것을 다 할 수 있고 owner와 같은 그룹에 속하는 사용자는 읽기,쓰기까지 할 수 있으며, owner도 아니고 owner가 속한 그룹도 아닌 사용자는 오직 읽기만을 할 수 있습니다. 

 

디렉토리의 경우 r,w,x의 의미가 조금 달라집니다. r은 해당 디렉토리에 있는 파일의 목록을 읽을 수 있는가의 여부를 가르키고, w는 그 디렉토리에 새로운 파일을 첨가하거나 기존의 파일을 지울 수 있는가의 여부, x는 해당 디렉토리에 들어있는 파일에 관한 정보를 리스팅할 수 있느냐의 여부를 (즉, ls할 수 있느냐의 여부) 의미합니다.

 

파일의 owner는 대개 그 파일을 만든 사람으로 처음에 설정된다. 특별히 퍼미션을 지정하지 않는 경우 기본적으로 설정되는 퍼미션은 rw-r--r--입니다. user는 읽기,쓰기가 허용되고 group을 포함한 다른 사용자는 오직 읽기만 가능한 파일이 만들어지는게 기본설정. 퍼미션을 바꾸고 싶다면 어떻게 할까요? 그럴때 사용하는 코맨드가 

 

chmod 

 

chmod는 "change mode"의 약자입니다. chmod는 두 가지 사용법이 있습니다.

첫 번째 사용법은 +기호나 -기호를 사용합니다. 예를 들어 myprogram이라는 파일에 쓰기 퍼미션을 부여하고 싶다면,

 

chmod +w myprogram

 

라고 하면 됩니다.이렇게 하면 user(owner),group,others 모두에 쓰기 퍼미션이 첨가됩니다.

user에만 쓰기 퍼미션을 첨가하고 싶다면 어떻게 할까요?

chmod u+w myprogram 

 

라고 하면 됩니다. user는 u입니다. 마찬가지로 g는 "group",o는 "others"를 의미 합니다. 그러므로 원하는대로 퍼미션에 변화를 줄 수 있습니다. 

 

퍼미션을 없애는 것도 같은 식입니다. 만약,others의 쓰기,실행 퍼미션을 없애고 싶다면 

 

chmod o-wx myprogram

 

라고 하면 됩니다. 다음 코맨드는 어떤 의미일까요 ?

 

chmod ug+wx myprogram 

 

myprogram의 user와 group에 실행,쓰기 퍼미션을 주는 것임을 쉽게 알 수 있습니다. 

 

chmod를 사용하는 다른 방법도 있습니다. "u+x"처럼 알파벳을 이용해서 퍼미션을 변경하는 방법을 "symbolic mode"라고 합니다. 이와 달리 8진법을 사용하는 방법을 "absolute mode"라고 합니다. 일단, r은4, w는2, x는 1이라고 외우세요 

8진법을 이용한 퍼미션 설정은,user,group,others 각각에 대해 퍼미션 알파벳에 해당하는 숫자를 합쳐주는 것입니다. 예컨대 어떤 퍼미션이 -rwxr-xr-x라면 이것은 755로 바꿀 수 있습니다. user퍼미션은 rws이므로(4+2+1) = 7,group과 others는 r-x이므로 (4+1) = 5 이므로 755입니다. 

 

chmod 500 myprogram 

chmod 777 myprogram 

 

첫 번째 것은 myprogram 파일을 -r-x-----로 바꾸는 것이죠 ? 두번째 것은 -rwxrwxrwx입니다.

4-2-1입니다.

 

chown, chgrp 

 

퍼미션 관련 명령어의 마지막으로, user와 group을 바꿔주는 커맨드를 살펴봅시다. 이름 그대로입니다. chown는 해당 파일(디렉토리)의 user(owner)를 바꾸는 것이고 chgrp는 group을 바꾸는 것 입니다. 이렇게 사용합니다. 

 

chown myprogram linuxer 

chgrp myprogram mygroup 

 

물론 바꿀 수 있는 퍼미션이 있을 때에만 가능. 예를 들어 root로 로그인한 상태거나 그 파일의 원 소유자의 경우 

 

압축,해제 관련 

 

tar xvzf 

 

타르로 묶은 다음 gzip으로 압축된 파일들을 한 번에 압축 해제부터 보따리 풀기까지 시행해주는 명령어입니다.

가운데의 "z"를 빠뜨리면 안됩니다. tar는 "tape archive"의 약자로, 전통적으로 유닉스에서 파일을 백업할때 테잎 장치를 사용한데서 비롯된 명령어 입니다. 이런 형태로 씁니다.

 

tar xvzf downloaded.tzr.gz

 

tar cvzf 

 

위와 반대로 여러 개의 파일을 tar로 묶은 다음 압축하는 명령입니다.

c니까 "compress", x니까 "expand"입니다. 

 

tar cvzf tarfile.tar.gz 

와 같은 형태로 씁니다. 현재 디렉토리에 있는 모든 파일을 묶어서 압축한 tarfile.tarl.gz 파일을 만들게 됩니다. 

 

tar cvf 

 

"Z"가 빠진 것이므로 압축은 하지 않고 묶어 주기만 합니다.

 

tar cvf tarfile tar 

 

처럼 씁니다. 현재 디렉토리에 있는 파일을 모두 묶어서 tarfile.tar로 만드는 코맨드 입니다. 

 

gzip 

 

gzip 압축 방식으로 압축하는 명령어 

 

gzip documnet.txt 

 

라고 하면 document.txt의 gzip압축 파일인 document.txt.gz이 생깁니다.

 

gunzip 

 

gz파일을 푸는 명령어,"unzip"이니까 당연

 

gunzip document txt.gz

 

압축된 파일은 없어지고 압축이 풀린 "document.txt"라는 파일이 새로 생깁니다. 

 

bunzip2 

 

리눅스 커널의 경우, bz2라는 확장자가 압축 파일 형태로 배포되는 경우가 있습니다. 바로 그 bz2를 풀어 주는 명령어 입니다. 

 

bunzip2 linux-version.bz2

 

기타 

 

whoami 

 

내가 누구인지를 묻는 명령어입니다. 현재 로그인한 id를 출력합니다. 

 

su

 

수퍼유저, 즉 root로 로그인하겠다는 명령어 입니다. 일반 유저로 로그인했다가 root로 작업해야 할 필요가 있을때 사용합니다. 이 명령어를 치면 password:라는 메시지가 뜨면서 root 암호를 묻습니다. 

반대로 현재 root로 있는 상태인데 다른 유저로 내려가고 싶다면 su linuxer와 같은 식으로 하면 됩니다.

 

 whereis 

 

어떤 프로그램이 인스톨되어 있는지를 쉽게 알아보는 명령어 입니다. 예를 들어 펄이 설치되어 있는지 알고 싶다면,

whereisperl라고 하면 /usr/bin/perl이라든지, 기타 펄이 있는 위치를 알려 줍니다. 아무 것도 안 나오면 인스톨이 안

되어 있는 것입니다. 비슷한 것으로 which가 있습니다. which perl처럼 사용합니다.

 

man 

 

명령어 등의 메뉴얼 페이지를 보여 줍니다. 생소한 명령어에 대해서 자세히 공부하고 싶다면 man 명령어라고 하면 

자세한 설명이 나옵니다. man페이지는 "less"라는 프로그램을 이용해서 디스플레이되므로 man 페이지를 읽는 법은 less 프로그램 사용법과 같습니다. 사용법은 man 페이지가 떠 있는 상태에서 "h"키를 눌러 보면 자세하게 나옵니다. 

 

tab키,CTRL=u,CTRL - w 

 

굳이 명령어를 모두 타이핑하지 않아도 명령어를 자동완성하는 방법이 있습니다. 명령어의 처음 몇 자를 친 다음 [tab키]를 누르면 됩니다. 예를 들어, history라는 명령어를 타이핑한다면 굳이 history를 다 칠 필요가 없이 "his"까지만 치고 탭키를 누르면 history로 자동완성 됩니다 타이핑한 글자로 시작되는 명령어가 여러 개인 경우에는 탭 키를 한 번 더 누르면 그 글자로 시작되는 모든 명령어가 다 나타납니다. 예를 들어 pr이라고 치고 탭키를 두 번 누르면 "pr"로 시작되는 모든 명령어를 모두 보여 줍니다. 

 

명령어를 타이핑하다가 다 지우고 다시 시작하려면 백 스페이스 키를 여러 번 누를 필요 없이 [CTRL -u]를 누르면 됩니다. 비슷한 것으로 한 단어만 다시 지우고 싶을 때에는 [CTRL - w]입니다. "u"는 "undo","w"는 "word"라고 생각하면 쉽게 외울 수 있습니다. 

 

rpm 관련 

 

rpm -Uvh

 

레드햇 리눅스를 사용하는 경우 소프트웨어들이 rpm패키지 형태로 배포되는 것을 볼 수 있습니다. rpm 패키지를 다루는 명령어 중 자주 쓰이는 것은 사실 몇 개 없습니다.

 

먼저,rpm-Uvh입니다. 이것은 rpm을 이용해 소프트웨어를 인스톨할 때 사용합니다. 원래 "U"의 의미는 새로 인스톨할 패키지와 기존에 인스톨되어 있는 것의 버전을 비교해서 더 최신 버전이면 "U"pdate한다는 것이지만 거의 모든 경우에 위와 같은 명령어로 다 인스톨 할 수 있습니다. 

 

rpm -Uvh package-1.0.0.rpm 

 

와 같은 형태로 사용합니다. 의존성때문에 인스톨이 안 되는 경우에는 rpm -Uvh --nodeps라고 하면 됩니다. 

 

rpm -qa 

 

현재 머신에 어떤 rpm 패키지가 인스톨 되어 있는지 질의 하는 커맨드. 설치된 모든 rpm 패키지가 버전과 함께뜬다.

 

rpm -e 

 

지우는 명령입니다. 먼저 질의를 한 다음 거기 나온 이름을 rpm -e 뒤에 붙여 주면 된다.

 

마운팅 

 

리눅스 데스크탑에 씨디롬을 띄우려면 어떻게 해야 할까요 ? 물론 요즘 배포본은 자동으로 씨디롬이 뜨게 되어 있습니다. 리눅스에서 씨디롬이나 FDD를 띄우는 것을 마운팅이라 합니다. 

 

mounting은 "Running Linux"에 실린 설명을 보면,"파일시스템을 특정 디렉토리와 관련짓는 것"이라고 되어 있습니다. '씨디롬을 마운팅한다.'고 하는 것은 씨디롬의 파일시스템을 리눅스 시스템의 특정 디렉토리와 관련짓는 것 입니다. 

이 때 관련짓는 디렉토리를 마운트 포인트라고 합니다. 

 

마운트 명령어는 이렇습니다.

 

mount -t ext2 /xhtml/hda2 /mnt

mount -t msdos /xhtml/fd0 /mnt 

mount -t iso9660 /xhtml/cdrom /cdrom 

 

mount -t type device mount-point의 순서입니다. 씨디롬인 경우 mount -t 다음에 씨디롬의 파일시스템 형태인 iso9660

그리고 디바이스 디렉토리내의 cdrom을 /cdrom 디렉토리와 관련을 지은 형태 입니다. 일단 마운팅되고 난 파일 시스 템은 마운트-포인트 디렉토리를 다룸으로써 다른 일반적인 디렉토리처럼 다룰 수가 있습니다. 예컨데 cd /cdrom처럼 할 수 있습니다. 

 

현재 마운팅된 것을 모두 보려면 

 

mount -a /bin/mount -a 

 

입니다. 그리고 fstab 파일에서 마운트 포인트가 지정된 것은 간단하게 mount /cdrom이라고만 해도 마운팅할 수 있습니다. 

 

시스템이 부팅한 다음, 어떤 것은 자동으로 마운팅이 되고 어떤 것은 그렇지 않습니다. 이것은 어디에서 조절되는 것일까요? 예를 들어 하드 디스크를 파티션해서 일부는 윈도우즈를 인스톨했습니다. 리눅스 부팅시 윈도우즈 파티션도 자동으로 뜨게 하려면 어떻게 해야 할까요 ?

 

처음 리눅스 인스톨 할 당시 fdisk나 disk druid의 expert 설정에서 mount-point를 잡아줄 때 윈도우즈 파티션의 마운트 포인트도 설정했다면 따로 손 댈 필요가 없다. / 나 swap, /boot 등을 설정하는 것처럼 /windows 등의 이름으로 설정했다면 리눅스 인스톨 후 /windows라는 디렉토리를 만들기만 하면 됩니다. 윈도우즈 파티션을 /windows와 관련짓습니다. 그런데 이 과정을 생략했다면 다음과 같이 하면 됩니다. 

 

먼저 root로 로그인 한 다음 su,p/w 입력

/etc/fstab을 여세요 (vi /etc/fstab)

이 fstab파일에서 파일 시스템 마운팅을 총괄적으로 조절합니다. 

fs는 파일 시스템의 약자 

 

"디바이스 - 마운트 포인트 - 파일시스템 타입 - 옵션"이 순서대로 나와 있다.

여기서 옵션부에 defaults라고 되어있는 것이 부팅 시 자동으로 마운트.

윈도우즈 파티션을 자동으로 뜨게 하고 싶다면 윈도우즈 파티션 라인(파일 시스템이 vfat인 줄)로 가서 옵션에

defaults를 첨가하면 됩니다. 위 그림에는 모두 defaults로 설정되어 있습니다. 

 

마운트 포인트가 없는 경우라면 vfat인 줄의 두 번째 컬럼에 적당한 이름으로 마운드 포인트를 만든 다음 옵션에 defaults를 해주고 root 디렉토리 하방에 /windows라는 디렉토리를 만들면 됩니다. (mkdir/windows)참고로 cdrom

옵션의 ro는 "read only" 입니다.

씨디롬을 빼 내려면 마운트된 파일 시스템을 해제합니다. 마운트 해제 명령은 /cdrom이라는 마운트 포인트로 마운트된 경우라면 

 

umount /cdrom 

 

입니다. u만 있다는 것에 주의.

 

플로피 디스크 관련 

 

플로피 디스크를 저장매체로 사용하는 경우가 거의 없지만 가끔 필요한 경우가 있다.

 

mkfs -t ext2 /dev/fd0 1440

 

플로피 디스크를 리눅스 용으로 포맷하는 명령어 입니다. mkfs는 "make filesystem"입니다. -t라는 옵션 다음에 새로 만들 파일시스템의 타입을 써 줍니다. 위의 경우 리눅스의 기본 파일시스템인 ext2로 포맷합니다. /dev/fd0은 디바이스 중 플로피를 가리킵니다. 

 

fdformat /dev/fd0 

 

이름처럼 floppy disk(fd)를 "format"하는 명령어 입니다. 위 명령어와의 차이점은 로 레벨 포맷을 한다는 점 입니다. 

 

dd if=/boot/vmlinuz of=/dev/fd0 bs=8192

 

리눅스 부트 플로피를 만드는 명령어로 /boot/vmlinuz가 바로 리눅스 커널입니다. 이것을 플로피 디스크로 복사하는 것입니다. bs라는 것은 "byte count"입니다. 위 명령어를 풀어서 설명하면, "/boot/vmlinuz와 /dev/fd0이 존재한다면 /boot/vmlinuz를 8192 바이트 카운트 단위로 읽어들여서 /xhtml/fd0로 복사해라." 

 

출처 : https://ltvw.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4-Linux-basic-commands

반응형

'IT > 리눅스' 카테고리의 다른 글

리눅스 유용 명령어  (0) 2022.08.18

+ Recent posts