리눅스 기초 명령어

2020. 7. 14. 17:41 OS/Linux

◎ 기초 명령어 
여기서는 리눅스의 기초 명령어들에 대해서 알아본다. 
자세히 하려면 명령어 수도 무지 많고, 다 알기도 힘들겠지만... 
필수적이라고 생각되는 것들 위주로 정리해 보았다. (abc순) 
리눅스에서는 명령어는 대부분의 경우 소문자로 이루어져 있다. 
따라서 입력시 소문자로 되어 있는지를 확인하고 할 것... 
<CR>은 엔터키를 의미한다. 
  
① 파일 / 디렉토리 관리에 사용되는 명령어들 
◈ cd (change directory) : 디렉토리를 옮기는 데 사용된다. 
cd [directory] <CR> 
cd /usr/local 
-> /usr/local 디렉토리로 옮긴다. 
-> '.'은 현재 디렉토리를 의미하고, '..'은 이전 디렉토리를 의미한다. 
-> 현재 /usr/local에 있다고 할 때, 'cd ..' 하면 /usr 디렉토리로 간다. 

-> 'cd .' 하면 아무 변화가 없다. 
-> '.'과 '..'은 cp, mv 등의 다른 명령어 사용시에도 동일하게 사용할 수 있다. 
  
◈ cp (copy) : 파일을 복사할 때 사용된다. 
cp [source] [dest] <CR> 
cp /usr/local/test.txt /root/abcd.txt <CR> 
-> /usr/local/ 디렉토리에 있는 test.txt 파일을 /root/ 디렉토리에 
abcd.txt로 복사한다. 
  
◈ ls (list) : 파일의 목록을 보여준다. [ ls -a, ls -al, ... ] 
ls -a <CR> 
-> 숨겨진 파일( . 으로 시작하는 파일들)을 보여준다. 
ls -l <CR> 
-> 자세한 정보를 보여준다. 
  
◈ mkdir (make directory) : 디렉토리를 만드는 데 사용된다. 
mkdir [directory name] <CR> 
  
◈ mv (move) : 파일을 이동하거나 이름을 바꿀 때 사용된다. 
mv [source] [dest] <CR> 
mv /usr/local/test.txt /root/abcd.txt <CR> 
-> /usr/local/ 디렉토리에 있는 test.txt 파일을 /root/ 디렉토리에 
abcd.txt로 이름을 바꾸어 이동한다. 
  
◈ pwd (print working directory) : 현재 위치한 디렉토리를 보여준다. 
pwd <CR> 
  
◈ rm (remove) : 파일이나 디렉토리를 삭제하는 데 사용된다. 
rm [filename] <CR> 
-> -r 옵션을 주면 디렉토리 및 그 밑에 있는 내용까지 몽땅 다 지워준다. 
-> -f 옵션을 주면 에러 발생시(파일이 없다거나, 권한이 없는 경우 등)에도 계속 진행한다. 
-> 디렉토리를 지울때는 rmdir [directory name] <CR>을 해도 된다. 
  
② 압축 관련 명령어들 
◈ compress / uncompress : 파일을 압축/해제 한다. 
-> 사용방법은 gzip과 동일하다. 
  
◈ gzip / gunzip : 파일을 압축/해제 한다. (생성되는 화일은 원래화일이름.gz가 된다.) 
gzip testCR> 
-> test 파일을 압축해서 test.gz로 만든다. 
gunzip test.<CR> ===> '.gz'는 생략해도 된다. 
-> test.gz 파일을 압축 해제한다. 
-> gzip은 파일을 압축만 할 뿐이다. 여러개의 파일을 하나로 압축하려면 tar를 
-> 함께 사용해야 한다. (tar 참고) 
  
