톱 1089 리눅스 명령어 모음 새로운 업데이트 69 분 전

주제에 대한 기사를 찾고 있습니까 “리눅스 명령어 모음“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 c1.castu.org 탐색에서: 382+ 당신을 위한 팁. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 리눅스 명령어 모음 리눅스 명령어 연습 사이트, 리눅스 명령어 vi, Linux 명령어, 리눅스 기본, 리눅스 명령어란, 리눅스 실행 명령어, 리눅스 민트 명령어, 리눅스 명령어 find

💻 필수 명령어들 요약
  1. ls – 현재 위치의 파일 목록 조회
  2. cd – 디렉터리 이동
  3. touch – 0바이트 파일 생성, 파일의 날짜와 시간을 수정
  4. mkdir – 디렉터리 생성
  5. cp – 파일 복사
  6. mv – 파일 이동
  7. rm – 파일 삭제

[Linux] 리눅스 기본 명령어 정리 – 코딩 공부 일지 – 티스토리

8 진수 2 진수 권한 의미 0 000 — 아무 권한 없음 1 001 –x 실행 권한만 있음 2 010 -w- 쓰기 권한만 있음 3 011 -wx 쓰기 , 실행 권한 있음 4 100 r– 읽기 권한만 있음 5 101 r-x 쓰기 , 실행 권한 있음 6 110 rw- 읽기 , 쓰기 권한 있음 7 111 rwx 모든 권한 있음

프로젝트를 진행하다 보면 서버를 띄우면서 혹은 다른 작업들을 하면서 리눅스 명령어를 써야 할 일이 많이 생기는 것 같습니다. 그럴 때마다 명령어를 검색해보면서 정보를 찾는데 매번 찾기보단 확실하게 정리를 해서 포스팅으로 남기는 게 좋을 것 같아서 리눅스 기본 명령어들, 자주 쓰는 명령어들을 정리해보았습니다.

예를 들어 ‘777’의 경우 이진수로 111111111이고 rwxrwxrwx라는 의미를 가지므로 파일 소유자, 소유 그룹, 일반 사용자에게 읽기, 쓰기, 실행의 모든 권한을 주는 설정이다.

  • Source: cocoon1787.tistory.com
  • Views: 18995
  • Publish date: 45 minute ago
  • Downloads: 59577
  • Likes: 9038
  • Dislikes: 2
  • Title Website: [Linux] 리눅스 기본 명령어 정리 – 코딩 공부 일지 – 티스토리
  • Description Website:

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 84993
  • Date: 50 minute ago
  • Download: 23816
  • Likes: 4852
  • Dislikes: 1

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

🚀

프로젝트를 진행하다 보면 서버를 띄우면서 혹은 다른 작업들을 하면서 리눅스 명령어를 써야 할 일이 많이 생기는 것 같습니다. 그럴 때마다 명령어를 검색해보면서 정보를 찾는데 매번 찾기보단 확실하게 정리를 해서 포스팅으로 남기는 게 좋을 것 같아서 리눅스 기본 명령어들, 자주 쓰는 명령어들을 정리해보았습니다.

💻 필수 명령어들 요약

1. ls – 현재 위치의 파일 목록 조회

2. cd – 디렉터리 이동

3. touch – 0바이트 파일 생성, 파일의 날짜와 시간을 수정

4. mkdir – 디렉터리 생성

5. cp – 파일 복사

6. mv – 파일 이동

7. rm – 파일 삭제

8. cat – 파일의 내용을 화면에 출력, 리다이렉션 기호(‘>’)를 사용하여 새로운 파일 생성

9. redirection – 화면의 출력 결과를 파일로 저장

10. alias – 자주 사용하는 명령어들을 별명으로 정의하여 쉽게 사용할 수 있도록 설정

🔎 명령어 옵션과 설명

1. ls (List segments) : 현재 위치의 파일 목록 조회

ls -l : 파일의 상세정보

ls -a : 숨김 파일 표시

ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시

ls -rt : 파일들을 생성시간순(제일 오래된 것부터)으로 표시

ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시

(‘/’ : 디렉터리, ‘*’ : 실행파일, ‘@’ : 링크 등등,,,)

2. cd (Change directory) :디렉터리 이동

cd [디렉터리 경로] : 이동하려는 디렉터리로 이동 (경로 입력 시 ‘[‘, ‘]’부분은 빼고 입력!)

cd ~ : 홈 디렉터리로 이동

cd / : 최상위 디렉터리로 이동

cd . : 현재 디렉터리

cd .. : 상위 디렉터리로 이동

cd – : 이전 경로로 이동

3. touch : 0바이트 파일 생성, 파일의 날짜와 시간을 수정

touch filename : filename의 파일을 생성

touch -c filename : filename의 시간을 현재시간으로 갱신

touch -t 202110291608 filename : filename의 시간을 날짜 정보(YYYYMMDDhhmm)로 갱신

(20211029160 => 2021.10.29.16:08)

touch -r oldfile newfile : newfile의 날짜 정보를 oldfile의 날짜 정보와 동일하게 변경

4. mkdir (Make dirctory) : 디렉터리 생성

mkdir dirname : dirname이라는 디렉터리 생성

mkdir dir1 dir2: 한 번에 여러 개의 디렉터리 생성

mkdir -p dirname/sub_dirname : dirname이라는 디렉터리 생성, sub_dirname이라는 하위 디렉터리도 생성

mkdir -m 700 dirname : 특정 퍼미션(권한)을 갖는 디렉터리 생성

<파일의 퍼미션>

8 진수 2 진수 권한 의미 0 000 — 아무 권한 없음 1 001 –x 실행 권한만 있음 2 010 -w- 쓰기 권한만 있음 3 011 -wx 쓰기 , 실행 권한 있음 4 100 r– 읽기 권한만 있음 5 101 r-x 쓰기 , 실행 권한 있음 6 110 rw- 읽기 , 쓰기 권한 있음 7 111 rwx 모든 권한 있음

예를 들어 ‘777’의 경우 이진수로 111111111이고 rwxrwxrwx라는 의미를 가지므로 파일 소유자, 소유 그룹, 일반 사용자에게 읽기, 쓰기, 실행의 모든 권한을 주는 설정이다.

5. cp (Copy) : 파일 복사

cp file1 file2 : file1을 file2라는 이름으로 복사

cp -f file1 file2 : 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)

cp -r dir1 dir2 : 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사

6. mv (Move) : 파일 이동

mv file1 file2 : file1 파일을 file2 파일로 변경

mv file1 /dir : file1 파일을 dir 디렉터리로 이동

mv file1 file2 /dir : 여러 개의 파일을 dir 디렉터리로 이동

mv /dir1 /dir2 : dir1 디렉터리를 dir2 디렉터리로 이름 변경

7. rm (Remove) : 파일 삭제

rm file1 : file1을 삭제

rm -f file1 : file1을 강제 삭제

rm -r dir : dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)

8. cat (Catenate) : 파일의 내용을 화면에 출력, 리다이렉션 기호(‘>’)를 사용하여 새로운 파일 생성

cat file1 : file1의 내용을 출력

cat file1 file2 : file1과 file2의 내용을 출력

cat file1 file2 | more : file1과 file2의 내용을 페이지별로 출력

cat file1 file2 | head : file1과 file2의 내용을 처음부터 10번째 줄까지만 출력

cat file1 file2 | tail : file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력

9. redirection (‘>’, ‘>>’) : 화면의 출력 결과를 파일로 저장

‘>’ 기호 : 기존에 있는 파일 내용을 지우고 저장

‘>>’ 기호 : 기존 파일 내용 뒤에 덧붙여서 저장

‘<' 기호 : 파일의 데이터를 명령에 입력 cat file1 firle2 > file3 : file1, file2의 명령 결과를 합쳐서 file3라는 파일에 저장

car file4 >> file3 : file3에 file4의 내용 추가

cat < file1 : file1의 결과 출력 cat < file1 > file2 : file1의 출력 결과를 file2에 저장

10. alias : 자주 사용하는 명령어들을 별명으로 정의하여 쉽게 사용할 수 있도록 설정

alias 별명 = ‘명령어 정의’

ex) alias lsa = ‘ls -a’ : lsa를 실행하면 -a 옵션을 갖는 ls를 실행합니다.

unalias lsa

unalias lsa : lsa라는 alias를 해제

리눅스 명령어 모음 BEST 50 초보자 및 전문가용 – 도라가이드

이 안내서를 작성할 때, 우리는 사용 가능한 다양한 Linux 명령에서 50개의 터미널 명령만 선택해야 하는 어려운 작업에 직면했습니다. 우리 전문가들은 신규 사용자가 Linux 생태계에 적응하는데 얼마나 도움이 될지에 따라 선택을 선택했습니다. 결국, 우리는 결과에 매우 만족하며 이 안내서의 도움으로 다양한 Linux 터미널 명령어를 마스터하는데 필요한 통찰력을 얻을 것이라고 확신합니다.

리눅스에서 작업하고 있는 현재의 위치를 현재 디렉터리라고 합니다. 기본적으로 디렉터리를 기준으로 파일이나 디렉터리를 찾으려고 시도합니다. 즉 파일 또는 디렉터리의 이름을 절대 경로로 지정하지 않으면 현재 디렉터리를 기준으로 상대적인 위치에서 파일을 찾습니다. 시스템에 로그인하면 홈 디렉터리가 현재 디렉터리가 된다. 이에 해당 디렉터리로 이동하는 방법이 cd 명령어입니다.

사용 가능한 수많은 터미널 도구와 명령을 모두 암기하는 것은 거의 불가능하므로 리눅스 기본 명령어와 함께 정기적으로 사용할 50가지 최고의 Linux 명령을 간략하게 요약하여 이 안내서를 작성했습니다. 이 리눅스 명령어 모음은 Linux 및 Mac OS와 같은 Unix 계열 시스템의 다양한 기본 운영 체제 원칙을 익히는 선구자 역을 할 것입니다.

리눅스 명령어 모음 입니다. 오늘날 배울 수있는 가장 유용한 리눅스 명령어들이며, 리눅스 기본 명령어와 함께 정기적으로 사용할 50가지 최고의 Linux 명령어를 간략 …

  • Source: dora-guide.com
  • Views: 13480
  • Publish date: 6 hours ago
  • Downloads: 57866
  • Likes: 9926
  • Dislikes: 3
  • Title Website: 리눅스 명령어 모음 BEST 50 초보자 및 전문가용 – 도라가이드
  • Description Website: 리눅스 명령어 모음 입니다. 오늘날 배울 수있는 가장 유용한 리눅스 명령어들이며, 리눅스 기본 명령어와 함께 정기적으로 사용할 50가지 최고의 Linux 명령어를 간략 …

세부 정보를 보려면 여기를 클릭하십시오.

리눅스 명령어 모음 | 초중급 개발자를 위한 기본 명령어 강좌

  • Source: Youtube
  • Views: 86750
  • Date: 7 hours ago
  • Download: 11031
  • Likes: 3546
  • Dislikes: 1

리눅스 명령어 모음 BEST 50 초보자 및 전문가용

Linux 명령어 모음 BEST 50 초보자 및 전문가

리눅스 명령어는 노련한 Linux 사용자이든 이 환상적인 유닉스 시스템 세계에 발을 담그기 시작한 초보자이든 관계없이 다양한 터미널 명령을 마스터하는 것이 모든 사용자에게 필수입니다. Windows와 같은 다른 운영체제에서도 명령 줄 유틸리티를 사용할 수 있지만 주로 리눅스의 터미널 인터페이스는 기술 전문가에게 매력적으로 다가옵니다.

사용 가능한 수많은 터미널 도구와 명령을 모두 암기하는 것은 거의 불가능하므로 리눅스 기본 명령어와 함께 정기적으로 사용할 50가지 최고의 Linux 명령을 간략하게 요약하여 이 안내서를 작성했습니다. 이 리눅스 명령어 모음은 Linux 및 Mac OS와 같은 Unix 계열 시스템의 다양한 기본 운영 체제 원칙을 익히는 선구자 역을 할 것입니다.

리눅스 종류 및 리눅스 배포판 확인하기

오늘날 배울 수있는 가장 유용한 Linux 명령어

이 글에는 Linux 시스템 경험을 급격히 높이기 위해 Google 전문가가 엄선한 50가지 최고의 리눅스 명령어 모음이 나와 있습니다.

파일 시스템 탐색을 위한 리눅스 명령어

모든 최신 운영 체제와 마찬가지로 리눅스 파일 시스템은 기본 디자인의 핵심에 있으며, 시스템 계층을 시각화하고 조작할 수 있는 다양한 방법을 제공합니다. 파일 시스템을 창의적으로 탐색하는 법을 배우면 Linux 기술이 한 층 성장할 수 있습니다.

1. pwd

pwd는 Print Work Directory의 약자이며, 현재 작업 중인 디렉터리를 보여줍니다. 이것은 현재 사용자가 있는 디렉터리를 보여줍니다. 이는 사용자의 작업을 평화롭게 만드는 것을 목표로 하는 가장 편리한 리눅스 명령어 중 하나입니다.

2. ls

ls 명령 list segments의 약자이며, 아마도 유닉스 세계에서 가장 널리 사용되는 명령 중 하나일 것입니다. 파일과 디렉터리의 모든 정보를 제공하며 특정 디렉터리와 특정 파일의 내용도 제공합니다. 이 명령을 pwd와 함께 사용하여 강력한 Unix 파일 시스템 내에서 길을 탐색할 수 있습니다.

3. cd

리눅스/유닉스는 보통 디렉터리와 파일로 이루어져 있습니다. 특히 사용자가 리눅스를 사용하다 보면 특정 디렉터리 아래 하위 디렉터리를 만들게 되고 여기서 다양한 작업을 하게 됩니다.

리눅스에서 작업하고 있는 현재의 위치를 현재 디렉터리라고 합니다. 기본적으로 디렉터리를 기준으로 파일이나 디렉터리를 찾으려고 시도합니다. 즉 파일 또는 디렉터리의 이름을 절대 경로로 지정하지 않으면 현재 디렉터리를 기준으로 상대적인 위치에서 파일을 찾습니다. 시스템에 로그인하면 홈 디렉터리가 현재 디렉터리가 된다. 이에 해당 디렉터리로 이동하는 방법이 cd 명령어입니다.

4. mkdir

Windows os에서 문서 또는 이미지 파일 등을 정리하기 위해 새 폴더를 만드는 것과 같이 리눅스에서도 새 디렉터리를 만듭니다. 터미널을 통해 새 폴더를 만들고 싶습니까? mkdir 명령은 필요한 권한을 가지고 있다면 Linux 시스템에서 원하는 위치에 폴더를 만들 수 있습니다.

5. rmdir

rmdir은 remove directory의 약자이며, 빈 디렉터리를 삭제할 때 사용하는 명령어이다. 삭제하려는 디렉터리가 비어있지 않을 경우에는 삭제를 할 수 없없습니다.

6. lsblk

Linux 시스템에서 사용 가능한 블록 장치를 나열해야 할 경우가 종종 있습니다. lsblk는 이 목적으로 가장 많이 사용되는 Linux 명령어 중 하나입니다. 이 편리한 리눅스 명령어는 블록 장치의 트리 구조를 나타내며 전문 사용자가 많이 사용합니다.

7. mount

Windows와 달리 SD 카드 또는 USB를 연결할 때마다 배포판이 처음에 직접 표시되지 않을 가능성이 존재합니다. mount 명령을 사용하여 기존 파일 시스템으로 마운트 해야 합니다. 이 리눅스 명령어는 가장 강력한 터미널 명령 중 하나입니다.

8. df

df 명령은 파일 시스템의 디스크 공간에 대한 필수 정보를 표시하는 가장 강력한 Linux 터미널 명령 중 하나입니다. 시스템 관리자가 실시간 서버 또는 네트워크 지향 시스템을 모니터링하고 분석하는 데 널리 사용됩니다. 기본적으로 1,024Byte 블록 단위로 출력하며, 옵션을 통해서 다른 단위로도 출력이 가능합니다.

시스템 조작을 위한 리눅스 명령어

시스템 명령은 Linux 시스템에 대한 정보를 얻는 데 필수적입니다. 이 작업을 위해 많은 강력한 Linux 명령을 사용할 수 있습니다.

9. uname

uname 명령은 이름, 버전 및 기타 시스템 특정 세부 사항과 같은 시스템 정보를 얻기 위한 기본 Linux 명령어입니다. 이 명령으로 OS 및 커널 버전을 빠르게 확인할 수 있으며, 시스템의 명령 길이를 확인할 수 있습니다.

10. ps

이 리눅스 명령어는 현재 시스템에서 실행 중인 프로세스를 시각화할 수 있습니다. 시스템 리소스를 분석하는데 사용되는 매우 유연한 수단이며, 터미널을 통해 기본적으로 시스템 프로세스를 조작할 수도 있습니다. 이 리눅스 명령어는 기본 및 최상의 Linux 모니터링 도구 중 하나로 간주됩니다.

11. kill

kill 명령은 자원 제한으로 인해 멈춘 프로세스를 중지하는 강력한 방법입니다. Linux 시스템 기술을 발전시키시면 이 명령의 본질과 중요성을 알게 될 것입니다. 종종 재미있는 Linux 명령 목록에 표시되는 kill 명령은 이름만큼이나 강력합니다.

12. service

service 명령은 리눅스 터미널에서 시스템 전체 서비스를 호출하기 위한 명령입니다. 시스템 조작을 위한 강력한 Linux 터미널 명령. 터미널 창에서 직접 System V init 스크립트를 실행하기 위해 이 명령을 사용할 수 있습니다.

13. batch

미리 정의된 일정에 따라 시스템 서비스를 실행하는 깔끔한 도구를 찾고 있다면 배치 명령이 있습니다. 자동화 쉘 스크립트 작성을 위한 또 다른 강력한 Linux 명령어 중 하나로 Linux 생산성을 크게 향상시킬 수 있습니다.

14. shutdown

리눅스 명령어 shut down은 halt, init과 함께 시스템을 종료하는 명령어 중 하나입니다. shut down은 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지를 보낼 수 있습니다.

파일 관리를 위한 리눅스 명령어

파일은 Linux 시스템의 중심에 있습니다. 시스템에서 볼 수 있는 거의 모든 것이 일종의 파일이므로 그에 따라 조작할 수 있습니다. Linux 전문가가 되려면 파일 관리 방법을 숙달해야 합니다.

15. touch

touch 명령은 유효한 빈 파일을 작성하기 위한 필수 Linux 명령어입니다. 터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 나중에 또는 실시간으로 파일을 채울 수 있습니다. 타임스탬프를 변경하기 위한 이동 명령이기도 합니다.

16. cat

처음에 여러 파일을 연결하기 위해 고안된 cat 명령은 이후 다른 목적으로 사용됩니다. 이 리눅스 명령어는 새 파일을 작성하고 터미널에서 파일 내용을 보고 출력을 다른 명령행 도구 나 파일로 리디렉션하는 데 사용합니다.

17. head

head 명령을 사용하면 터미널에서 직접 파일 또는 파이프 된 데이터의 시작을 볼 수 있습니다. 텍스트 처리를 많이 사용하는 사용자가 가장 많이 사용하는 Linux 명령 중 하나입니다. 터미널에서 많은 파일을 처리할 때마다 이 명령을 사용하여 생산성을 향상시킬 수 있습니다.

18. tail

tail 명령어는 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력합니다. 기본 값으로 마지막 10줄을 출력해 줍니다. 참고로 head 명령어의 경우에는 파일의 앞 부분을 출력합니다. 리눅스에서 오류나 파일 로그를 실시간으로 확인할 때 매우 유용하게 사용됩니다.

19. cp

cp 명령은 copy의 약어이며, 시스템에서 파일이나 디렉터리를 한 폴더에서 다른 폴더로 복사하도록 지시하는 간단한 방법입니다. 이 깔끔한 명령을 사용하면 터미널에서 바로 여러 파일을 디렉터리로 복사할 수 있습니다.

20. mv

move의 줄임말로 GUI에서 수행하는 절단 작업을 보완합니다. cp와 마찬가지로 mv 명령을 사용하여 하나 또는 여러 파일을 한 위치에서 다른 위치로 이동할 수 있습니다. 이 Linux 명령이 -f 매개 변수를 사용하여 큰 파일을 전송하도록 할 수 있습니다.

21. comm

Linux 세계로 향한 최초의 Unix 명령 중 하나인 comm을 사용하여 두 개의 파일을 공통 행과 구별되는 행으로 비교할 수 있습니다. 이것은 터미널에서 많은 양의 파일을 처리해야 하는 많은 사람들에게 필수적인 리눅스 명령어입니다.

22. less

가장 많이 사용되는 또 다른 Linux 명령어인 less 명령은 파일의 내용을 볼 때 제공하는 편리성 때문에 많이 사용됩니다. cat 과는 달리 less 명령을 사용하면 터미널 세션을 방해하지 않으면서 파일 내에서 양방향으로 탐색할 수 있습니다.

23. ln

ln 명령은 특정 파일에 대한 심벌릭 링크를 만들기 위한 가장 편리한 리눅스 명령어 중 하나입니다. 이 작지만 유연한 명령을 사용하여 디스크 공간의 특정 파일이나 디렉터리에 대한 심벌릭 링크의 여러 인스턴스를 생성할 수 있습니다.

24. cmp

두 파일을 비교하고 결과를 표준 출력 스트림에 인쇄하려면 cmp 명령을 사용하면 정확하게 수행할 수 있습니다. 이 명령어는 comm 명령과 함께 대량의 텍스트 파일을 정기적으로 처리하는 사용자들이 가장 많이 사용하는 Linux 명령어 중 하나입니다.

25. dd

이 명령어는 베테랑 사용자들이 파일을 한 유형에서 다른 유형으로 복사 및 변환하기 위해 가장 많이 사용하는 Linux 명령 중 하나입니다. 이 강력한 명령어에 대한 흥미로운 점은 부팅 가능한 라이브 USB 스틱을 만들 때 다른 터미널 명령 중에서 자주 사용한다는 것입니다.

26. alias

터미널에서 직접 파일의 다른 문자열로 단어를 바꿀 수 있으므로 시스템 관리자가 가장 많이 사용하는 리눅스 명령어 중 하나입니다. 다른 기능 중에서, 쉘을 사용자 정의하고 환경 변수를 조작할 수 있는 최상의 터미널 명령 중 하나입니다.

지루할 때 탐색 할 수 있는 재미있는 리눅스 명령어

터미널 앞에서 즐거운 시간을 보내기 위해 재미있는 리눅스 명령어를 사용할 수 있습니다. 이 터미널 명령은 유닉스 철학에 대한 심층적인 통찰력을 제공하면서 지루함을 되찾을 수 있는 재미있는 Linux 명령어입니다.

