cal -y : 현재 연도 달력 전체 출력
시스템 날짜 시간을 time서버와 동기화(root계정에서만 가능)
[root@linux-server ~]# rdate -s time.bora.net
--보라넷에서 날짜 가져와서 맞추기
[root@linux-server ~]# date
-- 확인해보면 맞음
[itwill@linux-server ~]$ cal -y >cal_2024.txt
파일생성
[itwill@linux-server ~]$ mv cal_2024.txt ~/test5
테스트5로 이동
[itwill@linux-server ~]$ mv ~/test5/cal_2024 .
현재 디렉터리로 이동
[itwill@linux-server ~]$ mv -b cal_2024 ~/test5
-b가 붙으면 백업파일 생성하고 이동
[itwill@linux-server ~]$ mv -v ~/test5/cal_2024
-v는 이동상태를 화면에 출력
[itwill@linux-server ~]$ mv cal_2024 cal_2024.txt
이름을 변경하면서 이동
[itwill@linux-server ~]$ mv ex1.txt ex1
[itwill@linux-server ~]$ mv ex2.txt ex2
[itwill@linux-server ~]$ mv ex3.txt ex3
[itwill@linux-server ~]$ ls
Desktop Downloads ex2 Music Public test1 test3 Videos
Documents ex1 ex3 Pictures Templates test2 test5
[itwill@linux-server ~]$ rename ex ex0 ex? (숫자 앞에 0을 추가하겠다)
[itwill@linux-server ~]$ ls
Desktop Downloads ex02 Music Public test1 test3 Videos
Documents ex01 ex03 Pictures Templates test2 test5
원상복구 해볼거임
[itwill@linux-server ~]$ rename ex0 ex ex??
[itwill@linux-server ~]$ ls
Desktop Downloads ex2 Music Public test1 test3 Videos
Documents ex1 ex3 Pictures Templates test2 test5
ESC키를 이용해서 입력모드, 명령모드로 다시 돌아갈 수 있다.
입력모드(INSERT MODE)
명령모드 상태에서 i, a, o, I, A, O의 단축키를 입력하여 입력모드로 전환할 수 있다. 입력모드에서 직접 글이나 코드를 작성할 수 있는 상태이다.
마지막 행 모드(LAST LINE MODE)
명령모드 상태일 때 :(콜론)을 입력하면 화면 제일 밑에서 명령을 수행하는 모드이다. 저장, 종료, 치환, 탐색 등의 기능을 수행할 수 있다.
[itwill@linux-server ~]$ cp /etc/passwd test.txt
-- 파일카피
[itwill@linux-server ~]$ vi test.txt
--여기서 테스트
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 : 커서의 오른쪽부터 입력
I : 커서의 줄 맨 앞에서부터 입력
A : 커서의 줄 맨 뒤에서부터 입력
o : 커서의 다음줄부터 입력
O : 커서의 윗줄에 입력
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 : 저장하고 종료 -> 처음 만드는 파일이면 이름 없으니 5로 실행
:w : 저장만 함(종료X)
:w filename : filename으로 저장(종료X)
:wq filename : filename으로 저장(종료O)
리눅스는 다중 사용자 시스템(multi user system) 하나의 서버 안에 유저들이 접속해서 작업하는 개념
itwill:x:1000:1000:itwill:/home/itwill:/bin/bash
1----2---3----4----5------6-----------7------
[itwill@linux-server ~]$ cat /etc/group
itwill:x:1000:itwill
--1--2---3----4--
생성 예시
[root@linux-server ~]# useradd user1
[root@linux-server ~]# tail -1 /etc/passwd <-한줄만 뽑아본거임
user1:x:1001:1001::/home/user1:/bin/bash
[root@linux-server ~]# tail -1 /etc/group
user1:x:1001:
[root@linux-server ~]# useradd user2
[root@linux-server ~]# tail -1 /etc/group
user2:x:1002:
[root@linux-server ~]# tail -1 /etc/passwd
user2:x:1002:1002::/home/user2:/bin/bash
비밀번호 생성(1234로 했음)
[root@linux-server ~]# passwd user1
Changing password for user user1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
사용자 계정 lock 설정
[root@linux-server ~]# passwd -l user2
Locking password for user user2.
(root계정에서는 들어갈 수 있음)
사용자 계정 lock 해제
[root@linux-server ~]# passwd -u user2
Unlocking password for user user2.
passwd: Success
사용자 패스워드 제거
[root@linux-server ~]# passwd -d user2
Removing password for user user2.
passwd: Success
(패스워드 제거하면 계정 접속이 되지 않음 ->재설정 필요)
패스워드 관리
[root@linux-server ~]# cat /etc/shadow
(암호화 되어있음)
user2:6wxOsBSL8$tx4XPGBWDHzqvrh51Rz9Ja030VnnSJ09OeRg3KbGqeovuySb6Mf2kDarw.xsSJzY0ahz9ha31YJV4MZKXCXAV0:19928:0:99999:7:::
에서
user2:6wx~~~:19928:0:99999:7:::
--1------2--------3----4---5---6
[root@linux-server ~]# userdel -r user1
userdel: user user1 is currently used by process 22099
(사용중인 유저라 삭제가 안됨)
[root@linux-server ~]# userdel -rf user1
userdel: user user1 is currently used by process 22099
(-r 추가하면 킬 하고 삭제됨)
[root@linux-server ~]# userdel -rf user1
userdel: user 'user1' does not exist
(확인해보면 유저 없음)
[root@linux-server ~]# w <--현재 접속한 유저 확인하는 명령어
14:34:24 up 5:33, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
itwill :0 :0 09:01 ?xdm? 38.21s 0.10s /usr/libexec/gnome-se
root pts/2 192.168.56.1 13:49 0.00s 0.03s 0.00s w
그룹이란 사용자를 하나로 묶어 관리하는 기능으로 모든 사용자는 그룹에 속하도록 되어있다.
사용자를 그룹을 통해 관리하며 각 그룹에게 보안설정, 정급설정, 권한 등을 주고 일괄적으로 그룹에 속한 사용자에게 적용할 수 있다.
==> 권한관리라고 생각하면 됨
현재 사용자 그룹 확인 : groups
[root@linux-server ~]# groups
root
내가 만든 파일 아니더라도 같은 그룹이면 파일 접근 가능. 이건 itwill이라는 그룹인거임