◈ tar : 여러 파일을 하나로 묶어준다. 
tar [option] destfiles... <CR> 
-> c를 옵션으로 주면 파일을 새로 생성한다. 
-> v를 옵션으로 주면 작업 진행사항을 보여준다. 
-> f를 옵션으로 주면 파일들을 묶어서 그 다음에 오는 파일 이름으로 저장한다. 
-> x를 옵션으로 주면 지정된 파일들을 타르 파일로부터 끄집어 낸다. 
tar cvf total.tar *.txt 
-> .txt로 끝나는 모든 파일을 total.tar라는 이름으로 묶어준다. 
tar xvf total.tar *.txt 
-> total.tar라는 파일로부터 .txt로 끝나는 모든 파일을 끄집어낸다. 
-> tar는 파일을 압축하는 것이 아니고, 단지 하나로 묶어줄 뿐이다. 
-> 여러 파일을 하나로 압축하려면 먼저 tar로 파일을 묶은 후 gzip으로 압축한다. 
  
③ 시스템 관련 명령어들 
◈ chgrp (change group) : 파일과 디렉토리의 그룹을 변경해 준다. 
chgrp [group] [filename] <CR> 
-> file의 그룹을 [grop]으로 바꾸어 준다. 
chgrp linux test.txt <CR> 
-> test.txt의 그룹을 linux로 바꾸어 준다. 
  
◈ chmod (change mode) : 파일과 디렉토리의 허가권(permission)을 변경해 준다. 
chmod [permission] [file/directory name] <CR> 
chmod 777 test.txt <CR> 
-> test.txt 파일을 누구나 읽고, 쓰고, 실행할 수 있도록 한다. 
-> [permission] 의 값을 정하는 방법 
 user group other 
읽기 4 4 4 
쓰기 2 2 2 
실행 1 1 1 
permission a b c 

위의 표에서, user는 파일의 소유자 이고, group은 소유자와 같은 그룹, 
other는 그 나머지 사용자를 말한다. 
각 사용자별로, 허가할 분야에 대해 적혀있는 값들을 더해서 a, b, c값을 구한다. 
(허가하지 않을 부분은 0을 넣어서 계산한다.) 
예를들어 user가 읽기, 실행만 가능하고, 쓰지 못하도록 하려면 a값은 4+0+1=6이 된다. 
마찬가지 방법으로, b, c를 구한후 위의 permission 자리에 [abc] 형식으로 써주면 된다. 
* 421인 경우, user는 읽기만 가능, group은 쓰기만 가능, other는 실행만 가능하게 된다. 
* 362인 경우, user는 쓰기, 실행만 가능, group은 읽기, 쓰기만 가능, other는 쓰기만 가능하게 된다. 
주의해야 할 것은, 어떤 파일의 소유권을 바꾸려면 그 파일에 대해 소유권을 바꿀 권한이 있어야 한다. 
(아이러니?) 
  
◈ date (date) : 현재 시간과 날짜를 보여준다. 
date <CR> 
  
◈ df (disk free) : 현재 사용가능한 하드디스크의 용량을 보여준다. 
df <CR> 

◈ du (disk usage) : 현재 각 파일 / 디렉토리가 사용하는 디스크의 크기를 보여준다. 
du <CR> 
  
◈ kill (kill process) : 현재 실행중인 프로세스를 종료시킨다. 
kill [process id]<CR> 
-> 현재 실행중인 프로세스 중에서 지정한 process id를 같는 프로세스를 종료시킨다. 
  