27. cal

유닉스가 터미널에 편리한 작은 달력 도구를 제공한다는 것을 알고 계셨습니까? cal 명령은 달력을 ASCII 텍스트 형식으로 표시하는 재미있는 Linux 명령어 중 하나입니다. 지정된 정보를 터미널에 바로 가져오려면 월 및 연도와 같은 매개 변수와 함께 이 명령을 입력해보세요.

28. fortune

이 명령어는 제가 가장 좋아하는 재미있는 리눅스 명령어 중 하나입니다. 터미널에 입력하고 직접 확인하십시오! 독창적이거나 어리석은 구절을 보여줄 것입니다.

29. history

터미널 세션 기록을 확인하고 싶습니까? history 명령을 사용하면 정확하게 수행할 수 있습니다. 매개 변수 없이 입력하면 작은 창에서 터미널 세션의 bash 기록이 인쇄됩니다. 터미널에서 사용할 유용하면서 재미있는 Linux 명령 일뿐만 아니라 터미널 사용에 대한 훌륭한 통찰력까지 제공합니다.

30. yes

yes 명령어는 주어진 문자열을 Ctrl + C키로 멈출 때까지 계속 반복해서 출력해줍니다. 이런 명령어가 왜 필요할까 싶겠지만, 시스템 성능 테스트 같은 것을 할 때 사용할 수 있습니다.

예를 들면 CPU를 100%까지 올려서 컴퓨터의 냉각 시스템이 작동하는지를 테스트할 때 사용할 수 있습니다.

31. banner

구식 유닉스에서 사용되는 멋진 ASCII 배너를 보았고 마음에 드셨나요? banner 명령은 자신만의 맞춤 배너를 만들 수 있는 재미있는 Linux 명령 중 하나입니다. 터미널에 일부 텍스트와 함께 이 명령을 입력해보세요.

32. rev

이것은 베테랑 리눅스 사용자를 위한 또 다른 재미있는 터미널 명령어 입니다. rev 명령은 입력 텍스트를 가져 와서 각 문자를 반대로하여 표준 출력에 기록합니다! 친구에게 비밀스럽고 미묘한 인상을 남기기 위해 사용할 수있는 Linux 명령어 중 하나입니다.

네트워크 관리자에게 가장 많이 사용되는 리눅스 명령어

Linux는 네트워킹을 위해 제공하는 강력함과 유연성으로 전 세계 sysadmins에게 유용한 솔루션입니다. Linux는 우리에게 익숙한 대부분의 컴퓨터 네트워크 뒤에 있습니다. 이 가이드는 초보자를위한 것이므로 네트워킹을 위한 가장 기본적인 터미널 명령만 간략하게 설명합니다.

33. wget

이 명령어는 네트워크 관리자가 터미널에서 바로 웹에서 파일을 다운로드하는데 활용하는 최고의 리눅스 명령어 중 하나입니다. 이것은 스크립트나 크론 작업에 사용될 수 있는 편리한 작은 터미널 명령 중 하나이며, 사용자에게 HTTP, HTTPS 및 FTP 인터넷 프로토콜을 사용할 수 있는 기능을 제공합니다.

34. iptables

iptables 명령은 시스템 관리자가 특정 호스트 시스템에서 들어오고 나가는 인터넷 트래픽을 제어할 수 있는 터미널 유틸리티를 호출합니다. sysadmins는 정기 트래픽을 정의하고 의심스럽거나 신뢰할 수 없는 네트워크 요청을 블랙리스트에 올리는 데 가장 많이 사용하는 Linux 명령어 중 하나입니다.

35. traceroute

이 명령은 네트워크 패킷이 한 시스템에서 다른 시스템으로 이동하는 경로를 결정하기 위해 이 명령을 다른 터미널 명령과 함께 사용하는 보안 전문가가 많이 사용합니다. 이것은 여러 가지 유해한 침입자로부터 컴퓨터를 보호할 수 있는 강력한 네트워크 명령입니다.

36. cURL

cURL은 네트워크를 통해 파일을 전송하여 새로운 Linux 시스템 사용자도 사용할 수 있는 매우 강력한 네트워크 도구입니다. 이것은 사용자 개입 없이 작동하도록 설계된 리눅스 명령어 중 하나이며, 일반적으로 네트워크 관련 쉘 스크립트에 사용됩니다.

Linux 명령어 검색 및 정규 표현식

Linux는 머신을 효과적으로 검색하기 위한 유연한 터미널 명령을 제공합니다. 이러한 Linux 터미널 명령을 강력한 정규식 명령과 결합하면 파일의 특정 파일 또는 시퀀스에 대한 정보를 매우 빠르게 얻을 수 있습니다.

37. find

find 명령어 는 터미널에서 파일을 검색하는데 가장 많이 사용되는 리눅스 명령어 중 하나입니다. 이 강력하면서도 유연한 터미널 명령을 통해 사용자는 파일 권한, 소유권, 수정 날짜, 크기 등과 같은 특정 기준에 따라 파일을 검색할 수 있습니다.

38. which

검색하려는 모든 파일이 실행 파일인 경우 which 명령은 매우 유용합니다. 이 편리한 터미널 명령은 특정 매개 변수를 취하여 $ PATH 시스템 환경 변수에서 이진 파일을 매우 효과적으로 검색합니다.

39. locate

locate 명령은 특정 파일의 위치를 ​​찾는데 사용되는 리눅스 명령어 중 하나입니다. Linux 시스템에서 특정 파일의 위치를 ​​모를 때 활용할 수 있는 가장 간단한 터미널 명령 중 하나입니다.

40. grep

대량의 텍스트 파일에서 패턴을 검색할 때 사용할 수 있는 가장 강력한 정규식 터미널 명령 중 하나입니다. 찾고자 하는 패턴을 입력으로 받아 특정 패턴에 대해 지정된 파일을 검색합니다.

41. sed

지정된 부분을 교체하여 파일 또는 스트림의 각 줄을 조작하는데 가장 많이 사용되는 Linux 명령어 중 하나입니다. 많은 양의 텍스트 데이터를 다루고 이동 중에도 변경해야 하는 사용자들이 많이 사용합니다.

I / O 및 소유권을 다루는 리눅스 명령어

Linux는 I/O 스트림과 파일 또는 디렉터리 소유권을 설정하고 조작하기 위한 강력한 터미널 명령 세트를 제공합니다. 아래에 나열된 Linux 명령어는 이러한 목적을 위한 가장 기본적인 Linux 터미널 명령 중 일부를 간략하게 보여줍니다.

42. clear

clear 명령은 기존 터미널 화면을 지우는데 편리합니다. 이전의 일부 Linux 명령이 터미널 화면을 깨져서 출력이 깨진 후 터미널 화면을 지워야 하는 경우가 종종 있습니다.

43. echo

echo 명령은 터미널 콘솔에 특정 텍스트를 출력할 수 있는 매우 강력한 명령 줄 유틸리티입니다. echo를 입력하고 괄호 안에 일부 텍스트를 입력하면 스스로 확인할 수 있습니다. 이 명령의 흥미로운 점은 출력을 다른 터미널 명령으로 파이프 할 수 있다는 것입니다.

44. sort

정렬 명령은 수행하는 작업에 매우 효과적입니다. 사전 순 또는 역순으로 파일을 정렬해야 할 때마다 이 명령을 사용하십시오.

45. sudo

sudo 명령은 Linux 명령의 성배입니다. 권한이 없는 사용자는 낮은 수준의 권한이 필요한 파일에 액세스하고 수정할 수 있습니다. 종종이 명령을 사용하여 일반 사용자 계정에서 루트에 액세스합니다.

46. chmod

chmod 명령은 시스템 파일 또는 객체의 액세스 권한을 변경하거나 수정하는데 사용하는 가장 강력한 Linux 명령어 중 하나입니다. 이 명령은 사용자로부터 매우 다양한 매개 변수 세트를 취할 수 있으며, 파일 권한 변경에 따라 다릅니다.

47. chown

chown 명령은 chmod 명령과 매우 유사합니다. 그러나 액세스 권한을 변경하는 대신 사용자가 파일 또는 디렉터리의 소유권을 변경할 수 있습니다. chmod 및 chown 터미널 명령은 모두 루트 권한이 필요합니다.

일상적인 사용을 위한 기타 명령어

아래 터미널 명령어는 생산성을 높이고 작업량을 줄이는 데 도움이 됩니다. 상황에 맞지 않을 때마다 이 Linux 명령을 사용하십시오.

48. man

man 명령은 manual을 나타내며, 사용자가 직접 사용할 수 있는 가장 유용한 Linux 명령어 중 하나입니다. 이 명령 다음에 다른 명령의 이름은 해당 명령의 매뉴얼 또는 설명서 페이지를 나열합니다. 특정 터미널 명령을 사용하는 방법을 결정할 때 이 명령을 자주 사용해야 합니다.

49. tar

tar 명령은 파일을 아카이브하고 추출하는데 사용됩니다. 파일을 압축하는데 널리 사용되는 명령으로 이러한 작업을 매우 효율적으로 처리할 수 ​​있습니다.

tar 압축 풀기 및 해제 명령어 사용방법은?

50. whatis

whatis 명령은 사용자가 제공한 간단한 설명으로 데이터베이스 세트를 순회하며 해당 데이터베이스 명령과 일치하는 시스템 명령을 인쇄합니다.

마치며.

이 안내서를 작성할 때, 우리는 사용 가능한 다양한 Linux 명령에서 50개의 터미널 명령만 선택해야 하는 어려운 작업에 직면했습니다. 우리 전문가들은 신규 사용자가 Linux 생태계에 적응하는데 얼마나 도움이 될지에 따라 선택을 선택했습니다. 결국, 우리는 결과에 매우 만족하며 이 안내서의 도움으로 다양한 Linux 터미널 명령어를 마스터하는데 필요한 통찰력을 얻을 것이라고 확신합니다.

리눅스 명령어 연습 사이트

리눅스 종류 및 리눅스 다운로드 방법

자주 사용하는 리눅스 기본 명령어 모음 – Shane’s planet

리눅스 명령어야 굉장히 많지만 금방 모두 익히기는 쉽지 않습니다. 하지만 기본 명령어들을 충분히 익힌 상태라면 리눅스를 사용하는 데에 큰 어려움을 겪지 않으며 자주 사용하지 않는 명령어들은 필요 할 때 마다 찾아 쓰다보면 익숙해 질 것이라 생각합니다.

rm -rf {path} : -r 은 recursive(재귀), -f는 force(강제) 옵션으로 Access 권한이 없는 파일도 강제로 삭제하는 옵션입니다. 조심해서 사용해야 합니다.

mv {name1} {name2} : name1 파일을 name2 로 이름 변경합니다. name1과 name2 의 경로가 다르다면 해당 경로로 파일을 이동합니다.

11 thg 8, 2021 — Linux Commands · ls (List Segments) · cd(Change Directory) · mkdir(Make Directory) · cp(Copy), mv(Move) · rm(Remove) · cat(Catenate) · head / tail · pwd …

  • Source: shanepark.tistory.com
  • Views: 14133
  • Publish date: 13 hours ago
  • Downloads: 99805
  • Likes: 4392
  • Dislikes: 6
  • Title Website: 자주 사용하는 리눅스 기본 명령어 모음 – Shane’s planet
  • Description Website: 11 thg 8, 2021 — Linux Commands · ls (List Segments) · cd(Change Directory) · mkdir(Make Directory) · cp(Copy), mv(Move) · rm(Remove) · cat(Catenate) · head / tail · pwd …

세부 정보를 보려면 여기를 클릭하십시오.

리눅스(Linux) 기초 강좌 30강 모음 – 설치부터 기초 명령어 50개까지 학습 : 리눅스 마스터2급 리눅스 마스터 1급 준비 하기

  • Source: Youtube
  • Views: 102274
  • Date: 58 minute ago
  • Download: 33567
  • Likes: 97
  • Dislikes: 9

자주 사용하는 리눅스 기본 명령어 모음

Intro

리눅스에서 자주 사용하는 기본 명령어들을 모아 보았습니다.

리눅스 명령어야 굉장히 많지만 금방 모두 익히기는 쉽지 않습니다. 하지만 기본 명령어들을 충분히 익힌 상태라면 리눅스를 사용하는 데에 큰 어려움을 겪지 않으며 자주 사용하지 않는 명령어들은 필요 할 때 마다 찾아 쓰다보면 익숙해 질 것이라 생각합니다.

Linux Commands

ls (List Segments)

현재 위치의 파일 목록을 조회하는 명령어

-l : 파일들의 상세 정보를 나타냅니다.

-a : 숨김 파일들을 표시합니다.

위의 사진에서 처럼 보이지 않던 폴더들이 (.으로 시작하는 폴더들은 hidden 입니다) ls -al 명령어에서는 보여줍니다

cd(Change Directory)

경로 이동 할 때 사용하는 명령어 입니다.

cd .. : 상위 디렉터리로 이동

cd ~ : 홈 디렉터리로 이동

cd {name} : 현재 경로의 {name} 폴더로 이동

cd \ {path} : 절대경로 {path} 로 이동

cd – : 이동 하기 전에 있던 최근 디렉터리로 이동

mkdir(Make Directory)

새로운 디렉터리를 생성합니다.

mkdir {name} : {name} 이름의 디렉터리를 생성합니다.

mkdir -p {path}/{name} : 존재하지 않는 하위 디렉토리까지 생성합니다.

cp(Copy), mv(Move)

파일을 복사 / 이동 하는 명령어 입니다.

cp {name1} {name2} : name1 파일을 name2라는 이름으로 복사합니다.

mv {name1} {name2} : name1 파일을 name2 로 이름 변경합니다. name1과 name2 의 경로가 다르다면 해당 경로로 파일을 이동합니다.

rm(Remove)

파일이나 디렉터리를 삭제하는 명령어 입니다.

rm {name} : {name} 을 삭제합니다.

rm -r {dir} : {dir} 이름의 폴더를 삭제합니다.

rm -rf {path} : -r 은 recursive(재귀), -f는 force(강제) 옵션으로 Access 권한이 없는 파일도 강제로 삭제하는 옵션입니다. 조심해서 사용해야 합니다.

cat(Catenate)

파일 이름을 인자로 받아서 그 내용을 쭉 이어주는 명령어입니다. 예를 들어 아래 명령어를 입력하면

cat .profile

.profile 내용을 출력해서 보여줍니다.

cat .profile | more

more 명령어를 붙이면 한 화면에 다 보여지지 않을때 조금 더 편하게 읽을 수 있게 해줍니다.

head / tail

파일의 앞부분 부터 확인 하는 명령어와, 특정 파일에 추가되는 내용을 모니터링 하는 명령어 입니다.

예를 들면 아래의 명령어를 입력하면 .profile 파일을 위에서부터 10개 행까지 출력합니다.

head -n 10 .profile

-f 명령어를 이용하면 실시간으로 추가되는 내용을 모니터링 할 수 있습니다.

tail -f .profile

pwd(Print working Directory)

현재 경로를 출력합니다

who / whoami

각각 호스트에 로그인한 사용자 정보 / 내 접속 정보 를 출력해줍니다.

env

환경 변수를 출력합니다.

grep

특정 문자열을 검색합니다.

예를 들어 .profile 파일에서 if 라는 문자열을 검색할 때는 아래와 같이 입력합니다.

grep if .profile

원하는 경로에서 특정 문자열을 포함한 파일들을 검색 하고 싶다면

grep -r ‘자주 사용하는 리눅스 기본 명령어 모음’ .

처럼 검색 할 수 있습니다.

| (Pipe line)

명령의 결과를 다음 명령으로 넘깁니다.

위에서 익힌 env, grep 명령어를 파이프 라인과 함께 사용하면

env | grep user

이렇게 env명령의 결과에서 user 문자열을 검색 할 수도 있습니다.

ps(Process Status)

프로세스의 상태를 확인하는 명령어입니다.

-e : 현재 수행하고 있는 프로세스에 관한 정보 확인

-f : 프로세스 ID와 모 프로세스ID를 포함한 전체 리스트 표시

ps -ef | grep tomcat

ps -ef의 결과에서 tomcat 이라는 단어를 검색 해 보았습니다.

free

메모리 상태를 확인하는 명령어 입니다. -h (Human Readable) 옵션과 함께 사용합니다.

df (Disk Free)

디스크 사용량을 확인합니다. 이 역시 -h 옵션과 함께 사용합니다. 특정 디렉터리를 기준으로 하려면 du 명령어를 사용 하면 됩니다.

wget / curl

wget은 특정 url의 파일을 다운로드 받을때, curl은 웹 요청을 할 때 사용 할 수 있습니다.

서버를 띄웠는데 외부에서 접속이 안될 때 curl 로 localhost에 신호를 보내서 응답을 정상적으로 받는다면, 방화벽 등의 문제로 범위를 좁힐 수 있습니다.

scp (SecureCopy)

파일을 양방향으로 전송 하게 해줍니다. scp {전송할파일} {아이디@전송할서버주소}:{저장될 서버의 디렉터리} 형태로 사용합니다.

폴더의 경우에는 -r 옵션을 줘야 합니다.

반대의 경우로 원격지에서 파일을 로컬로 가져올 수도 있습니다

scp {아이디@원격지서버주소}:{원본위치} {받는위치}

systemctl

서비스를 관리하는 명령어 입니다.

특정 서비스의 상태 확인

systemctl status {서비스명}

MariaDB 서비스 구동

systemctl start mariadb

서비스 종료

systemctl stop maridb

부팅시 자동 시작되도록 등록

[Linux] Linux 많이 사용하는 명령어 모음 – velog

1 thg 5, 2021 — 명령어 모음 · pwd (print working directory). 현재 사용자가 위치하고 있는 경로를 출력해줌. · ls (list) · chmod (change Mode) · mkdir (make Directory).

  • Source: velog.io
  • Views: 33041
  • Publish date: 20 hours ago
  • Downloads: 24559
  • Likes: 9103
  • Dislikes: 2
  • Title Website: [Linux] Linux 많이 사용하는 명령어 모음 – velog
  • Description Website: 1 thg 5, 2021 — 명령어 모음 · pwd (print working directory). 현재 사용자가 위치하고 있는 경로를 출력해줌. · ls (list) · chmod (change Mode) · mkdir (make Directory).

세부 정보를 보려면 여기를 클릭하십시오.

💻 2941 – 실무에서 사용하는 리눅스 명령어 모음

  • Source: Youtube
  • Views: 12675
  • Date: 12 hours ago
  • Download: 30140
  • Likes: 8057
  • Dislikes: 6

[linux] 리눅스 기본 명령어/자주 쓰는 명령어 – 코딩장이

6 thg 11, 2018 — pwd (print working directory) · cd (change directory) · ls (list) · cp (copy) · mv (move) · mkdir (make directory) · rm (remove) · touch.

  • Source: itholic.github.io
  • Views: 52965
  • Publish date: 1 minute ago
  • Downloads: 101015
  • Likes: 2630
  • Dislikes: 6
  • Title Website: [linux] 리눅스 기본 명령어/자주 쓰는 명령어 – 코딩장이
  • Description Website: 6 thg 11, 2018 — pwd (print working directory) · cd (change directory) · ls (list) · cp (copy) · mv (move) · mkdir (make directory) · rm (remove) · touch.

세부 정보를 보려면 여기를 클릭하십시오.

필수 리눅스 터미널 명령어 정리 | 배쉬, 파워쉘 (Bash, PowerShell) 튜토리얼! 가좌아 🎸

  • Source: Youtube
  • Views: 36239
  • Date: 4 minute ago
  • Download: 19005
  • Likes: 4915
  • Dislikes: 1

꼭 알아야 할 리눅스(Linux) 기본 명령어 20가지 – 화니의 블로그

$ grep -ic ‘Feb’ ./d.txt // 대소문자 구분하지 않고 d.txt 에 ‘Feb’ 가 있는 행 Count 해서 보여달라

$ Netstat –nap | grep :80 | grep 112.175 |grep Established 떠있는 포트 확인 해당아이피로

$ grep -iv ‘feb’ ./d.txt // 대소문자 구분하지 않고 d.txt에 ‘feb’ 가 없는 Line 을 보여달라

11 thg 6, 2021 — 이번 포스팅에서는 리눅스(Linux)에서 자주 사용하는 · 1. ls > 파일이나 디렉토리를 보는 명령어 · * 옵션 -a : 전부 보여달라 (숨김, 디렉토리) · 2. man

  • Source: hinweis.tistory.com
  • Views: 82797
  • Publish date: 15 hours ago
  • Downloads: 70403
  • Likes: 4030
  • Dislikes: 10
  • Title Website: 꼭 알아야 할 리눅스(Linux) 기본 명령어 20가지 – 화니의 블로그
  • Description Website: 11 thg 6, 2021 — 이번 포스팅에서는 리눅스(Linux)에서 자주 사용하는 · 1. ls > 파일이나 디렉토리를 보는 명령어 · * 옵션 -a : 전부 보여달라 (숨김, 디렉토리) · 2. man

세부 정보를 보려면 여기를 클릭하십시오.

버프 먹고 또 무료 키트로 풀린 낚시꾼 ㄷㄷ [로블록스 배드워즈]

  • Source: Youtube
  • Views: 86103
  • Date: 13 hours ago
  • Download: 15528
  • Likes: 552
  • Dislikes: 6

꼭 알아야 할 리눅스(Linux) 기본 명령어 20가지

이번 포스팅에서는 리눅스(Linux)에서 자주 사용하는 기본 명령어 20가지를 정리해보았습니다.

1. ls

> 파일이나 디렉토리를 보는 명령어

* 옵션

-a : 전부 보여달라 (숨김, 디렉토리)

-l : 상세정보 (소유자, 크기, 수정시간 등)

-S : 크기별 정렬

-h : 단위 표현 변경 (사람이 보기 편한 단위 KB, GB 등으로 보임)

$ ls -al // 리스트를 상세하게 모두 출력

2. man

> 명령어 도움말

$ man ls // ls 명령어에 대한 도움말 출력

3. cd

> 디렉토리 이동

$ cd /Data // 루트 디렉토리에서 Data 디렉토리로 이동

$ cd ./Users // 현재 디렉토리에서 Users 디렉토리로 이동

4. mkdir

>신규 디렉토리 생성

$ mkdir /Users/Temp // Users폴더에 Temp 폴더 생성

5. rmdir

> 디렉토리 삭제 ( 삭제시 디록토리 안에 파일이 없어야함)

$ rmdir /Test // Test 폴더 삭제

6. rm

> 파일이나 디렉토리 삭제 ( rmdir 보다 더 많이 사용 )

