본문으로 바로가기

리눅스 기초 명령어_2

category Linux/Linux 기초 2017. 9. 3. 13:57
  • touch CMD

파일의 이름을 지정하여 기존에 존재하지 않는 파일이름을 지정하였다면 빈 파일을 만들어주고 기존에 존재했다면 지정된 파일이나 디렉토리의 수정시간(mtime, Modify Time)이나 접근시간(atime, Access Time)등을 현재 시간으로 업데이트 시켜준다.


[명령어 형식]

# touch file2 /* file2 파일 1개 생성 */

# touch file1 file2 /* file1, file2 파일 2개 생성 */

# touch -t 08081230 file1 /* file1 수정 시간 변경(월,일,시,분) */


  • cp CMD

파일이나 디렉토리의 내용을 다른 파일 또는 다른 디렉토리에 복사 할 때 사용. 파일을 복사하는 것은 물리적으로 새로운 파일을 하나 생성하며 새로운 파일의 이름과 새로운 inode, 복사된 데이터 블록을 가지게 된다.


[명령어 형식]

# cp file1 file2 /* file1 파일내용을 file2로 생성 */

# cp file1 dir1 /* file1 파일내용을 dir1디렉토리에 file1 생성 */

# cp -r dir1 dir2 /* dir1 디렉토리를 dir2디렉토리로 생성 */


[옵션]

-a    :  원본 파일의 속성, 링크 정보를 유지 하면서 복사

-p    :  원본 파일의 소유, 그룹, 권한, 허용 시간을 보존한 채로 복사

-r    :   서브 디렉토리 내에 있는 모든 파일까지 통째로 복사


(실무 예) 로그 파일(EX: file.log) 비우기

# cp /dev/null file.log 

# cat /dev/null > file.log 

# > file.log 

  • mv CMD

파일과 디렉토리의 내용을 다른 파일 또는 다른 디렉토리로 옮길 때 사용하며 파일의 이름이나 디렉토리의 이름을 바꿀 수 있음. 같은 파티션 안에서 파일을 옮긴다는 것은 물리적으로 파일 이름만 변경하며, Inode 정보나 데이터 블록은 그대로 유지가 되고 다른 파티션으로 파일을 옮기는 경우는 새로운 파일 이름과 Inode, 데이터 블록을 할당 받게 됨.


[명령어 형식]

# mv file1 file2 /* file1 파일이 이름이 file2로 변함 */

# mv file1 dir1 /* file1 파일이 dir1 디렉토리에 하위경로로 이동 */

# mv dir1 dir2 /* dir1 디렉토리가 dir2 디렉토리에 하위경로로 이동 */


[참고] 와일드 카드 문자(Wild Card Character)

하나의 문자가 여러개의 문자의 의미를 포함하는 문자

 * : 0 or more character (except .file) (EX) # cp file* dir1)

? : one charater                       (EX) # cp file? dir1)

{ } : 선택적인 하나의 문자열(단어) (EX) # cp file{apple,bannar,orange} dir1

[ ] : 선택적인 하나의 문자 (EX) # cp file[123] dir1

  • rm CMD
파일과 디렉토리를 지우고자 할 때 사용하며 한꺼번에 여러 개를 지울 수도 있으며 지운 파일들은 되살릴 수 없으므로 주위 해서 사용해야 하는데 -i 옵션을 사용하면 한번 더 묻게 되므로 부주의로 인한 파일 삭제를 막을 수 있으며, 옵션 -r를 사용 시 시스템의 모든 파일이 삭제되는 경우도 있으니 신중하게 사용해야 한다.

[명령어 형식]
# rm file1 /* file1 파일 1개 삭제 */
# rm file1 file2 /* file1, file2 파일 2개 삭제 */ 
# rm -r dir1 /* dir1 디렉토리 하위경로까지 삭제 */

옵션

설명

-f

강제로 파일을 지우고 삭제할 파일이 없을 경우에도 아무런 메시지를 보여주지 않는다.

-i

파일을 삭제할 것인지 사용자에게 물어봄