◈ mount / umount (mount/unmount file systems) : 파일 시스템을 마운트 또는 해제 한다. 
-> 마운트란 디스크, 프린터, CD-ROM 등의 주변기기를 하나의 디렉토리처럼 사용할 수 
-> 있게 해 주는 개념이다. 
mount [-t type] [device] [directory] <CR> 
-> type은 파일시스템의 타입을 말하는 것으로서, 보통 windog의 경우 msdos (FAT16)나 
-> vfat (FAT32)을 주면 된다. 
-> 위에서 device는 다음과 같은식으로 적어주면 된다. 
플로피 디스크는 여러개가 달려있으면, 순서대로 /dev/fd0 (-> 보통 a:라고 하는 것), 
/dev/fd1 ... 이런식으로 나간다. 
하드의 경우는 /dev/hda0, /dev/hda1...이런식으로 나가는데, 'hd'다음에 온 'a'는 
하드가 여러개일 경우 첫번째 하드디스크를 의미한다. 따라서 두번째 하드디스크를 
마운트 할 경우에는 'hdb0' 이런식으로 해 주면 된다. 
그리고, 뒤에 온 숫자는 파티션 번호이므로 원하는 파티션 번호를 적어주면 된다. 
스카시 하드의 경우 'hd' 대신 'sd'를 사용한다. 다음 예를 보자. 
/dev/fd0 ==> a:드라이브 
/dev/hdb2 ==> 두번째 하드디스크의 두번재 파티션 
/dev/sda3 ==> 첫번째 스카시 하드디스크의 세번째 파티션 
-> directory는 마운트될 파일 시스템을 연결할 디렉토리를 말하고, 보통 /mnt 디렉토리 
-> 이하에 마운트 하기 전에 만들어주면 된다. 
-> floppy와 cdrom 의 경우 단순히 'mount /mnt/floppy<CR>' 또는 'mount /mnt/cdrom<CR>' 
-> 이라고만 해도 마운트가 된다. 
-> 마운트는 root 계정만이 할 수 있다. 
mkdir /mnt/win <CR> -> 마운트 대상이 될 디렉토리를 생성 (한번 만들어 놓으면 계속 사용 가능) 
mount -t vfat /dev/hda3 /mnt/win <CR> -> 첫번째 하드디스크의 세번째 파티션(FAT32)을 
/mnt/win 디렉토리에 마운트 한다. 
umount /mnt/win <CR> -> 마운트를 해제한다. 
-> 만일 세번째 파티션에 윈도그 98을 쓰고 있다면, 위와 같이 마운트 하고 나면 /mnt/win 
-> 디렉토리에 win98의 하드 내용이 나타날 것이다. 물론 복사, 삭제, 이동 다 가능하다. 
-> umount를 하기 전에는 현재 마운트 된 파일 시스템이 다른곳에서 사용되고 있지 않는가, 
-> 현재 디렉토리가 mount 된 디렉토리가 아닌가를 확인한다. 둘 중 하나라도 해당되면 umount가 
-> 되지 않는다. 
-> 그냥 mount<CR> 하게 되면 현재 마운트 된 내용들이 화면에 나타난다. 

◈ ps (process) : 현재 실행중인 프로세스 (작업)을 보여준다. 
ps [option] <CR> 
-> -e 옵션을 주면 모든 프로세스를 다 보여준다. 
-> -f 옵션을 주면 모든 정보를 다 보여준다. 
  
◈ top (display top process) : 실행중인 프로세스 정보를 실시간으로 보여준다. 
top <CR> 
-> 현재 실행중인 프로세스를 CPU/메모리 사용 순으로 보여준다. 
  
④ MSDOS 파일시스템 관련 명령어들 
◈ mcd (msdos change directory) : 도스형식에서 디렉토리를 이동한다. 
mcd temp <CR> 
-> a:에 있는 temp directory로 이동한다. 
  
