명령어 관련 게시글 - JooTC https://jootc.com/p/tag/명령어 Windows, macOS, Linux, IT, 프로그래밍 등 여러가지 테크 분야에 대한 정보와 습득 지식을 포스팅하는 블로그입니다. Wed, 29 May 2024 05:37:33 +0000 ko-KR hourly 1 https://jootc.com/wp-content/uploads/2020/06/cropped-jootc-icon-logo-2020-04-1-32x32.png 명령어 관련 게시글 - JooTC https://jootc.com/p/tag/명령어 32 32 167838187 리눅스 kill, killall 명령어 – 특정 프로세스 종료하기 https://jootc.com/p/202404054168 https://jootc.com/p/202404054168#respond Fri, 05 Apr 2024 08:58:38 +0000 https://jootc.com/?p=4168 리눅스 명령어 – kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는 작업이 있거나 더 이상 응답이 없는 프로그램을 강제 종료할 때 주로 사용합니다. kill 명령어와 함께 사용되는 인자값으로는 종료할 프로세스의 ID값(PID라고 합니다.)과 종료 명령을 위한 신호 코드가 필요합니다. 이를 시그널(Signal)이라고 합니다. 인자값에 프로세스 이름을 입력해도 kill이 수행되지 않으므로 이름 대신 PID를 […]

The post 리눅스 kill, killall 명령어 – 특정 프로세스 종료하기 appeared first on JooTC.

]]>
리눅스 명령어 – kill, killall

리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는 작업이 있거나 더 이상 응답이 없는 프로그램을 강제 종료할 때 주로 사용합니다.

kill 명령어와 함께 사용되는 인자값으로는 종료할 프로세스의 ID값(PID라고 합니다.)과 종료 명령을 위한 신호 코드가 필요합니다. 이를 시그널(Signal)이라고 합니다. 인자값에 프로세스 이름을 입력해도 kill이 수행되지 않으므로 이름 대신 PID를 입력해야 합니다. (단, 후술할 killall 명령어는 PID 대신 프로세스 이름을 입력합니다.)

PID를 찾는 방법은 현재 실행 중인 프로세스 목록을 확인하는 ps 명령어와 출력값에서 검색을 수행하는 grep 명령어를 조합하여 종료할 프로세스를 검색하는 방법이 있습니다.

$ ps -aef | grep sshd
user        1452    1325  0 17:22 ?        00:00:00 sshd: user@pts/0

위 예시에서 sshd 프로세스의 PID 번호는 두번째 값인 1452입니다.

사용 방법

프로세스의 PID값을 알아내었다면 다음과 같이 kill 명령어를 사용할 수 있습니다.

$ kill -9 1452

만약 현재 사용자가 아닌 다른 사용자 또는 root 사용자로 열린 프로세스나 시스템 프로세스를 강제 종료하려고 하면 실패할 것입니다. 다른 사용자의 프로세스를 강제로 종료하려면 관련 권한이 필요할 수 있습니다.

위 예시에서 -9()로 시그널 값을 지정하였습니다. 만약 인자값에 시그널을 별도로 지정하지 않으면 기본 시그널 값은 -15(SIGTERM)이 됩니다. SIGTERM은 실행을 중단하기 위해 프로그램에 요청하는 코드입니다. 하지만 프로그램의 응답이 없어 강제 종료를 원하는 경우에는 이 시그널 대신 -9(SIGKILL)을 사용해야 합니다.

프로그램에게 종료 상태를 올바르게 알리기 위해서나 시스템 관리에 혼란을 주지 않으려면 시그널을 생략하지 않는 것이 좋습니다. 만약 SIGKILL 시그널을 보내려면 아래 방법 중 하나로 시그널을 보낼 수 있습니다.

  • kill -9 [pid]
  • kill -SIGKILL [pid]
  • kill --signal 9 [pid]
  • kill --signal SIGKILL [pid]
  • kill -s 9 [pid]
  • kill -s SIGKILL [pid]

kill 명령어에 -l 옵션을 사용하면 전체 시그널(Signal) 목록을 확인할 수 있습니다.

$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

리눅스 killall 명령어

프로세스 이름을 알고 있다면 PID 대신 프로세스 이름으로 프로그램을 종료할 수도 있습니다. 이럴 때는 killall 명령어를 사용해야 합니다.

이 명령어는 시스템에 기본으로 설치되지 않았을 수 있습니다. 일부 리눅스 배포판에서는 killall을 설치해야 할 수 있습니다.

killall에는 추가적인 옵션이 많지만 kill과 비슷한 옵션으로 구성되어 있습니다. 아래 예시는 vim 프로그램을 모두 종료하는 명령어입니다.

$ killall vim

마찬가지로 -s, --signal 옵션을 사용하여 강제 종료 명령을 보낼 수 있습니다.

$ killall --signal SIGKILL vim

이외에도 POSIX 정규표현식을 사용하여 정규식에 매칭되는 이름을 모두 종료시킬 수 있습니다. 이 때는 -r 또는 --regexp 옵션을 사용합니다.

The post 리눅스 kill, killall 명령어 – 특정 프로세스 종료하기 appeared first on JooTC.

]]>
https://jootc.com/p/202404054168/feed 0 4168
리눅스 cp 명령어 – 파일 및 디렉토리 복사 https://jootc.com/p/202206123902 https://jootc.com/p/202206123902#respond Sun, 12 Jun 2022 05:04:48 +0000 https://jootc.com/?p=3902 리눅스 명령어 – cp 리눅스에서 파일 처리를 할 때 가장 많이 사용되는 명령어 중 하나인 cp 명령어를 살펴보겠습니다. 명령어 이름에서 유추할 수 있다시피 복사(copy)의 약자이며 파일이나 폴더를 다른 위치로 복사해주는 역할을 합니다. 사용 방법 cp 명령어의 사용 방법은 mv 명령어와 유사합니다. 두개의 인자값이 필요하며 앞쪽의 옵션은 선택에 따라 사용됩니다. 각 인자와 옵션 사이에는 공백이 필요합니다. […]

The post 리눅스 cp 명령어 – 파일 및 디렉토리 복사 appeared first on JooTC.

]]>
리눅스 명령어 – cp

