[Linux/리눅스] 기본 명령어

* : 모두, 전부
? : 한 글자를 대신함.

ls (LiSt의 약자)
ls [otpion] [directory / file]
해당 디렉터리(=폴더)의 목록을 보여준다.
하얀색 글자 : 파일 / 파랑색 글자 : 디렉터리 / 초록색 글자 : 실행 가능 파일
*을 사용할 때 숨김 파일까지 보려면 .*로 지정을 해야 한다.


  • ls -al /tmp (tmp 디렉터리에 있는 모든 파일을 자세히 보여준다.)
  • ls -a * (현재 디렉터리에 있는 파일들을 표시. *는 ./가 생략되어 있다.)
  • ls -al ./.* (숨김 파일까지 다 표시)
  • ls -al ./* (숨김 파일은 지정 안 되고 일반 파일만 표시)

cd (Change Driectory의 약자)
cd [인자값]
디렉터리를 이동한다.


  • cd ~ (로그인 사용자의 홈 디렉터리로 이동.)
  • cd /var/www (/var/www 디렉터리로 이동.)

pwd (Print Working Directory의 약자)
현재 디렉터리의 전체 경로를 보여준다.
예) pwd

cp (CoPy의 약자)
cp [option] [source] [target]
파일이나 디렉터리를 복사한다. 새로 복사한 파일은 복사한 사용자의 소유가 되며, 명령어를 실행하는 사용자는 해당 파일의 읽기 권한이 필요하다.


  • cp a.txt b.txt (현재 디렉터리에 a.txt를 b.txt라는 이름으로 바꿔서 복사.)
  • cp -r /var/ ./ (var 폴더를 현재 디렉터리에 복사.)

mv (MoVe의 약자)
mv [option] [source] [target]
파일이나 디렉터리의 이름을 변경하거나 다른 디렉터리로 옮길 때 사용한다.


  • mv a.txt ~/ (현재 디렉터리에 있는 a.txt를 사용자의 홈 디렉터리로 이동.)
  • mv aa bb cc dd (현재 디렉터리에서 aa, bb, cc 폴더를 dd 폴더로 이동.)
  • mv a.txt 1.txt (현재 디렉터리에 있는 a.txt를 1.txt로 이름을 변경.)

mkdir (MaKe DIRectory의 약자)
mkdir [option] [directory name]
새로운 디렉터리를 생성한다.


  • mkdir ./aa (현재 디렉터리에서 aa라는 디렉터리를 생성.)
  • mkdir -p ./aa/bb/cc (현재 디렉터리에서 /aa/bb/cc 라는 디렉터리를 생성하는데 상위 디렉터리인 /aa/bb가 없는 경우에는 자동으로 생성시켜 준다.)

rmdir (ReMove DIRectory의 약자)
rmdir [option] [directory name]
디렉터리만 삭제한다. 해당 디렉터리의 삭제 권한이 있어야 하며, 디렉터리에 파일이 있는 경우에는 삭제가 불가능하다.


예) rmdir aa (현재 디렉터리에서 aa라는 디렉터리를 삭제)

rm (ReMove의 약자)
rm [option] [directory / file]
파일이나 디렉터리를 삭제한다. 파일이나 디렉터리를 삭제할 권한이 있어야 한다. 옵션이 없으면 기본적으로 파일만 삭제한다.


  • rm ./aaa.txt (현재 디렉터리에 있는 aaa.txt 파일을 삭제. )
  • rm -r ./aaa/ (현재 디렉터리에 있는 aaa 디렉터리를 삭제하며, aaa 디렉터리 안의 파일도 삭제.)
  • rm -rf ./bbb/ (현재 디렉터리에 있는 bbb 디렉터리 안의 파일까지 포함하여 강제로 삭제. 강제로 삭제하기 때문에 매우 주의할 필요가 있다.)
  • rm -rf ./* ./.* (현재 디렉터리에 있는 일반 파일과 숨김 파일을 모두 삭제.)

cat (conCATenate의 약자)
cat [file name]
파일의 내용을 보여준다. cat의 근본적인 기능은 입력한 내용을 그대로 출력한다.
내용 입력을 완료했으면 Ctrl + C(취소) 또는 Ctrl + D를 눌려서 빠져나온다.
옵션 : -n : 라인 수를 붙여준다.




  • cat ./a.txt (현재 디렉터리에 있는 a.txt의 내용을 출력.)
  • cat > ./b (사용자가 입력한 내용을 현재 디렉터리에 b라는 파일을 만들어서 저장한다.)
  • cat -n /etc/passwd (passwd파일의 내용을 출력하는데 옆에 라인 수를 붙여준다.)

Touch
touch [file name]
파일 생성(0byte인 빈 파일) 및 시간 정보를 변경한다.


  • touch ./aaa (aaa라는 빈 파일을 생성한다.)
  • touch -t 201603061301.00 ./aaa (2016년3월6일 13시 1분 0초로 aaa 파일의 시간을 변경한다.)
  • touch -r ./aaa /bin/?? (aaa라는 파일의 시간 정보로 bin 디렉터리에 있는 두 글자인 파일의 시간 정보를 동기화 시킨다.)

head
head [file name]
파일 내용 중 앞에서부터 10줄까지 출력한다.


  • head aaa (aaa 파일의 내용을 앞에서부터 10줄까지 출력한다.)
  • head -n 5 /etc/passwd (passwd 파일의 내용을 앞에서부터 5줄까지 출력한다.)

tail
tail [file name]
파일 내용 중 끝에서부터 10줄까지 출력한다.


  • tail aaa (aaa 파일의 내용을 끝에서부터 10줄까지 출력한다.)
  • tail -n 20 /etc/passwd (passwd 파일의 내용을 끝에서부터 20줄까지 출력한다.)

more
more [file name]
파일 내용을 페이지 단위로 출력한다.
  • 다음 페이지 이동 : space
  • 이전 페이지 이동 : B
  • 종료 : Q
  • more aaa (aaa 파일의 내용을 출력한다.)
  • more +10 bbb (bbb 파일의 내용을 10줄부터 출력한다. 1~9줄은 출력X)

less
less [file name]
more 기능에 조금 더 기능이 확장되어 있다. more에서 사용하는 키도 사용 가능하며, 추가로 화살표 키나 Page Up, Page Down 키도 사용할 수 있다.
  • less aaa (aaa 파일의 내용을 출력한다.)
  • less +200 bbb (bbb 파일의 내용을 200줄부터 출력한다. 1~199줄은 출력X)

file
file [option] [file name]
해당 파일이 어떤 종류의 파일인지를 표시해준다.


예) file /etc/passwd

date
시스템 시간 조회를 하거나 수동으로 시간을 변경할 수 있다.
  • date (시스템 시간을 조회한다.)
  • date 030713002016.00 (수동으로 시간을 변경한다. 0307은 3월 7일, 1300은 13시 0분, 2016은 2016년, .00은 0초를 의미한다.)

rdate
rdate [option] [time server]
타임서버 시간 조회 및 시스템 시간을 변경한다.
주요 타임 서버 리스트 : time.bara.net , ntp.ewha.net


  • rdate -p time.bora.net (time.bora.net의 시간을 조회한다.)
  • rdate -s ntp.ewha.net (ntp.ewha.net의 시간으로 시스템 시간을 동기화 시킨다.)

clear 또는 Ctrl + L
현재 사용 중인 터미널 화면을 깨끗하게 지워준다.
예) clear

history
history [option] [number]
입력했었던 명령어들을 확인할 수 있다.


  • history (히스토리를 확인한다.)
  • history -c (히스토리 내역을 지운다.)

su
su [option] [username]
사용자를 교체한다. 교체할 때 반드시 옵션 - 를 붙인다.


  • su - root (최고 관리자로 변경)
  • su aaa (일반 사용자 aaa로 변경)

최고 관리자에서 사용자를 변경할 때는 암호를 물어보지 않는다.
일반 사용자에서 사용자를 변경할 때는 반드시 암호를 물어본다.

반드시 - 옵션을 붙여야 하는 이유? 아래의 이미지를 보도록 합시다.


- 옵션을 안 붙이고 최고 관리자로 변경을 하면, 제일 먼저 확인할 수 있는 것은 위치가 그대로라는 걸 볼 수 있습니다. root 사용자의 홈 디렉터리가 아닌 fedora 사용자의 홈 디렉터리에 머물고 있죠. 다음으로 $PATH를 확인해보면 root 사용자의 환경설정이 아닌 fedora 사용자의 환경설정임을 /home/fedora/bin 를 보면 알 수 있죠. 그래서 - 옵션을 안 붙이면 해당 사용자의 환경 변수를 불러오지 않는다는 점을 알 수가 있습니다.

- 옵션을 붙이고 최고 관리자로 변경을 하면, 제일 먼저 root 사용자의 홈 디렉터리로 바뀐 것을 알 수가 있습니다. 긜고 $PATH를 확인해보면 root 사용자의 환경설정으로 바뀐 것을 알 수가 있죠. 그래서 - 옵션을 붙이면 해당 사용자의 환경 변수를 불러온다는 사실을 알 수가 있습니다.


Find
find [directory] [option]
파일을 찾는다.
문자로 인식시키려면 큰따옴표로 ""로 감싸면 된다.


  • find /etc -name ".*" (etc 디렉터리에서 .으로 시작하는 파일명을 검색)
  • find / -name passwd -type f -ls (최상위 디렉터리에서 passwd 라는 이름을 찾는데 파일 타입이며, 찾은 파일을 자세히 검색)
  • find / -iname seoul (seoul를 대소문자를 구별하지 않고 검색.)
  • find ./ -size +5c -size -20c (현재 디렉터리에서 파일 크기가 5byte 초과 20byte 미만인 파일을 검색)
  • find ~ -perm 300 (홈 디렉터리에서 허가권이 300인 파일을 검색)
  • find ~ -perm +300 (+300은 user부분이 'w' 또는 'x'가 둘 중에서 하나라도 포함이 되어 있으면 전부 다 검색.)
  • find ~ -perm -300 (-300은 user부분이 'w' 와 'x'가 둘 다 포함되어 있는 걸 전부 다 검색.)
  • find ../ -user fedora (상위 디렉터리에서 소유자가 fedora인 파일을 검색)
  • find ./ -name "*.txt" -exec rm -rf {} \; (현재 디렉터리에서 *.txt인 파일을 찾아서 삭제)
  • find / -inum 408795 (최상위 디렉터리에서 inode 번호가 408795인 파일을 검색)
*inode 확인 방법 : ls -il 또는 stat [파일명]


at
at [time]
지정된 시간에 특정 프로그램을 한 번만 자동으로 실행.
빠져나올 때는 Ctrl + D



Ifconfig
ifconfig [N/w interface] [IP] [Netmask] [up/down]
네트워크 IP 설정를 설정하거나 해제한다.
  • ifconfig eth0 192.168.0.100 netmask 255.255.255.0 up (네트워크 IP 설정)
  • ifconfig down (IP 해제 + gateway 해제)

route
route [ add/del ] [ IP/NET ]
gateway 설정를 설정한다.
  • route add default gw 192.168.0.1 (gateway 추가, 설정)
  • route del default gw 192.168.0.1 (gateway 해제)
DNS 설정은 /etc/resolv.conf 이 파일을 수정한다.


/etc/resolv.conf 파일을 cat을 사용하여 DNS 서버 아이피를 변경한다.
ping www.google.com 을 사용하여 잘 응답하는지 테스트를 해본다.

Comments