1. 파일 찾기
(1) find
파일을 찾는 명령어인 find의 사용법은 다음과 같다.
옵션이 너무 많아서 사용 예제를 일일이 설명하기는 힘들 것 같다.
대신 35가지의 주요 예제를 잘 정리한 사이트 링크를 첨부할 것이다.
find 명령어는 이름, 날짜, 크기, 종류 등을 기준으로 파일을 찾을 수 있다.
www.tecmint.com/35-practical-examples-of-linux-find-command/
아래 명령어는 컴퓨터 내에서 "lamb"로 시작하는 모든 파일을 찾는 명령어이다.
*(와일드카드) 문자를 사용한 케이스를 소개하기 위해 작성한 예제이다.
(2) whereis
whereis 명령어는 명령어의 실행 파일, 소스 코드, 매뉴얼 페이지의 경로를 절대 경로로 출력하는 명령어이다.
2. $PATH
실행 파일의 경로를 세팅해두는 변수이다.
현재 디렉토리 내에 없는 파일이라도 $PATH에 설정된 경로를 탐색해서 찾아낼 수 있다.$PATH 변수는 초기에 미리 세팅되어 있으며, 사용자가 변경할 수 있다.
$PATH 값을 출력해보면 다음과 같다.
전에 언급했듯이 명령어들은 /bin에 저장된다.
그래서 어느 디렉토리에서든 리눅스 명령어를 실행할 수 있는 것이다.
3. 멀티 태스킹
Multi-Tasking은 여러 작업을 같이 수행하는 것이다.
윈도우에서도 여러 창을 띄워놓고 컴퓨터를 쓰는 것처럼, CLI에서도 멀티 태스킹이 가능하다.
결론부터 말하자면, Ctrl+Z로 프로세스를 일시 정지 시키고 터미널로 빠져나오는 식으로 진행된다.
Ctrl+C는 프로세스를 종료시키는 것이니 혼동하지 말도록 하자.
먼저, htop을 실행시켰다. 그리고 이 상태에서 Ctrl+Z를 눌러보자.
프로세스 번호, +-기호, 상태, 프로세스 명령어 순으로 정보를 출력하고 터미널로 돌아오게 된다.
+-기호의 의미는 잠시 후에 설명하기로 한다.
그리고 나노 파일 편집기를 켰다가 다시 Ctrl+Z로 빠져나왔더니 이번에는 프로세스 번호로 2가 찍혔다.
fg : foreground의 약자. 최근 작업으로 되돌아가는 명령어
한번 더 나노를 켰다가 Ctrl+Z로 빠져나와보았다.
동일 프로그램이어도 프로세스가 추가되었다. 윈도우도 같은 페이지를 2번 이상 띄울 수 있다는 면에서 비슷하다.
그렇다면, 작업 목록은 어떻게 확인할 수 있을까?
jobs : 작업 목록을 볼 수 있는 명령어
여기서 +기호로 표시된 프로세스는 "fg" 명령어로 되돌아갈 수 있는 프로세스이고,
-기호는 그 다음에 해당하는 프로세스임을 표시한다.
위에서 fg 명령어를 입력하면 프로세스 번호가 3인 작업으로 이동할 수 있는 것은 파악했다.
그렇다면 프로세스 번호가 1이나 2인 작업으로 바로 이동하는 방법은 무엇일까?
이를 위해 사용하는 기호가 '%' 이다.
fg %[프로세스 번호]
터미널에 fg %1를 입력했더니 htop이 다시 실행되었고(이미지 생략),
Ctrl+Z로 빠져나와서 jobs를 확인 했더니 다음과 같이 출력되었다.
+에 해당하는 프로세스가 1번, -에 해당하는 프로세스가 3번으로 바뀐 것을 확인할 수 있다.
프로세스 번호가 1인 작업을 실행했으므로 최근 작업은 1번이 된 것이고, 프로세스 번호가 3인 작업도 이에 따라 한칸 앞당겨져서 -기호가 표시된 것이다.
※ 프로세스 1번이 빠지고 4번으로 추가되는 환경도 있다.
그렇다면, 작업을 삭제할 수도 있을까?
kill : 프로세스를 삭제하는 명령어
정상종료
kill %[프로세스 번호]
강제종료
kill -9 %[프로세스 번호]
예시로, jobs에서 프로세스 1을 강제종료한 결과이다.
마지막으로, jobs에는 정지된 작업 뿐만 아니라 실행중인 작업도 볼 수 있다.
find / -name a & : 컴퓨터 내의 디렉토리에서 파일명이 "a"인 파일들을 찾는 작업을 백그라운드로 보내라.
위 명령어를 입력하고 결과가 뜨는데 필자의 컴퓨터에서는 약 1초가 걸렸기 때문에, 위 명령어를 입력하자마자 1초 내에 jobs를 확인한 결과이다. 실행중인 순간을 캐치했다!
그리고 완료된 작업은 jobs에서 제거된다.
'Linux' 카테고리의 다른 글
[Linux] alias / Multi user / User 추가 (0) | 2021.03.24 |
---|---|
[Linux] Daemon / Apache / cron(명령어 주기 설정) (0) | 2021.03.23 |
[Linux] 디렉토리 구조 / Process (0) | 2021.03.19 |
[Linux] Kernel / Shell / Shell script (0) | 2021.03.18 |
[Linux] pipe('|')와 redirection('>')의 차이 / 출력 버리기(/dev/null) (0) | 2021.03.17 |
댓글