리눅스에서 파일 처리를 할 때 가장 많이 사용되는 명령어 중 하나인 cp 명령어를 살펴보겠습니다. 명령어 이름에서 유추할 수 있다시피 복사(copy)의 약자이며 파일이나 폴더를 다른 위치로 복사해주는 역할을 합니다.

사용 방법

cp 명령어의 사용 방법은 mv 명령어와 유사합니다. 두개의 인자값이 필요하며 앞쪽의 옵션은 선택에 따라 사용됩니다. 각 인자와 옵션 사이에는 공백이 필요합니다.

  • 첫번째 인자값: 복사할 대상 파일이나 디렉토리 경로입니다.
  • 두번째 인자값: 복사 될 파일이나 디렉토리의 도착 경로입니다.
$ cp {옵션 (선택적)} {첫번째인자값} {두번째인자값}

예를 들어 /home/user/Downloads/a.txt 라는 파일을 /home/user/Desktop 경로로 복사해보겠습니다. 전자의 경로(대상)는 첫번째 인자값에, 후자의 경로(목적지)는 두번째 인자값에 넣어 명령을 실행할 수 있습니다.

$ cp /home/user/Downloads/a.txt /home/user/Desktop

두번째 인자값의 경로에 파일명은 생략해도 됩니다. 그러나 만약 a.txt 파일을 복사하면서 b.txt 파일로 이름을 바꾸고 싶다면 두번째 인자값 경로에 변경할 파일 이름을 같이 포함하면 됩니다.

$ cp /home/user/Downloads/a.txt /home/user/Desktop/b.txt

만약 복사할 파일의 경로가 서로 같고, 파일 이름만 다른 경우 현재 디렉토리 경로를 생략할 수도 있습니다.

$ cp a.txt b.txt

지금까지는 하나의 파일을 복사하는 것이었지만, 만약 디렉토리와 디렉토리 내의 모든 파일을 한번에 복사하고 싶을 때가 있습니다. 이럴 때는 위와 같이 사용하는 것은 같지만 인자값에 파일명은 제외해야 하며, -r 옵션을 반드시 붙여야 합니다.

$ cp -r /home/user/Downloads /home/user/Desktop

이렇게하면 /home/user/Desktop 디렉토리에 Downloads 폴더가 복사될 것입니다. 만약 -r 옵션을 붙이지 않는다면 아래와 같은 에러가 발생할 것입니다.

cp: -r not specified; omitting directory 'Downloads'

리눅스에서 지원되는 와일드카드 기호를 사용하면 특정 규칙에 일치하는 파일들을 한번에 특정 디렉토리로 복사할 수도 있습니다. 예를들어 Hello1.txtHello2.txt 파일이 있을 때 아래와 같이 He*를 사용하면 두 파일을 모두 복사할 수 있습니다.

$ cp /home/user/Downloads/He* /home/user/Desktop

The post 리눅스 cp 명령어 – 파일 및 디렉토리 복사 appeared first on JooTC.

]]>
https://jootc.com/p/202206123902/feed 0 3902
리눅스 export 명령어 – 사용자 환경 변수 값 적용하기 https://jootc.com/p/202112103837 https://jootc.com/p/202112103837#respond Fri, 10 Dec 2021 05:37:01 +0000 https://jootc.com/?p=3837 리눅스 명령어 – export 환경 변수는 사용자 또는 시스템 단위로 설정할 수 있는 동적 값 세트이며 주로 프로그램이나 커맨드라인 명령어를 실행할 때 해당 프로그램에서 경로, 설정 등을 파악하기 위해 사용합니다. 윈도우와 macOS 뿐만 아니라 리눅스에서도 환경변수를 사용하고 있으며, env 명령어를 사용하면 현재 사용자의 환경 변수 목록을 출력해서 확인할 수 있습니다. 환경 변수를 커맨드라인 명령을 통해 […]

The post 리눅스 export 명령어 – 사용자 환경 변수 값 적용하기 appeared first on JooTC.

]]>
리눅스 명령어 – export

환경 변수는 사용자 또는 시스템 단위로 설정할 수 있는 동적 값 세트이며 주로 프로그램이나 커맨드라인 명령어를 실행할 때 해당 프로그램에서 경로, 설정 등을 파악하기 위해 사용합니다.

윈도우macOS 뿐만 아니라 리눅스에서도 환경변수를 사용하고 있으며, env 명령어를 사용하면 현재 사용자의 환경 변수 목록을 출력해서 확인할 수 있습니다.

환경 변수를 커맨드라인 명령을 통해 설정하려면 export 명령을 사용하면 됩니다.

사용 방법

리눅스 export 명령은 꽤 간단하게 실행할 수 있습니다. 먼저 지정할 변수명과 값을 아래와 같이 대입하여 사용하면 됩니다.

$ export TERM=xterm

위 예시에서는 TERM이라는 환경변수의 값을 xterm으로 변경한 상황입니다. = 기호의 양옆에는 공백을 포함하지 않아야 합니다.