-r, -R

일반파일이면 그냥 지우고 디렉토리일 경우 그 하위경로와 파일을 모두 지움

-v

삭제되는 파일의 정보를 보여줌



[참고] rm 명령어로 지운 파일 복구(100% 장담할 수 없음)

(TUI) debugfs CMD 사용하는 방법(ext2, ext3)

(TUI) extundelete CMD 사용하는 방법(ext3, ext4)

(GUI) TestDisk 툴을 사용하는 방법(Windows(FAT32/NTFS), Linux(ext3/ext4))


  • cat CMD

파일의 내용을 화면으로 출력. 파일의 내용을 화면에 연속적으로 출력하기 때문에 파이프(Pipe Line)을 사용하여 more 명령어에 연결하여 사용 가능.


[명령어 형식]

# cat file1 /* file1 파일 내용을 출력 */

# cat file1 file2 /* file1, file2 파일 내용을 출력 */

# cat -n file1 /* file1 파일내용을 줄번호와 함께 출력 */

# cat file1 file2 > file3 /* file1, file2 출력 결과를 file3에 저장 */

  • more CMD

큰 파일을 출력할 때 화면 크기 페이지 단위로 출력하며 하단에 "--More--(20%)"는 현재 내용을 20% 보았고 80% 남았다고 표현하며 화면에서 엔터(Enter)키를 누르면 한 개의 라인(line) 단위로 넘어가고 스페이스(space) 키를 누르면 한 페이지 단위로 넘어가는데 less 명령과 함께 사용 하면 더 효율적이다.


[명령어 형식]

# more file1 /* file1 파일을 출력 */


"CMD | more" 형식 실습

# CMD        (EX: # help)               /* 쉘 내부(내장) 명령어의 목록 확인 */

# CMD | more (EX: # help | more)


# ps -ef | more 

# cat /etc/services | more 

# rpm -qa | more 

# chkconfig --list | more 

# netstat -an | more


[참고] less CMD

리눅스 시스템에서 more 명령어를 좀 더 보안한 명령어이다.

# less file1


# CMD | less

  • head CMD

파일의 처음 시작 부분의 몇 줄을 출력 하고 자 할 때 사용. 따라서 긴 파일의 내용의 앞 부분만을 출력 하고자 할 때 유용하게 사용 되며 head 명령어에 아무런 옵션 없이 사용된 경우 문서의 처음 10줄을 보여 준다.


[명령어 형식]

# head /etc/passwd        (# head -10 /etc/passwd, # head -n 10 /etc/passwd)

# head -n 5 /etc/passwd /* 숫자에 해당하는 라인 번호 수 만큼만 출력 (기본은 10줄) */

# head -c 10 /etc/passwd /* -c 옵션 다음에 오는 숫자 byte 수에 해당하는 만큼 출력 */


# CMD | head

  • tail CMD
tail은 텍스트파일이나 지정된 데이터의 마지막 몇 줄을 보여주는 데 사용하는 Unix 및 Unix계열 시스템에서의 프로그램이다. 파일의 끝 부분만 출력 하고자 할 때 사용하며, 아무런 옵션 없이 사용된 경우 문서의 마지막 10줄을 보여는데, 예를 들어서 사용자가 추가되면 /etc/passwd 파일에 마지막에 추가 된다. 이때 tail 명령어에 -1 옵션을 사용하여 사용자 추가를 확인 할 수 있다.

[명령어 형식]
# tail /etc/passwd     (# tail -10 /etc/passwd, # taill -n 10 /etc/passwd)
# tail -5 /etc/passwd 
# tail +5 /etc/passwd 

# tail -f /var/log/messages     /* 파일의 크기가 변할때마다 추가된 정보를 출력한다.*/

# CMD | tail 

  • wc CMD
파일 내의 문자수, 단어 수 그리고 라인수를 확인하고자 할 때 사용한다. wc 명령어를 사용하여 프로세스의 수, 시스템에 설치된 패치의 수, 시스템에 설치된 패치의 수 등을 확인 할 때 사용 할 수 있다. wc 명령어에 -l 옵션은 쉘스크립트나 파일에 대한 무결성 체크 등 많은 곳에서 활용이 가능하다.


