일기

24.07.24(수) 리눅스 명령어

Boggi 2024. 7. 25. 17:30
반응형

◎ 파일 이동 변경

mv 파일을 이동하는 명령어
이름을 수정할 때도 사용
mv cal_2024 test5/ cal_2024 파일을 test5 디렉토리 안에 이동시켜
mv ~/test5/cal_2024 . 상대경로
현재~test5에 있는 cal_2024파일을 .(현재 위치)에 이동
mv /home/itwill/cal_2024 /home/itwill/test5 절대경로
mv -i cal_2024 ~/test5 이동될 파일이 존재하면 덮어 쓰기 여부 물어보기
-i: interactive
mv -b cal_2024 ~/test5 이동될 파일이 존재하면 백업파일을 생성
mv cal_2024 cal_2024.txt 이름 수정
rename cal_2024.txt cal_2024 cal_2024.txt 파일 이름 변경
변경전파일 변경후파일 대상파일
rename ex ex0 ex?
rename ex0 ex ex??
한꺼번에 파일을 변경할 때 이용할 수 있음

 

◎ 시간 변경

rdate -s time.bora.net 시간이 맞지 않을 때 맞추기(root계정에서만 가)

 

◎ vi(visual editor) 문서 편집기 ★ ★ ★ ★ ★

h 왼쪽으로 이
j 아래이동
k 위로 이동
l 오른쪽 이동
H 화면 맨 위로 이동
M 화면 중간으로 이동
L 화면 맨 아래로 이동
G 문서 맨 아래로 이동
1G 숫자 라인으로 이동
gg 제일 첫 라인으로 이동
^ 그 줄의 맨 앞으로 이동
$ 그 줄의 맨 뒤로 이동
:n n번째 숫자 라인으로 이동
+ 커서를 다음행의 처음으로 이동
- 커서를 앞 행의 처음으로 이동
w 커서를 다음 단어 첫글자로 이동
b 커서를 앞 단어 첫글자로 이동
e 커서를 다음 단어 마지막글자로 이동
:set nu  라인번호 출력
:set nonu 라인번호 해제
/문자 문자 검색
 n을 누르면 검색된 다음 문자로 이동
 shift+n을 누르면 검색된 앞 문자로 이동
:noh 검색된 문자열의 블록처리 해지
i 커서의 왼쪽부터 입력
a 커서의 오른쪽부터 입력
l 커서의 줄 맨 앞에서부터 입력
A 커서의 줄 맨 뒤에서부터 입력
o 커서의 다음줄부터 입력
0 커서의 윗줄에 입력
s 커서 위치 한 글자를 지우고 입력
S 커서 위치 한줄을 지우고 입력
cw 커서 위치의 단어를 지우고 입력
x 글자 하나 삭제
dd 한 행 삭제
dw 커서에 있는 단어 삭제
:5 d 5번째 행 삭제
:5,6 d 5번째  6번째 행 삭제
D 커서 오른쪽 행 삭제
u 방금 수행한 작업 취소
yy 커서의 행 복사
nyy 커서부터 숫자 행만큼 복사
yG 현재부터 파일 끝까지 복사
p 복사한 내용을 현재행 이후 붙여넣기
P 복사한 내용을 현재 행 이후에 붙여넣기
 :1,2 co 3 1,2행을 복사해서 3행 다음으로 붙여넣기
:1,2 m 3 1,2행을 3행 다음으로 이동하기
:s/기존문자/변경할문자 지금 커서가 있는 위치에서 첫번째로 나오는 기존문자를 변경할문자로 변경
:s/기존문자/변경할문자/g 지금 커서가 있는 행에서 기존문자를 변경할 문자로 모두 변경
 :%s/기존문자/변경할문자/g 문서 전체에서 기존문자를 변경할 문자로 모두 변경
:q! 저장하지 않고 종료
:wq 저장하고 종료
:w 저장(save 시킴)
:w filename 파일 이름을 변경해서 저장
:wq filename file이름으로 변경해서 저장하고 종료

 

◎ 사용자 계정 관리