환경변수 값이 길어지거나 공백이 많은 경우 큰따옴표(")를 사용하여 묶어도 됩니다. 다만 변수명에는 큰따옴표를 사용하지 않아야 합니다.

$ export MY_PROJECT_PATH="/home/user/Projects"

설정한 변수가 실제로 적용되었는지 확인해보려면 env 명령 또는 echo 명령을 통해 확인해볼 수 있습니다.

env의 경우 많은 환경변수가 출력되기 때문에 grep을 통해 원하는 변수만 출력되도록 합니다.

$ env | grep MY_PROJECT_PATH

echo는 달러 기호($)를 붙여서 간단하게 원하는 변수만 출력할 수 있습니다. 달러 기호를 붙이지 않으면 입력한 그대로의 문자열이 출력될 것입니다.

$ echo $MY_PROJECT_PATH

export 명령어를 사용할 때 반드시 주의해야 할 점이 있습니다. 이 명령어는 로그인 셸에 한해 일시적으로 적용되기 때문에 로그아웃을 하거나 재부팅을 하게되면 지정한 변수가 모두 초기화 될 것입니다.

환경변수 값을 지속적으로 유지하려면 .bashrc.bash_profile과 같은 특정 로그인 스크립트 파일에 export 명령문 전체를 하단에 붙여넣으면 됩니다. 전체 사용자에 적용하려면 /etc/bash.bashrc 파일의 하단에, 현재 사용자에게만 적용하려면 사용자 홈 디렉토리인 ~/.bashrc 파일의 하단에 명령을 붙여넣으면 됩니다.

단 시스템 마다 사용 중인 셸(bash, zsh…)이나 운영체제에 따라 파일명이 달라질 수 있기 때문에 현재 사용 중인 환경을 파악한 후 위 방법을 적용하시기 바랍니다.

The post 리눅스 export 명령어 – 사용자 환경 변수 값 적용하기 appeared first on JooTC.

]]>
https://jootc.com/p/202112103837/feed 0 3837
리눅스 mv 명령어 – 파일 및 디렉토리 이동 또는 이름 바꾸기 https://jootc.com/p/202106033724 https://jootc.com/p/202106033724#respond Thu, 03 Jun 2021 12:40:46 +0000 https://jootc.com/?p=3724 리눅스 명령어 – mv 리눅스에서 파일 처리를 할 때 가장 많이 쓰이는 명령어 중에 하나인 mv를 알아보겠습니다. 예상하셨겠지만 mv는 이동(move)의 약자이고, 말 그대로 파일이나 디렉토리의 위치를 지정한 곳으로 이동시켜주는 역할을 합니다. 이 뿐만이 아니라 mv는 위치에 상관없이 파일이나 디렉토리의 기존 이름을 다른 이름으로 변경해줍니다. 이름 변경을 할 수 있는 다른 명령어로는 rename이 있으나 몇몇 리눅스 […]

The post 리눅스 mv 명령어 – 파일 및 디렉토리 이동 또는 이름 바꾸기 appeared first on JooTC.

]]>
리눅스 명령어 – mv

리눅스에서 파일 처리를 할 때 가장 많이 쓰이는 명령어 중에 하나인 mv를 알아보겠습니다. 예상하셨겠지만 mv이동(move)의 약자이고, 말 그대로 파일이나 디렉토리의 위치를 지정한 곳으로 이동시켜주는 역할을 합니다.

이 뿐만이 아니라 mv는 위치에 상관없이 파일이나 디렉토리의 기존 이름을 다른 이름으로 변경해줍니다. 이름 변경을 할 수 있는 다른 명령어로는 rename이 있으나 몇몇 리눅스 배포판에는 rename을 별도로 설치해야 하기 때문에 mv 명령어에 익숙해지는 것이 가장 좋습니다.

사용 방법

mv 명령어의 사용법은 아주 간단합니다. mv에는 두개 이상의 인자값이 필요합니다. 각각의 인자값 사이에는 당연히 공백을 넣어야 합니다.

  • 첫번째 인자값에는 원본 파일(또는 디렉토리)의 출발지 경로,
  • 두번째 인자값에는 변경될 파일(또는 디렉토리)의 목적지 경로가 들어가야 합니다.
$ mv {옵션 (선택적)} {첫번째 인자값} {두번째 인자값}

만약 목적지 경로와 출발지 경로의 파일(또는 디렉토리)명이 다른 경우 이름 변경이 처리됩니다.

파일 이동

/home/user/Downloads에 위치한 a.txt라는 파일을 /home/user/Desktop으로 이동해보겠습니다. 현재 위치한 Downloads 디렉토리의 경로가 첫번째 인자에, 이동할 디렉토리인 Desktop 경로는 두번째 인자에 넣어줍니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop/a.txt

위 예제에서 보시듯이 인자 사이에 공백(Space) 한칸을 띄워주어야 합니다. 이렇게되면 왼쪽의 위치(…Downloads…)에서 오른쪽의 위치(…Desktop…)로 이동하게 됩니다.

만약 이동할 때 파일명은 따로 변경하지 않을 경우 두번째 인자에는 파일명이 포함되지 않아도 됩니다. (첫번째 인자에는 반드시 포함) 실행 결과는 위와 같습니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop

이번에는 디렉토리와 디렉토리 내의 파일 전체를 통째로 이동해보겠습니다. /home/user/Downloads 디렉토리를 /home/user/Desktop에 옮겨보겠습니다. 위 예시를 응용하면 금방 답을 찾을 수 있습니다.

$ mv /home/user/Downloads /home/user/Desktop

디렉토리를 이동하는 것이므로 파일을 입력할 필요는 없습니다.

이번에는 Downloads에 있는 여러 파일(a.txtb.txt, c.txt가 있다고 가정)을 동시에 Desktop 디렉토리로 옮겨보겠습니다. 이해상 편의를 위해 이동할 폴더로 이동(cd)한 후 진행해보겠습니다.

$ cd /home/user/Downloads
$ mv a.txt b.txt c.txt /home/user/Desktop/

조금은 복잡해보이지만 결론적으로 인자의 수가 얼마나 많든 마지막 인자가 목적지가 됩니다. 결론적으로 a, b, c 파일을 Desktop 경로로 이동하게 됩니다.

와일드카드 기호(*)를 사용하면 위 예시를 더욱 간단하게 만들 수 있습니다. (txt 파일이 a, b, c만 있다고 가정)

$ cd /home/user/Downloads
$ mv *.txt /home/user/Desktop

파일 이름 변경

이름 변경은 파일 이동을 활용하되, 출발지 경로와 목적지 경로의 파일 이름이 다르면 됩니다.

같은 경로 내에 a.txt라는 파일이 있을 때 aa.txt로 이름을 변경하고 싶다면 아래와 같이 사용합니다.

$ mv a.txt aa.txt

주의할 점은 확장자가 있는 파일은 위와 같이 목적지 경로에도 확장자는 꼭 써주어야 합니다. 확장자가 있는 파일인데 쓰지 않는다면 파일 형식이 변경될 수 있습니다.

마찬가지로 디렉토리의 이름도 변경할 수 있습니다. 아래 명령은 myFolder의 디렉토리 이름을 altFolder로 변경하는 예시입니다.

$ mv /home/user/myFolder /home/user/altFolder

