[LINUX] 3.텍스트 에디터 & 사용자 & 프로세스
📍 해당 게시글은 사물인터넷을 위한 리눅스 기본을 공부하며 정리한 글입니다.
1. 에러 메시지 파일 저장 방법
명령어 2> error.txt
- 명령어에 대한 오류를 error파일에 저장한다
- 여기서 2는 파일 디스크립터이다. [파이프]
- 앞명령어의 출력을 뒤의 명령어의 입력으로 전달하는 방법
-
ex) process1 process2 process3 .. -
ex) cat a.txt head -2
[목 차]
1.파일 입출력
1) 종류
- cat
- more
- head (-n)
- tail (-n)
- diff 파일1 파일2
2) 리다이렉션
명령어 > 파일
: 기존 파일 덮어씌우기명령어 >> 파일
: 기존 파일에 추가명령어 < 들어오는파일 > 나가는 파일
<에러처리>에러처리>
명령어 2> error.txt
- 명령어에 대한 오류를 error파일에 저장한다
- 여기서 2는 파일 디스크립터이다.
<파이프>파이프>
- 앞명령어의 출력을 뒤의 명령어의 입력으로 전달하는 방법
-
ex) process1 process2 process3 .. -
ex) cat a.txt head -2
-
2. vi 에디터
1) 3가지 모드
- 명령모드 : delete, J(줄병합), 방향키 이동(hjkl)
- 편집모드 : 입력, 방향키이동x
- ex모드 : 저장&종료(:x), 탐색(:n)
vi에디터는 명령모드로 시작한다. i를 눌려 편집 모드로 전환 후 편집이 가능하며
Esc키로 명령모드로 전환하여 Delete키(삭제), J(줄병합)으로 명령이 가능하다.
명령모드에서 :를 입력하면 ex모드가 되고, x를 이어서 입력 후 Enter를 하면 저장하고 종료한다.
2) 실행 방법
vi 파일명
으로 vim에디터를 실행하여 bash에서 파일 수정이 가능하다
- 커서 이동 : 명령모드에서는 hjkl(왼,아래,위,오)로 이동가능하다.
3. 환경변수
1) 출력방법
- 전체 환경변수 :
env
-
env -u 환경변수
: 입력한 환경변수 값만 출력.(grep 환경변수)는 값을 안보여줌)
-
- 하나씩 출력 :
echo $환경변수
← 출력시에는 $를 꼭 붙혀야한다.
ex) 사용자이름을 출력
- echo $USER ← echo는 쉘 내장 명령어라 메모리 차지가 적다
- (= who am i)
- (= users)
참고 : rc 설정 파일이란?
rc는 Resource Configuration을 의미한다
- 저장 위치 : 시스템 설정파일(/etc), 사용자 설정 파일(홈다이렉토리의 히든파일)
- 종류
- .bashrc : 셸을 위한 셸 스트립트. 셸 실행마다 실행됨
- .bash_profile : 로그인할 때 읽어들이는 설정파일
- .bash_logout : 셸이 종료될 때 수행
2) 변수 생성과 삭제
- 환경변수 생성 :
env 변수명=값
- 지역변수 생성 :
변수명=값
- 환경변수로 바꾸려면
export 변수명
- 환경변수로 바꾸려면
- 삭제(해제) :
unset 변수명
주의! 변수 생성 시 =(등호) 전후로 공백이 존재하면 안된다. 공백이 있으면 변수명을 명령어로 인식함!
3) bash 환경변수 등록
위에서 bashrc파일은 셀 실행마다 실행된다고 하였다. 셀실행마다 사용하고 싶은 환경변수가 있다면?
$ vi ~/.bashrc
exprot VAR=123
4) 별칭(alias)
파일에 링크가 있듯이, 명령어도 같은 기능 다른 이름으로 생성가능하다.
주의 : 명령어는 작은 따옴표로 묶는다.
alias 별칭='명령어
’- ex) alias copy=’cp’
4. 유저 정보
1) 유저 정보 확인
- /etc/passwd
- 위 경로에 각 유저의 7가지 정보가 존재
- 계정:비밀번호:UID:GID:GECOS:홈디렉터리:기본셀
2) 사용자명
users
: 현재 시스템이 로그인하고 있는 사용자명w users
: 사용자명 + 작업 정보까지 출력who
who am i
: who에서 자기 자신의 정보만
3) 비밀번호 변경
passwd
로 변경 가능- 설정에서도 변경 가능하지만, 현재는 리눅스를 교육용으로 사용하고 있으니 비밀번호가 짧은 것이 편하다 이를 위해 터미널에서 sudo를 사용해 짧게 변경가능함!
sudo passwd 사용자
root, 일반유저 둘 다 바꿔서 통일하자.
4) sudo 그룹에 추가
usermod -aG sudo 유저명
5. 프로세스
1) PCB(Process Control Block)
프로세스는 운영체제에서 PCB로 표현된다. 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 완료시 같이 제거된다.
- 프로세스 상태 5가지 : 생성, 준비, 실행, 대기, 종료 상태
- 구분
- 부모 : 자식을 만드는 프로세스
- 자식 : 부모 프로세스에 의해 생성
- 고아 : 실행 도중 부모 프로세스가 먼저 종료된 프로세스
- 좀비 : 종료되지 않고 살아있는 부모
- 데몬 : 눈에 보이지 않지만 백그라운드에서 실행되는 프로세스
2) 프로세스 정보 출력
ps
: 실행 중인 프로세스의 상태 출력(process status)ps aux
: 실행 중인 “모든” 프로세스의 상태 출력- 특정 프로세스 검색
ps -e | grep 프로세스명
ps -e는 커널 프로세스를 제외한 프로세스를 표시하고, 파이프를 통해 이를 grep이 입력받아 해당 프로세스의 정보만 출력한다.
top
: 실시간 프로세스 리스트 확인(table of process)- 3초 간격으로 갱신하며 프로세스를 모니터링
- shift + p : CPU 사용률 내림차순
- q : top 종료
3) 프로세스 실행 제어
- Ctrl + C : 강제 종료
- Ctrl + Z : 실행 중지
jobs
: 현재 중지 되었거나 백그라운드로 실행되는 프로세스(데몬) 표시- 여기서 작업번호를 확인할 수 있음 ex) [1], [2]..
- 종료 :
kill %작업번호
orkill 프로세스 번호
← PID는 ps에서 확인가능!
댓글남기기