cat /etc/passwd 사용자 계정 정보
useradd, adduser 유저 생성하는 명령어
tail -1 /etc/passwd 생성 후 유저 확인하기
tail -1 /etc/group 생성 후 그룹 확인하기  
passwd 유 사용자의 비밀번호를 지정하거나 변경하는 명령어
passwd -l user2 사용자 계정 lock걸기
l : lock
passwd -u user2 사용자 계정 락 풀기
u : unlock
passwd -d user2 패스워드 제거
d : delete
userdel -r user1 계정 삭제하는 명령어
-r : remove : 유저에게 할당된 모든 파일, 디렉터리 삭제
userdel -rf user1 유저가 리눅스에 잡속을 했을 경우 kill시킨 후 삭제
w 현재 접속한 유저들 확인
groups 현재 사용자 그룹 확인
groupadd 그룹이 그룹을 생성하는 명령어
groupadd -g 2000 dba 그룹번호를 지정해서 그룹 생성
-g : --gid
gid는 그룹 ID (GID)를 지정하는 데 사용
groupmod 그룹이름, 그룹번호를 변경하는 명령어
groupmod -n dbaoper oper oper그룹의 이름을 dbaoper로 변경
groupmod -g 1004 dba dba의 그룹번호를 1004로 변경
useradd -g oinstall -G dba,dbaoper oracle 그룹과 함께 유저 생성
-g : 1차원 그룹을 의미
-G : 2차원 그룹을 의미   
id oracle 계정정보 확인
usermod 계정 정보를 변경하는 명령어
usermod -g itwill user1 1차원 그룹 정보 변경  
usermod -G user2 user2 user2 계정의 보조 그룹중에 user2만 남기고 다 삭제
usermod -aG user10 user2 그룹 추가
-a: --append 
gpasswd -d user2 user10 그룹 삭제 
user2 계정의 user10그룹을 삭제
groupdel 그룹이 그룹을 삭제
[root@linux-server ~]# groupdel oinstall
groupdel: cannot remove the primary group of user 'oracle'
참고 1차 그룹은 삭제시 오류 발생
--> 1차원 그룹은 1차원 그룹의 이름을 바꿔준 후 삭제해야 함.
     그룹은 그룹 안에 아무도 없어야지 삭제가 가능.
     1차원 그룹을 다른 그룹으로 바꿔주고 해당 그룹을 삭제한       다고 이해를 하는 게 좋다

 

◎유저를 만들기 전에 그룹을 먼저 생성해야 한다.
    그 후 유저를 생성한다.

 

#사용자 계정 정보
[itwill@linux-server ~]$ cat /etc/passwd
itwill:x:1000:1000:itwill:/home/itwill:/bin/bash
  1   2    3     4     5          6               7
1유저이름 / 2암호 / 3유저 ID / 4(유저 소속된)그룹 ID / 5전체이름 / 6홈 디렉토리 / 7기본셸

 

# 그룹 정보
[itwill@linux-server ~]$ cat /etc/group
itwill:x:1000:itwill
   1   2   3    4
1그룹이름 / 2비밀번호 / 3그룹ID / 4그룹에 속한 유저

 

# cat /etc/shadow

user2:$6$BNlB1.8f...:19928:0:99999:7:::
  1         2               3    4    5    6
1유저이름 / 2패스워드 / 3마지막으로 암호를 변경한 날까지 일수(1970년 1월 1일 기준) / 4암호 변경이 가능한 일수
5암호를 반드시 변경해야하는 날까지 남은 일수 / 6암호 유효기간 전에 경고를 표시할 일수

 

◎ 파일의 접근 권한 관리

권한 문자 file directory
읽기(read)권한 r 읽고, 복사 ls
쓰기(write)권한 w 수정, 삭제 생성
실행(execute)권한 x shell script 실행 cd 접근가능

rw- r-- r--
1    2   3
1파일의 소유자의 권한 / 2파일소유자의 그룹의 권한 / 3기타 사용자 권한

 

◎ 권한

chmod 권한 수정
u : 소유자
g : 소유자의 그룹
o : 기타 사용자
a : 전체
+ : 권한 부여
-  : 권한 해지(회수)
chmod u+x passwd 소유자에게 x 권한 주
chmod g+w passwd 그룹에 대해서 w할 수 있는 권한 주기
chmod a+rwx passwd 전체에게 모든 권한 주기
chmod a-rwx passwd 권한 다 빼버리기(소유자 자신도)
chmod u+rw,g+r,o+r cal.txt 한꺼번에 권한을 주

소유자가 본인이라도 w권한을 해제해놓으면 실수로 삭제할 일이 없어!

권한을 바꾸는 건 소유자만 가능!

 

파일은 rw권한만 있으면 되지만, 디렉토리는 x권한이 있어야지 엑세스 권한이 있는거야.

★ Permission은 항상 체크를 해야해!