또 하나 주의할 점은 디렉토리와 파일(확장자가 없는)은 이름이 같을 수 없습니다. 예를 들어 같은 경로에 abc라는 파일과 abc라는 디렉토리는 존재할 수 없습니다. 이렇게 되면 파일을 강제로 덮어씌울 수 있으므로 유의해서 사용해야 합니다.

mv의 두가지 특성을 활용하여 다른 경로로 이동하면서 파일 이름을 동시에 변경할 수 있습니다. 아래 예시는 Downloads 디렉토리의 a.txt 파일을 Desktop 디렉토리로 이동하면서 b.txt라는 이름으로 변경합니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop/b.txt

The post 리눅스 mv 명령어 – 파일 및 디렉토리 이동 또는 이름 바꾸기 appeared first on JooTC.

]]>
https://jootc.com/p/202106033724/feed 0 3724
리눅스 touch 명령어 – 파일 생성 및 타임스탬프 변경 https://jootc.com/p/202009063594 https://jootc.com/p/202009063594#respond Sun, 06 Sep 2020 04:49:23 +0000 https://jootc.com/?p=3594 리눅스 명령어 – touch 리눅스 touch 명령어는 특정 파일이나 디렉토리의 atime(Access time)과 mtime(Modification time)을 현재 시각 또는 원하는 시각 정보(타임스탬프/Timestamp)로 변경해주는 명령어입니다. 사실 원래 명령어의 역할은 파일의 시각 데이터 변경 목적으로 사용하는 것이지만 지정한 파일이 없을 경우 새로운 파일을 만들어 주기도 하기 때문에 빈 파일 생성 목적으로 자주 사용하는 명령어이기도 합니다. 리눅스 파일 시스템에서 atime(접근 […]

The post 리눅스 touch 명령어 – 파일 생성 및 타임스탬프 변경 appeared first on JooTC.

]]>
리눅스 명령어 – touch

리눅스 touch 명령어는 특정 파일이나 디렉토리의 atime(Access time)mtime(Modification time)을 현재 시각 또는 원하는 시각 정보(타임스탬프/Timestamp)로 변경해주는 명령어입니다. 사실 원래 명령어의 역할은 파일의 시각 데이터 변경 목적으로 사용하는 것이지만 지정한 파일이 없을 경우 새로운 파일을 만들어 주기도 하기 때문에 빈 파일 생성 목적으로 자주 사용하는 명령어이기도 합니다.

리눅스 파일 시스템에서 atime(접근 시간), mtime(수정 시간), ctime(inode 변경 시간)이라는 세가지 시각 데이터가 있습니다. 해당 내용은 다음 포스트에서 자세히 확인할 수 있습니다.

사용 방법

리눅스 touch 명령어는 다음과 같이 하나 이상의 인자값을 가지고 있어야 합니다. touch만 사용하지는 못합니다.

$ touch myFile

위의 경우 myFile이라는 파일이 현재 디렉토리에 존재하지 않을 때 새롭게 만들어집니다. touch 명령어는 파일 내 별도의 데이터를 작성하지 않기 때문에 0 byte인 빈 파일을 만들게 됩니다.

만들어진 파일을 ls -al 명령어로 조회해보겠습니다.

$ ls -al
total 0
drwxrwxr-x. 3 user user  20 Sep  1 04:33 .
drwx------. 5 user user 158 Sep  1 04:33 ..
-rw-rw-r--. 1 user user   0 Sep  1 04:34 myFile

myFile이 0바이트 파일로 생성 되어있음을 확인할 수 있습니다. 여기에 나타나는 시각은 Sep 1 04:34로 나타납니다. 그렇다면 약 1분 후 다시 touch myFile을 실행해보면 어떻게 될까요?

$ touch myFile
$ ls -al
total 0
drwxrwxr-x. 3 user user  20 Sep  1 04:33 .
drwx------. 5 user user 158 Sep  1 04:33 ..
-rw-rw-r--. 1 user user   0 Sep  1 04:35 myFile

기존에 04:34분이었던 정보가 04:35로 변경되어있음을 확인할 수 있습니다. 이렇게 touch 명령어는 영문 그대로 파일을 한 번 터치한 것과 같은 행동을 나타냅니다.

이외에도 touch 명령어에 사용할 수 있는 옵션값들이 있습니다.

먼저 아래와 같이 -c 옵션을 붙이면 파일이 존재하지 않아도 빈 파일을 생성하지 않게 됩니다.

$ touch -c myFile

이렇게 하면 myFile은 비록 해당 위치에 없더라도 만들어지지 않습니다.

atimemtime을 원하는 시간으로 변경 할 수 있습니다. 아무런 옵션이 없다면 현재 시각을 기준으로 하지만, 다음과 같이 -t [TIMESTAMP] 옵션([[CC]YY]MMDDhhmm[.ss])을 사용하여 원하는 시간으로 변경할 수 있습니다. 이 때 ‘초’는 분 뒤에 .을 붙여야 합니다.

$ touch -t 202009010100.00 myFile

위와 같이 명령어를 실행하면 2020년 9월 1일 1시 1분 0초로 정보가 변경됩니다.

시간이 아닌 날짜만 설정하려면 아래와 같이 -d 옵션을 사용하여 원하는 날짜를 YYYY-mm-dd 또는 YYYYmmdd 형식을 사용하여 변경할 수 있습니다.

$ touch -d '2020-01-01' myFile

마지막으로 atimemtime 중 하나만 변경하고자 할 경우, atime-a 옵션을, mtime-m 옵션을 붙여 사용해주시면 됩니다.

$ touch -a myFile

The post 리눅스 touch 명령어 – 파일 생성 및 타임스탬프 변경 appeared first on JooTC.

]]>
https://jootc.com/p/202009063594/feed 0 3594
리눅스 uptime 명령어 – 시스템 가동 시간 파악 https://jootc.com/p/202007093557 https://jootc.com/p/202007093557#respond Thu, 09 Jul 2020 07:12:51 +0000 https://jootc.com/?p=3557 리눅스 명령어 – uptime 리눅스 uptime 명령어는 시스템이 언제 시작되었으며 총 얼마 동안 가동되었는지 파악할 수 있는 명령어입니다. 운영체제가 처음 설치되었거나 재부팅 된 시점으로부터 uptime 기록이 시작되며 이는 서버 운영에 있어 종종 쓰이는 정보이기도 합니다. uptime 명령어를 사용할 때 출력되는 내용은 w 명령어의 출력되는 내용의 첫 줄과 같습니다. 사용 방법 uptime 명령어는 대부분의 리눅스 배포판에서 […]