* 옵션

-r : 하위 디렉토리 삭제

-f : 강제로 삭제

-i : 파일 지울지 물어봄

-v : 삭제 정보 보여줌

$ rm /test/abc.txt // test 디렉토리 안의 abc.txt 파일 삭제

$ rm -fr /test/* // test 디렉토리 안의 모든 디렉토리와 파일들을 확인 없이 삭제

7. touch

> 용량 0의 파일 생성

-a : 현 시간으로 파일의 접근 시간, 변경 시간 수정

-c : 기존 파일이 없으면 파일이 생성되지 않음

-t : 지정한 시간으로 접근 시간, 수정 시간을 수정 (단 변경 시간은 현재 시간으로 수정)

$ touch test.txt // 내용이 없는 test.txt 파일 생성

$ touch a.txt b.txt c.txt // 내용이 없는 파일 3개 생성

$ touch -t 07031000 c.txt // 7월 3일 10시 00분 으로 접근 시간, 수정 시간을 수정

8. cat / more

> 텍스트 파일 출력

짧은 내용 볼때 cat, 내용이 많으면 more 사용

$ cat abc.txt / more abc.txt

9. head

> 처음 10줄을 출력

$ head abc.txt

10. tail

> 마지막 10줄을 출력

* 옵션

-f : 실시간으로 조회 (Log 확인시 주로 사용)

$ tail abc.txt // tail 5 abc.txt 5줄확인

$ tail -f abc.log // abc.log 파일이 변경될때마다 실시간으로 마지막 10줄의 변경사항을 보여줌

11. clear

> 화면을 Clear 함

12. wc

> 단어 수, 줄 수 등을 세어줌

* 옵션

-l : line 수를 Count

$ wc -l abc.txt // abc.txt파일의 Line 수를 Count

13. alias / unalias

> 별칭을 지어주고 삭제함

$ alias a=’cd /a/b/c/d/e/f/g’ // alias 지정 후 a를 입력하면 해당 명령어가 실행됨

$ unalias a // a로 지정된 alias 를 삭제

14. tar

> 파일을 묶어줌

* 옵션

c : 파일을 묶어줌

v : 작업 과정 확인

f : 저장될 파일명 지정

x : 묶은 파일을 풀어줌

z : tar + gzip

j : tar + bzip2

$ tar cvf abc.tar ./test // test 디렉토리를 abc.tar 파일로 묶어줌

$ tar xvf abc.tar // abc.tar 파일을 풀어라

15. find

> 파일을 검색

* 옵션

-name : 파일 이름으로 검색

-user : 소유자 이름으로 검색

-size : 파일 크기로 검색

$ find ./test -name ‘b.*’ -size 0

// test 디렉토리에서 파일명이 b이고 size가 0인 파일 찾아줌 (확장자 무관)

16. grep

> 파일에 포함된 특정 단어를 검색

* 옵션

-i : 대소문자 구분 안함

-n : 라인 번호 출력

-v : 검색어가 없는 Line 보여달라

-c : 라인의 개수 출력

$ grep -ic ‘Feb’ ./d.txt // 대소문자 구분하지 않고 d.txt 에 ‘Feb’ 가 있는 행 Count 해서 보여달라

$ grep -iv ‘feb’ ./d.txt // 대소문자 구분하지 않고 d.txt에 ‘feb’ 가 없는 Line 을 보여달라

17. ps

> 명령어는 지금 실행중인 프로세스의 목록을 출력해주는 명령어

* 옵션

a : 현재 실행중인 모든 프로세스 ( 다른 사용자들의 프로세스 포함)

e: 프로세스의 실행 환경 출력 ( = pid, time, tty)

u : 프로세스의 사용자 이름, 시간

x : 다른 사용자가 실행한 완료되지 않은 프로세스를 같이 출력

-f : full format

$ Ps – ef | grep tomcat // tomcat 프로세스 확인

$ Kill -9 14333 // 프로세스 번호 kill

18. netstat

> Linux 시스템의 TCP/IP 프로토콜 진단시 사용, 라우팅테이블, 소켓사용정보 등 볼수있음

* 옵션

-a : 모든 소캣의 상태를 보여준다 / -p 포트정보 보여줌.

-t : tcp 소캣만 보여준다.

-n : 로컬 주소와 나가는 주소를 도메인에서 ip형태로 보여준다.

$ Netstat –nap | grep :80 | grep 112.175 |grep Established 떠있는 포트 확인 해당아이피로

19. yum

> 패키지 자동설치 (list, check-update / update / install /remove / info)

$ Yum install wget / yum list

20. ln

> 하드링크 / 심볼링크 생성 ( 윈도우 바로가기와 유사 )

1. 하드링크 – 원본 파일의 inode를 같이 사용하는 파일

원본 파일이 변경되거나 사라지더라도 하드링크파일은 원본 데이터를 찾아 갈 수 있음

2. 심볼링크 – 새로운 inode를 원본파일을 찾아가게 합니다

ln –s / ln 파일1 파일2

번외. VI 사용법 정리

더보기 [기본 커서이동]

h : 왼쪽방향키

j : 아래 방향키

k : 위 방향키

l : 오른쪽 방향

gg : 문서 가장 위로 이동.

shift + g : 문서 가장 밑으로.

w(소문자) : 현재 커서의 다음 단어로 이동

W(대문자) : 현재 커서 라인의 가장 끝으로 이동

b(소문자) : 현재 커서의 전 단어로 이동

B(대문자) : 현재 커서 라인의 가장 앞으로 이동

[복사]

yy : 현재 커서 라인 1줄 복사

y5y: 현재 커서 라인에서 5줄복사

[잘라내기] (라인 삭제 용도로 활용)

dd : 현재 커서 라인 잘라내기

d5d: 현재 커서 라인에서 5줄 잘라내기

[붙여넣기]

p(소문자) : 복사나 잘라내기한 내용을 현재 커서 위치 밑줄에 붙여넣기 한다.(전 이걸 많이 씀. shift누르기 귀찬)

P(대문자) : 복사나 잘라내기한 내용을 현재 커서 위치의 위줄에 붙여넣기 한다

[되돌리기]

u : 이전으로 문자 돌리기

[편집모드]

i : 문자 전 위치부터 편집.

a: 문자 다음 위치부터 편집.

x: 현재 위치 문자 제거하고 편집

[저장 및 문서 닫기]

:w :문서 저장만하지

:wq :문서 저장하고 닫기

:q : 문서 닫기 (저장안하고 그냥닫으려면 :!q로 오버라이드)

:wq filename 문서 해당 이름으로 저장하고 닫기

[문서 열기]

:vs filename : 파일을 세로 방향으로 열기 ( 본인의 기준에 따라 방향이 다름 )

:sp filename: 파일을 가로 방향으로 열기 ( 본인의 기준에 따라 방향이 다름 )

[다중 문서 이동하기]

shift + w : 여러개 열어둔 문서끼리 이동 ( 다른 명령어도 있겠지만 이걸 가장 많이 사용함)

[vi상에서 명령어 실행]

:! ls vi를 종료하지 않고 명령어 실행하기(파일 확인용, 서버 재 실행등의 간단한 작업시 자주 사용함)

[편집기 라인 번호]

:se nu or :set number : 편집기에 라인을 표시한다.(거의 습관적으로 사용)

리눅스 운영 환경에 따라 명령어 중요도가 다를 수 있으므로 레퍼런스로 활용하시면 좋을 것 같습니다.

읽어주셔서 감사합니다.

[Linux] 리눅스 터미널 명령어 모음 총정리 – 코딩팩토리 – 티스토리

rdev 루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기

mformat MS-DOS 파일 시스템의 디스크 포맷하기

yppasswd NIS에서 사용하는 passwd 명령어

16 thg 3, 2020 — 리눅스 명령어 모음집 명령어 설명 alias 명령어 간소화 apropos 관련 명령어 검색하기 arch 컴퓨터 종류 확인하기 arp 같은 서브넷 IP 조회하기 at …

  • Source: coding-factory.tistory.com
  • Views: 46158
  • Publish date: 16 hours ago
  • Downloads: 35268
  • Likes: 3940
  • Dislikes: 3
  • Title Website: [Linux] 리눅스 터미널 명령어 모음 총정리 – 코딩팩토리 – 티스토리
  • Description Website: 16 thg 3, 2020 — 리눅스 명령어 모음집 명령어 설명 alias 명령어 간소화 apropos 관련 명령어 검색하기 arch 컴퓨터 종류 확인하기 arp 같은 서브넷 IP 조회하기 at …

세부 정보를 보려면 여기를 클릭하십시오.

모든 명령어를 사용하는 『핵사기 커맨드소드』 만드는 방법!? 하나만 유출되도 그 서버 터진다 ㅎㄷㄷ;; [마인크래프트]

  • Source: Youtube
  • Views: 64387
  • Date: 25 minute ago
  • Download: 10417
  • Likes: 1436
  • Dislikes: 2

[Linux] 리눅스 터미널 명령어 모음 총정리

명령어 설명

alias 명령어 간소화

apropos 관련 명령어 검색 하기

arch 컴퓨터 종류 확인 하기

arp 같은 서브넷 IP 조회 하기

at 작업시간 설정 하기

atd 계획성 있는 작업 실행 하기

awk 특정 패턴 문자열 처리하기

a2p 펄 파일로 바꾸기

badblocks 배드 블록 검사하기

bc 계산기 실행하기

biff 메일 수신 소리로 확인하기

bg 배경화면 설정하기

bind 키나 함수 순서 바인딩하기

break 루프 빠져나가기

cal 달력 확인하기

bubuiltin 내부 명령어 확인하기

case 조건절 처리하기

cat 화면상에서 파일 확인하기

cd 디렉토리 이동하기

cfdisk 디스크 설정하기

chattr 파일 속성 변경하기

chfn 사용자 정보 변경하기

chgrp 파일, 디렉토리가 속한 그룹 변경하기

chmod 파일 권한 변경하기

chown 파일 소유자 변경하기

chsh 지정된 셸 변경하기

cksum CRC값 점검하기

clear 터미널 화면 초기화하기

clock CMOS 시간 조정하기

cmp 파일 비교하기

colcrt 문자 변환 필터

colrm 열 삭제하기

column 가로 정렬하기

comm 파일 비교 출력하기

command 명령어 확인하기

continue 루프 계속하기

cp 파일 복사하기

cpio 복사본 만들기

crontab cron을 관리하기

csplit 파일에 서식, 규칙 정하기

cut 필요한 필드만 출력하기

date 날짜 확인하기

dd 블럭장치 읽고 쓰기

debugfs ext2 파일 시스템 디버깅하기

declare 변수 선언하기

df 파일 시스템의 사용량 확인하기

dirs 디렉토리 목록 표시하기

dmesg 부팅 메시지 확인하기

dnsdomainname DNS 이름 출력하기

domainname NIS 이름 출력 및 설정하기

du 디렉토리와 파일의 용량 확인하기

dumpe2fs 파일 시스템 정보 확인하기

echo 표준 출력하기

eject 장치 해제하기

elm 메일 관련

enable 내부 명령어 지정하기

env 환경변수 출력하기

eval 인수 읽기

exec 셸 명령어 실행하기

exit 종료하기

expand 탭을 공백으로 변환하기

export 변수 지정하기

e2fsck 파일 시스템 복구하기

fc 지정된 편집기 받기

fdformat 플로피 디스크 포맷하기

fdisk 파티션 나누기

fg 지정된 작업을 전면 프로세스로 시작하기

file 파일 종류 확인하기

find 파일 검색하기

finger 사용자 정보 확인하기

fold 정형화하기

fmt 정형화하기

for 반복문 실행하기

free 메모리 사용량 체크하기

fsck 파일 시스템 검사하기

fstab 파일 시스템에 대한 고정적인 정보 저장하기

ftp 파일 전송 프로그램

fuser 프로세스 ID 출력하기

getkeycodes 매핑 테이블 출력하기

grep 특정 문자 검색하기

gzexe 실행 파일 압축하기

gzip 압축하기

halt 시스템 종료하기

hash 기억해 두기, index 역할

head 파일의 앞부분 출력하기

help 도움말 보여주기

host 호스트 정보 확인하기

history 사용 명령어 목록 확인하기

hostname 서버 이름 조회하기

id 계정 정보 확인하기

if 조건문 실행하기

ifconfig 랜카드에 주소 할당하기

imolamod 모듈 설치하기

inetd 인터넷 서비스의 최상위 데몬

init 실행 단계 지정하기

ispell 철자법 검사하기

jobs 수행중인 프로세스 확인하기

kbd_mode 키보드 모드 출력하기

kill 프로세스 강제종료

klogd 강제종료 커널 로그 데몬

ldd 공유 라이브러리의 의존성 확인하기

less 페이지 단위로 출력하기

let 정규식 표현하기

lilo 부팅하기

ln 링크하기

locate 패턴에 맞는 파일 찾기

login 로그인하기

logger 시스템 로그 기록하기

logname 사용자 로그인명 보여주기

logout 로그인 셸 종료하기

look 특정 단어 검색하기

losetup 중복 장치 확인하기

lpd 프린트 데몬

lpq 현재 프린트 작업 상태 출력하기

lpr 출력하기

lprm 대기열에 있는 문서 삭제하기

ls 디렉토리 확인하기

lsattr 파일 시스템의 속성 보여주기

lsdev 하드웨어 장치 출력하기

lsmod 모듈 정보 출력하기

lnsmod 모듈 올리기

rmmod 모듈 내리기

mail 메일 관련

make 컴파일하기

man 매뉴얼 보기

mattrib MS-DOS 파일 속성변경하기

mbadblocks 하드디스크 배드블럭 검사하기

mcd MS-DOS 디렉토리 변경하기

mcopy 리눅스 도스간 파일 복사하기

mdel 리눅스에서 서버 모델 확인하기

mdeltree MS-DOS 파일 삭제하기

mdirmesg 메시지를 받을 수 있는지 확인하기

mformat MS-DOS 파일 시스템의 디스크 포맷하기

mkdir 디렉토리 만들기

mke2fs 파일 시스템 생성하기

mkfs 파일 시스템 만들기

mknod 특수 파일 만들기

mkswap 스왑 영역 지정하기

mlabel 파일 시스템 라벨 변경

mmd MS-DOS 파일 시스템의 디렉토리를 작성하기

mount 장치를 특정 파일/폴더에 할당하기

more 화면 단위로 출력하기

mrd MS-DOS 파일 시스템 디렉토리를 삭제하기

mutt 메일 관련

mv 파일 옮기기

netstat 현재 네트웍 상황 확인하기

nice 프로세스 우선 순위 변경하기

od 8진수로 파일 확인하기

passwd 암호 입력하기

pidof 실행중인 프로그램의 프로세스 ID 찾기

pine 메일 관련

ping 네트웍 확인하기

popd pushd 취소하기

ps 프로세스 상태 확인하기

pstree 프로세스 상관관계 확인하기

pwd 절대경로 확인하기

quota 디스크 한계량 확인하기

rarp rarp 테이블 관리하기

rcp 원격 호스트에 파일 복사하기

rdev 루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기

rdate 네트웍으로 시간 설정하기

reboot 재부팅하기

readonly 읽기 전용으로 표시하기

renice 프로세스 우선 순위 바꾸기

reset 터미널 초기화하기

restore 다시 저장하기

rlogin 바로 접속하기

rm 파일 지우기

rmdir 디렉토리 지우기

route 라우팅 테이블 추가/삭제하기

rpm 프로그램 추가/삭제하기

rpm2cpio rpm을 cpio로 변환하기

rsh 원격으로 명령어 실행하기

rup 호스트 상태 출력하기

rusers 호스트에 로그인한 사용자 출력하기

rwall 호스트 사용자에게 메시지 뿌리기

script 기록하기

set 변수값 설정하기

setup 시스템 관련 설정하기

showmount 호스트의 마운트 정보 보여주기

shutdown 전원 끄기

sleep 잠시 쉬기

source 스크립트 번역하기

split 파일 나누기

ssh 암호화된 원격 로그인하기

stty 터미널라인 설정 보여주기

su 계정 바꾸기

suspend 셸 중단하기

swapoff 스왑 해제하기

swapon 스왑 활성화하기

sync 버퍼 재설정하기

syslogd 로그인 과정 설정하기

tac 거꾸로 보기

tail 문서 끝부분 출력하기

talk 이야기하기

tar 파일 묶기

tcpdchk tcp wrapper 설정하기

tcpmatch 네트웍 요청에 대해 예측하기

tee 표준 입력으로부터 표준 출력 만들기

telnet 원격접속하기

test 테스트하기

times 셸에서의 사용자와 시스템 시간 출력하기

top cpu 프로세스 상황 보여주기

tr 문자열 바꿔주기

true 종료 코드 리턴하기

type 유형 보기

ul 밑줄 처리해서 보여주기

ulimit 제한하기

umask 마스크 모드 설정하기

umount 장치 연결 해제하기

unalias 별명 제거하기

uname 시스템 정보 보기

unexpand 공백 문자를 탭으로 변환하기

uniq 중복된 문장 찾기

useradd 사용자 계정 만들기

userdel 계정 삭제하기

usermod 사용자 계정정보 수정하기

unset 설정 변수 해제

uptime 시스템 부하 평균 확인하기

users 로그인된 사용자 확인하기

w 시스템에 접속한 사용자 상황 확인하기

wait 프로세스 기다리기

wall 모든 사용자에게 메시지 보내기

wc 문자, 단어, 라인수 세기

whatis 명령어의 간단한 설명보기

while 루프 명령어

who 사용자 확인하기

write 콘솔 상에서 간단한 메시지 보내기

xcopy 반복적으로 복사하기

ypchfn NIS에서 사용하는 chfn 명령어

ypchsh NIS에서 사용하는 chsh 명령어

yppasswd NIS에서 사용하는 passwd 명령어

zcat 압축 파일 보기

zcmp 압축 파일 비교하기

zforce 강제로 gz 만들기

zgrep 압축 상태에서 grep 실행하기

zmore 압축 상태에서 more 실행하기

[Linux] 리눅스 기본 명령어 정리 – 코딩의 성지

cd ../etc/sysconfig -> 상대 경로 이동 ( 현재 디렉토리의 상위로 이동한뒤에 다시 /etc/sysconfig 로 이동)

mkdir -p /parent/child -> 부모 디렉토리 아래 자식 디렉토리 생성, 만약 부모 디렉토리 없으면 부모도 같이 생성

ls -l /etc/sysconfig/a* -> /etc/sysconfig/ 디렉토리 안에 a로 시작하는 목록 자세히 조회

17 thg 7, 2020 — [Linux] 리눅스 기본 명령어 정리 · ls. 디렉토리내 파일 목록 나열 · cd. 디렉토리 이동 · pwd. print working directory , 현재 디렉터리의 전체경로를 …

  • Source: devkingdom.tistory.com
  • Views: 51210
  • Publish date: 53 minute ago
  • Downloads: 61705
  • Likes: 4362
  • Dislikes: 5
  • Title Website: [Linux] 리눅스 기본 명령어 정리 – 코딩의 성지
  • Description Website: 17 thg 7, 2020 — [Linux] 리눅스 기본 명령어 정리 · ls. 디렉토리내 파일 목록 나열 · cd. 디렉토리 이동 · pwd. print working directory , 현재 디렉터리의 전체경로를 …

세부 정보를 보려면 여기를 클릭하십시오.

명령어로만 얻을수있는 12가지 아이템

  • Source: Youtube
  • Views: 83346
  • Date: 11 minute ago
  • Download: 29336
  • Likes: 5131
  • Dislikes: 1

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

하이.. 리눅스에서 자주쓰는 명령어를 정래해봤따.

ls

디렉토리내 파일 목록 나열

ls -> 현재 디렉토리 파일 목록

ls /etc/sysconfig -> /etc/sysconfig 아래 디렉토리 조회

ls -a -> 숨김 파일 포함 파일 목록 조회

ls -l -> 자세히 보기

ls *.exe -> 확장자가 exe인 목록 보여줌

ls -l /etc/sysconfig/a* -> /etc/sysconfig/ 디렉토리 안에 a로 시작하는 목록 자세히 조회

cd

디렉토리 이동

cd -> 사용자의 홈 디렉토리로 이동 , 만약 root 면 /root 로

cd ~centos -> centos 사용자의 홈 디렉토리로 이동

cd .. -> 하위 디렉토리로 이동

cd /etc/sysconfig -> 절대 경로 이동

cd ../etc/sysconfig -> 상대 경로 이동 ( 현재 디렉토리의 상위로 이동한뒤에 다시 /etc/sysconfig 로 이동)

pwd

print working directory , 현재 디렉터리의 전체경로를 프린트

pwd ->현재 작업중인 디렉토리 경로 출력

rm

파일, 디렉토리 삭제

rm test.txt -> test.txt 파일 삭제 ( 내부적으로 rm -i 와 연결되어 동작)

rm -i test.txt -> 진짜 삭제할지 물어보고 삭제

rm -f test.txt -> 강제로 바로삭제

rm -r abc -> 디렉토리 삭제

rm -rf abc -> 디렉토리 하위에 있는거 전부다 삭제 (사용에 주의하자.)

cp

파일, 디렉토리 복사

cp test.txt babo.txt -> test.txt를 babo.txt라는 이름으로 바꿔서 복사

cp -r test babo -> test라는 디렉토리를 babo 라는 디렉토리에 복사

touch

파일크기가 0인 파일 생성, 이미 존재시 최종 수정기간 변경

touch test.txt

mv

파일이나 디렉토리 이름을 변경하거나 다른 디렉토리로 옮길 때 사용

mv test.txt /etc/sysconfig -> test.txt를 /etc/sysconfig 로 이동

mv a b c x -> a와 b, c 파일 /x 디렉토리로 이동

mv test.txt practice.txt -> test.txt를 practice.txt로 변경해서 이동

mkdir

디렉토리 생성, 생성된 디렉토리는 이 명령어를 수행한 사용자의 소유임

mkdir abc -> abc라는 디렉토리 생성

mkdir -p /parent/child -> 부모 디렉토리 아래 자식 디렉토리 생성, 만약 부모 디렉토리 없으면 부모도 같이 생성

rmdir

비어있는 디렉토리 삭제

rmdir abc

cat

파일 내용 출력 여러개 붙여서 나열 가능

cat a.txt b.txt

head

파일의 앞 10행 화면 출력, 출력 행 수 지정 가능

head anaconda-ks.cfg

head -5 anaconda-ks.cfg

tail

파일의 뒤 10행 화면 출력, 출력 행 수 지정 가능

tail anaconda-ks.cfg

tail -5 anaconda-ks.cfg

more

텍스트 형식의 파일을 페이지 단위로 출력 space 누르면 다음페이지 b 누르면 앞페이지로 이동 q 종료

more anaconda-ks.cfg

more +100 anaconda-ks.cfg -> 100행부터 출력

less

more 에 pgUp pgDn 기능 추가

anaconda-ks.cfg

less +100 anaconda-ks.cfg -> 100행부터 출력

file

해당파일이 어떤 파일인지 표시, 텍스트 파일 (ASCII) 인지 실행 파일 (Executable) 인지 등

file test.txt

file /usr/bin/gzip

clear

터미널 화면 지우기

clear

다들 보고 잘 사용하시길 바란다.

리눅스 기본 명령어 및 Vi 명령어 정리

리눅스 기본 명령어. ▫ 새로운 파일을 만드는 방법. (예). # vi newfile : vi 편집기 상태로 들어감. # touch newfile : 빈 파일만 생성됨.

  • Source: ivis.kr
  • Views: 69020
  • Publish date: 8 minute ago
  • Downloads: 23333
  • Likes: 5662
  • Dislikes: 6
  • Title Website: 리눅스 기본 명령어 및 Vi 명령어 정리
  • Description Website: 리눅스 기본 명령어. ▫ 새로운 파일을 만드는 방법. (예). # vi newfile : vi 편집기 상태로 들어감. # touch newfile : 빈 파일만 생성됨.

세부 정보를 보려면 여기를 클릭하십시오.

[구씨유] 라그나로크X 빠른성장 유용한꿀팁 8가지 공개

  • Source: Youtube
  • Views: 73013
  • Date: 15 minute ago
  • Download: 21869
  • Likes: 47
  • Dislikes: 6

리눅스 명령어 모음 – Diary of Schul – 티스토리

%% % 자체를 표시한다. %a 요일이름을 표시한다. (일..토) %A 완전한요일이름을 표시한다. (일요일..토요일) %b 월이름을 표시한다. (1월..12월) %B 완전한월 이름을 표시한다. (1월..12월) %c 날짜와 시간을 표시한다. (2007년 11월 14일 (수) 오전 12시 50분 16초) %C 세기를 나타낸다. (년을 100으로 나눈 몫) %d 월일 (01..31) %D 월일 (mm/dd/yy) %e 월일 (1..31) %F %Y-%m-%d 와 같다. %g 년도로 마지막 두자리만 표시 %G 년도로 모든자리 표시 %h %b 와 같다. %H 시간 (00..23) %I 시간 (01..12) %j 년일(001..366) %k 시간 (0..23) %l 시간 (1..12) %m 월 (01..12) %M 분 (00..59) %n 개행문자 %N 나노초 (000000000..999999999) %P 오전 오후 %p 오전 오후 %r 시간 (오전/오후 hh시 mm분 ss초) %R 시간 (hh시 mm분) %s UTC 기준 1970-01-01 부터 지금까지 흐른 초 %t 탭문자 %T 24시간 (hh:mm:ss) %u 주중 요일 (1..7), 1이 월요일이다 %U 1년중 몇번째 주인지, 일요일 기준 (00..53) %V 1년중 몇번째 주인지, 월요일 기준 (00..53) %w 주중 요일 (0..6), 0은 일요일 %x mm/dd/yy %X %H:%M:%S 와 동일 %Y 년도 (1970..) %Z 타임존 대한민국은 KST

-s length: 패킷들로부터 추출하는 샘플을 default값인 68Byte 외의 값으로 설정할 때 사용한다(SunOS의 NIT에서는 최소가 96Byte이다). 68Byte는 IP,ICMP, TCP, UDP등에 적절한 값이지만 Name Server나 NFS 패킷들의 경우에는 프로토콜의 정보들을 Truncation할 우려가 있다. 이 옵션을 수정할 때는 신중해야만 한다. 이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할 수 있기 때문이다. 또, 작게 잡으면 그만큼의 정보를 잃게되는 것이다. 따라서 가급적 캡춰하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다.

[[email protected] dev]# ll | grep sd lrwxrwxrwx 1 root root 4 Oct 7 21:44 root -> sda3 brw-rw—- 1 root disk 8, 0 Oct 7 21:44 sda brw-rw—- 1 root disk 8, 1 Oct 7 21:44 sda1 brw-rw—- 1 root disk 8, 2 Oct 7 21:44 sda2 brw-rw—- 1 root disk 8, 3 Oct 7 21:44 sda3 brw-rw—- 1 root disk 8, 5 Mar 22 00:53 sda5

27 thg 7, 2018 — [Linux] 리눅스 명령어 모음. 업무 중 갑자기 생각 안날 때 사용하는 리눅스 명령어 사전. Ctrl + F로 찾기. ls. -> 디렉토리 목록보기.

  • Source: schulwin.tistory.com
  • Views: 64279
  • Publish date: 14 hours ago
  • Downloads: 38778
  • Likes: 4111
  • Dislikes: 7
  • Title Website: 리눅스 명령어 모음 – Diary of Schul – 티스토리
  • Description Website: 27 thg 7, 2018 — [Linux] 리눅스 명령어 모음. 업무 중 갑자기 생각 안날 때 사용하는 리눅스 명령어 사전. Ctrl + F로 찾기. ls. -> 디렉토리 목록보기.

세부 정보를 보려면 여기를 클릭하십시오.

벌시뮬 디지털 벌 공짜로 얻는법?! 모든 신화 에그 \u0026 별의 알 전부 질렀습니다 ㅋㅋㅋㅋㅋㅋ [벌떼 시뮬레이터 비스마스 코드]

  • Source: Youtube
  • Views: 63311
  • Date: 20 minute ago
  • Download: 9243
  • Likes: 4174
  • Dislikes: 2

리눅스 명령어 모음

[Linux] 리눅스 명령어 모음

업무 중 갑자기 생각 안날 때 사용하는 리눅스 명령어 사전

Ctrl + F로 찾기

ls

-> 디렉토리 목록보기

ls [option] [directory/File]

옵션

-l : 자세히 출력

-n : numberic(숫자로) UID, GID

-d : 자기자신(디렉토리) 출력

-a : 숨김파일, 숨김 디렉토리 출력

-r : 정렬순서를 내림차순으로 출력

-R : 지정된 디렉토리에서 하위 디렉토리와 파일 모두 출력

-F : 파일형식을 기호로 나타냄 /: directory, 없음: 파일, @: 바로가기(symbolic link file), *: 실행파일

-h : 사람이 읽기 쉬운 크기로 출력

-s : 파일 크기를 기준으로 가장 큰 파일부터 정렬하여 출력

-t : 파일을 시간순으로 출력하여 최근 파일이 먼저 출력

-1 : 한줄에 하나의 파일을 출력

mkdir

-> 디렉토리 생성 명령어

옵션

-p : 하위경로까지 포함하여 생성

-m : 디렉토리의 접근권한 설정

-v : 디렉토리 생성시 메시지 출력

mount

-> 현재 마운트 상태 확인

H/W <--- driver ---> S/W <---> 사람

Driver : 중간역할(인식) : mount, 마운트하지 않으면 OS가 H/W 인식 불가

옵션

-v : 자세한 내용 출력

-f : 실제 마운트하지 않고 마운트할 수 있는지 점검

-r : 읽기만 가능 = -o ro

-w : 읽기/쓰기 가능 = -o rw

-t : 파일시스템 타입 지정(ext3, xfs, ext4, iso9660 …)

-o : 마운트 옵션을 적는다

–bind olddir newdir : 파일의 본래 위치에서 사용하면서 동시에 다른 위치에 파일 구조의 일부분을 다시 마운트 할 수 있게 함. (= olddir의 내용물을 newdir에서도 사용 가능)

마운트 옵션

Defaults rw, suid, dev, auto, nouser, async 옵션을 포함

Async 파일시스템에 대한 입출력이 비동기적으로 이루어짐

Auto -a 옵션으로 마운트 가능

Dev 파일시스템의 문자, 블록 특수장치 해석

Exec 바이너리 실행허가

Noauto -a 옵션(/etc/fstab에 있는 항목 마운트)으로 마운트 불가

Noexec 바이너리 실행 불허

Nosuid set-UID, set-GID 무시 !!사용주의 : 일부 명령어 사용불가 ex) su

Nouser 일반사용자 마운트 못함

Remount 이미 마운트된 파일시스템 재마운트 !!사용주의 : 기존께 다 날아간다…

Ro 읽기전용

Rw 읽기/쓰기

Suid set-UID, set-GID 사용

Sync 파일시스템 입출력 동기화

User 일반사용자 마운트 가능

df

-> 마운트된 hdd의 남은 용량 확인

옵션

-a : 0블록의 파일시스템을 포함(sysfs, proc), 모든 filesystem 출력

-h : 사람이 읽을 수 있는 형태로 출력

-i : i-node의 남은공간, 사용공간, 사용% 출력

-l : 출력 목록을 로컬로 제한 (nfs, isci 볼륨 등 제외)

-H : -h와 비슷하나, 1KB=1,024 Bytes 대신 1,000단위로 표시

-t : 보여주는 목록을 TYPE 제한 !!root 권한 필요 ex) -t = TYPE

-x : -t와 반대, 지정한 TYPE을 제외하고 출력 ex) -x = TYPE !!root 권한 필요

egrep

-> 동일파일에서 여러 단어를 찾을 때 편리 [정규 표현식, 확장 표현식을 사용]

Egrep [-chilnvw] ‘pattern’ file_name

옵션

-c : 파일이름 다음에 패턴이 있는 라인수 표시

-h : 파일이름 출력X

-i : 대소문자 구별X

-l : 매칭되는 라인이 있는 파일이름을 한번만 출력

-n : line number를 붙힘

-v : 패턴없는 라인만 출력

-w : 패턴 자체가 완전한 단일로 독립시만 글자 인식

-f : -f FILE, 파일로부터 패턴을 얻는다.

-e : -e PATTERN, 매칭할 패턴을 사용

=> or 검색은 되나 and 검색은 pipe 사용

Ex1) ABC와 XYZ가 포함된 line 검색(AND)

Egrep “ABC”*.dat | egrep “XYZ”

Ex2) ABC 포함 혹은 XYZ가 포함(OR)

Egrep “ABC|XYZ”*.dat

Ex3) ABC는 포함되어 있으나 XYZ가 없는 라인검색(XAND)

Egrep “ABC”*.dat | egrep -v “XYZ”

grep

옵션

-A100 “패턴” <파일> : 패턴이후 100라인만큼 출력

-B100 “패턴” <파일> : 패턴이전 100라인만큼 출력

ps

-> 프로세스 상태 확인(process status 약자), aux, ef 옵션을 자주 사용

옵션

-l : 자세한 정보 출력 (=-f)

-u : 각 프로세스 사용자 이름/시간

-j : 작업 중심형태

-s : 시그널 중심형태

-v : 가상메모리 중심형태

-m : 메모리정보 출력

-a : 다른 사용자의 프로세스도 출력

-x : 로그인 상태동안 아직 미완료된 프로세스 출력

-S : 차일드 CPU 시간/메모리 페이지 결함(fault) 추가

-c : 커널 task_structure로부터 명령이름 출력

-e : 환경 출력

-w : 긴(wide) 형태로 출력

-h : 헤더 미출력 (PID, TTY, STAT 등…)

-r : 현재 실행중인 프로세스

-n : USER와 WCHAN을 위해 수치 출력

-o : 상태바를 지정하여 출력 가능(원하는 상태바만 sort)

상태바 설명

USER : 프로세스 사용 user

UID : 사용자 ID

PID : 프로세스 ID

RSS : 프로세스가 사용하는 실제 메모리 양

VSZ : 가상 메모리에 적재된 프로세스의 KB단위 크기

COMMAND : 명령어

S : 프로세스나 커널 쓰레드의 상태

SIZE : 가상 이미지의 크기

SZ : 프로세스의 자료와 스택 크기

STAT : 실행되고 있는 프로세스의 상태

TIME : 현재까지 사용된 cpu 시간

TT : 프로세스 제어 터미널

%CPU : cpu 시간 백분율

%MEM : 마지막 1분 동안 프로세스가 사용한 메모리의 점유율

START : 시작시간

STAT : 상태

CMD : 사용자가 실행한 명령 이름

ADDR : 프로세스 스택의 세그먼트 번호

BND : 커널 스레드가 바인드되는 프로세스의 논리 프로세스 번호 (-o 옵션)

F : 프로세스 및 쓰레드에 관련된 항목

LIM : 메모리에 대한 소프트 한계와 관련된 항목

NI : 프로세스의 nice값, 낮을수록 CPU 시간이 높다

PRI : 프로세스 스케줄링 우선순위, 낮을수록 우선순위가 높다.

STIME : 프로세스의 시작시간

TRS : 텍스트의 실제 메모리 크기

TTY : 연결되어 있는 터미널

WCHAN : 프로세스에 거주하는 커널함수

프로세스 상태(STAT)

P : 수행가능/수행 중

T : 일시정지

D : 디스크 입출력 대기

S : 20초미만의 짧게 잠듦(sleep)

I : 20초이상 길게 잠듦(idle)

Z : 프로세스가 사라질 때 시그널 처리 문제로 완전히 소멸되지 못함

아래는 STAT 필드의 상태를 설명한 내용이다.

-D : 디스크 입출력 대기 상태로 interrupts를 걸 수 없는 상태

-R : 실행중

-S : 짧은 sleep 상태

-T : 정지상태

-Z : 좀비상태

-W : 상주한 페이지가 없는 프로세스

–< : 높은 우선권 프로세스 -N : 낮은 우선권 프로세스 -L : 페이지가 락이 걸린 상태 awk -> 입력파일($1 $2 $3)을 읽어 지정된 패턴과 일치하는 패턴을 매칭시켜 해당라인을 찾는 역할 + 패턴 일치시 연산도 수행

Awk [-f 프로그램파일] [-F 필드구분자] [‘패턴 {액션}’] [처리할 파일명]

Ex) awk -F ‘:’ ‘{print $1 $6}’ ./text.txt

Text.txt 파일에서 “:” 구분자를 이용하여 1,6번째 필드 프린트

* 마지막 칼럼 출력

awk ‘{print $NF}’ 파일

* 마지막 이전 칼럼 출력

cat 파일명 | awk ‘{print $(NF-1)}’

* 마지막 2개 칼럼 출력

awk ‘{print $(NF-1)”\t”$NF}’ 파일

* 수식 사용 ( 구분자 ‘tab’ 사용하여 2번째 필드=1 & 3번째 필드>=1 & 4번째 필드<=10 인 값을 test 파일에서 출력 awk -F '\t' '{if($2==1 && $3 >= 1 && $4 <=10) print }' test top -> 시스템의 전반적인 상황 실시간 모니터링

* top [옵션]

* 옵션

-a : 메모리 사용에 따라 정렬

-b : 배치 모드에서 시작

-c : 명령어 대신 명령어 라인을 보여줌

-d : 업데이트 간격을 조정

-h : 도움말

-H : 모든 개별 쓰레드가 보여짐

-i : 좀비(zombie) 또는 Idle 상태의 것들은 무시됨

-m : VIRT 대신 USED를 보고

-M : 메모리 유닛(K/M/G)을 보여줌

-n : 반복의 최대 수를 지정

-P : 지정된 프로세스 ID들만 보여줌

-s : 보안 모드로 시작

-S : 누적 시간 모드로 시작. 활성화되면 각 프로세스는 CPU를 사용한 시간과 함께 출력

-u : 지정된 유효 사용자에 의한 프로세스만 보여줌

-U : 지정된 사용자에 의한 프로세스만 보여줌. 사용자는 실제, 유효한, 저장된 및 파일시스템 UID를 의미

-v : 프로그램 라이브러리 버전을 출력

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

* PID : 프로세스 ID (PID)

* USER : 프로세스를 실행시킨 사용자 ID

* PRI : 프로세스의 우선순위 (priority)

* NI : NICE 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.

* VIRT : 가상 메모리의 사용량(SWAP+RES)

* RES : 현재 페이지가 상주하고 있는 크기(Resident Size)

* SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.

* S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]

* %CPU : 프로세스가 사용하는 CPU의 사용율

* %MEM : 프로세스가 사용하는 메모리의 사용율

* COMMAND : 실행된 명령어

free

-> 시스템의 메모리 정보를 출력

* free [옵션]

* 옵션

-b : 메모리의 양을 바이트로 표시한다.

-k : 메모리의 양을 Kb로 표시한다.

-m : 메모리의 양을 Mb로 표시한다.

-t : 총 합을 표시한다.

-o : 버퍼 정보를 출력하지 않는다.

-s : 지정된 시간마다 계속해서 출력한다.

-V : 버전 정보를 출력한다.

w

-> 현재 접속중인 사용자들의 정보를 보는 명령어, 사용자의 작업내용을 출력

w 명령어로 알 수 있는 정보.

– 서버의 현재 시각 정보

– 서버의 부팅한 이후의 시스템 작동 시간

– 서버 접속자의 총 수

– 접속자 별 서버 평균 부하율 정보

– 접속자 별 서버 접속 계정명

– 접속자 별 접속 TTY 명

– 접속자 별 접속한 IP명

– 접속자 별 로그인 시각 정보

– 접속자 별 CPU 사용 정보 ( JCPU, PCPU 정보 )

– 접속자별 현재 사용 명령어 정보

w [옵션] [사용자]

* 옵션

-f : 원격에서 접속한 호스트명은 출력하지 않음

-h : 각 필드에 대한 헤더 정보를 출력하지 않음

-s : 간략한 형식으로 정보를 출력

-V : 버전 정보를 출력

vmstat

-> 프로세스, 메모리, 페이징, I/O블럭, CPU 활동사항 정보 출력

procs 영역 b필드 : I/O 작업을 위한 cpu가 계속 대기 -> 디스크 I/O 문제 확인

so필드 : 스왑아웃 -> 메모리 부족 의심

* proc 필드

r : cpu 접근 대기 중인 실행 가능한 프로세스 수

b : I/O 자원을 할당 받지 못해 블록 된 프로세스의 수

* memory 필드

swapd : 사용된 가상 메모리의 용량

free : 사용가능한 여유 메모리의 용량

buffer : 버퍼에 사용된 메모리의 총량

cache : 페이지 캐시에 사용된 메모리의 용량

* swap 필드

si : swap-in 된 메모리의 양 (kb)

so : swap-out 된 메모리의 양 (kb). 스왑 아웃이 지속적으로 발생하였다면 메모리 부족을 의심 해 볼수 있습니다.

* I/O 필드

bi: 블록 디바이스로 부터 입력 블록수

bo: 블록 디바이스에 쓰기 블록수

* system 필드

in : 초당 발생한 interrupts의 수

cs : 초당 발생한 context switches(문맥교환) 수

* CPU 필드

us : CPU가 사용자 수준 코드를 실행한 시간(단위%)

sy : CPU가 시스템 수준 코드를 실행한 시간(단위(%)

id : idle 시간

wa : IO wait 시간

vmstat [-V] [-n] [delay [count]]

-V vmstat의 버젼을 보여준다

-n 주기적으로 헤더를 출력하지 않고 단한번만 헤더 정보를 출력하게 지정한다.

-a buff와 cache 대신 active와 inactive 메모리 사용량을 출력해준다.

———–memory———– ———–memory———-

swpd free buff cache ====> swpd free inact active

0 55024 85088 719004 0 54900 616916 263876

-d 각 영역 별 디스크 사용량을 보여준다.

-D 전체 디스크 통계를 보여주고, 단 한번만 결과를 출력해준다.

소문자 d 와 대문자 D 의 차이점은 d는 각 디스크별 결과를 제공하지만 D는 전체 디스크의 합이라고 보면 된다.

-p diskpartition 지정한 디스크 파티션에 대한 통계 정보를 확인 할 수 있다.

-s 부팅 시작부터 os상에서 수행된 이벤트와 메모리 사용량에대한 통계를 단 한번 출력해준다.

-m slab에 대한 정보를 출력한다. 이 명령은 delay를 지정하면 지정된 간격으로 결과를 출력하며 -n 옵션 사용 시 결과 내 딱 한 헤더를 출력한다.

-S unit-size 출력되는 데이터의 단위를 지정할 수 있다. 단위는 k, K, m, M 4가지가 있고,

각각 k:1000, K:1024, m:1000000, M:1048576 으로 나눈 값을 출력해준다.

delay [count] 결과의 출력 주기를 의미한다. 이 값을 지정하지 않으면 한번만 수행되고 종료된다.

sar

1. sar 명령으로 확인할 수 있는 내용

– I/O 전송량

– 페이징

– 프로세스 생성 숫자

– 블락 디바이스 활동

– 인터럽트

– 네트워크 통계

– run 큐 및 시스템 부하 평균

– 메모리와 스왑 공간 활용 통계

– 메모리 통계

– CPU 이용도

– 특정 프로세스에 대한 CPU 이용도

– inode, 파일, 기타 커널 테이블에 대한 상태

– 시스템 스위칭 활동(context switch)

– 스와핑 통계 – 특정 프로세스 통계

– 특정 프로세스의 자식 프로세스 통계

– TTY 디바이스 활동

2. sar 옵션

sar -A : 모든 정보를 출력

%user : 사용자 레벨(application level)에서 실행중일때의 CPU 사용률

%nice : 사용자 레벨(appliaction level) 에서 nice 가중치를 준 CPU 사용률

%system : 시스템레벨(kernel) 에서 실행중일때의 CPU 사용률(%)

%iowait : system이 I/O요청을 처리하지 못한 상태에서의 CPU의 idle 상태인 시간의 비율

%steal : virtual processer에 의한 작업이 진행되는 동안 virtual CPU에 의해 뜻하지 않는

대기시간이 생기는 시간의 비율

%idle : CPU가 쉬고있는 시간의 비율

sar 5 2 : 5초 간격으로 2회 수행

sar -b : 버퍼의 activity를 점검하여 I/O와 transfer의 통계를 출력

tps: 물리적 디스크에서 발생한 초당 전송량이며,

여기서의 전송은 물리적 디스크에 요청한 I/O

rtps: 물리적 디스크로부터 발생된 초당 읽기의 총 요청 횟수.

bread/s: 드라이브 안의 블럭에서 초당 읽은 데이터의 총합.

bwrth/s: 드라이브 안의 블록에서 초당 쓰여진 데이터의 총합.

sar -r : 가용메모리 점검 및 메모리 공간 통계 출력

sar -R : 메모리 통계 보기

frmpg/s : 시스템에서 초당 자유로워진 memory pages 의 양 페이지의 크기는 시스템 아키텍쳐

에따라 달라지며 보통 4K / 8K 임.

bufpg/s : 시스템에서 초당 buffer 에 추가적으로 더해진 memory pages 의 양

campg/s : 시스템에서 초당 system에 의해 cache된 memory pages 의 양

echo

-> 리눅스 명령어 echo는 주어진 문자열을, 문자열 사이에 포함된 공백과 줄 마지막에 개행문자를 포함하여 표준출력으로 출력하는 명령어다.

echo [옵션]… [문자열]…

-n : 마지막에 따라오는 개행 문자(newline) 문자를 출력하지 않음

-e : 문자열에서 역슬래시(\)와 조합되는 이스케이프 문자(escape sequence)를 인용

find

-> 사용법 : find [검색대상위치] [옵션] [수행할작업] [옵션]

-empty : 비어 있는 파일, 단 일반파일 또는 일반 디렉토리에 한함

-uid n : 지정된 n값의 UID를 갖는 파일

-gid n : 지정된 n값의 GID를 갖는 파일

-group 그룹명 : 지정한 그룹명에 소속된 파일

-name : 지정된 형식의 패턴을 가지는 파일

-newer 파일 : 지정한 파일보다 더 최근에 변경된 적이 있는 파일

-used n : 파일이 변경된 이후 최근 n일 이후에 액세스된 적이 있는 파일

-user uname : 지정한 uname의 소유로 된 모든 파일(UID로 지정가능)

-amin n : 최근 n분 이전에 액세스된 적이 있는 파일

-anewer 파일 : 지정한 파일보다 더 최근에 액세스된 적이 있는 파일

-atime n : 최근 n*24 시간 전에 액세스된 적이 있는 파일

-mmin n : 최근 n분 이전에 변경된 적이 있는 파일

-mtime n : 최근 n*24 시간 이전에 변경된 적이 있는 파일

-executable : 실행 가능한 파일

-readable : 읽기 가능한 파일

-writable : 쓰기 가능한 파일

-fstype type : 지정한 파일시스템타입(type)에 존재하는 파일

-nogroup : 소속그룹이 존재하지 않는 파일

-nouser : 소속 사용자(ID)가 존재하지 않는 파일

-path 패턴 : 파일명이 패턴에 매칭되는 파일

-perm 모드 : 모드에서 지정된 퍼미션과 일치하는 퍼미션을 가진 파일만 해당됨.

-perm -mode : 모드에서 지정된 퍼미션을 가진 모든 파일.

-regex 패턴 : 패턴에서 지정한 정규표현식에 매칭되는 파일

-size n[cwbkMG] : 지정된 n 단위의 디스크공간을 사용하는 파일. 디폴트는 b

-type 타입 : 지정한 파일타입에 해당하는 파일. b,c,d,p,f,l,s 등이 있음

위의 n 값은 +n 은 n 보다 큰 값을 의미하고, -n 은 n 값보다 작은 값을 의미하며, n 은 정확하게 n 값만을 의미한다.

[수행할작업(action)]

-delete : 검색된 파일들을 삭제

-exec command ; : 지정한 command 를 실행

-exec command {} + : 검색된 파일들을 차례대로 매칭하면서 지정된 command 를 수행

-ls : ‘ls – dils’ 를 수행

-ok command ; : -exec 와 같지만 실행하기 전에 먼저 사용자에게 표준입력으로 수행할 command 를 입력 받는다. 만약 입력이 없다면 지정된 command 를 수행한다.

-print : 검색된 파일들에 대하여 전체파일 경로로 파일리스트를 표준출력으로 출력한다.

-printf format : 검색된 파일들에 대하여 지정된 format 형식으로 표준출력으로 출력

[연산자]

( ) : 괄호( )안의 연산이 먼저 행해짐

! expr : expr 이 거짓일때 참, 참일때 거짓이 됨.

-not expr : 위의 ! expr 과 동일함 (POSIX 호환용)

expr1 expr2 : AND 의 의미. expr1 이 거짓일 때에는 expr2 는 평가되지 않음

expr1 -a expr2 : ‘expr1 expr2’ 와 같음

expr1 -and expr2 : ‘expr1 expr2’ 와 같음 (POSIX 호환용)

expr1 -o expr2 : OR 의 의미. expr1 이 참일 경우 expr2 는 평가되지 않음.

expr1 -or expr2 : ‘expr1 -o expr2′ 와 같은 의미

chmod

사용법

chmod [options] mode[,mode] file1 [[file2 …]]

옵션

-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.

-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 권한에 대해서 자세히 기술한다.

-R : 하위 디렉토리 권한을 재귀적으로 모두 바꾼다. ※제일 많이 쓰이는 옵션이다.

r(read 읽기), w(write 쓰기), x(execute 실행)의 3가지 권한이 있다.

읽기, 쓰기, 실행 등의 모든 권한을 주려면, 4+2+1, 따라서 합계 7이된다.

만약 모든 그룹의 권한을 다 허용해 줄 경우, 777이 된다.

대상

u : user의 권한 g : group의 권한 o : other의 권한 a : 모든 사용자 권한

+/-/=+ : 해당 권한을 추가한다.

– : 해당 권한을 제거한다.

= : 해당 권한을 설정한대로 변경한다.

sort

옵션

정렬 옵션-b: 선행 공백 무시한다.

-f: 영어 소문자를 대문자로 처리한다. 즉, 대소문자 구별안한다.

-n: 비교 대상을 텍스트내의 숫자로 한정하여 정렬한다.

-R: 해시의 키값 기준으로 랜덤하게 정렬한다.

-r: 비교 결과를 역순(내림차순)으로 정렬한다.

확장 옵션 -c: 파일이 정렬되어 있는지 검사한다.

-k n: n번째 필드를 기준으로 정렬한다.

-m: 이미 정렬된 파일들을 병합한다. (정렬은 하지 않는다.)

-o: 표준 출력 대신 저장할 파일명을 명시한다.

-t: 필드 구분자를 지정해준다. (기본 구분자는 공백이다.)

-u: 정렬 후 중복된 내용을 제거한다.

sort 사용 예)

현재 디렉터리를 파일 크기에 따라 정렬하기

$ ls -s | sort -n 96 Nov1.txt 128 _arch_backup.lst 128 _arch_backup.lst.tmp1708 NMON

알파벳 순서로 파일 정렬하기

$ cat phonebookSmith, Brett 555-4321Doe, John 555-1234Doe, Jane 555-3214Avery, Cory 555-4321Fogarty, Suzie 555-2314

$ sort phonebookAvery, Cory 555-4321Doe, Jane 555-3214Doe, John 555-1234Fogarty, Suzie 555-2314Smith, Brett 555-4321

숫자로 정렬하기

-n 옵션은 프로그램이 숫자값에 따라 정렬되도록 만든다:

$ du /bin/* | sort -n4 /bin/domainname24 /bin/ls102 /bin/sh304 /bin/csh

$ cat zipcodeAdam 12345Bob 34567Joe 56789Sam 45678Wendy 23456

$ sort -nk 2 zipcodeAdam 12345Wendy 23456Bob 34567Sam 45678Joe 56789

파이프로 한정된 파일 정렬하기

$ sort -t’:’ -k2 zipcodeAdam|12345Wendy|23456Bob|34567Sam|45678Joe|56789

반대로 정렬하기-r 옵션은 단순히 정렬하기 순서를 반대로 뒤집는다:

$ sort -nrk 2 zipcodeJoe 56789Sam 45678Bob 34567Wendy 23456Adam 12345

uniq

#uniq [옵션] [파일명]

-c : 중복횟수를 중복 행과 함께 보여준다.

-D : 중복되는 모든 행을 출력합니다.

-u : 중복되지 않는 행만 출력합니다.

-d : 중복되는 행만 출력합니다.

-i : 행 비교시 대소문자 구별을 하지 않는다.

-s수 : 한행에서 지정된 수만큼 문자를 비교대상에서 제외한다.

-f수 : 맨 앞에서부터 지정된 수만큼 필드를 비교대상에서 제외한다.

-w수 : 비교대상 문자수를 지정

예)한 예로 어떤 파일에 중복되는 내용의 행을 정렬하고 중복횟수를 세어 오름차순 정리한다면,

$ sort file | uniq -c | sort -n 위와 같이 적용하면 된다. 셸 스크립트에서 파이프라인을 삽입하여 uniq를 sort와 함께 실행하는 것이다. 여기서 주의해야 할 점은 uniq는 파일 내용이 미리 정렬되어 있는 상태에서 실행할 수 있다.

$ cat fruits.txtorangeappleappleorangeorangeapple

$ uniq -c fruits.txt1 orange2 apple2 orange1 apple

정렬이 이루어지지 않은 상태에서 uniq를 적용하였기에 위와 같은 결과를 얻을 수 있다.

$ sort -u fruits.txtappleorange

이것은 파일내용을 정렬시켜 중복되는 것을 하나로 표현하는 것이다. 결론적으로 uniq는 파일에 전체적으로 분산된 중복을 한번에 잡아내지 못한다. 따라서 정렬하여 순차적으로 만든 뒤에 적용한다.

du

1. 기능

du 는 Disk Usage를 의미하며, 지정된 디렉토리의 디스크 사용량을 표시하는 명령어 입니다.

2. 형식

# du [ 옵션 ] [ 파일 ] [ 디렉토리]

3. 옵션

-a : 디렉토리가 아닌 모든 파일에 대한 정보를 출력

-k : 결과 값을 KB 단위로 출력(기본값)

-m : 결과 값을 MB 단위로 출력

-h : 사용자가 이해하기 쉬운 용량의 단위(KB,MB,GB)를 표시(1M를 1,048,576단위로 계산)

-H : 사용자가 이해하기 쉬운 용량의 단위(KB,MB,GB)를 표시(1M를 1,000,000단위로 계산)

-i : i-node의 사용정보를 표시함

-l : 하드 링크의 용량을 모두 계산함

-s : 사용량의 총 합계만 출력 함

-S : 하위 디렉토리를 합치지 않고, 각각을 나누어서 계산하며

지정된 디렉토리 내의 파일과 모든 하위 디렉토리의 용량, 내용까지 볼 수 있음.

-T : 각 파일시스템들이 사용하고 있는 파일시스템 종류를 추가로 표시해 줌

4. 기타 사용예)

1). 디스크사용량을 출력할 때에 파일시스템의 종류와 함께 표시하기

# df -T

2). 디렉토리별로 집계해서 용량순으로 표시하기

# du -S | sort -n

3). 지정한 디렉토리만 표시하기

# du -h -s 디렉토리

4). GB이상의 디렉토리를 표시하기

# du -h | grep [0-9]G

uname

지정된 시스템 정보를 출력한다. 옵션이 없을 경우 -s옵션과 같은 결과를 보여준다. -a, –all 모든 정보를 보여준다. 아래의 모든 옵션을 사용한 것과 동일한 효과

-s, –kernel-name 커널 이름을 출력한다.

-n, –nodename 네트워크 노드에서의 호스트 이름을 출력한다.

-r, –kernel-release 커널 release 번호를 출력한다.

-v, –kernel-version 커널 버전번호를 출력한다.

-m, –machine 하드웨어 이름을 출력한다.

-p, –processor 프로세서 타입을 출력한다.

-i, –hardware-platform 하드웨어 플렛폼정보를 출력한다.

-o, –operating-system 운영체제 정보를 출력한다.

# uname -aLinux yundream-desktop 2.6.15-27-386 #1 PREEMPT Sat Sep 16 01:51:59 UTC 2006 i686 GNU/Linux

stat

-> stat명령을 이용하면 atime, mtime, ctime 정보를 동시에 확인할 수 있다.

atime : 파일접근시간(파일open시 갱신)

ctime : 파일권한,파일크기 변경시 ctime 갱신

mtime : 파일수정시간(mtime 변경시(파일내용 수정시) ctime,atime 모두 변경)

형식 : stat [OPTION] FILE…

access : 해당 파일을 실행한 시점

change : 해당 파일의 소유권 및 퍼미션이 변경된 시점

modify : 해당 파일의 내용이 변경된 시점

-l : 링크 파일의 소스 파일 정보를 보여준다.

-f : 파일명이 있는 파일시스템의 정보를 보여준다.

-v : 버전 정보

-t : 간략한 정보

%a Access rights in octal

%A Access rights in human readable form

%b Number of blocks allocated (see %B)

%B The size in bytes of each block reported by %b

%d Device number in decimal

%D Device number in hex

%f Raw mode in hex

%F File type

%g Group ID of owner

%G Group name of owner

%h Number of hard links

%i Inode number

%n File name

%N Quoted file name with dereference if symbolic link

%o I/O block size

%s Total size, in bytes

%t Major device type in hex

%T Minor device type in hex

%u User ID of owner

%U User name of owner

%x Time of last access

%X Time of last access as seconds since Epoch

%y Time of last modification

%Y Time of last modification as seconds since Epoch

%z Time of last change

%Z Time of last change as seconds since Epoch

Valid format sequences for file systems:

%a Free blocks available to non-superuser

%b Total data blocks in file system

%c Total file nodes in file system

%d Free file nodes in file system

%f Free blocks in file system

%C Security context in SELinux

%i File System ID in hex

%l Maximum length of filenames

%n File name

%s Block size (for faster transfers)

%S Fundamental block size (for block counts)

%t Type in hex

%T Type in human readable form

***파일 접근시 atime변경이 되지 않는 이유

https://www.lesstif.com/pages/viewpage.action?pageId=20776621

-> 요약 : 일반적으로 웹서버 등 File IO가 많이 일어나는 경우, File에 대한 read 연산이많이 일어나게 된다. 이때 IO성능저하를 유발할 수 있으므로 mount 시 noatime 옵션을 준다.kernel 2.6.30 부터는 realtime(파일 status 변경시, mtime보다 atime이 예전일 시만 atime 기록)을 기본옵션으로 탑재한다. /etc/fstab을 확인해보자!

ngrep

-> ngrep은 접속 호스트별, 포트별, 장비별 패킷 확인이 가능하다.

사용법ngrep [옵션] [매칭할 패턴] [ BPF 스타일 Filter ]

옵션

-t : 시간도 함께 표시

-x : 16진수와 함께 표시

-d device : 디바이스를 지정할 때

-i : 대소문자를 무시한다.

– 특정 IP의 80 포트로 통신하는 패킷 확인 방법

# ngrep -v -qt host 123.123.123.124 and port 80 – 오라클(특정 포트 : 1521)로 전송되는 SQL 등을 확인할 때# ngrep -qx dest port 1521

– 특정 IP의 80 포트를 제외한 패킷 확인 방법

# ngrep -v -qt host 123.123.123.124 and not port 80

fake.pcap 에서 GET 이 들어가 있는 문구를 찾는다.

# ngrep -I fake.pcap GET

-x 옵션은 ASCII 뿐만 아니라 HEX 형태로도 출력을 보여주는 것이고 -X 는텍스트 패턴 매칭이 아니라 HEX 값으로 패턴 매칭을 해준다.

# ngrep -I fake.pcap -xX ‘0x4d5a’ port 80

이외 정규 표현식을 사용하여 효과적으로도 쓸수 있는데, 아래 예는 GET, POST, HEAD, CONNECT가 들어가 있는 패턴만을 찾는 것이다. 찾을때는 -d 옵션으로 디바이스인 eth0 을 지정했다.

# ngrep -qd eth0 ‘^(GET|POST|HEAD|CONNECT)’ ‘tcp’

이외 -O 옵션을 통해 pcap 파일로 저장이 가능하다.

# ngrep -O test.pcap port 80

* 특정 IP로 오가는 패킷중 80포트는 재외

# ngrep -v -qt host IP and not port 80

* Codered 패킷을 볼 때

# ngrep -iqt ‘default.ida’ port 80

* 특정 호스트로 오고가는 메일, FTP, 텔넷 작업 확인

# ngrep -qx host IP and port 25 or port 110 or port 21 or port 23

* 오라클 리스너로 가는 패킷 확인 (프로그램에서 던져지는 SQL문 확인시 유용)

# ngrep -qx dst port 1521

– 특정 패턴이 있는 패킷만 스니핑 할 수도 있습니다.

# ngrep ‘HTTP’ -d eth0 -t port 80

tcpdump

Tcpdump의 옵션들

-a : Network & Broadcast 주소들을 이름들로 바꾼다.

-c Number : 제시된 수의 패킷을 받은 후 종료한다.

-d : comile된 packet-matching code를 사람이 읽을 수 있도록 바꾸어 표준 출력으로 출력하고, 종료한다.

-dd : packet-matching code를 C program의 일부로 출력한다.

-ddd : packet-matching code를 숫자로 출력한다.

-e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다. 즉 맥어드레스를 함께 출력한다.

-f : 외부의 internet address를 가급적 심볼로 출력한다(Sun의 yp server와의 사용은 가급적 피하자).

-F file : filter 표현의 입력으로 파일을 받아들인다. 커맨드라인에 주어진 추가의 표현들은 모두 무시된다.

-i device : 어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다. 지저되지 않으면 시스템의 인터페이스 리스트를 뒤져서 가장 낮은 번호를 가진 인터페이스를 선택한다(이 때 loopback은 제외된다).

-l : 표준 출력으로 나가는 데이터들을 line buffering한다. 다른 프로그램에서 tcpdump로부터 데이터를 받고자 할 때, 유용하다.

-n : 모든 주소들을 변환하지 않는다(port, host address 등등) 이것은 DNS lookup을 피할 수 있다.

-nn : protocol 과 port를 이름으로 변환하지 않는다.

-N : 호스트 이름을 출력할 때, 도메인을 찍지 않는다.

-O : packet-matching code optimizer를 실행하지 않는다. 이 옵션은 optimizer에 있는 버그를 찾을 때나 쓰인다.

-p : 인터페이스를 promiscuous mode로 두지 않는다.

-q : 프로토콜에 대한 정보를 덜 출력한다. 따라서 출력되는 라인이 좀 더 짧아진다.

-r file : 패킷들을 ‘-w’옵션으로 만들어진 파일로 부터 읽어 들인다. 파일에 “-” 가 사용되면 표준 입력을 통해서 받아들인다.

-s length: 패킷들로부터 추출하는 샘플을 default값인 68Byte 외의 값으로 설정할 때 사용한다(SunOS의 NIT에서는 최소가 96Byte이다). 68Byte는 IP,ICMP, TCP, UDP등에 적절한 값이지만 Name Server나 NFS 패킷들의 경우에는 프로토콜의 정보들을 Truncation할 우려가 있다. 이 옵션을 수정할 때는 신중해야만 한다. 이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할 수 있기 때문이다. 또, 작게 잡으면 그만큼의 정보를 잃게되는 것이다. 따라서 가급적 캡춰하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다.

-T type : 조건식에 의해 선택된 패킷들을 명시된 형식으로 표시한다. type에는 다음과 같은 것들이 올 수 있다.

rpc(Remote Procedure Call), rtp(Real-Time Applications protocol), rtcp(Real-Time Application control protocal), vat(Visual Audio Tool), wb(distributed White Board)

-S : TCP sequence번호를 상대적인 번호가 아닌 절대적인 번호로 출력한다.

-t : 출력되는 각각의 라인에 시간을 출력하지 않는다.

-tt : 출력되는 각각의 라인에 형식이 없는 시간들을 출력한다.

-v : 좀 더 많은 정보들을 출력한다.

-vv : ‘-v’보다 좀 더 많은 정보들을 출력한다.

-vvv : ‘-vv’보다 좀 더 많은 정보들을 출력한다. 실제로 사용할 일은 많지 않다.

-w : 캡춰한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다.

-x : 각각의 패킷을 헥사코드로 출력한다.

# tcpdump -i eth0 => 인터페이스 eth0 을 보여줌

# tcpdump -w tcpdump.log => 결과를 파일로 저장, txt 가 아닌 bin 형식으로 저장됨

# tcpdump -r tcpdump.log => 저장한 파일을 읽음

# tcpdump -i eth0 -c 10 => 카운터 10개만 보여줌

# tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌

# tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌

# tcpdump -i eth0 src 192.168.0.1 => source ip 가 이것인 패킷 보여줌

# tcpdump -i eth0 dst 192.168.0.1 => dest ip 가 이것인 패킷 보여줌

* and 옵션으로 여러가지 조건의 조합 가능

# tcpdump -i eth0 src 192.168.0.1 and tcp port 80 => source ip 가 이것이면서 tcp port 80 인 패킷 보여줌

# tcpdump -i eth0 dst 192.168.0.1 => dest ip 가 이것인 패킷 보여줌

# tcpdump host 192.168.0.1 => host 를 지정하면, 이 ip 로 들어오거가 나가는 양방향 패킷 모두 보여줌

# tcpdump src 192.168.0.1 => host 중에서 src 가 이것인것 만 지정

# tcpdump dst 192.168.0.1 => host 중에서 dst 가 이것인것 만 지정

# tcpdump net 192.168.0.1/24 => CIDR 포맷으로 지정할 수 있다.

# tcpdump tcp => TCP 인것만

# tcpdump udp => UDP 인것만#

tcpdump port 3389 => 포트 양뱡항으로 이것인 것.

# tcpdump src port 3389 => src 포트가 이것인 것.

# tcpdump dst port 3389 => dst 포트가 이것인 것.

* combine : and ( && ) , or ( || ) , not ( ! ) 으로 여러가지를 조합해서 사용 가능

# tcpdump udp and src port 53 => UDP 이고 src 포트가 53 인 것

# tcpdump src x.x.x.x and not dst port 22 => src ip 가 x.x.x.x 이고 dst 포트가 22 가 아닌 것

* grouping : ( )# tcpdump ‘src x.x.x.x and ( dst port 3389 or 22 )’ => src ip 가 x.x.x.x 이고 ( dst 포트가 3389 또는 22 ) 인 것 ==> 여기서는 ‘ ‘ 가 반드시 있어야 한다.

서버 셧다운 명령어

1. shutdown

옵션-r : 종료 후 재부팅

-h : shutdown 이 완료된 후 시스템을 종료

-c : 진행중인 shutdown 명령을 취소

-k : 경고 메시지만 출력하고, 실제로는 shutdown 을 하지 않음

-f : 재부팅 할 때 fsck 명령어를 건너띄고, 부팅을 빠르게 진행

-n : init를 호출하지 않고, shutdown을 진행함

-t sec : 지정시간에 시스템을 재시동

shutdown의 경우 옵션을 사용하지 않으면 기본값으로 종료가 아닌 유지보수 모드로 들어가게 됩니다. shutdown now는 시스템 종료가 아닌 유지보수 모드로 들어가는 명령입니다. 아래 나오는 ‘init 1’과 동일한 명령입니다.

2. init 0 : 종료모드

1 : 단일 사용자 모드(시스템 복구 시 사용)

2 : 다중 사용자 모드 (NFS 사용 불가로 서버와 공유 안됨. 인터넷도 안됨)

3 : 다중 사용자 모드 (텍스트 로그인)

4 : 사용 안 함

5 : 다중 사용자 모드 (X윈도우 로그인)

6 : 재가동 모드(재부팅)

init 런레벨은 /etc/inittab 에 정의되어 있어 수정이 가능합니다.(실제 수정 금지)

3. halt

fdisk

a 부트 가능한 플래그로 변경

b bsd 디스크 레이블을 편집

c 도스 호환 플래그로 변경

d 파티션 삭제

l 알려진 파티션 형태의 목록

m 이 메뉴를 출력

n 새로운 파티션 추가

o 새로운 도스 파티션 테이블을 생성

p 파티션 테이블을 출력

q 변경을 저장하지 않고 종료

s 새로운 Sun 디스크 레이블을 생성

t 파티션의 시스템 id를 변경

u 표시/엔트리 단위를 변경

v 파티션 테이블을 점검

w 디스크에 테이블을 기록하고 빠져나감

옵션

-l : 현재 디스크 및 파티션 보기

mkfs

사용법 : mkfs [옵션] [장치이름]

옵션

-V : 실행되는 모든 파일 시스템 특정 명령어들을 포함하여 상세한 정보를 출력한다. 이 옵션이 한번 이상 사용되면 특정 파일 시스템을 생성하는데 사용될 프로그램의 정보만 보여주고 실질적으로 실행되지는 않는다.

-t : 생성할파일 시스템의 형식을 선택한다. ext3, xfs, reiserfs, ext2, msdos 등으로 지정하지 않으면 기본 파일 시스템인 ext3가 지정된다.

-c : 배드블럭을 조사하고 조사한 경과에 따라 배드블럭 리스트를 초기화한다.

-l : filename이라는 파일로부터 초기의 배드블럭 리스트를 읽어 들인다.

-v : 현재 진행 상황에 대해 자세히 출력한다.

fsck

fsck, e2fsck 명령어는 리눅스 파일 시스템 점검 및 복구를 할 수 있는 명령어 입니다.

e2fsck는 fsck의 확장 명령어라고 할 수 있으며 fsck 명령어에 -t 파일 시스템(ex: ext4) 옵션을 붙인 것과 동일한 명령어 입니다.

리눅스에서 사용 가능한 거의 모든 종류의 파일 시스템의 점검과 복구를 할 수 있습니다.

fsck 명령어를 사용하여 파일 시스템을 점검할 때에는 파티션을 언마운트 후 실행해야 합니다.

언마운트 하지않고 실행하면 파일 시스템에 손상이 가고 심각한 오류를 초래할 수 있습니다.

옵션

-f : 파일 시스템이 이상 유무에 상관없이 강제적으로 파일 시스템을 체크

-j : 저널링 파일 시스템을 대상으로 작업 할 때 사용 하며 필수로 해줘야 하는 옵션

-v : 점검 내역 상세 보기(ext4의 파일 시스템으로 구성된 sda2파티션을 강제로 점검하면서 상세 내역도 보는 명령)

-p : 사용자의 의견을 묻지 않고, 자동으로 파일 시스템을 체크

-y : 파일 시스템을 읽기 전용으로 열고, 수행 과정의 질문에 모두 yes라 응답하는 옵션

-n : 파일 시스템을 읽기 전용으로 열고, 수행 과정의 질몬에 모두 no 로 응답하는 옵션

rm

사용법 : rm [옵션] 파일명

-d : 하위 디렉토리 삭제

-f : 확인 없이 삭제

-i : 파일이나 디렉토리가 삭제 될 때마다 확인

-r : 하위 디렉토리를 찾아가며 삭제

-v : 삭제작업 상태를 출력

lsof

COMMAND : 실행한 명령어

PID : process id

USER : 실행한 사용자

FD: File Descriptor, 파일의 종류.

cwd: current working directory

rtd: root directory

mem : memory-mapped file

txt: program text (code and data);

TYPE: 파일 종류

DIR: 디렉터리

CHR: character special file

REG: regular file

unix: 유닉스 도메인 소켓 (MySQL 등이 사용하는 소켓으로 로컬 프로세스에서만 사용 가능하며 TCP/UDP 보다 속도가 매우 빠름)

DEVICE : 장치 번호

SIZE/OFF: 파일의 크기나 오프셋

NODE: 노드 번호

NAME: 파일명

옵션

-u : 특정사용자 지정

-n : 호스트이름 대신에 IP address를 출력한다.

-i [TCP/UDP:PortNumber] : 해당 프로토콜의 포트를 사용하는 프로세스 정보 확인

-p PID : 해당 PID가 오픈한 파일 표시

-c 명령어 : 특정 명령어가 열은 파일 보기

+D 디렉토리 : 티렉토리 하위의 열린 파일을 표시

/proc

/proc/cpuinfo : CPU 정보

BegoMIPS는 MIPS 정보를 보여준다. 즉 현재 CPU는 719.25 MIPS란 의미이며 다 알겠지만 초당 719.25 백만개의 명령어를 실행할 수 있다는 의미이다.

이 외에도 Cache 메모리와 관련된 정보나 Board 정보도 간단하게 확인이 가능하다.

/proc/devices : 시스템이 사용하는 디바이스 정보

크게 Char형 장치와 Block형 장치로 구분하여 보여줌을 알 수 있다.

앞에 숫자는 디바이스 드라이버의 Major 넘버이다. 현재 시스템에서 사용하는 디바이스 드라이버들은 /dev 에서 관리하는데 위의 정보와 /dev 정보를 비교해 보면 같다는 것을 알수 있다. (Minor 넘버까지 표시되므로 dev 내용이 더 많기는 하다)

/proc/filesystems : 커널이 지원하는 파일시스템의 정보

/proc/dma : DMA 채널 정보

/proc/interrupts : 인터럽트 정보, 즉 인터럽트 번호에 어떤 인터럽트가 연결되어 있는지를 알 수 있다.

/proc/ioports

사용하고 있는 입출력 포트 정보를 보여준다. 현재 내 안드로이드 환경에서는 아무 내용이 없다.

이는 x86 계열처럼 메모리 공간과 I/O 공간이 분리되어 있는 경우에 볼 수 있는 정보이기 때문이다.

현재 CPU가 ARM 계열이기 때문에 내용이 없는 것이다.

/proc/iomem

I/O 장치들이 사용하고 있는 메모리 번지를 보여준다.

x68 계열이나 ARM 계열들은 memory mapped I/O를 지원하기 때문에 이에 대한 정보를 확인할 수 있다.

/proc/kcore : 커널 메모리 이미지 출력

/proc/kmsg

커널이 동작 중 중요한 이벤트가 생기면 출력되는 메시지를 보여준다.

보통 커널에서 printk를 사용해서 콘솔에 출력하도록 한 메시지를 말한다.

이런 메시지를 확인하는 명령으로 dmesg가 있다.

원래 dmesg를 실행하면 /var/log/dmesg 의 내용을 보여준다.

/proc/ksyms

/proc/kallsyms

모듈이 참조할 수 있는 커널 내부의 함수나 변수의 심볼 정보를 가지고 있다. 이는 모듈 개념을 지원하기 위한 중요한 정보이다.

일반적으로 linux에서는 /proc/ksyms가 심볼 정보를 가지고 있다.

/proc/loadavg : 시스템의 평균 부하

/proc/meminfo : 메모리 정보, 주메모리의 크기나 사용량, 가상 메모리, 동적으로 할당된 메모리의 크기 등을 알 수 있다.

/proc/modules : 현재 커널에 적재된 모듈 정보 = lsmod

/proc/net : 네트워크 포로토콜 정보, 커널이 지원하는 각종 프로토콜의 현재 상황에 대한 정보를 가진 파일들을 확인할 수 있다.

/proc/stat : 커널과 시스템 정보

/proc/sys : 커널이 사용중인 커널 변수정보를 가지고 있는 디렉토리.

/proc/uptime : 시스템 가동시간 출력

/proc/version : 커널 버전 정보

/proc/pci

/proc/scsi

시스템에 있는 PCI와 SCSI 디바이스들의 정보

/proc/번호

번호는 디렉토리이다. 이 번호는 PID(Process ID)를 의미한다. 보통 터미널에서 ps 명령어를 치면 보여지는 내용을 만들 때 이 번호 디렉토리의 내용을 이용한다.

간단히 내용을 정리하면 다음과 같다.

cmdline : 프로세스를 실행한 명령어를 모두 보여준다.

environ : 이 프로세스가 참조하는 환경변수 정보를 갖고 있다.

fd : 프로세스가 참조하는 파일 목록 정보, 파일명이 0 부터 시작되어 링크된 파일을 확인한다.

maps : 현재 프로세스가 사용하고 있는 메모리 구역 정보인데 주로 보면 lib가 로딩된 메모리 위치를 확인할 수 있다.

stat, statm, status : 프로세스의 상태 정보들을 담고 있다. stat는 프로세스의 상태를 statm은 프로세스의 메모리 상태, status는 사람이 보기 편한 형태로 프로세스의 상태를 나타낸다.

mem : 프로세스가 억세스 하는 메모리 (?)

root : 프로세스의 루트 디렉토리 (심볼릭 링크)

cwd : 프로세스의 작업 디렉토리 (심볼릭 링크)

exe : 이 프로세스를 실행한 바이너리 (심볼릭 링크)

ifconfig

사용법 : ifconfig [인터페이스] 또는 ifconfig [인터페이스] [타입] [옵션] [옵션]

-a : 모든 네트워크 정보를 볼 수 있음

up : 지정한 인터페이스를 활성화

down : 지정한 인터페이스 비활성화

netmask addr : 넷마스크 설정

address : 인터페이스에 IP주소를 설정

예)

ifconfig 인터페이스 up/down

IP 변경

ifconfig 인터페이스 IP IP주소 netmask 넷마스크 broadcast 브로드캐스트주소

Promisc 모드 on

Ifconfig eth0 promisc

Promisc 란?

1. 패킷을 무조건 수용하는 모드

2. 네트워크 카드의 동작방식 모드 중 하나

3. 자신에게 온 패킷이 아닌데도 받아들여 처리하는 모드

4. 이 모드로 해두면 패킷 목적지에 관계없이 처리할 수 있게 됨

5. 네트워크 감시 목적 등으로 사용됨(악의적으로는 도청 수단)

ethtool

사용법 : ethtool [옵션] [이더넷 채널] [파라미터]

옵션

-s : 옵션은 속도, Duplex 등의 값을 변경

-i : 드라이버에 대한 정보를 보여줌

-S : 인터페이스 통계 정보를 보여준다. rx,tx 의 패킷 전송 개수, 바이트 정보, 브로드캐스팅 정보들이다. 대문자 S 를 사용했다는 점을 주의하자.

-a : Auto Negotiation 정보를 자세히 출력

-p : 포트 확인(LED를 깜빡거림)

-k : 네트워크 디바이스의 Offload 정보를 보여준다. 이 Offload 는 이더넷 카드에서 TOE 기능을 지원하게 되면 사용될 수 있는 기능

참고) lshw -C network : 네트워크 관련 정보 확인

grub

부트로더 이해하기

운영체제를 부팅되도록 하는 부트 정보를 담고있는 프로그램

윈도 리눅스 멀티부팅시 윈도우선설치 (윈도가 부트관리자를 지워 멀티부팅이어려움)

종류로는 GRUB LILO 가있으나 GRUB를 주로사용함

GRUB 1버전 설정

부트로더설정

설정파일위치 : /boot/grub 디렉토리에 menu.lst 파일로 존재 grub.conf 파일명으로 심볼릿 링크 하여 사용

1. timeout : 컴퓨터를시작하여 부트선택화면에서 주어진 시간

2. default 0 : 기본부팅 엔트리 0번부터

3. fallback 1: 기본부팅이 정상부팅되지 못할 때 차선택으로 부팅 엔트리

4. splashimage : xpm형태의 그림 이미지를 압축한 xpm.gz 파일을 grub 메뉴 화면의 배경 이미지로 사용 할 수 있다.

지정법 (splashimage=(hd0,0) /boot/grub/splash.xpm.gz) hd(0,0)dms /dev/sda1 파티션을 의미

요즈음은 대신 gfxmenu 옵션을 사용함 (gfxmenu (hd0,0) /boot/gfxmenu)

5. hiddenmenu : GRUB를 보이지 않게 하는 옵션

6. 리눅스 부트 엔트리 설정 : 설치되어있는 os의 위치 커널 이미지 그리고 initrd 등이 다음과 같은 형태로 설정

title <부트 엔트리 설명>

root (하드디스크디바이스명, 부트파티션명)

kernel 커널이미지경로/커널명 root=루트디바이스명 부트파라미터

initrd initrd이미지경로/initrd명

– title : 부트 엔트리명이나 부트 엔트리에 대한 설정을 임의적 설정 이 때 각 단어 사이즈는 스페이스 바를 이용 공백을 넣을 수 있음

– root : 그 다음ㅁ줄 하드디스크의 디바이스명과 /boot/grub를 포함하는 부트 파티션이 있는 디바이스명을 root 옵션으로 (hd0,0)와 같은 식으로 지정

root (hd0,0)

root 는 grub의 루트 디바이스를 설정하는 옵션으로 /boot 디렉토리를 포함하는 파티션을 말합니다. 즉 root(hd0,0)는 프라이머리 하드디스크의 첫 번째 파티션(/dev/sda1)이 GRUB의 루트 파티션이라는 것을 의미합니다. 만일 root (hd0,4) /dev/sda5 파티션을 GRUB의 루트파티션이라는 것을 의미

-kernel

kernel /boot/vmliunz root=/dev/sda1 rhgb quiet vha=771

상기 설정과 같이 kernel 명령라인에 커널이미지 경로와 파일명, 그리고 root파티션의 디바이스명 그리고 부트 파라미터를 지정할 수 있습니다. kernerl 명령 다음에는 커널 이미지가 있는 위치와 커널명을 정확히 지정해 주어야 부팅할 때 오류가 발생하지 않음을 주의하기 바랍니다. 이 때 명시해 주는 커널명은 심볼릭링크된 파일명을 지정해 주어도 상관없다. root 파티션의 디바이스명을 지정해 줄때는 다음과 같이 /dev/sda1 와 같은 형태로 지정해 주는 방법과 UUID-LEVLE 값으로 지정해주는 방법이 있습니다.

root=/dev/sda1

root=UUID=bda35c4e-e693-4adl-86c6-9fea83464fe0

root=LEVEL=No1.Linux

-initrd

initrd이미지가 있는 경로와 파일명을 정확하게 지정

initrd /boot/initrd.img

주의점 : initrd 옵션으로 initrd 이미지 파일을 정확하게 설정되지 않은 경우에는 다음 부팅 시에는 커널 패닉에 빠져 부팅이 않됨

-커널 파라매터(parameter)

커널 설정 라인에서 사용되는 파라리터로는 rhgb,quite ,vga,runlevel, splash 등이 있습니다

rhgb : RedHatGraphical Boot (페도라만제공)

quiet : 커널 텍스트 메시지를 화면상으로 출력되지 않게함

vga 해상도 명시 해상도로 부팅할 수 있게함 예)1024*768 24비트 = vga=792로 입력

splash : 커널 텍스트 메시지 대신 이미질 대체하여 보여줌 splash=silent 설정한 이미지로 출력, 실행레벨지정 1 시스템응급시 루트쉘,3~5 콘솔 x-window

GRUB 부트 설정 파일 예제

title win7

rootnoverify (hd1,0)

makeactive

chainloader +1

GRUB 부트 메뉴 다루기

명령어 설명

root GRUB루트 파티션 지정 (/boot/grub 티렉토리가 있는 파티션)

kernel 커널 이미지 지정

initrd initrd.img 이미지 지정

boot 시스템부팅

reboot GRUB재시작

clear 화면 지우기

cat 파일명 특정 텍스트 파일 보기

chainloader +1 부팅 가능한 파티션의 첫번째 섹터를 읽어 들여 부팅

configfile 파일 root 명령어로 지정된 파티션에 있는 grub.conf 파일 읽어 들이기

find 파일 명시된 파일이 있는 파티션 찾기 명시되는 파일은 절대경로로 표시해야함

geomtry 장치명 명시한 하드 디스크의 정보 체크 리눅스가 된 컴퓨터

md5crypt md5로 암호화된 열쇠글을 만들어 주는 명령

rootnkverify 주로 윈도로 부팅할 때 사용 명시한 장치를 루트디바이스로 지정하나 마운트하지 않음

setup 장치명 명시한 파티션으로 grub설치

quit 종료

help 도움말

tcpdump

1. ngrep ” tcp dst port 80 -t -Wbyline -q > /root/tmp/ndump

-> TCP 80 port 로 들어오는 패킷을 line단위로 정리하여 /root/tmp/ndump 파일에 저장

2. tcpdump -nnnn -s 0 dst host {ip} and not port 22 -w /root/tmp/tdump

-> 22 포트를 제외한 host IP로 인입되는 패킷의 사이즈 제한 없이 간략한 정보를 /root/tmp/tdump로 저장

/lib/modules/ : 커널 모듈 저장소,

*만약 / 파티션의 용량이 부족할 경우, /lib/modules/커널버젼을 확인하여 사용하지 않는 커널버전의 소스는 삭제.

PAM & TCP wrapper 설정

PAM

/etc/pam.d/<데몬명> : 리소스를 제한할 데몬에 대한 pam 설정

[root@test pam.d]# cat sshd

#%PAM-1.0

auth required pam_stack.so service=system-auth

auth required pam_nologin.so

account required pam_access.so accessfile=/etc/security/sshd_access.conf

account required pam_stack.so service=system-auth

password required pam_stack.so service=system-auth

session required pam_stack.so service=system-auth

session required pam_loginuid.so

[root@test pam.d]# cat /etc/security/sshd_access.conf

-:root:ALL EXCEPT 111.11.11.111 111.123.123.22 123.21.12.32

Pam에 의한 접속 거부 문구 : Connection closed by 192.168.11.3

TCP Wrapper(/etc/hosts.allow, /etc/hosts.deny)에 의한 접속 거부 문구 : Connection closed by remote host

만약 ssh 접속이 안된다면 위의 deny 문구를 보고 어디가 문제인지 추측이 가능

접속 순서 : Pam < TCPWrapper smartctl 참조 : https://brunch.co.kr/@lars/3 while : ; do smartctl -s on -a -d ata /dev/sdb;sleep 1;done 1초 간격으로 LED 점등 되는 디스크 확인 후 명령어 중지 ctrl + c 1. 옵션 -i -> HDD의 정보를 출력함

-s on -> smart 기능을 enable 시킴

-t long /dev/hda (Executes extended disk self-test) selftest > HDD의 기본적인 테스트를 진행

-X -> 테스트 중단

-a -> 전체적인 HDD의 리포트를 쭉 출력해 줌

-d TYPE -> 디바이스 타입 지정

2. Raid-Controller 별 옵션

LSI 3ware SATA RAID Controller -> -d 3ware,N /dev/twx

Areca SATA[/SAS] RAID Controller → -d areca,N[/E] /dev/sgx

HighPoint RocketRAID SATA RAID Controller -> -d hpt,L/M/N /dev/sdx

CCISS(HP/Compaq Smart Array Controller -> -d cciss,N /dev/cciss/cXd0

LSI MegaRAID SAS RAID Controller(SATA장착) -> -d sat+megaraid,N /dev/sdX

Dell PERC 5/i, 6/i controller → -d megaraid,N /dev/sdX

Adaptec SAS RAID Controller(devices supported by aacraid driver) -> -d aacraid,H,L,ID /dev/sdx

—-> N 은 sas port number를 지정한다.

** 부분은 문제가 있다. (0이 되어야한다.)

**1 Raw_Read_Error_Rate – 디스크 표면으로부터 데이터를 읽는 과정에서 문제가 있을때 (주로 물리적인 충격으로 유발됨)

2 Throughput_Performance

3 Spin_Up_Time – 플레터 회전이 제로 rpm에서 최대 rpm에 도달하는게 걸리는 평균 시간

4 Start_Stop_Count – 플레터가 회전하고 정지한 횟수

**5 Reallocated_Sector_Ct – 섹터에 문제가 생겨서 스페어영역의 섹터로 대체한 횟수

**7 Seek_Error_Rate – 탐색 오류율

8 Seek_Time_Performance

9 Power_On_Hours – 하드에 전원이 인가된 시간

**10 Spin_Retry_Count – 최대 rpm에 도달하기위해서 회전을 시도하는 횟수(정상이라면 1번에 끝나야한다)

12 Power_Cycle_Count – 전원 on/off 횟수

192 Power-Off_Retract_Count – 헤드가 플레터(디스크)에서 벗어나는 횟수(간단하게 parking 위치로 이동한 횟수)

193 Load_Cycle_Count -헤드가 플레터위로 진입한 횟수

**194 Temperature_Celsius – 하드디스크 온도(최소 25도, 최대 62도) 100도를 넘으면 빨리 교체를 진행한다.(미디엄에러)

196 Reallocated_Event_Count – 스페어 영역으로 대체된 섹터로 부터 데이터를 읽어간 횟수

**197 Current_Pending_Sector – 불안정적인 섹터로 스페어영역 섹터로 remap을 준비중이거나 읽는 과정에 문제가 생김(medium error)

**198 Offline_Uncorrectable – read/write에 문제가 생긴 섹터, 즉 디스크 표면이 손상됨(bad sector)

**199 UDMA_CRC_Error_Count – 하드디스크 인터페이스를 통해 데이터 전송과정에 발생한 CRC 횟수(CRC : 순환중복검사, UDMA방식을 통해 메모리<->HDD간 전송된 데이터에 오류가 있는지 확인하기 위한 체크값)

241 Total_LBAs_Written

242 Total_LBAs_Read

-디스크 에러 있을 경우

[root@test ~]# smartctl -s on -a -d sat+megaraid,1 /dev/sda

smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.32-696.3.2.el6.x86_64] (local build)

Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION === -> 디스크 정보

Device Model: TOSHIBA MG04ACA200N

Serial Number: 579FK2NVFVMC

LU WWN Device Id: 5 000039 7cbe00a10

Firmware Version: FJ2D

User Capacity: 2,000,398,934,016 bytes [2.00 TB]

Sector Size: 512 bytes logical/physical

Rotation Rate: 7200 rpm

Device is: Not in smartctl database [for details use: -P showall]

ATA Version is: ATA8-ACS (minor revision not indicated)

SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)

Local Time is: Tue Feb 6 05:43:15 2018 KST

SMART support is: Available – device has SMART capability.

SMART support is: Enabled

=== START OF ENABLE/DISABLE COMMANDS SECTION ===

SMART Enabled.

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

Warning: This result is based on an Attribute check.

General SMART Values:

Offline data collection status: (0x82) Offline data collection activity

was completed without error.

Auto Offline Data Collection: Enabled.

Self-test execution status: ( 0) The previous self-test routine completed

without error or no self-test has ever

been run.

Total time to complete Offline

data collection: ( 90) seconds.

Offline data collection

capabilities: (0x5b) SMART execute Offline immediate.

Auto Offline data collection on/off support.

Suspend Offline collection upon new

command.

Offline surface scan supported.

Self-test supported.

No Conveyance Self-test supported.

Selective Self-test supported.

SMART capabilities: (0x0003) Saves SMART data before entering

power-saving mode.

Supports SMART auto save timer.

Error logging capability: (0x01) Error logging supported.

General Purpose Logging supported.

Short self-test routine

recommended polling time: ( 2) minutes.

Extended self-test routine

recommended polling time: ( 228) minutes.

SCT capabilities: (0x003d) SCT Status supported.

SCT Error Recovery Control supported.

SCT Feature Control supported.

SCT Data Table supported.

SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always – 0

2 Throughput_Performance 0x0004 100 100 000 Old_age Offline – 0

3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always – 3277

4 Start_Stop_Count 0x0032 100 100 000 Old_age Always – 3

5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always – 0

7 Seek_Error_Rate 0x000a 100 100 000 Old_age Always – 0

8 Seek_Time_Performance 0x0004 100 100 000 Old_age Offline – 0

9 Power_On_Hours 0x0032 090 090 000 Old_age Always – 4034

10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always – 0

12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always – 3

192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always – 0

193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always – 4

194 Temperature_Celsius 0x0022 100 100 000 Old_age Always – 29 (Min/Max 24/37)

196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always – 0

198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline – 0

199 UDMA_CRC_Error_Count 0x0032 200 253 000 Old_age Always – 0

241 Total_LBAs_Written 0x0032 100 100 000 Old_age Always – 17985103766

242 Total_LBAs_Read 0x0032 100 100 000 Old_age Always – 22333580598

SMART Error Log Version: 1 ——————->> !! SMART Error 발생 시 HDD 교체 진행

ATA Error Count: 3

CR = Command Register [HEX]

FR = Features Register [HEX]

SC = Sector Count Register [HEX]

SN = Sector Number Register [HEX]

CL = Cylinder Low Register [HEX]

CH = Cylinder High Register [HEX]

DH = Device/Head Register [HEX]

DC = Device Command Register [HEX]

ER = Error register [HEX]

ST = Status register [HEX]

Powered_Up_Time is measured from power on, and printed as

DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,

SS=sec, and sss=millisec. It “wraps” after 49.710 days.

Error 3 occurred at disk power-on lifetime: 4034 hours (168 days + 2 hours)

When the command that caused the error occurred, the device was active or idle.

After command completion occurred, registers were:

ER ST SC SN CL CH DH

— — — — — — —

40 41 48 a3 6a 47 40 Error: UNC at LBA = 0x00476aa3 = 4680355

Commands leading to the command that caused the error were:

CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name

— — — — — — — — —————- ——————–

60 40 80 60 7f 48 40 00 4d+21:41:15.918 READ FPDMA QUEUED

60 10 78 30 7f 48 40 00 4d+21:41:15.918 READ FPDMA QUEUED

60 10 70 00 7f 48 40 00 4d+21:41:15.918 READ FPDMA QUEUED

60 10 68 70 7e 48 40 00 4d+21:41:15.918 READ FPDMA QUEUED

60 10 60 20 7e 48 40 00 4d+21:41:15.918 READ FPDMA QUEUED

Error 2 occurred at disk power-on lifetime: 4034 hours (168 days + 2 hours)

When the command that caused the error occurred, the device was active or idle.

After command completion occurred, registers were:

ER ST SC SN CL CH DH

— — — — — — —

40 41 68 a3 6a 47 40 Error: UNC at LBA = 0x00476aa3 = 4680355

Commands leading to the command that caused the error were:

CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name

— — — — — — — — —————- ——————–

60 10 58 80 86 46 40 00 4d+21:41:10.500 READ FPDMA QUEUED

60 10 38 40 86 46 40 00 4d+21:41:10.500 READ FPDMA QUEUED

60 10 30 00 86 46 40 00 4d+21:41:10.500 READ FPDMA QUEUED

60 10 20 20 85 46 40 00 4d+21:41:10.500 READ FPDMA QUEUED

60 08 18 08 ac 27 40 00 4d+21:41:10.493 READ FPDMA QUEUED

Error 1 occurred at disk power-on lifetime: 4010 hours (167 days + 2 hours)

When the command that caused the error occurred, the device was active or idle.

After command completion occurred, registers were:

ER ST SC SN CL CH DH

— — — — — — —

40 41 28 a3 6a 47 40 Error: WP at LBA = 0x00476aa3 = 4680355

Commands leading to the command that caused the error were:

CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name

— — — — — — — — —————- ——————–

61 08 a8 10 85 26 40 00 3d+21:39:01.826 WRITE FPDMA QUEUED

61 08 a0 d8 84 26 40 00 3d+21:39:01.826 WRITE FPDMA QUEUED

61 08 98 38 84 26 40 00 3d+21:39:01.826 WRITE FPDMA QUEUED

61 08 90 60 79 26 40 00 3d+21:39:01.826 WRITE FPDMA QUEUED

61 10 88 50 76 26 40 00 3d+21:39:01.826 WRITE FPDMA QUEUED

SMART Self-test log structure revision number 1

No self-tests have been logged. [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1

SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS

1 0 0 Not_testing

2 0 0 Not_testing

3 0 0 Not_testing

4 0 0 Not_testing

5 0 0 Not_testing

Selective self-test flags (0x0):

After scanning selected spans, do NOT read-scan remainder of disk.

If Selective self-test is pending on power-up, resume after 0 minute delay.

lshw : H/W 리스트 출력

옵션

-short : 간략히 출력

-C : 특정 H/W class만 출력

EX)

[root@test ~]# lshw -short

H/W path Device Class Description

====================================================

system X8SIL

/0 bus X8SIL

/0/0 memory 64KiB BIOS

/0/4 processor Intel(R) Xeon(R) CPU X3440 @ 2.53GHz

/0/4/5 memory 256KiB L1 cache

/0/4/6 memory 1MiB L2 cache

/0/4/7 memory 8MiB L3 cache

/0/2a memory 4GiB System Memory

/0/2a/0 memory DIMM [empty]

/0/2a/1 memory DIMM [empty]

/0/2a/2 memory 4GiB DIMM Synchronous 1333 MHz (0.8 ns)

/0/2a/3 memory DIMM [empty]

/0/755 generic

/0/775 generic

/0/100 bridge Core Processor DMI

/0/100/3 bridge Core Processor PCI Express Root Port 1

/0/100/5 bridge Core Processor PCI Express Root Port 3

/0/100/8 generic Core Processor System Management Registers

/0/100/8.1 generic Core Processor Semaphore and Scratchpad Registers

/0/100/8.2 generic Core Processor System Control and Status Registers

/0/100/8.3 generic Core Processor Miscellaneous Registers

/0/100/10 generic Core Processor QPI Link

/0/100/10.1 generic Core Processor QPI Routing and Protocol Registers

/0/100/1c bridge 5 Series/3400 Series Chipset PCI Express Root Port 1

/0/100/1c.4 bridge 5 Series/3400 Series Chipset PCI Express Root Port 5

/0/100/1c.4/0 eth0 network 82574L Gigabit Network Connection

/0/100/1c.5 bridge 5 Series/3400 Series Chipset PCI Express Root Port 6

/0/100/1c.5/0 eth1 network 82574L Gigabit Network Connection

/0/100/1d bus 5 Series/3400 Series Chipset USB2 Enhanced Host Controller

/0/100/1e bridge 82801 PCI Bridge

/0/100/1e/3 display MGA G200eW WPCM450

/0/100/1f bridge 3400 Series Chipset LPC Interface Controller

/0/100/1f.2 scsi0 storage 5 Series/3400 Series Chipset 4 port SATA AHCI Controller

/0/100/1f.2/0 /dev/sda disk 160GB ST3160815AS

/0/100/1f.2/0/1 /dev/sda1 volume 196MiB EXT3 volume

/0/100/1f.2/0/2 /dev/sda2 volume 4777MiB EXT3 volume

/0/100/1f.2/0/3 /dev/sda3 volume 1913MiB Linux swap volume

/0/100/1f.2/0/4 /dev/sda4 volume 142GiB Extended partition

/0/100/1f.2/0/4/5 /dev/sda5 volume 2870MiB Linux filesystem partition

/0/100/1f.2/0/4/6 /dev/sda6 volume 9546MiB Linux filesystem partition

/0/100/1f.2/0/4/7 /dev/sda7 volume 130GiB Linux filesystem partition

/0/100/1f.2/1 /dev/sdb disk 250GB ST3250318AS

/0/100/1f.2/1/1 /dev/sdb1 volume 192MiB EXT3 volume

/0/100/1f.2/1/2 /dev/sdb2 volume 18GiB EXT3 volume

/0/100/1f.2/1/3 /dev/sdb3 volume 1908MiB Linux swap volume

/0/100/1f.2/1/4 /dev/sdb4 volume 212GiB Extended partition

/0/100/1f.2/1/4/5 /dev/sdb5 volume 13GiB Linux filesystem partition

/0/100/1f.2/1/4/6 /dev/sdb6 volume 18GiB Linux filesystem partition

/0/100/1f.2/1/4/7 /dev/sdb7 volume 179GiB Linux filesystem partition

/0/100/1f.3 bus 5 Series/3400 Series Chipset SMBus Controller

/1 power To Be Filled By O.E.M.

[root@test ~]# lshw -C memory

*-firmware

description: BIOS

vendor: American Megatrends Inc.

physical id: 0

version: 1.1 (05/27/2010)

size: 64KiB

capacity: 4032KiB

capabilities: isa pci pnp upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification

*-cache:0

description: L1 cache

physical id: 5

slot: L1-Cache

size: 256KiB

capacity: 256KiB

capabilities: internal write-through instruction

*-cache:1

description: L2 cache

physical id: 6

slot: L2-Cache

size: 1MiB

capacity: 1MiB

capabilities: internal write-through unified

*-cache:2

description: L3 cache

physical id: 7

slot: L3-Cache

size: 8MiB

capacity: 8MiB

capabilities: internal write-back unified

*-memory

description: System Memory

physical id: 2a

slot: System board or motherboard

size: 8GiB

*-bank:0

description: DIMM Synchronous 1067 MHz (0.9 ns)

product: HMT31GR7BFR8C-G7

vendor: Hyundai

physical id: 0

serial: 0C027037

slot: DIMM1A

size: 8GiB

width: 64 bits

clock: 1067MHz (0.9ns)

*-bank:1

description: DIMM [empty]

product: ModulePartNumber01

vendor: Manufacturer01

physical id: 1

serial: SerNum01

slot: DIMM1B

*-bank:2

description: DIMM [empty]

product: ModulePartNumber02

vendor: Manufacturer02

physical id: 2

serial: SerNum02

slot: DIMM2A

*-bank:3

description: DIMM [empty]

product: ModulePartNumber03

vendor: Manufacturer03

physical id: 3

serial: SerNum03

slot: DIMM2B

rpm

https://www.lesstif.com/pages/viewpage.action?pageId=7635004

옵션

-q –query 패키지 정보 질의

-i –install 패키지 설치

-U –upgrade 패키지 업그레이드

-e –erase 패키지 삭제

-V –verify 패키지 검증

-K –checksig 서명 검증

-h 설치 진행상황을 #문자를 이용하여 출력

**–nodeps 의존성 확인 X

–replacefiles 기존에 설치된 패키지 파일을 교체

–oldpackage 패키지 버전 다운그레이드

**–force 위 3개 옵션 합친것

–chanelog 패키지 개정 이력 확인

설치

rpm -ivh XXX.rpm

업그레이드

rpm -Uvh XXX.rpm

전체 패키지 확인

rpm -qa | more

패키지의 자세한정보 출력

# rpm -qi httpd

설치전 패키지 자세한정보 출력

rpm -qpi httpd-2.2.15-29.el6.centos.x86_64.rpm

패키지 개정이력 확인

# rpm -q –changelog openssl

프로그램이나 파일이 어떤 패키지로부터 설치되었는지 확인

# rpm -qf `which httpd`

++ -qf 옵션으로 변조를 검사한다.

패키지내 어떤 파일이 어디에 설치되었는지 확인

# rpm -ql httpd

패키지가 설치될 전체 경로 확인

# rpm -qpl httpd-2.2.15-29.el6.centos.x86_64.rpm

패키지 설치시 필요한 의존성 목록 확인

# rpm -qR mod_ssl

설치전 의존성 확인

# rpm -qRp mod_ssl-2.2.15-29.el6.centos.x86_64.rpm

yum

https://www.lesstif.com/pages/viewpage.action?pageId=6979667

옵션

-y : 질문을 모두 yes 처리

패키지 설치

yum install

패키지 업데이트

yum update

업데이트 될 패키지 목록

yum check-update

현재 등록된 repossitory list 출력

yum repolist = /etc/yum.repos.d/

rpm 설치

yum localinstall XX.rpm

-> transaction 기록이 남아 yum history로 rollback 가능

모든 트랜잭션 보기

yum history list all

트랜잭션 정보 보기

yum history info X

트랜잭션 롤백

yum history undo X

패키지 정보 확인

yum info <패키지명>

의존성 파일도 함께 삭제

yum autoremove

touch

옵션

-c newfile : 현재시간으로 날짜정보 변경

-t YYYYMMDDhhmm newfile : 날짜정보 변경

-r oldfile newfile : newfile을 oldfile의 날짜정보와 같게 변경

date

date -d ‘1 day ago’ -> 어제

date -d ‘1 week’ -> 1주일 후

date -d ‘this friday’ # 이번주 금요일

date -d ‘last monday’ # 지난 월요일

date -d ‘next tuesday’ # 다음 화요일

# 2018년 1월 3일 7시 32분 10초를 기준으로 2일 5시간 17분후

date -d ‘2018-01-03 07:32:10 + 2 day 5 hours 17 minute’

# 현재 시간으로부터 2일전의 년-월-일 시:분:초 형식으로 표시

date ‘+%Y-%m-%d %H:%M:%S’ -d ‘2 day ago’

쉘스크립트에서 해당 시간을 변수에 담기

yesterday=$(date -d ‘1 day ago’)

파일명에 날짜 포함시키기

touch test_$(date ‘+%Y.%m.%d_%H:%M’)

출력형식은 FORMAT값을 변경함으로써 이루어진다. 다음과 같은 포맷인자를 이용할 수 있다.

%% % 자체를 표시한다. %a 요일이름을 표시한다. (일..토) %A 완전한요일이름을 표시한다. (일요일..토요일) %b 월이름을 표시한다. (1월..12월) %B 완전한월 이름을 표시한다. (1월..12월) %c 날짜와 시간을 표시한다. (2007년 11월 14일 (수) 오전 12시 50분 16초) %C 세기를 나타낸다. (년을 100으로 나눈 몫) %d 월일 (01..31) %D 월일 (mm/dd/yy) %e 월일 (1..31) %F %Y-%m-%d 와 같다. %g 년도로 마지막 두자리만 표시 %G 년도로 모든자리 표시 %h %b 와 같다. %H 시간 (00..23) %I 시간 (01..12) %j 년일(001..366) %k 시간 (0..23) %l 시간 (1..12) %m 월 (01..12) %M 분 (00..59) %n 개행문자 %N 나노초 (000000000..999999999) %P 오전 오후 %p 오전 오후 %r 시간 (오전/오후 hh시 mm분 ss초) %R 시간 (hh시 mm분) %s UTC 기준 1970-01-01 부터 지금까지 흐른 초 %t 탭문자 %T 24시간 (hh:mm:ss) %u 주중 요일 (1..7), 1이 월요일이다 %U 1년중 몇번째 주인지, 일요일 기준 (00..53) %V 1년중 몇번째 주인지, 월요일 기준 (00..53) %w 주중 요일 (0..6), 0은 일요일 %x mm/dd/yy %X %H:%M:%S 와 동일 %Y 년도 (1970..) %Z 타임존 대한민국은 KST

tune2fs : 파일시스템 튜닝 (양날의 칼, 잘쓰면 성능향상, 못쓰면 파일시스템 손상)

!! 고로 -l 옵션만을 사용한다.

http://develop.sunshiny.co.kr/952

[리눅스 일반] 파일시스템 튜닝하기 (tune2fs)

옵션

-l : 자세히 출력

-m 20 /dev/sda1 : /dev/sda1 장치의 예약블록을 20%로 변경

[[email protected] ~]# tune2fs -l /dev/sda1 | grep state

Filesystem state: clean

-> clean and error이면 /var/log/message, smartctl 도 확인하여 disk 교체

[root@master ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/hda8 154G 16G 131G 11% /

/dev/hda8 파티션의 블록 조회

[root@master ~]# tune2fs -l /dev/hda8 | grep -i “block count”

Block count: 41662561

Reserved block count: 2083128

계산 : 2083128 / 41662561 = 0.049 (5%)

/dev/hda8 파티션의 약 5%의 공간을 예비 블록으로 확보

전체 디스크 계산

154,000 * 0.05 = 7,700 (7.7)

/dev/hda8 파티션에서 약 7.7GB 공간을 예비 블록으로 확보

dd : 블록 단위로 파일을 복사하거나 파일을 변환할 수 있음

https://ko.wikipedia.org/wiki/Dd_(%EC%9C%A0%EB%8B%89%EC%8A%A4)

dd if=/dev/ad0 of=/dev/ad1 bs=1M conv=noerror

하드 디스크 드라이브 “ad0″을 “ad1″으로 복제한다.

dd를 이용하여 디스크를 0으로 채워 소거하는 방법은 아래와 같다:

dd if=/dev/zero of=/dev/sda bs=4k

라이브 벤치마크를 테스트하고, 1024바이트 블록에 대한 순차 시스템 읽기/쓰기 성능을 분석하려면 다음과 같이 진행한다:

dd if=/dev/zero bs=1024 count=1000000 of=file_1GB

dd if=file_1GB of=/dev/null bs=1024

swap

mkswap : swap 파티션이나 swap 파일을 생성하는 명령어

사용법

mkswap [option] swapfile or swappartition [size]

옵션

-c : swap 파티션 생성시 사용

예문

10240K 사이즈의 /swap_file 생성

mkswap /swap_file 10240

dd 명령으로 swap 파일로 사용할 파일을 용량이 넉넉한 파티션에 생성 후

mkswap 명령으로 해당 파일을 swap 파티션으로 만들어준다.

———>>>>

* 스왑 2G 추가

[root@~]# touch /home/2G_swap

[root@~]# dd if=/dev/zero of=/home/2G_swap bs=1024 count=2048000

[root@~]# mkswap /home/2G_swap

[root@~]# swapon /home/2G_swap

[root@~]# free -m

total used free shared buffers cached

Mem: 3955 3850 105 0 16 1498

-/+ buffers/cache: 2335 1620

Swap: 3955 1284 2671

swapon : swap 파티션이나 swap 파일을 구동하는 명령어

사용법

swapon [option] swapfile or swappartition

옵션

-a : /etc/fstab 에 있는 swap 을 모두 활성화

-s : swap 파티션의 상태를 보여줌

예문

/etc/fstab 에 있는 swap 을 모두 활성화

swapon -a

swapoff : swap 파티션이나 swap 파일의 구동을 중단시키는 명령어

사용법

swapoff swapfile or swappartition

예문

swapoff /swap_file

/etc/fstab

https://www.lesstif.com/pages/viewpage.action?pageId=20776621

#cat /etc/fstab

/dev/sda3 / ext3 defaults 1 1

/dev/sda1 /boot ext3 defaults 1 2

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/dev/sda2 swap swap defaults 0 0

[파일시스템 장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련] [파일점검옵션] [옵션] : 네번째 항목으로 파일시스템 속성을 설정하는 옵션

default : rw, nouser, auto, exec, suid 속성을 모두 가지는 속성, 가장 일반적인 파일시스템에서 사용

auto : 부팅시 자동마운트

exec : 실행파일이 실행되는 것을 허용하는 파일시스템

suid : SetUID와 SetGID의 사용을 허용하는 파일시스템

ro : 읽기전용 파일시스템(Read Only)

rw : 읽고쓰기 파일시스템(Read, Write)

user : 일반 계정사용자들도 마운트를 할 수 있는 파일시스템

nouser : 일반 계정사용자들은 마운트 할 수 없는 파일시스템. (root만 mount)

noauto : 부팅시 자동마운트되지 않게 함.

noexec : 실행파일을 실행되지 못하게 하는 파일시스템

nosuid : SetUID와 SetGID의 사용을 허용하지 않는 파일시스템

usrquota : 개별 사용자의 쿼타(Quota)설정이 가능한 파일시스템 —> 사용자 디스크 사용량 제한(/home/)

grpqquota : 그룹별 쿼타(Quota)설정이 가능한 파일시스템

noatime : file access time을 기록하지 않는다. 주로 파일읽기가 잦은 웹서버에서 부하를 낮추기 위해 이 옵션을 설정한다.

nodiratime : directory access time을 기록하지 않는다. 주로 웹서버에서 부하를 낮추기 위해 이 옵션을 설정한다.

barrier=0 : barrier는 읽기/쓰기 보장옵션으로, 0 : disabled 하여 검토를 안함으로 속도향상을 위해 사용(db서버군은 모든 파티션에, 일반 서버군은 db가 설치된 파티션에 설정)

[dump관련설정] : 0 또는 1을 가질수있는 설정, 1은 데이터백업등을 위해 dump가 가능한 파일시스템이며,

0은 dump 명령으로 덤프되지 않는 파일시스템

[파일점검옵션] : 0 또는 1, 그리고 2가 올수있는 설정, 0은 부팅시 실행되는 fsck가 실행되지 않는 설정

1은 루트파일시스템을 의미

2는 루트파일시스템 이외의 파일시스템을 의미

즉, 여기서 설정된 파일시스템의 순서를 기준으로 부팅시 실행되는 fsck의 순서가 결정

**Quota : 사용량 제한

▣ 커널관리 파일

– insmod

: 모듈 추가. 커널 디렉토리를 찾아서 해당 모듈을 추가한다.

■ 형식 : insmod [옵션] [오브젝트파일]

■ 옵션

-k : autoclean 을 사용하여 적재

– rmmod

: 모듈 삭제

■ 형식 : rmmod [옵션] [모듈]

■ 옵션

-r : 의존관계에 있는 모듈을 한번에 삭제

– lsmod

: 추가된 모듈 출력(/proc/modules 를 참조한다)

■ 형식 : lsmod [옵션]

■ 옵션

-V : lsmod 버전 출력

– modprobe

: 모듈 추가. depmod에 의해 갱신된 modules.dep에서 찾아 추가한다. insmod와 달리 해당 커널 디렉토리로 갈 필요없이 아무위치에서나 모듈을 추가할수 있다. 또한 의존성이 필요한 모듈이나 먼저 실행되어야 할 모듈이 있다면 그 모듈부터 추가하고 해당 모듈을 추가한다

■ 형식 : modprobe [옵션] [오브젝트파일]

■ 옵션

-k : autoclean 을 사용하여 추가

-r : 모듈 삭제

– depmod

: 의존성 검사를 한뒤 modules.dep 파일을 갱신한다. kerneld나 modprobe를 실행하기 전엔 꼭 depmod -a를 사용하는 습관을 들인다

■ 형식 : depmod [옵션]

■ 옵션

– modinfo

: 모듈 정보 확인

■ 형식 : modinfo [모듈명]

※ autoclean

autoclean라는 플레그를 사용하면 커널 데몬(kerneld)에 의해 일정시간 사용하지 않는 모듈을 삭제한다. 단 커널 컴파일시 kerneld 지원 여부를 물을때 Y를 해야 사용 가능

※ 참고사항

insmod는 ‘/lib/modules/커널버전’ 디렉토리를 뒤져 해당 모듈이 있으면 메모리에 올려준다.

modprobe는 depmod에 의해 생성된 modules.dep에서 모듈을 찾아 올린다. 그리고 해당 모듈에

의존성이 있거나 해당모듈보다 선행되어야 하는 모듈이 있으면 그 모듈도 같이 올려준다.

이 부분이 insmod와 가장 큰 차이점이다.

예를 들어 vfat란 모듈을 올리기 위해서는 fat란 모듈을 먼저 올려야 하는데, fat 모듈이 메모리에 올라가 있지 않은 상태에서

# insmod vfat 하면 fat에 대한 symbol을 찾지못해 vfat 모듈을 올리지 못하지만

# modprobe vfat 을 실행하면 자동으로 먼저 fat 모듈을 올리고, 그 다음으로 vfat 모듈을 올린다

(커널 컴파일시 fat, vfat을 모듈로 설정했다고 가정)

modprobe로 해당 모듈을 찾지 못하는 경우 modules.dep에 없을 가능성이 크므로

#depmod -a 해서 모듈 의존 관계를 새롭게 갱신시킬 필요가 있다.

참고로 의존 관계에 있는 모듈들을 한꺼번에 내리려면 rmmod -r 옵션을 하면 된다.

fuser(umount 안될 때 주로 사용)

fuser 명령어는 특정파일을 어떤프로세스에서 사용하고 있는지 확인이 필요할 때,

또는 특정 파일이 사용되고 있는 프로세스 ID를 확인하고자 할때 사용되는 명령어로

특정 파일과 PID를 KILL 또는 재시작 할 수도 있습니다.

[root@test ~]# fuser -u /disk

[root@test ~]# fuser -a /disk

[root@test ~]# fuser -m /disk

[root@test ~]# fuser -k 80/tcp

옵션

-a : 사용되고 있지 않은 파일까지도 표시한다.

-k : 지정된 파일과 관련된 모든 프로세스들을 KILL 한다.

-i : 프로세스를 KILL 하기전에 사용자에게 확인한다.

-n space : 지정된 공간(file, udp, or , tcp)내에서 검색한다.

-s : 결과를 간략히 출력한다.

-u : 프로세스 ID(PID)의 소유자를 보여준다.

-m : 지정한 파일이나 디렉토리가 마운트된 파일시스템에서 실행되고 있는 프로세스의 PID 출력

-v : 자세한 출력모드 (프로세스의 User, PID, ACCESS, COMMAND를 보여줌)

예시)

[root@test ~]# fuser -mv /disk/

USER PID ACCESS COMMAND

/disk/ root kernel mount /disk/home

[root@test ~]# fuser -k /disk/

tail

-f : 파일 감시

-F : -f 옵션 업그레이드 버젼, 감시중인 파일명이 바뀌어도 멈추지 않는다.

-n수 : 끝에서 지정된 수만큼 줄을 표시

-n +20 : 20번째 줄 이후를 출력

-v : 입력파일이름 표시

-q : 입력파일이름 표시 X

[[email protected] log]# tail -v messages

==> messages <== [[email protected] log]# tail -q messages Feb 21 23:32:22 localhost freshclam[4391]: OK head -n 20 : 20행까지 출력 -c 200 : 200byte까지의 내용을 출력 -q : 파일이름 표시 X -v : 파일이름 표시 /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=localhost GATEWAY=192.168.0.1 → IPV4는 사용, IPV6는 사용 안함 → 호스트명은 localhost → 기본 게이트웨이는 192.168.0.1 해당파일에서 hostname 변경시 리붓이후 적용된다. hostname <호스트명> 으로 호스트명 변경 후 해당 파일에도 호스트명을 변경해주는 것이 좋다.

/etc/sysconfig/network-scripts/ifcfg-ethX

-> ethX 설정

xargs : 표준입력으로부터의 명령라인을 실행

옵션

-t : xargs를 통해 구성된 명령어를 표준 에러로 출력

-i : xargs에 전달된 라인 전체를 뒤에 나오는 명령어의 인자로 사용(공백 포함 출력도 하나의 인자로 해석)

디폴트로 라인 전체를 의미하는 기호는 {}

find를 이용하여 mtime이 30일 이상된 파일들을 ..bak으로 바꾸기

$ find . -mtime +30 | xargs mv -i {} {}.bak

find를 이용하여 *.mp3 파일을 지우기

$ find . -name ‘*.mp3’ | xargs rm

ls 를 이용해서 text 파일 목록을 가져온 뒤 각각의 파일내용을 cat으로 읽고 병합파일 만듬

$ ls *.txt | xargs cat >> abc.merge

하위 폴더 내에서 모든 C로 끝나는 파일들을 찾아, 파일이름과, 파일의 날짜를 c_files.txt파일에 저장

find . -name “*.c” | xargs -I {} sh -c ‘echo -n {} >> c_files.txt; stat -c %Y {} >> c_files.txt’

netstat

옵션

-a : 현재다른PC와 연결(Established)되어 있거나 대기(Listening)중인 모든 포트 번호를 확인

-r : 라우팅 테이블 확인 및 커넥션되어 있는 포트번호를 확인

-n : 현재 다른PC와 연결되어 있는 포트번호를 확인(IP주소로 화면 출력)한다

-e : 랜카드에서 송수한 패킷의 용량 및 종류를 확인

-s : IP, ICMP, UDP프로토콜별의 상태를 보여줌

-t : tcp protocol

-u : udp protocol

-p : 해당프로토콜을 사용하는 프로그램, 프로세스 ID 보여줌

-c : 1초 단위로 보여줌

-l : 대기중인 소켓 리스트만 보여준다. 동일 옵션은 –listening

-p : PID(프로세서 ID) 와 사용중인 프로그램명이 표시된다. 동일 옵션은 –program

-o : 연결 대기 시간 표기. 동일 옵션은 –timers

pstree

리눅스 명령어 pstree는 프로세스의 상관관계(부모-자식 관계)를 트리 형태로 출력해주는 명령어로써, 관계를 트리 형태로 출력해주므로 계층 관계를 한 눈에 파악할 수 있다.

옵션

-p : pid도 출력

-u : uid도 출력

-H PID : 지정한 PID의 프로세스와 부모 프로세스를 하이라이트 형태로 출력

-h : 현재 프로세스와 부모 프로세스를 하이라이트 형태로 출력

-n : pid를 기준으로 정렬하여 출력

strace : 특정 프로그램의 시작부터 종료까지의 실행 시퀀스를 디버깅하여 시스템 콜과 시그널을 감시

옵션

ls 바이너리(명령어) 추적

$ strace ls

특정 시스템 콜 추적( -e )

$ strace -e open ls

여러 개의 시스템 콜 출력( -e trace= )

$ strace -e trace=open,read ls /home

결과를 파일에 저장( -o )

$ strace -o output.txt ls

실행중인 프로세스 시스템 콜 출력( -p )

$ strace -p

시간정보 출력 ( -t )

$ strace -t ls

**시스템 콜 통계 정보 생성( -c )

$ strace -c ls /home

strings : 프로그램(실행가능한 바이너리=명령어) 안에서 사용된 문자열을 출력

옵션

-a : 파일을 검색하고 데이터 섹션까지 검색

-f : 각 문자열 전에 파일명 출력

-t={o,d,x} : 문자열의 위치를 8,10,16진수로 출력

-n 숫자 : 숫자 bytes 이상의 문자열 출력

# my_data.bin 파일에 포함된 길이 8바이트 이상의 문자열 출력

strings -n 8 my_data.bin

# 인코딩 변경(-e): single-8bit-byte character

ex) s=7-bit, S=8-bit, {b,l}=16-bit, {B,L}=32-bit

strings -e S my_data.bin

/etc/resolv.conf

-> 네임서버 설정과 기본적으로 사용할 도메인명을 설정,

; generated by /sbin/dhclient-script

search uzuro.com

nameserver 168.126.63.1

nameserver 168.126.63.2

/etc/modprobe.conf

https://ko.wikipedia.org/wiki/Modprobe

scp 명령어를 이용한 파일 복사 및 전송

ssh에서 제공되는 scp 명령어를 통해 로컬서버↔원격서버 로의 파일을 간단하게 전송할 수 있다.

1. 사용방법

1) 원격 서버 → 로컬 서버로 파일 전송

# scp [옵션] [계정명]@[원격지IP주소]:[원본 경로 및 파일] [전송받을 위치]

예제1) IP 111.222.333.444 서버의 abc라는 계정으로 /home/abc/index.html 파일을 로컬서버 /home/me/ 디렉토리에 전송 받기

# scp [email protected]:/home/abc/index.html /home/me/

2) 로컬 서버 → 원격 서버로 파일 전송

# scp [옵션] [원본 경로 및 파일] [계정명]@[원격지IP주소]:[전송할 경로]

예제2) 로컬서버 /home/me/wow.html 파일을 IP 111.222.333.444 서버의 /home/abc/ 디렉토리에 전송 하기

# scp /home/me/wow.html [email protected]:/home/abc/

3) ssh포트를 기본 22번으로 사용하고 있지 않는 서버로의 전송

예제3) 2222번인 SSH포트를 사용한다면 아래와 같이 –P 옵션과 포트번호를 넣어준다.

# scp –P 2222 [email protected]:/home/abc/index.html /home/me/

# scp –P 2222 /home/me/wow.html [email protected]:/home/abc/

[주의사항]

옵션중에 –P와 –p가 있으니 대/소문자 확인을 하여야 한다.

-P : 포트번호를 지정함

-p : 원본파일 수정/사용시간 및 권한을 유지함

-r : 하위 디렉토리 및 파일 모두 복사함

locate

: 다양한 패턴의 파일들을 찾고자 할 때, 특정 패턴에 해당하는 파일들의 위치를 검색함.

-> 특정패턴의 모든 파일 가운데 특정 문자열에 해당하는 파일들을 모두 검색하고자 할 때 사용

ex)

locate *.log

sss@gukii:~$ locate *.log | sort -n | xargs ls -lsh

8.0K -rw-r–r– 1 root root 5.8K Feb 7 17:27 /var/log/alternatives.log

8.0K -rw-r–r– 1 root root 7.3K Feb 7 17:28 /var/log/apt/history.log

44K -rw-r—– 1 root adm 42K Feb 7 17:28 /var/log/apt/term.log

92K -rw-r–r– 1 root root 92K Feb 7 17:28 /var/log/dpkg.log

locate -n 10 *.conf

sss@gukii:~$ locate -n 10 *.conf | sort -n | xargs ls -lsh

4.0K -rw-r–r– 1 root root 3.0K Sep 23 01:13 /etc/adduser.conf

8.0K -rw-r–r– 1 root root 7.7K Sep 23 01:14 /etc/ca-certificates.conf

4.0K -rw-r–r– 1 root root 2.9K Nov 11 2015 /etc/debconf.conf

4.0K -rw-r–r– 1 root root 604 Jul 3 2015 /etc/deluser.conf

0 -rw-r–r– 1 root root 280 Jun 20 2014 /etc/fuse.conf

4.0K -rw-r–r– 1 root root 2.6K Feb 19 2016 /etc/gai.conf

8.0K -rw-r–r– 1 root root 4.7K Mar 17 2016 /etc/hdparm.conf

0 -rw-r–r– 1 root root 92 Oct 23 2015 /etc/host.conf

4.0K -rw-r–r– 1 root root 771 Mar 6 2015 /etc/insserv.conf

0 -rw-r–r– 1 root root 110 Sep 23 01:13 /etc/kernel-img.conf

locate *.conf | grep hdparm

sss@gukii:~$ locate -n 10 *.conf | grep hdparm | sort -n | xargs ls -lsh 8.0K -rw-r–r– 1 root root 4.7K Mar 17 2016 /etc/hdparm.conf

–> 현재 시스템에 존재하는 모든 파일들을 대상으로 하기 때문에 매우 유용한 명령어이다.

file

: 지정된 파일의 종류(타입)을 확인하는 명령어, /usr/share/file 디렉토리의 magic 파일을 참조하여 파일종류 표시

옵션

-C : 매직파일의 포맷을 검사하는 옵션

-f 목록파일 : 많은 파일들을 한번에 확인하기 위하여 파일리스트인 목록파일을 만들어서 그 안에 입력된 모든 파일을 한꺼번에 확인하는 옵션

-m 매직파일 : 지정된 매직파일로 대상파일을 확인하는 것.

ex)

[root@test ~]# file temp.list

temp.list: ASCII text, with no line terminators

type

: 지정된 명령어가 쉘에 내장된 명령어인지/ 외부명령어인지/ alias 인지 확인

ex)

[root@test ~]# type tail

tail is hashed (/usr/bin/tail)

[root@test ~]#

[root@test ~]# type find

find is /usr/bin/find

[root@test ~]#

[root@test ~]# type smartctl

smartctl is /usr/sbin/smartctl

[root@test ~]#

[root@test ~]# type cp

cp is aliased to `cp -i’

[root@test ~]# type scp

scp is /usr/local/openssh/bin/scp

cut

: 텍스트 혹은 문장에서 하나 이상의 부분을 제거하여 원하는 입력폼으로 재생성할 때 사용

옵션

-c : 지정한 컬럼 출력

-f : 지정한 필드 출력

-d : 구분자

ex)

cut -c 2-5 /etc/passwd

/etc/passwd 파일의 2-5번째 문자까지 출력

cut -f 3 anaconda-ks.cfg

anaconda-ks.cfg 파일의 3번째 필드 출력(필드구분 tab)

cut -f 2 -d : /etc/passwd

/etc/passwd파일의 2번째 필드 출력(필드구분 ‘:’)

chattr/lsattr

+/- : + : 속성 추가, – : 속성 제거

옵션

i : read-only 속성

ex)

[root@test ~]# touch testfile

[root@test ~]#

[root@test ~]# chattr +i testfile

[root@test ~]#

[root@test ~]# lsattr testfile

—-i——– testfile

[root@test ~]#

[root@test ~]# echo Hi! > testfile

-bash: testfile: 허가 거부됨

[root@test ~]#

[root@test ~]# chattr -i testfile

[root@test ~]# lsattr testfile

————- testfile

[root@test ~]# echo Hi! > testfile

[root@test ~]#

[root@test ~]# cat testfile

Hi!

mkinitrd

: make init ramdisk 생성 명령어(커널이미지 생성 명령어)

/boot 디렉토리 하위에 kernel-version 파일을 initrd-image로 변경하여 준다. 여기서 initrd-image는 램디스크라고도 불리는데, 그 이유는 리눅스 부팅과정 중 BIOS에 의해 호출된 GRUB 부트로더가 실행되며 커널이미지를 RAM에 적재하기 때문이다.

사용법

mkinitrd -옵션

옵션

–builtin = module : 모듈이 모듈형태로 동작하는 것이 아니라 커널 내부 동작해야 하는 모듈이면 이 옵션을 사용하면 될 것이다.

-f : initrd-image 이름이 이미 존재하면 덮어쓰기를 하게 해준다.

-v : verbose 모드로, 생성되는 과정 혹은 생성된 후 block 수를 화면에 return한다.

–fstab=fstab : 기본적으로 /etc/fstab를 참조하지만 자신이 만든 fatab파일을 참조하게 만들 때 사용한다.

–preload=module : initrd가 실행할 때 SCSI모듈이 올라오는 것을 기준으로 SCSI모듈 전에 실행될 모듈을 지정할 때 사용한다.

–with=module : initrd가 실행할 때 SCSI모듈이 올라오는 것을 기준으로 SCSI모듈 후에 실행 될 모듈을 지정할 때 사용한다.

ex)

[[email protected] boot]# cat grub/grub.conf

# grub.conf generated by anaconda

title CentOS (4.9.48-29.el6.x86_64)

root (hd0,0)

kernel /vmlinuz-4.9.48-29.el6.x86_64 ro root=UUID=eb81650e-2c63-400c-be02-7c3deee155fa rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

selinux=0

initrd /initramfs-4.9.48-29.el6.x86_64.img

—> mkinitrd -v -f initranfs-4.9.48-29.el6.x86_64.img vmlinuz-4.9.48-29.el6.x86_64

반대로 생성된 커널이미지에 ahci 모듈이 있는지 확인하려면,

cp -a /boot/initramfs-2.6.32-573.el6.x86_64.img /test/

gzip -dc /test/initramfs-2.6.32-573.el6.x86_64.img | cpio -id

149971 blocks

[[email protected] ata]# pwd

/test/lib/modules/4.9.48-29.el6.x86_64/kernel/drivers/ata

[[email protected] ata]# ll | grep ahci

-rwxr–r– 1 root root 17048 Mar 22 00:23 acard-ahci.ko

-rwxr–r– 1 root root 11360 Mar 22 00:23 ahci_platform.ko

-rwxr–r– 1 root root 21368 Mar 22 00:23 libahci_platform.ko

cpio

옵션

i 압축해제하라는 옵션

o 압축 생성 옵션

p 표준입력에서 파일명을 읽는다.

B 5120 bytes블럭단위로 입출력한다.

c 아스키 형식으로 헤더정보를 읽고 쓴다.

d 없는 디렉토리는 생성한다.

u 기존파일과 겹치면 덮어쓰지 않는다.

m 파일의 변경시간을 그대로 유지한다.

v 파일명 목록을 출력한다.

h 헤더의 형식을 tar와 같이 읽고 쓴다.

x 장치파일도 읽고 쓴다.

ex) cpio를 이용한 특정 확장자 파일만 압축

#find . -name ‘*.c’ -print | cpio -o > data.cpio

#ls | cpio -o > ./test.cpio

ex) cpio 파일 풀기

-i cpio로 백업한 data를 restore 한다

-o 출력 – 묶을때

-p 통과모드

-d restore중 필요한 디렉토리를 자동으로 생성시킨다

-m 백업 되있는 data들의 날짜, 시간을 그대로 유지한다

-v verbose

#cpio -idmv < test.cpio ex) gz으로 압축되어 있는 것 풀기 gunzip targetfile.cpio.gz cpio -idmv < targetfile.cpio ex) cpio로 파일 옮기기 디렉토리 또는 파일시스템을 대량으로 옮겨야 할 경우 #find /old_directory -depth | cpio -pdmv /new_directory mknod 장치파일(FIFO(p), Block(b), Character(c,u)) 생성(fdisk로 디바이스 파티션 생성한 후에도 /dev/sdxN이 보이지 않을 때 사용) *모든 장치파일에는 Major Number와 Minor Number가 존재 사용법 mknod [옵션] [장치명] [타입] [주번호 부번호] 옵션 -m : 퍼미션 지정(chMod) ex) [[email protected] dev]# ll | grep sd lrwxrwxrwx 1 root root 4 Oct 7 21:44 root -> sda3

brw-rw—- 1 root disk 8, 0 Oct 7 21:44 sda

brw-rw—- 1 root disk 8, 1 Oct 7 21:44 sda1

brw-rw—- 1 root disk 8, 2 Oct 7 21:44 sda2

brw-rw—- 1 root disk 8, 3 Oct 7 21:44 sda3

[[email protected] dev]# mknod -m 660 /dev/sda5 b 8 5

[[email protected] dev]# ll | grep sd

lrwxrwxrwx 1 root root 4 Oct 7 21:44 root -> sda3

brw-rw—- 1 root disk 8, 0 Oct 7 21:44 sda

brw-rw—- 1 root disk 8, 1 Oct 7 21:44 sda1

brw-rw—- 1 root disk 8, 2 Oct 7 21:44 sda2

brw-rw—- 1 root disk 8, 3 Oct 7 21:44 sda3

brw-rw—- 1 root root 8, 5 Mar 22 00:53 sda5

[[email protected] dev]# chown root.disk sda5

[[email protected] dev]# ll | grep sd lrwxrwxrwx 1 root root 4 Oct 7 21:44 root -> sda3 brw-rw—- 1 root disk 8, 0 Oct 7 21:44 sda brw-rw—- 1 root disk 8, 1 Oct 7 21:44 sda1 brw-rw—- 1 root disk 8, 2 Oct 7 21:44 sda2 brw-rw—- 1 root disk 8, 3 Oct 7 21:44 sda3 brw-rw—- 1 root disk 8, 5 Mar 22 00:53 sda5

참고) SATA 계열 Block Major Number : 8, Minor Number : 0~15,16~31,… IDE 계열 Block Major Number : 3

tee

: 리눅스 화면과 파일에 동시 출력

ex1) 표준출력을 화면출력&파일기록

명령어 | tee <파일명>

ex2) 표준출력을 화면출력&파일기록 (단, 기존내용 유지하고 내용 추가 (-a(append))

명령어 | tee -a <파일명>

ex3) 출력+오류를 화면출력&파일기록 (오류메시지 포함하여 파일로 저장)

명령어 2>&1 | tee <파일명>

주제에 대한 관련 정보 리눅스 명령어 모음

Bing에서 리눅스 명령어 모음 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 리눅스 명령어 모음. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 리눅스 명령어 모음 리눅스 명령어 연습 사이트, 리눅스 명령어 vi, Linux 명령어, 리눅스 기본, 리눅스 명령어란, 리눅스 실행 명령어, 리눅스 민트 명령어, 리눅스 명령어 find

Leave a Comment