[명령어 형식]

# wc /etc/passwd 

# wc -l /etc/passwd     /* 라인 수 */

# wc -w /etc/passwd     /* 워드 수*/

# wc -c /etc/passwd     /* 캐릭터 수*/


[예]

# ps -ef | grep httpd | wc -l

# df -k / | tail -1 | awk '{print $5}'

# cat /var/log/messages | grep 'START : telnet' | grep 'Aug 17' | wc -l


  • su CMD
다른 사용자의 권한으로 쉘을 실행한다.
(사용자 전환의 예)
일반사용자(user01) ----> 다른 일반사용자(user02)
일반사용자(user01) ----> 관리자(root)
관리자(root) ----> 일반사용자(user01)
[명령어 형식]
# su     [fedora]     /* 사용자를 fedora로 바꿈 */
# su  -  [fedora]     /* fedora로 재 로그인한 효과 fedora에 설정된 환경파일 다 읽어들임*/

[참고] root -> oracle 전환하는 경우
(X) # su oracle
(O) # su - oracle
  • last CMD
서버를 이용하는 각 계정사용자들의 로그인 정보를 보여주는 명령어이다. 흔히 관리자는 각 계정별로 서버에 접속한 시간과 IP주소 등을 확인해야 할 경우가 있다. 또한 특정 계정의 서버 접속정보를 확인해야 할 때 에도 마찬가지이다. 다양한 방법으로 사용자들의 로그인정보를 조사한다.
( /var/log/wtmp)

[명령어 형식]
# last 
# last root 
# last -5 /* 5행의 결과만을 확인 */
# last -R /* last의 결과에서 호스트(IP주소)접속기록을 제외한 결과만을 출력 */
# last -a /* last의 결과중 호스트(IP주소)정보를 맨 마지막에 출력 */

[예] last 명령어의 사용 예
(개발자 요청 내용) 어제 파일(예: file.log)을 삭제한 사용자를 검색해 달라.

(정보1) 어제 파일이 지워졌다.
# last | grep 'Jun  8'        /* 그날에 로그인한 유저 확인 */
(정보2) 지워진 파일의 이름 : file.log
# cat ~/.bash_history     /* 그 유저의 history에 rm 명령어를 사용했는지 확인 */
# cat ~/.bash_history | grep 'file.log' | grep rm 

[참고]
lastlog CMD : 사용자의 마지막 로그인 정보만 출력 ( /var/log/lastlog ) 
# lastlog
# lsatlog -u fedora
# lastlog -t 3        /* 지정한 날짜 기간 안에 로그인한 정보만 보여준다. */

lastb CMD : 로그인 실패 로그를 출력 ( /var/log/btmp )
# lastb

  • who CMD
누가 로그인해 잇는지, 어떤 장치를 이용하고 잇는지, 언제 로그인했는지, 어디에서 로그인했는지 등의 정보를 알 수 있다.
/var/run/utmp

[명령어 형식]
# who /* 현재 시스템에 접속 중인 모든 사용자 */
# who -r /* 현재 사용자의 Runlevel 확인 */
# who am i /* 로그인한 사용자 정보 확인 */
# who -H /* 헤드라인과 같이 출력 */
# whoami /* 현재 사용자명 확인 */

  • w CMD
시스템에 login한 사용자가 어떤 명령어를 실행하고 있는지 알아보는 명령어이며, /proc 디렉토리로 부터 사용자에 대한 정보와 실행중인 명령어에 대한 정보를 추출해 낸다.

[명령어 형식]
# w 
# w user01 




'Linux > Linux 기초' 카테고리의 다른 글

파일의 종류  (0) 2017.09.03
리눅스 기초 명령어_1  (0) 2017.08.27
원격 접속과 파일 전송  (0) 2017.08.24
프로세스 관리  (0) 2017.08.24
쉘(shell)의 특성  (0) 2017.08.23