The post 리눅스 uptime 명령어 – 시스템 가동 시간 파악 appeared first on JooTC.

]]>
리눅스 명령어 – uptime

리눅스 uptime 명령어는 시스템이 언제 시작되었으며 총 얼마 동안 가동되었는지 파악할 수 있는 명령어입니다. 운영체제가 처음 설치되었거나 재부팅 된 시점으로부터 uptime 기록이 시작되며 이는 서버 운영에 있어 종종 쓰이는 정보이기도 합니다.

uptime 명령어를 사용할 때 출력되는 내용은 w 명령어의 출력되는 내용의 첫 줄과 같습니다.

사용 방법

uptime 명령어는 대부분의 리눅스 배포판에서 바로 사용할 수 있으며 결과 또한 거의 동일할 것입니다. 사용법은 간단합니다. 먼저 다음과 같이 옵션 없이 사용해보겠습니다.

$ uptime

이제 다음과 같이 결과가 나타날 것입니다.

 15:00:00 up 7 days,  6:00,  2 users,  load average: 0.00, 0.00, 0.00

왼쪽 부터 해석해보겠습니다.

  • 현재 시각 (15:00:00)
  • 활성화된 날로 부터 지난 일 수 (7 days)
  • 활성화된 날로 부터 지난 시간 (6:10)
  • 현재 로그인 된 사용자 수 (2 users)
  • 현재 시스템 부하 상태 (load average: 0.10, 0.00, 0.00)

단순히 활성화 된 시간만을 알기에는 정보가 다소 많아보입니다. 그렇다면 -p 옵션을 사용하여 필요한 정보만 출력되게 할 수 있습니다.

$ uptime -p
 up 7 days, 6 hours, 10 minutes

이제 활성 시간 데이터만 나왔습니다. 이 시간을 현재 시간에서 뺀다면 운영체제가 시작 된 시간을 알 수 있지만, 계산하기 번거롭다면 다음과 같이 -s 옵션을 사용하여 시스템 시작 시간을 알 수 있습니다.

$ uptime -s

그러면 yyyy-mm-dd HH:MM:SS 포맷으로 시작 시간이 나타날 것입니다.

2020-07-01 09:00:00

The post 리눅스 uptime 명령어 – 시스템 가동 시간 파악 appeared first on JooTC.

]]>
https://jootc.com/p/202007093557/feed 0 3557
리눅스 SSH 사용자 로그인 기록 확인하는 방법 https://jootc.com/p/202006173535 https://jootc.com/p/202006173535#respond Tue, 16 Jun 2020 23:25:15 +0000 https://jootc.com/?p=3535 SSH 사용자 로그인 기록 확인 방법 리눅스에서는 SSH 서버에 로그인한 기록을 대략적으로 파악할 수 있습니다. 주로 리눅스 로그 디렉토리인 /var/log에서 auth.log 파일에 기록됩니다. 파일명은 일부 리눅스 배포판에 따라 다를 수 있습니다. RedHat 계열 (RHEL, CentOS, Fedora) Debian 계열 (Ubuntu) 한 명의 사용자(user1)가 myServer라는 호스트에 1회 로그인 했을 때 다음과 같이 2-3줄의 텍스트가 기록됩니다. 첫번째 줄: […]

The post 리눅스 SSH 사용자 로그인 기록 확인하는 방법 appeared first on JooTC.

]]>
SSH 사용자 로그인 기록 확인 방법

리눅스에서는 SSH 서버로그인한 기록을 대략적으로 파악할 수 있습니다. 주로 리눅스 로그 디렉토리/var/log에서 auth.log 파일에 기록됩니다. 파일명은 일부 리눅스 배포판에 따라 다를 수 있습니다.

RedHat 계열 (RHEL, CentOS, Fedora)

/var/log/messages

Debian 계열 (Ubuntu)

/var/log/auth.log

한 명의 사용자(user1)가 myServer라는 호스트에 1회 로그인 했을 때 다음과 같이 2-3줄의 텍스트가 기록됩니다.

  • 첫번째 줄: user1로 접속하려는 192.168.1.1 사용자가 암호 입력에 성공함
  • 2-3번째 줄: SSHD 서비스에 의해 (세션 ID 189로) user1에 대한 세션이 열림
Jun 17 11:08:18 myServer sshd[18195]: Accepted password for user1 from 192.168.1.123 port 57512 ssh2
Jun 17 11:08:18 myServer sshd[18195]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Jun 17 11:08:18 myServer systemd-logind[784]: New session 189 of user user1.

반대로 로그아웃하거나 세션을 종료하게 될 때도 해당 파일에 기록됩니다. 기록되는 내용은 약 3-4줄입니다.

  • 1-2번째 줄: user1의 연결이 Disconnected 상태로 변경됨
  • 3-4번째 줄: user1 사용자의 세션이 닫히고 로그아웃 처리됨
Jun 17 11:14:41 myServer sshd[18634]: error: Received disconnect from 192.168.1.123 port 57552:0: 
Jun 17 11:14:41 myServer sshd[18634]: Disconnected from user user1 192.168.1.123 port 57552
Jun 17 11:14:41 myServer sshd[18565]: pam_unix(sshd:session): session closed for user user1
Jun 17 11:14:41 myServer systemd-logind[784]: Session 193 logged out. Waiting for processes to exit.

로그인 사용자를 추적하기 위해 한 줄로만 나타내고 싶은 경우 다음과 같이 tail 명령어와 같이 사용할 수도 있습니다.

# tail -f /var/log/auth.log | grep "Accepted password"