[root@linux-server ~]# groupadd oinstall <-- 그룹생성
[root@linux-server ~]# groupadd -g 2000 dba <-- -g는 번호설정
[root@linux-server ~]# groupadd -g 2001 oper
[root@linux-server ~]# tail -3 /etc/group <--확인
oinstall:x:1003:
dba:x:2000:
oper:x:2001:
그룹이름, 그룹 번호를 변경하는 명령어
groupmod [옵션]
- n : 그룹이름 변경
- g : 그룹번호 변경
groupmod -n [새로운 그룹이름][이전그룹이름]
[root@linux-server ~]# groupmod -n dbaoper oper
[root@linux-server ~]# tail -3 /etc/group
oinstall:x:1003:
dba:x:2000:
dbaoper:x:2001: <-- oper라는 이름이 dbaoper로 변함
groupmod -g [바꿀그룹번호][그룹이름]
[root@linux-server ~]# groupmod -g 1004 dba
[root@linux-server ~]# tail -3 /etc/group
oinstall:x:1003:
dba:x:1004: <-- 1004로 바뀜
dbaoper:x:2001:
--> OS그룹을 먼저 생성 -> 유저 생성
[root@linux-server ~]# useradd -g oinstall -G dba,dbaoper oracle
(1차그룹 oinstall, 2차그룹dba, dbaoper임 / 이름은 oracle임)
[root@linux-server ~]# tail -1 /etc/passwd
oracle:x:1003:1003::/home/oracle:/bin/bash
(확인)
[root@linux-server ~]# id oracle
uid=1003(oracle) gid=1003(oinstall) groups=1003(oinstall),1004(dba),1005(dbaoper)
(oracle계정 정보 확인 gid-1차원그룹 groups-2차그룹)
[oracle@linux-server ~]$ cal -y > test.txt
[oracle@linux-server ~]$ ll
total 4
-rw-r--r--. 1 oracle oinstall 2018 Jul 24 14:56 test.txt
(oracle이 만든 oinstall그룹에 생성된거 확인)
[root@linux-server ~]# useradd user1
[root@linux-server ~]# id user1
uid=1004(user1) gid=1006(user1) groups=1006(user1)
(기본 정보 확인)
[root@linux-server ~]# usermod -g oinstall -G dba,dbaoper user1
[root@linux-server ~]# id user1
uid=1004(user1) gid=1003(oinstall) groups=1003(oinstall),1004(dba),1005(dbaoper)
(그룹 변경)
[root@linux-server ~]# groupdel dba --> 그룹삭제1
[root@linux-server ~]# groupdel dbaoper --> 그룹삭제2
[root@linux-server ~]# tail -3 /etc/group --> 확인
user2:x:1002:
oinstall:x:1003:
user1:x:1006:
[root@linux-server ~]# id user1
uid=1004(user1) gid=1003(oinstall) groups=1003(oinstall)
(2차그룹 삭제 확인)
[root@linux-server ~]# groupdel oinstall
(1차그룹은 삭제하려고 하면 오류남)
[root@linux-server ~]# usermod -g oracle oracle
(오라클 그룹 없어서 오류)
[root@linux-server ~]# groupadd oracle
[root@linux-server ~]# tail -1 /etc/group
(그룹변경)
[root@linux-server ~]# usermod -g oracle oracle
[root@linux-server ~]# usermod -g user1 user1
(정보 변경)
[root@linux-server ~]# groupdel oinstall
(삭제가능)
권한-------------------문자------file-------------directory
1. 읽기(read) 권한------r------읽고,복사-------------ls
2. 쓰기(write) 권한-----w-----수정,삭제------------생성
3. 실행(execute) 권한---x-----shell script--------cd접근가능
[itwill@linux-server ~]$ cp /etc/passwd .
[itwill@linux-server ~]$ ls -l passwd
-rw-r--r--. 1 itwill itwill 2390 Jul 24 15:35 passwd
[itwill@linux-server ~]$ ls -l /etc/passwd
-rw-r--r--. 1 root root 2390 Jul 24 15:10 /etc/passwd
(itwill 계정에서 만들었고 root 그룹에 속한거도 아닌데 소유자가 root임)
권한 확인해보면
rw-r--r--
1--2--3
=> copy가 가능했던건 기타사용자에게 read 권한이 있었기 때문임
u : 소유자
g : 소유자 그룹
o : 기타 사용자
a : 전체
r : 읽기
w : 쓰기
x : 실행
+ : 권한 부여
- : 권한 삭제
실행해보겠음
[itwill@linux-server ~]$ chmod u+x passwd <-소유자+실행권한
[itwill@linux-server ~]$ ls -l passwd
-rwxr--r--. 1 itwill itwill 2390 Jul 24 15:35 passwd
==> 소유자 권한에 x 권한 추가
[itwill@linux-server ~]$ chmod g+x passwd
[itwill@linux-server ~]$ ls -l passwd
-rwxr-xr--. 1 itwill itwill 2390 Jul 24 15:35 passwd
==> 그룹에 대한 권한이 xr로 변경
[user1@linux-server ~]$ chmod o+w passwd.txt
[itwill@linux-server ~]$ ls -l passwd
-rwxr-xrw-. 1 itwill itwill 2390 Jul 24 15:35 passwd
==> 기타사용자가 읽기 쓰기 권한 변경
[user1@linux-server ~]$ chmod a+w passwd.txt
[user1@linux-server ~]$ chmod a+x passwd.txt
[itwill@linux-server ~]$ ls -l passwd
-rwxrwxrwx. 1 itwill itwill 2390 Jul 24 15:35 passwd
==> 모든 사용자가 읽기 쓰기 실행권한 가지게 됨
[itwill@linux-server ~]$ chmod a-rwx passwd
[itwill@linux-server ~]$ ls -l passwd
----------. 1 itwill itwill 2390 Jul 24 15:35 passwd
[itwill@linux-server ~]$ cat passwd
cat: passwd: Permission denied
==> 권한 다 빼버려서 본인도 조회가 안됨
[itwill@linux-server ~]$ chmod a+r passwd
[itwill@linux-server ~]$ ls -l passwd
-r--r--r--. 1 itwill itwill 2390 Jul 24 15:35 passwd
[itwill@linux-server ~]$ cat passwd
==> 모든 사용자가 읽기만 가능, 확인했을 때 내용 볼 수 있음
디렉토리로도 해보겠음
[itwill@linux-server ~]$ chmod a-rwx test1
[itwill@linux-server ~]$ cd test1
-bash: cd: test1: Permission denied
[itwill@linux-server ~]$ ls ~/test1
ls: cannot open directory /home/itwill/test1: Permission denied
==> test1에 대한 모든 권한 회수해서 소유자도 접근 및 확인 불가능
[itwill@linux-server ~]$ chmod a+x test1
[itwill@linux-server ~]$ ll
[itwill@linux-server ~]$ cd test1
[itwill@linux-server test1]$ ll
==> execute 권한 부여받아서 cd 가능해짐
[itwill@linux-server ~]$ rm -r test1
rm: descend into write-protected directory ‘test1’?
==>일부러 삭제 관련 권한 빼서 실수 방지하는 방법도 있음.
유저생성 권한부여 권한회수 연습 필요
루트계정
권한 상관없이 다됨
일반계정
읽기 : cat 사용해서 해봤는데 안됨
쓰기 : -r 은 보호걸렸는데 지울거냐고 물어봄, -rf로 지우기 됨