■ 현재 date, timezone 확인
[user1@centos ~]$ date
Thu Nov 30 19:47:02 EST 2023
[user1@centos ~]$ timedatectl
Local time: Thu 2023-11-30 19:47:53 EST
Universal time: Fri 2023-12-01 00:47:53 UTC
RTC time: Fri 2023-12-01 00:47:51
Time zone: America/New_York (EST, -0500)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2023-11-05 01:59:59 EDT
Sun 2023-11-05 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2024-03-10 01:59:59 EST
Sun 2024-03-10 03:00:00 EDT
■ timezone 정보 확인
[root@centos ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
...
# 페이지 나눠보기
[root@centos ~]# timedatectl list-timezones | more
■ timezone 변경
- 루트계정에서 변경 가능
[root@centos ~]# timedatectl set-timezone "Asia/Seoul"
[root@centos ~]# timedatectl
timedatectl
Local time: Fri 2023-12-01 09:55:07 KST
Universal time: Fri 2023-12-01 00:55:07 UTC
RTC time: Fri 2023-12-01 00:55:05
Time zone: Asia/Seoul (KST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
■ cal 달력
[user1@centos ~]$ cal
December 2023
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
[user1@centos ~]$ cal 2023
>> 1년치 달력보기
[user1@centos ~]$ cal 12 2023
>> 해당 년도의 월 달력보기
■ redirection
화면에 출력되는 결과를 파일로 저장하는 명령어
>> | 파일이 없으면 파일을 생성하고 있으면 기존 파일 뒤에 덧붙이겠다.(append) |
> | 파일 생성하게다. 있으면 그냥 덮어쓰겠다.(write) |
[user1@centos ~]$ cal > output_202312
[user1@centos ~]$ cat output_202312
December 2023
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
[user1@centos ~]$ cal 12 2022 > output_202312
[user1@centos ~]$ cat output_202312
December 2022
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
[user1@centos ~]$ cal 12 2021 >> output_202312
[user1@centos ~]$ cat output_202312
December 2022
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
December 2021
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
■ wc
파일안의 단어의 갯수 또는 라인수를 출력하는 명령어
[user1@centos ~]$ ls -l > output_ls
[user1@centos ~]$ wc output_ls
11 92 529 output_ls
11 | 92 | 529 | output_ls |
라인수 | 단어 수 | 문자수 | 파일명 |
-l | 라인수를 출력 |
-w | 단어수를 출력 |
-c | 문자수를 출력 |
f | 다음(밑) |
b | 이전(위) |
[user1@centos ~]$ wc -l output_ls
11 output_ls
[user1@centos ~]$ wc -w output_ls
92 output_ls
[user1@centos ~]$ wc -c output_ls
529 output_ls
■ grep
파일안에 포함된 특정 단어난 구문을 검색하는 명령어
-i | 대소문자 구분하지 않는다. |
[user1@centos ~]$ grep 'Asia' timezone_name > asia
> timezone_name 안에서 'Asia' 단어를 찾는다 > asia 파일명으로 덮어쓰기
[user1@centos ~]$ grep 'Seoul' timezone_name
Asia/Seoul
[user1@centos ~]$ grep 'seoul' timezone_name
[user1@centos ~]$
[user1@centos ~]$ grep -i 'seoul' timezone_name
Asia/Seoul
■ cp
파일을 복사하는 명령어
-f | 복사될 파일 이름이 이미 존재하는 경우, 덮어쓰기 한다. (기본값) |
-i | 복사될 파일 이름이 이미 존재하는 경우, 사용자에게 덮어쓰기 여부를 묻는다. |
-b | 복사될 파일 이름이 이미 존재하는 경우, 백업파일을 생성한다. |
-v | 복사하는 내용을 화면에 출력 |
-r | 기존 디렉터리를 하위 내용을 포함하여 새로운 디렉터리로 복사 |
-a | 원본 파일의 속성정보까지 모두 복사 |
# 현재 디렉터리에서 파일 복사
[user1@centos test1]$ cp ex1.txt ex3.txt
[user1@centos test1]$ ls
ex1.txt ex2.txt ex3.txt
# 다른 디렉터리 위치에 파일 복사 (절대경로)
[user1@centos test1]$ cp ex1.txt /home/user1/text2
[user1@centos test1]$ ls /home/user1/text2
/home/user1/text2
[user1@centos test1]$ ls
ex1.txt ex2.txt ex3.txt
# 다른 디렉터리 위치에 파일 복사 (상대경로)
[user1@centos test1]$ cp ex2.txt ~/test2
[user1@centos test1]$ ls ~/test2
ex2.txt
[user1@centos test1]$ cat ~/test2/ex2.txt
# 다른 이름으로 복사(하나씩 가능)
[user1@centos test1]$ cp ex2.txt ~/test2/ex_new.txt
# 디렉터리 안에 있는 파일들을 다른 디렉터리에 복사
[user1@centos ~]$ rm text2
[user1@centos ~]$ cp ~/test1/* ~/test3
[user1@centos ~]$ ls ~/test3
ex1.txt ex2.txt ex3.txt
# 복사하는 내용을 화면에 출력 -v
[user1@centos ~]$ cp -v /etc/bashrc ~/test2
‘/etc/bashrc’ -> ‘/home/user1/test2/bashrc’
[user1@centos ~]$ ls ~/test2
bashrc ex2.txt
# 기존 디렉터리를 새로운 디렉터리로 복사 -r
[user1@centos ~]$ cp -rv ~/test1 ~/test4
‘/home/user1/test1’ -> ‘/home/user1/test4’
‘/home/user1/test1/ex1.txt’ -> ‘/home/user1/test4/ex1.txt’
‘/home/user1/test1/ex2.txt’ -> ‘/home/user1/test4/ex2.txt’
‘/home/user1/test1/ex3.txt’ -> ‘/home/user1/test4/ex3.txt’
또는
[user1@centos ~]$ cp -r -v ~/test1 ~/test4
[user1@centos ~]$ ls ~/test4/test1
ex1.txt ex2.txt ex3.txt
# 복사될 파일 이름이 이미 존재하는 경우, 사용자에게 덮어쓰기 여부를 문는 옵션 -i
[user1@centos test2]$ ls ~/test1/ex1.txt ~/test2/ex1.txt
/home/user1/test1/ex1.txt /home/user1/test2/ex1.txt
>>> 동일한 파일이 있는지 확인
[user1@centos test2]$ cp ~/test1/ex1.txt ~/test2
>>> 덮어쓰기
[user1@centos test2]$ cp -i ~/test1/ex1.txt ~/test2
cp: overwrite ‘/home/user1/test2/ex1.txt’?
# 복사될 파일 이름이 이미 존재하는 경우, 백업파일을 생성한다. -b
[user1@centos test2]$ cp -bv ~/test1/ex1.txt ~/test2
‘/home/user1/test1/ex1.txt’ -> ‘/home/user1/test2/ex1.txt’ (backup: ‘/home/user1/test2/ex1.txt~’)
[user1@centos test2]$ ls ~/test2
bashrc ex1.txt ex1.txt~ ex2.txt
# 복사될 파일 이름이 이미 존재하는 경우, 덮어쓰기 한다. (기본값)
[user1@centos test2]$ cp -fv ~/test1/ex1.txt ~/test2
‘/home/user1/test1/ex1.txt’ -> ‘/home/user1/test2/ex1.txt’
# 원본 파일의 속성정보까지 모두 복사 -a
[user1@centos ~]$ cp -iv ~/test1/ex1.txt ~/test2/ex_old.txt
‘/home/user1/test1/ex1.txt’ -> ‘/home/user1/test2/ex_old.txt’
[user1@centos ~]$ ls -l ~/test1/ex1.txt ~/test2/ex_old.txt
-rw-rw-r--. 1 user1 user1 29 Dec 1 11:05 /home/user1/test1/ex1.txt
-rw-rw-r--. 1 user1 user1 29 Dec 1 11:58 /home/user1/test2/ex_old.txt
[user1@centos ~]$ cp -av ~/test1/ex1.txt ~/test2/ex_old_2.txt
‘/home/user1/test1/ex1.txt’ -> ‘/home/user1/test2/ex_old_2.txt’
[user1@centos ~]$ ls -l ~/test1/ex1.txt ~/test2/ex_old_2.txt
-rw-rw-r--. 1 user1 user1 29 Dec 1 11:05 /home/user1/test1/ex1.txt
-rw-rw-r--. 1 user1 user1 29 Dec 1 11:05 /home/user1/test2/ex_old_2.txt
[user1@centos ~]$ date '+%Y%m%d %H%M%S %s %I %p %a %A %F %T'
20231201 121103 1701400263 12 PM Fri Friday 2023-12-01 12:11:03
# backup 디렉터리를 생성해서 복사
[user1@centos ~]$ cp -rav ~/test1 backup$(date '+_%Y%m%d')
‘/home/user1/test1’ -> ‘backup_20231201’
‘/home/user1/test1/ex1.txt’ -> ‘backup_20231201/ex1.txt’
‘/home/user1/test1/ex2.txt’ -> ‘backup_20231201/ex2.txt’
‘/home/user1/test1/ex3.txt’ -> ‘backup_20231201/ex3.txt’
또는
[user1@centos ~]$ cp -rav ~/test1 ~/backup$(date '+_ %Y%m%d %H%M%S ')
■ mv (move)
파일을 이동하는 명령어
-i | 이동될 파일이 존재하면 덮어쓰기 여부를 묻는다. |
-b | 이동될 파일이 존재하면 백업파일을 생성한다. |
-f | 이동될 파일이 존재하면 덮어쓰기한다. |
-v | 이동 진행 상태를 출력한다. |
[user1@centos test1]$ ls
ex1.txt ex2.txt
[user1@centos ~]$ mkdir test2
[user1@centos ~]$ mv ~/test1/ex1.txt ~/test2
[user1@centos ~]$ ls ~/test1
ex2.txt
[user1@centos ~]$ ls ~/test2
ex1.txt
[user1@centos ~]$ cd test2
[user1@centos test2]$ cal > ex2.txt
[user1@centos test2]$ ls
ex1.txt ex2.txt
[user1@centos ~]$ mv -i ~/test1/ex2.txt ~/test2
mv: overwrite ‘/home/user1/test2/ex2.txt’? n
[user1@centos ~]$ mv -b ~/test1/ex2.txt ~/test2
[user1@centos ~]$ ls ~/test1 ~/test2
/home/user1/test1:
/home/user1/test2:
ex1.txt ex2.txt ex2.txt~
# 디렉터리 내 파일 모두 이동
[user1@centos ~]$ mv -v ~/test2/* ~/test1
‘/home/user1/test2/ex1.txt’ -> ‘/home/user1/test1/ex1.txt’
‘/home/user1/test2/ex2.txt’ -> ‘/home/user1/test1/ex2.txt’
‘/home/user1/test2/ex2.txt~’ -> ‘/home/user1/test1/ex2.txt~’
[user1@centos ~]$ ls ~/test1 ~/test2
/home/user1/test1:
ex1.txt ex2.txt ex2.txt~
/home/user1/test2:
# 디렉터리 이동
[user1@centos ~]$ mv ~/test1 ~/test2
# 디렉터리를 현재 위치로 이동
[user1@centos ~]$ mv ~/test2/test1 .
# 디렉터리를 사용자 홈디렉터리로 이동
[user1@centos ~]$ mv ~/test2/test1 ~
# 자기 위치에서 이름바꾸기
[user1@centos test1]$ mv ex1.txt date.txt
■ rename
파일 이름 변경
하나이상의 파일이름을 일괄변경할 때 사용하는 명령어
rename 변경전파일명 변경후파일명 대상파일
[user1@centos test1]$ ls
date.txt ex2.txt ex2.txt~
[user1@centos test1]$ rename date.txt ex1.txt date.txt
[user1@centos test1]$ ls
ex1.txt ex2.txt ex2.txt~
# 파일명 일괄 변경
[user1@centos test1]$ ls
ex1 ex2 ex3
[user1@centos test1]$ rename ex ex0 ex?
[user1@centos test1]$ ls
ex01 ex02 ex03
[user1@centos test1]$ rename ex0 ex ex??
[user1@centos test1]$ ls
ex1 ex2 ex3
? : 한글자
* : 여러글자
■ vi (visual editor)
문서 편집기
1. 명령 모드(command mode)
vi의 기본모드이며 :(콜론)을 이용하면 명령모드를 수행할 수 있다.
2. 입력 모드(edit mode)
기본모드에서 바로 단축키를 눌러서 수행
대소문자 주의. 명령어 사용 후 esc 습관화하자
[user1@centos ~]$ cp -v /etc/passwd ~/test1
‘/etc/passwd’ -> ‘/home/user1/test1/passwd’
[user1@centos test1]$ vi passwd
# 이동 명령어
h | 왼쪽으로 이동 |
j | 아래로 이동 |
k | 위로 이동 |
l | 오른쪽으로 이동 |
H | 화면 맨 위로 이동 |
M | 화면 중간으로 이동 |
L | 화면 맨 아래로 이동 |
G | 문서의 맨 아래 |
gg | 문서의 맨 위 |
10G | 10번행로 이동 (행이동) |
:7 | 7번행으로 이동 (행이동) |
^ | 현재 행 맨 앞 커서 이동 |
$ | 현재 행 맨 뒤 커서 이동 |
+ | 커서를 다음행 처음으로 이동 |
- | 커서를 앞 행의 처음으로 이동 |
w | 커서를 다음 단어 첫글자로 이동 |
b | 커서를 앞 단어 첫글자로 이동 |
e | 커서를 다음 단어 마지막 글자로 이동 |
:set nu | 라인번호 표시 |
:set nonu | 라인번호 해제 |
/문자 | 문자 검색 |
n | 검색된 다음 문자로 이동 |
shift+n | 검색된 이전 문자로 이동 |
:noh | 검색 문자열 블록 처리 해지 |
# 입력 명령어
i | 커서 왼쪽부터 입력 |
a | 커서의 오른쪽부터 입력 |
I | 커서의 줄 맨 앞에서부터 입력 |
A | 커서의 줄 맨 뒤에서부터 입력 |
o | 커서의 다음줄부터 입력 |
O | 커서의 윗줄에 입력 |
s | 커서 위치의 한글자를 지우고 입력 |
S | 커서 위치의 한 줄을 지우고 입력 |
cw | 커서 위치의 단어를 지우고 입력 |
# 삭제 명령어
x | 철자 하나 삭제 (del) |
dd | 한 행 삭제 |
dw | 커서에 있는 단어 삭제 |
:1d | 1번행 삭제 |
:1,2d | 1 ~ 2번행 삭제 |
D | 커서 오른쪽 행 삭제 |
# 취소 명령어
u | 방금 수행한 작업 취소, 되돌리기 (ctr+z) |
# 복사 / 붙여넣기
yy | 커서의 행 복사 |
5yy | 커서 위치 ~ 5행 만큼 복사 |
yG | 현재행부터 파일끝까지 복사 |
p | 복사한 내용을 커서 다음행에 붙여넣기 |
P | 복사한 내용을 커서 이전행에 붙여넣기 |
:1,2 co 3 | 1 ~ 2번행을 복사해서 3번행 다음행에 붙여넣기 |
:1,2 m 3 | 1 ~ 2번행을 3번행 다음행에 붙여넣기 |
# 문자열 검색해서 수정
:s/기존문자/변경할문자 | 커서가 있는 행에서 첫번째로 나오는 기존문자를 변경할 문자로 변경 |
:s/기존문자/변경할문자/g | 커서가 있는 행의 기존문자를 변경할 문자로 모두 변경 |
:%s/기존문자/변경할문자/g | 문서 전체에서 기존문자를 변경할 문자로 모두 변경 |
# 파일 저장 및 종료
:q! | 저장하지 않고 vi 종료 |
:wq | 저장하고 vi 종료 |
:w | 저장 |
:w filename | filename으로 저장한 후 계속 편집 (다른이름으로 저장) |
:wq filename | filename으로 저장하고 vi 종료 |
date
timedatectl
cal
>>
>
wc
grep
cp
mv
rename
vi
'Linux & CentOS' 카테고리의 다른 글
42 LINUX 파라미터 변수, if, case, for, eval, while (1) | 2023.12.06 |
---|---|
41 LINUX .bash_profile, cut, awk, sort, uniq, echo, 연산, Shell (2) | 2023.12.05 |
40 LINUX user, group, 권한, tar (1) | 2023.12.04 |
38 LINUX VM, CentOS, ls, pwd, cd, mkdir, rmdir, rm 외 (1) | 2023.11.30 |