The post 리눅스 SSH 사용자 로그인 기록 확인하는 방법 appeared first on JooTC.

]]>
https://jootc.com/p/202006173535/feed 0 3535
리눅스 rm 명령어 – 파일 및 디렉토리 삭제 https://jootc.com/p/202001273281 https://jootc.com/p/202001273281#respond Mon, 27 Jan 2020 07:01:39 +0000 https://jootc.com/?p=3281 리눅스 명령어 – rm 리눅스 rm 명령어는 remove(제거)의 약자로서 파일이나 디렉토리를 삭제하는 역할을 하는 명령어입니다. 타이핑으로 파일을 지우는 탓에 어떻게보면 윈도우 탐색기에서 파일을 지우는 것 보다도 위험하고 무서운 존재이기도 합니다. 윈도우 운영체제는 파일을 지우게 되면 ‘휴지통’으로 파일이 일단 이동되지만 리눅스는 데스크톱 매니저를 쓰지 않거나, rm 명령어를 사용할 때는 즉시 파일이나 디렉토리가 삭제됩니다. (즉, 복구가 거의 […]

The post 리눅스 rm 명령어 – 파일 및 디렉토리 삭제 appeared first on JooTC.

]]>
리눅스 명령어 – rm

리눅스 rm 명령어는 remove(제거)의 약자로서 파일이나 디렉토리를 삭제하는 역할을 하는 명령어입니다. 타이핑으로 파일을 지우는 탓에 어떻게보면 윈도우 탐색기에서 파일을 지우는 것 보다도 위험하고 무서운 존재이기도 합니다.

윈도우 운영체제는 파일을 지우게 되면 ‘휴지통’으로 파일이 일단 이동되지만 리눅스는 데스크톱 매니저를 쓰지 않거나, rm 명령어를 사용할 때는 즉시 파일이나 디렉토리가 삭제됩니다. (즉, 복구가 거의 불가능합니다.)

또한 rm 명령어를 잘못 사용했다가는 실수로 중요한 파일들이 지워지는 사태가 발생하여 서버 등에 치명적인 문제를 일으키기도 합니다. 실제로 강제 제거 명령인 rm -rf 명령어를 잘못 사용하여 픽사의 토이스토리 2 작업 내용 대부분이 날아간 적도 있었고 GitLab의 서비스가 한동안 마비된 적도 있었습니다.

이 때문에 길게 설명해드릴만큼 rm 명령어는 신중하게 사용해야만 합니다. 아래에 설명드리겠지만 강제 삭제 옵션인 -f는 더더욱 주의해서 사용해야합니다.

사용 방법

일반적인 파일을 삭제할 때는 단순히 rm 명령 뒤에 파일 이름만 붙여주면 됩니다. 아래 예시는 myfile 파일을 지우는 예시입니다.

rm myfile

하지만 디렉토리를 삭제하고자 하는 경우 다음과 같이 문제가 발생합니다.

rm mydir
rm: cannot remove 'mydir': Is a directory

디렉토리의 경우 -r (recursive)옵션을 함께 붙여주어야만 지워집니다. 디렉토리를 지우면 디렉토리 내부의 파일까지 모두 지워지기 때문인데, 일종의 안전장치라고 보시면 될 것 같습니다.

rm -r mydir

만약 여러 파일이나 디렉토리를 한 번에 지우고 싶다면 공백을 주어 뒤쪽에 파일명을 계속 입력하면 됩니다.

rm myfile1 myfile2 myfile3 myfile4 myfile5

만약 현재 디렉토리 내의 모든 파일을 지우고 싶은 경우 와일드카드 문자인 *를 사용하여 한 번에 지울 수 있습니다. 현재 디렉토리 내에 숨겨진 파일(파일명 앞에 . 이 붙은 파일들)만 제외하고 모두 지워집니다. 와일드 카드는 아주 위험하므로 검증되지 않았다면 주의해서 사용해야 합니다.

rm *

다음과 같이 파일명 앞부분의 일부만 작성하고 와일드카드를 붙이면 해당 규칙에 맞는 파일만을 삭제합니다.

rm myfi*

일반적으로 파일을 지우면 다음과 같이 확인 문구가 나타나기도 합니다.

rm: remove regular empty file `myfile`?

이 때 y를 입력하고 엔터를 눌러야 파일이 삭제되며, n을 입력하면 취소됩니다. 이 또한 안전장치라고 볼 수 있지만, 가끔 좀 성가실 때가 있습니다.

이럴 때 사용하는 옵션이 -f (force)입니다. 중요하지 않은 다수의 파일을 지워야 하는 경우 유용하게 사용될 수 있습니다. 만약 삭제 대상이 디렉토리라면 -r 옵션을 함께 붙여주어서 -rf 로 사용합니다. 앞서 말했 듯이 주의해서 사용하는 것이 좋습니다.

The post 리눅스 rm 명령어 – 파일 및 디렉토리 삭제 appeared first on JooTC.

]]>
https://jootc.com/p/202001273281/feed 0 3281
리눅스 mkdir 명령어 – 손쉬운 디렉토리 생성 방법 https://jootc.com/p/201901302637 https://jootc.com/p/201901302637#respond Wed, 30 Jan 2019 10:35:57 +0000 https://blog.inidog.com/?p=2637 리눅스 명령어 – mkdir mkdir은 가장 자주 쓰이는 명령어이자 반드시 알아야하는 명령어 중의 하나입니다. mkdir은 make directory의 약자이며 원하는 이름으로 디렉토리를 생성하게 해주는 명령어입니다. 주로 유닉스/리눅스 셸 명령어로 사용되지만 윈도우 명령 프롬프트에서도 해당 명령어로 폴더를 만들 수 있습니다. (물론 윈도우에서는 옵션 등의 사용법이 다릅니다.)     사용 방법 사용법은 아주 간단합니다. mkdir 뒤에 디렉토리 이름을 […]

The post 리눅스 mkdir 명령어 – 손쉬운 디렉토리 생성 방법 appeared first on JooTC.

]]>
리눅스 명령어 – mkdir

mkdir은 가장 자주 쓰이는 명령어이자 반드시 알아야하는 명령어 중의 하나입니다.

mkdirmake directory의 약자이며 원하는 이름으로 디렉토리를 생성하게 해주는 명령어입니다. 주로 유닉스/리눅스 셸 명령어로 사용되지만 윈도우 명령 프롬프트에서도 해당 명령어로 폴더를 만들 수 있습니다. (물론 윈도우에서는 옵션 등의 사용법이 다릅니다.)

 

 

사용 방법