◈ mcopy (msdos copy) : 도스형식에서 파일을 복사한다. 
mcopy a:test.txt ./ <CR> 
-> a:에 있는 test.txt 파일을 현재 디렉토리로 복사한다. 
mcopy ./* a: 
-> 현재 디렉토리에 있는 모든 파일들을 a:로 복사한다. 
  
◈ mdel (msdos delete) : 도스형식에서 파일을 삭제한다. 
mdel test.txt <CR> 
-> a:에 있는 test.txt 파일을 삭제한다. 
  
◈ mdir (msdos dir) : 도스형식에서 파일의 목록을 보여준다. 
mdir test.* <CR> 
-> a:에 있는 파일 중 test로 시작하는 파일의 목록을 보여준다. 
  
◈ mmove (msdos move) : 도스형식에서 파일이나 디렉토리를 옮기거나 이름을 바꾸어 준다. 
mmove a:abcd.txt efgh.txt <CR> 
-> a:에 있는 abcd.txt를 efgh.txt로 바꾼다. 
  
⑤ 파일 관련 명령어들 
◈ cat (concatenate) : 파일의 내용을 보여준다. 
cat [filename] <CR> 
  
◈ cmp (compare) : 두개의 파일을 비교한다. 
cmp [file1] [file2] <CR> 
-> 두 파일의 내용을 비교한 후에 다르면, 다른 부분을 화면에 출력해 준다. 
같은 경우엔 아무 출력도 안함. 
  
◈ find (find) : 디렉토리 구조 내에서 파일을 찾는다. 
find [filename] <CR> 
-> 주어진 이름을 갖는 file을 찾는다. 
  
◈ ln (link) : 파일 / 디렉토리간에 링크를 설정한다. 
ln [option] [filename] [linkname] <CR> 
-> -s를 옵션으로 주면 심볼릭 링크를 생성하고, 옵션이 없으면 하드링크를 생성한다. 
ln -s test.txt link.txt <CR> 
-> test.txt 파일에 대한 link.txt라는 심볼릭 링크를 생성한다. 

ln test.txt link.txt <CR> 
-> test.txt 파일에 대한 link.txt라는 하드 링크를 생성한다. 
-> 심볼릭 링크의 경우 단지 링크만 시키는 것이어서, 어느 하나를 지우면 다른 하나도 사라진다. 
-> 하드링크의 경우 동일한 파일을 다른 이름으로 하나 더 생성하게 되므로, 어느 하나를 지워도 
-> 다른 하나가 남아있게 된다. 
  
◈ more (more) : 화면 출력을 제어할 수 있다. 
ls -al | more <CR> ====> more 앞에 있는 것은 키보드 백스페이스 왼쪽에 있는 것이다. (shift+) 
-> 화면 출력을 페이지 단위로 멈추어 준다. 
  
◈ sort (sort) : 파일 내의 모든 행을 정렬한다. (옵션이 많으므로 man page를 참고할 것.) 
sort test.txt <CR> 
-> test.txt 파일의 내용을 문자단위로 정렬한다. 
  
⑥ 기타 명령어들 
◈ clear (clear) : 화면을 다 지우고, 파일을 복사할 때 사용된다. 
clear <CR> 
  
◈ grep (grep pattern) : 내용 중 주어진 패턴이 포함된 행을 출력한다. 
grep "and" test.txt <CR> 
-> test.txt 의 내용중 "and"가 포함되어 있는 행을 보여준다. 
-> 보통 다음과 같은 형태로 파이프(|)를 이용해서 많이 사용한다. 
ls | grep test <CR> 
-> 파일 목록의 내용 중 test가 포함된 행만 보여준다. 
  
◈ man (manual) : 각 명령어에 대한 도움말을 보여준다. 
-> 프로그래밍 시, 함수이름을 적어주면 함수의 사용법도 보여준다. 
man ls <CR> 
-> ls 에 관한 도움말을 보여준다. 
man printf <CR> 
-> printf() 함수에 대한 설명을 보여준다.


vi.pdf


출처: https://applejara.tistory.com/9?category=23520 [애플자라]

'OS > Linux' 카테고리의 다른 글

FTP 와 SFTP 와의 차이점  (0) 2020.07.14
Linux - 폴더 용량 체크 du  (0) 2020.07.14
Apache 설치  (0) 2020.07.14
Mysql 설치  (0) 2020.07.14
grep 명령어 사용법  (0) 2020.07.14
Process Thread 확인  (3) 2019.11.07
Linux 문서편집기 vi, vim 명령어 정리  (0) 2019.07.26
리눅스 SSL 인증서 만료일 확인  (0) 2019.07.09