사용법은 아주 간단합니다. mkdir 뒤에 디렉토리 이름을 인자값으로 붙이면 현재 디렉토리 위치에 새로운 디렉토리를 생성합니다.

$ mkdir newFolder

디렉토리가 생성되었는지 확인하기위해 ls -al (현재 위치의 전체 파일을 자세히 출력)명령어를 사용해보겠습니다.

$ ls -al
total 4
drwxrwxr-x.  3 user user   23 Jan 30 18:25 .
drwx--x--x. 25 user user 4096 Jan 30 18:25 ..
drwxrwxr-x.  2 user user    6 Jan 30 18:25 newFolder

newFolder가 생성된 것을 확인할 수 있습니다. 여기서 첫번째 열은 파일 형식 및 권한 정보를 보여주는 것인데, 여기서 d 로 표시되는 것들은 모두 디렉토리임을 뜻합니다. (처음의 현재 경로인 ‘.‘ 과 상위 경로인 ‘..‘ 역시 d 로 나타납니다.) 아래 표를 참고해보세요.

문자파일 타입설명
-일반 파일일반적인 파일을 나타내는 문자
d디렉토리디렉토리를 나타내는 문자
l심볼릭 링크심볼릭 링크 (Soft Link) 파일
c문자 장치 드라이버문자 장치 드라이버 (Character Device Driver). 물리적 장치를 위한 실행 파일
b블록 장치 드라이버블록 장치 드라이버 (Block Device Driver). 물리적 장치를 위한 실행 파일
s로컬 소켓프로세스 통신을 위해 사용되는 파일.
p네임드 파이프 (Named Pipe)프로세스 통신을 위해 사용되는 파일. 선입선출 (FIFO) 파일이라고도 함

 

참고로 rm 명령어로 파일을 삭제할 때 디렉토리의 경우에는 경고를 표시합니다. 이 때 다음 예시처럼 rm-r 옵션을 붙여야합니다.

$ mkdir newFolder
$ rm newFolder/
rm: cannot remove ‘newFolder/’: Is a directory
$ rm -r newFolder/
$ ls -al
total 4
drwxrwxr-x.  2 user user    6 Jan 30 19:13 .
drwx--x--x. 25 user user 4096 Jan 30 19:07 ..

 

다음으로 여러 디렉토리를 한 번에 생성해보겠습니다. 역시나 간단합니다. 여러 디렉토리 이름을 공백으로 구분하여 인자값으로 지정하면 한 번에 지정한 디렉토리를 모두 생성할 것입니다.

$ mkdir red green blue black white
$ ls -al
total 4
drwxrwxr-x.  7 user user   68 Jan 30 19:16 .
drwx--x--x. 25 user user 4096 Jan 30 19:07 ..
drwxrwxr-x.  2 user user    6 Jan 30 19:16 black
drwxrwxr-x.  2 user user    6 Jan 30 19:16 blue
drwxrwxr-x.  2 user user    6 Jan 30 19:16 green
drwxrwxr-x.  2 user user    6 Jan 30 19:16 red
drwxrwxr-x.  2 user user    6 Jan 30 19:16 white

 

만약 모든 디렉토리 생성 과정을 메세지로 출력받고 싶다면 아래와 같이 -v (verbose)옵션을 붙이면 됩니다.

$ mkdir -v AA BB CC
mkdir: created directory ‘AA’
mkdir: created directory ‘BB’
mkdir: created directory ‘CC’

 

이번에는 여러 단계의 디렉토리를 한 번에 생성하고 싶은 경우가 있습니다.

예를 들어 /home/myuser 경로 안에 하위 디렉토리인 A, A 디렉토리 내에 B, B 디렉토리 내에 C와 같이 구성(/home/myuser/A/B/C)하려 할 때, A 디렉토리를 만들고 cd 명령어로 A 디렉토리에 이동해서 B 디렉토리를 만드는 등의 과정을 굳이 하지 않아도 됩니다. A/B/C 폴더를 한 번에 생성하려고 할 때에는 mkdir-p (parents) 옵션을 붙여 사용하면 됩니다.

$ mkdir -p /home/user/A/B/C

이 때 /home/user 디렉토리는 이미 존재하므로 이를 무시한 채 존재하지 않는 A, B, C 폴더만 각각 생성할 것입니다.

 

마지막으로 디렉토리를 생성할 때 미리 권한을 부여하고 싶은 경우 -m (mode) 옵션을 붙여 umask를 지정하면 됩니다. 여기서 rwx 와 같은 형식을 사용해서는 안되고 755, 600과 같은 8진법 숫자를 사용해야 합니다.

다음은 Scripts 디렉토리를 소유자에게만 모든 권한(rwx)을 주도록 하는 예시입니다.

$ mkdir -m 700 Scripts/
$ ls -al
total 4
drwxrwxr-x.  3 user user   27 Jan 30 19:30 .
drwx--x--x. 26 user user 4096 Jan 30 19:22 ..
drwx------.  2 user user    6 Jan 30 19:30 Scripts

The post 리눅스 mkdir 명령어 – 손쉬운 디렉토리 생성 방법 appeared first on JooTC.

]]>
https://jootc.com/p/201901302637/feed 0 2637
리눅스 touch 명령어 – 타임스탬프 변경 및 빈 파일 생성 https://jootc.com/p/201901272605 https://jootc.com/p/201901272605#respond Sun, 27 Jan 2019 11:42:49 +0000 https://blog.inidog.com/?p=2605 리눅스 명령어 – touch touch 명령어는 기존 파일의 날짜(타임스탬프)를 임의로 변경해주는 역할을 합니다. 타임스탬프 변경은 소스 파일을 컴파일하거나 임의의 액세스 시점을 파악하기 위해서 주로 사용됩니다. 또한 touch 명령어는 파일이 존재하지 않을 경우 아무런 내용이 없는 빈 파일을 생성해주는 역할을 합니다.     사용 방법 – 빈 파일 생성 먼저 아무런 옵션을 넣지 않고 인자값에 파일 […]

The post 리눅스 touch 명령어 – 타임스탬프 변경 및 빈 파일 생성 appeared first on JooTC.

]]>
리눅스 명령어 – touch

touch 명령어는 기존 파일의 날짜(타임스탬프)를 임의로 변경해주는 역할을 합니다. 타임스탬프 변경은 소스 파일을 컴파일하거나 임의의 액세스 시점을 파악하기 위해서 주로 사용됩니다.

또한 touch 명령어는 파일이 존재하지 않을 경우 아무런 내용이 없는 빈 파일을 생성해주는 역할을 합니다.

 

 

사용 방법 – 빈 파일 생성


먼저 아무런 옵션을 넣지 않고 인자값파일 이름만 지정해보겠습니다.

$ touch testfile

만약 testfile 이라는 파일이 없을 경우 0바이트의 새로운 빈 파일이 생성됩니다.

$ ls -al
total 4
drwx------. 16 user user 4096 Jan 13 19:15 .
drwxr-xr-x.  3 root root   18 Oct 13 16:02 ..
-rw-rw-r--.  1 user user    0 Jan 13 19:15 testfile

파일명을 계속 입력하여 여러 파일을 동시에 생성할 수도 있습니다.

$ touch testfile1 testfile2 testfile3 testfile4

touch 명령어에 -c 옵션을 붙이면 파일이 없어도 별도로 생성하지 않게 됩니다.

$ touch -c testfile
$ ls -al
total 4
drwxrwxr-x.  2 test test    6 Jan 13 19:15 .
drwx------. 17 test test 4096 Jan 13 19:15 ..

 

 

사용 방법 – 타임스탬프 변경

리눅스 파일 시스템타임스탬프atime(접근 시간), mtime(수정 시간), ctime (변경 시간)의 세 가지로 구성되어 있습니다.

포스팅 편의상 a/m/ctime으로 표기하겠습니다. 이 세 가지 개념은 다음 포스트에 자세히 설명되어 있습니다.

리눅스 파일 시스템의 atime, mtime, ctime

 

현재 파일의 타임스탬프 값은 stat 명령어를 통해 확인이 가능합니다. stat [filename] 을 입력하여 현재 타임스탬프 값을 확인해보겠습니다.

$ stat testfile 
  File: ‘testfile’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 101254431   Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    test)   Gid: ( 1000/    test)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2019-01-13 19:15:59.084552439 +0900
Modify: 2019-01-13 19:15:59.084552439 +0900
Change: 2019-01-13 19:15:59.084552439 +0900
 Birth: -

touch 명령어로 생성된 파일은 이 세 가지 타임스탬프 값을 생성한 시각 대로 지정합니다.

이미 만들어진 파일에 또 다시 옵션 없이 touch 명령어를 사용하면 atimemtime, ctime이 모두 현재 시각으로 업데이트될 것입니다.

$ touch testfile // 새로운 파일이 생성됨
$ stat testfile
...
Access: 2019-01-13 21:03:08.790886454 +0900
Modify: 2019-01-13 21:03:08.790886454 +0900
Change: 2019-01-13 21:03:08.790886454 +0900
...
$ touch testfile // 기존의 파일에 업데이트됨
$ stat testfile
...
Access: 2019-01-13 21:09:02.086230538 +0900
Modify: 2019-01-13 21:09:02.086230538 +0900
Change: 2019-01-13 21:09:02.086230538 +0900
...

 

만약 파일에 액세스하지 않고 단순히 날짜만 수정했다는 의미로 타임스탬프를 변경하고 싶다면 atime을 건드리지 않아야 할 것입니다.

이 때는 -m 옵션을 붙여서 사용하면 됩니다. mtimectime이 변경될 것입니다.

$ touch -m testfile // 기존의 파일에 업데이트됨
$ stat testfile
...
Access: 2019-01-13 21:09:02.086230538 +0900
Modify: 2019-01-13 21:11:15.087689025 +0900
Change: 2019-01-13 21:11:15.087689025 +0900

 

반대로 파일에 액세스한 시각(atime)만 변경하고 싶다면 -a 옵션을 붙여주면 됩니다. 이번에는 mtime을 제외한 시각이 모두 현재 시각으로 업데이트되었습니다.

$ touch -a testfile // 기존의 파일에 업데이트됨
$ stat testfile
...
Access: 2019-01-13 21:10:46.540865813 +0900
Modify: 2019-01-13 21:11:15.087689025 +0900
Change: 2019-01-13 21:10:46.540865813 +0900

 

이 두 가지 옵션을 사용해도 ctime은 항상 변경될 것입니다. 왜냐하면 ctimeinode의 값이 변경될 때 마다 자동으로 업데이트되기 때문입니다.

 

지금까지는 현재 시각(명령을 실행한 시각)을 기준으로 타임스탬프 값을 변경하였습니다. 그렇지만 특별히 변경하고 싶은 시간대가 있다면 -t 옵션을 사용하여 임의의 시간대를 지정해주시면 됩니다. (사용 포맷은 [[CC]YY]MMDDhhmm[.ss] 입니다.)

위에서 설명한 -a 옵션을 사용하여 atime2019년 1월 1일 오후 12시 30분 59초로 맞추어보겠습니다.

$ touch -a -t 201901011230.59 testfile

stat 명령어로 변경된 시각을 확인해보면 atime이 2019년 1월 1일 오후 12시 30분 59초로 변경되었음을 알 수 있습니다.

$ stat testfile
...
Access: 2019-01-01 12:30:59.000000000 +0900
Modify: 2019-01-13 21:05:59.087689025 +0900
Change: 2019-01-13 21:16:28.579628876 +0900
...

주의할 점은 이번에는 ctime이 2019년 1월 1일 오후 12시 30분 59초가 아닌, 현재 시각(명령을 실행한 시각)으로 변경되었다는 것입니다. ctime은 언제나 inode가 변경된 최종 시각을 기준으로 시각을 업데이트하기 때문입니다.

 

마지막으로 특정 파일의 시각 정보를 다른 파일로 덮어씌울 수 있습니다. 다음은 testfile2의 atime, mtime을 testfile1의 atime, mtime과 동일하게 설정하는 명령어입니다.

$ touch -r testfile1 testfile2

 

The post 리눅스 touch 명령어 – 타임스탬프 변경 및 빈 파일 생성 appeared first on JooTC.

]]>
https://jootc.com/p/201901272605/feed 0 2605