기록을 합시다.
[Ubuntu] 파일/디렉터리 관련 명령어 본문
파일 관련 명령어
파일 목록 화면에 표시하기
ls 명령어 : 파일 목록을 화면에 표시하는 명령어
- ls [옵션] [파일] 형식으로 입력한다.
- 아무 옵션 없이 명령을 실행하면 파일과 디렉터리 이름만 출력한다.
telemain1@danhee:/home$ ls
3todo dizzy tedious telemain1
- ls 명령의 인자로 디렉터리 경로를 지정하면 특정 디렉터리 목록을 출력해준다.
telemain1@danhee:/$ ls /tmp
pulse-2L9K88eMlGn7 vscode-distro-env.N5clX9
pulse-PKdhtXMmr18n vscode-git-4d02b30d3d.sock
remote-wsl-loc.txt vscode-ipc-8b775705-9e79-4fca-b9c8-f808a5e47124.sock
- -l 옵션은 좀 더 많은 정보를 알려준다.
telemain1@danhee:/$ ls -l
total 1496
drwxr-xr-x 2 root root 4096 Dec 16 2022 bin
drwxr-xr-x 2 root root 4096 May 6 2022 boot
drwxr-xr-x 8 root root 3020 Jul 20 15:11 dev
drwxr-xr-x 92 root root 4096 Jul 21 14:31 etc
drwxr-xr-x 6 root root 4096 Jul 21 14:24 home
-rwxr-xr-x 2 root root 1440152 May 7 2022 init
drwxr-xr-x 20 root root 4096 May 6 2022 lib
drwxr-xr-x 2 root root 4096 May 6 2022 lib64
drwx------ 2 root root 16384 Apr 11 2019 lost+found
drwxr-xr-x 2 root root 4096 May 6 2022 media
drwxr-xr-x 4 root root 4096 Dec 16 2022 mnt
drwxr-xr-x 2 root root 4096 May 6 2022 opt
dr-xr-xr-x 241 root root 0 Jul 20 15:11 proc
drwx------ 3 root root 4096 Dec 16 2022 root
drwxr-xr-x 7 root root 200 Jul 20 23:00 run
drwxr-xr-x 2 root root 4096 Dec 16 2022 sbin
drwxr-xr-x 2 root root 4096 Feb 24 2022 snap
drwxr-xr-x 2 root root 4096 May 6 2022 srv
dr-xr-xr-x 11 root root 0 Jul 20 15:11 sys
drwxrwxrwt 4 root root 4096 Jul 20 23:40 tmp
drwxr-xr-x 10 root root 4096 May 6 2022 usr
drwxr-xr-x 13 root root 4096 May 6 2022 var
drwx------ 2 root root 4096 Jan 21 12:32 wslaBDLHm
drwx------ 2 root root 4096 Mar 20 17:33 wslnJMDel
- -h 옵션은 파일 용량을 읽기 편하게 MB, GB 단위로 바꾸어 화면에 표시한다. -l과 -h 옵션을 붙여 -lh 형식으로 사용 가능하다.
telemain1@danhee:/$ ls -lh
total 1.5M
drwxr-xr-x 2 root root 4.0K Dec 16 2022 bin
drwxr-xr-x 2 root root 4.0K May 6 2022 boot
drwxr-xr-x 8 root root 3.0K Jul 20 15:11 dev
drwxr-xr-x 92 root root 4.0K Jul 21 14:31 etc
drwxr-xr-x 6 root root 4.0K Jul 21 14:24 home
-rwxr-xr-x 2 root root 1.4M May 7 2022 init
drwxr-xr-x 20 root root 4.0K May 6 2022 lib
drwxr-xr-x 2 root root 4.0K May 6 2022 lib64
drwx------ 2 root root 16K Apr 11 2019 lost+found
drwxr-xr-x 2 root root 4.0K May 6 2022 media
drwxr-xr-x 4 root root 4.0K Dec 16 2022 mnt
drwxr-xr-x 2 root root 4.0K May 6 2022 opt
dr-xr-xr-x 243 root root 0 Jul 20 15:11 proc
drwx------ 3 root root 4.0K Dec 16 2022 root
drwxr-xr-x 7 root root 200 Jul 20 23:00 run
drwxr-xr-x 2 root root 4.0K Dec 16 2022 sbin
drwxr-xr-x 2 root root 4.0K Feb 24 2022 snap
drwxr-xr-x 2 root root 4.0K May 6 2022 srv
dr-xr-xr-x 11 root root 0 Jul 20 15:11 sys
drwxrwxrwt 4 root root 4.0K Jul 20 23:40 tmp
drwxr-xr-x 10 root root 4.0K May 6 2022 usr
drwxr-xr-x 13 root root 4.0K May 6 2022 var
drwx------ 2 root root 4.0K Jan 21 12:32 wslaBDLHm
drwx------ 2 root root 4.0K Mar 20 17:33 wslnJMDel
- -a(—all)는 숨어 있던 파일들까지 보여준다.
- 참고로 .으로 시작되는 파일들은 숨긴 파일이라는 뜻이다.
telemain1@danhee:/$ ls -a
. boot home lib64 mnt root snap tmp wslaBDLHm
.. dev init lost+found opt run srv usr wslnJMDel
bin etc lib media proc sbin sys var
telemain1@danhee:/$ ls -al
total 1504
drwxr-xr-x 25 root root 4096 Jul 20 15:11 .
drwxr-xr-x 25 root root 4096 Jul 20 15:11 ..
drwxr-xr-x 2 root root 4096 Dec 16 2022 bin
drwxr-xr-x 2 root root 4096 May 6 2022 boot
drwxr-xr-x 8 root root 3020 Jul 20 15:11 dev
drwxr-xr-x 92 root root 4096 Jul 21 14:31 etc
drwxr-xr-x 6 root root 4096 Jul 21 14:24 home
-rwxr-xr-x 2 root root 1440152 May 7 2022 init
drwxr-xr-x 20 root root 4096 May 6 2022 lib
drwxr-xr-x 2 root root 4096 May 6 2022 lib64
drwx------ 2 root root 16384 Apr 11 2019 lost+found
drwxr-xr-x 2 root root 4096 May 6 2022 media
drwxr-xr-x 4 root root 4096 Dec 16 2022 mnt
drwxr-xr-x 2 root root 4096 May 6 2022 opt
dr-xr-xr-x 243 root root 0 Jul 20 15:11 proc
drwx------ 3 root root 4096 Dec 16 2022 root
drwxr-xr-x 7 root root 200 Jul 20 23:00 run
drwxr-xr-x 2 root root 4096 Dec 16 2022 sbin
drwxr-xr-x 2 root root 4096 Feb 24 2022 snap
drwxr-xr-x 2 root root 4096 May 6 2022 srv
dr-xr-xr-x 11 root root 0 Jul 20 15:11 sys
drwxrwxrwt 4 root root 4096 Jul 20 23:40 tmp
drwxr-xr-x 10 root root 4096 May 6 2022 usr
drwxr-xr-x 13 root root 4096 May 6 2022 var
drwx------ 2 root root 4096 Jan 21 12:32 wslaBDLHm
drwx------ 2 root root 4096 Mar 20 17:33 wslnJMDel
파일 소유권 및 접근 권한 변경
touch 명령문 : 아무 내용 없는 빈 파일 생성
- touch [옵션] [파일명] 형식으로 입력
- 원래 touch는 파일의 날짜와 시간 정보를 ‘건드려 바꾸는’명령
- 아무 옵션 없이 새로운 파일 이름을 지정해서 비어 있는 파일 생성 가능
- 파일 소유권은 파일을 생성한 사용자 및 사용자가 속해 있는 그룹에 있음
telemain1@danhee:~$ touch niniz
telemain1@danhee:~$ ls -al
total 48
drwxr-xr-x 6 telemain1 telemain1 4096 Jul 21 15:57 .
drwxr-xr-x 6 root root 4096 Jul 21 14:24 ..
lrwxrwxrwx 1 telemain1 telemain1 23 Dec 16 2022 .aws -> /mnt/c/Users/telem/.aws
lrwxrwxrwx 1 telemain1 telemain1 25 Dec 16 2022 .azure -> /mnt/c/Users/telem/.azure
...
-rw-r--r-- 1 telemain1 telemain1 0 Jul 21 15:57 niniz
여기에서 내가 만든 niniz 파일은 rw-r—r—로 접근 권한이 설정 되어있다.
처음에 있는 rw-는 소유자가 읽고, 쓰기는 가능하지만 실행은 불가능 한 것이고,
두 번째로 있는 r—는 소유자의 그룹에 속한 사람들은 읽기만 가능하고 쓰기, 실행은 불가능하다.
세 번째로 있는 r—는 그 외의 사람들은 읽기만 가능하고 쓰기, 실행은 불가능하다는 뜻이다.
chown 명령어 : 파일/디렉터리의 소유권을 변경
- chown [옵션] [사용자 계정 및 그룹] [파일] 형식으로 입력
- chown 명령을 실행하게 되면 파일 소유자가 변경됨
- 사용자 계정과 그룹 사이에 . 또는 :를 넣어 소유자와 그룹을 동시에 바꿀 수 있음.
telemain1@danhee:~$ sudo chown telemain1:telemain1 niniz
[sudo] password for telemain1:
telemain1@danhee:~$ ls -l niniz
-rw-r--r-- 1 telemain1 telemain1 0 Jul 21 15:57 niniz
- chown으로 디렉터리의 소유권 변경 시, 디렉터리 속의 파일 소유권은 그대로 유지
- 재귀를 뜻하는 -R(—recursive) 옵션을 사용하면 디렉터리와 디렉터리에 있는 파일 및 디렉터들의 소유권을 함께 바꿈.
telemain1@danhee:~$ sudo chown -R telemain1:telemain1 niniz
chmod 명령어 : 파일의 접근 권한 변경
- chmod [레퍼런스][연산자][접근권한] [파일] 형식으로 입력
- chown과 달리 파일 소유자도 명령을 내릴 수 있음
- 레퍼런스는 변경할 대상 소유자, 그룹, 다른 사용자를 뜻하며 u, g, o로 표시.
- a는 소유자와 그룹, 다른 사용자 모두를 의미.
- 권한을 부여하는 연산자는 +, 권한을 해제하는 연산자는 -
- 변경할 접근권한은 읽기, 쓰기, 실행으로 각각 r, w, x로 표시
telemain1@danhee:~$ sudo chmod ugo+rwx niniz
telemain1@danhee:~$ ls -al
total 48
drwxr-xr-x 6 telemain1 telemain1 4096 Jul 21 15:57 .
drwxr-xr-x 6 root root 4096 Jul 21 14:24 ..
lrwxrwxrwx 1 telemain1 telemain1 23 Dec 16 2022 .aws -> /mnt/c/Users/telem/.aws
lrwxrwxrwx 1 telemain1 telemain1 25 Dec 16 2022 .azure -> /mnt/c/Users/telem/.azure
-rw------- 1 telemain1 telemain1 542 Jan 6 2023 .bash_history
-rw-r--r-- 1 telemain1 telemain1 220 Dec 16 2022 .bash_logout
-rw-r--r-- 1 telemain1 telemain1 3771 Dec 16 2022 .bashrc
drwxr-xr-x 3 telemain1 telemain1 4096 Dec 16 2022 .cache
drwx------ 3 telemain1 telemain1 4096 Dec 16 2022 .config
drwxr-xr-x 5 telemain1 telemain1 4096 Dec 16 2022 .docker
-rw-r--r-- 1 telemain1 telemain1 57 Jan 6 2023 .gitconfig
-rw-r--r-- 1 telemain1 telemain1 807 Dec 16 2022 .profile
-rw-r--r-- 1 telemain1 telemain1 0 Jan 6 2023 .sudo_as_admin_successful
drwxr-xr-x 5 telemain1 telemain1 4096 Jan 6 2023 .vscode-server
-rw-r--r-- 1 telemain1 telemain1 183 Jan 6 2023 .wget-hsts
-rwxrwxrwx 1 telemain1 telemain1 0 Jul 21 15:57 niniz
원래 niniz 파일은 rw-r—r—로 접근 권한이 설정 되어있었다.
sudo chmod ugo+rwx niniz
명령을 시행함으로써 사용자, 그룹, 그 외의 다른 사람들이 읽기/쓰기/실행이 가능한 rwxrwxrwx로 접근 권한이 변경되었다.
그렇다면 그 외의 사람들이 쓰기/실행이 불가능하도록 해보자.
telemain1@danhee:~$ sudo chmod o-wx niniz
telemain1@danhee:~$ ls -al
total 48
drwxr-xr-x 6 telemain1 telemain1 4096 Jul 21 15:57 .
drwxr-xr-x 6 root root 4096 Jul 21 14:24 ..
lrwxrwxrwx 1 telemain1 telemain1 23 Dec 16 2022 .aws -> /mnt/c/Users/telem/.aws
lrwxrwxrwx 1 telemain1 telemain1 25 Dec 16 2022 .azure -> /mnt/c/Users/telem/.azure
-rw------- 1 telemain1 telemain1 542 Jan 6 2023 .bash_history
-rw-r--r-- 1 telemain1 telemain1 220 Dec 16 2022 .bash_logout
-rw-r--r-- 1 telemain1 telemain1 3771 Dec 16 2022 .bashrc
drwxr-xr-x 3 telemain1 telemain1 4096 Dec 16 2022 .cache
drwx------ 3 telemain1 telemain1 4096 Dec 16 2022 .config
drwxr-xr-x 5 telemain1 telemain1 4096 Dec 16 2022 .docker
-rw-r--r-- 1 telemain1 telemain1 57 Jan 6 2023 .gitconfig
-rw-r--r-- 1 telemain1 telemain1 807 Dec 16 2022 .profile
-rw-r--r-- 1 telemain1 telemain1 0 Jan 6 2023 .sudo_as_admin_successful
drwxr-xr-x 5 telemain1 telemain1 4096 Jan 6 2023 .vscode-server
-rw-r--r-- 1 telemain1 telemain1 183 Jan 6 2023 .wget-hsts
-rwxrwxr-- 1 telemain1 telemain1 0 Jul 21 15:57 niniz
sudo chmod o-wx niniz
를 실행해주면 된다.
즉, chmod에서 맨 앞은 접근 권한을 바꾸고자 하는 집단을 작성하면 되고(u, w, o 중에 하나) 가운데에는 접근 권한을 부여할 것인지 혹은 빼앗을 건지를 정할 연산자(+/-)를 적어준 후에 마지막에는 어떤 접근 권한에 대해 명령을 실행할지 적으면 된다.(r/w/x)
물론 위의 형식이 아니라 8진수의 숫자 표현으로도 사용할 수 있다.
telemain1@danhee:~$ chmod 444 niniz
telemain1@danhee:~$ ls -al
total 48
drwxr-xr-x 6 telemain1 telemain1 4096 Jul 21 15:57 .
drwxr-xr-x 6 root root 4096 Jul 21 14:24 ..
lrwxrwxrwx 1 telemain1 telemain1 23 Dec 16 2022 .aws -> /mnt/c/Users/telem/.aws
lrwxrwxrwx 1 telemain1 telemain1 25 Dec 16 2022 .azure -> /mnt/c/Users/telem/.azure
-rw------- 1 telemain1 telemain1 542 Jan 6 2023 .bash_history
-rw-r--r-- 1 telemain1 telemain1 220 Dec 16 2022 .bash_logout
-rw-r--r-- 1 telemain1 telemain1 3771 Dec 16 2022 .bashrc
drwxr-xr-x 3 telemain1 telemain1 4096 Dec 16 2022 .cache
drwx------ 3 telemain1 telemain1 4096 Dec 16 2022 .config
drwxr-xr-x 5 telemain1 telemain1 4096 Dec 16 2022 .docker
-rw-r--r-- 1 telemain1 telemain1 57 Jan 6 2023 .gitconfig
-rw-r--r-- 1 telemain1 telemain1 807 Dec 16 2022 .profile
-rw-r--r-- 1 telemain1 telemain1 0 Jan 6 2023 .sudo_as_admin_successful
drwxr-xr-x 5 telemain1 telemain1 4096 Jan 6 2023 .vscode-server
-rw-r--r-- 1 telemain1 telemain1 183 Jan 6 2023 .wget-hsts
-r--r--r-- 1 telemain1 telemain1 0 Jul 21 15:57 niniz
리눅스 시스템 디렉터리
- 시스템 디렉터리는 함부로 삭제하거나 변경해서는 안 됨
- / (루트 디렉터리):
리눅스 파일 시스템의 최상위 디렉터리로, 모든 파일과 디렉터리는 여기서 시작하는 절대 경로로 표시. - /bin:
/bin 디렉터리에는 기본적인 사용자 명령어가 위치. 이 디렉터리에 있는 프로그램은 시스템의 기본 기능을 제공하며, 모든 사용자가 실행 가능. - /boot:
/boot 디렉터리는 부팅과 관련된 파일들이 위치. 커널 이미지와 부트로더(bootloader) 파일이 여기에 저장. 부팅 시 필요한 커널과 설정 파일들이 위치하여 시스템의 부팅 프로세스를 관리. - /dev:
/dev 디렉터리는 장치 파일들을 포함. 리눅스는 모든 장치를 파일로 취급하므로 하드웨어 장치들은 이 디렉터리에 대응되는 파일로 표현. 예를 들어, 하드 드라이브는 /dev/sda, 프린터는 /dev/lp0과 같은 파일로 표현. - /etc:
/etc 디렉터리에는 시스템 전반적인 설정 파일들이 위치. 네트워크 설정, 사용자 계정, 서비스 구성 파일 등이 여기에 저장. 시스템 관리자가 이 디렉터리를 통해 시스템을 구성하고 관리. - /home:
일반 사용자의 홈 디렉터리가 위치. 각 사용자는 자신의 디렉터리를 가지며, 여기서 개인 파일과 설정을 관리. - /lib 및 /lib64:
/lib 및 /lib64 디렉터리에는 공유 라이브러리 파일들이 위치. 다른 프로그램들이 이 라이브러리들을 공유하여 사용하며, 이를 통해 중복을 최소화하고 시스템 리소스를 효율적으로 사용. - /media 및 /mnt:
이동식 미디어(예: USB 드라이브, CD-ROM)를 마운트하는 디렉터리. /media는 일반적으로 시스템이 자동으로 마운트하는 미디어를 위해 사용되고, /mnt는 수동으로 마운트할 때 사용. - /opt:
/opt 디렉터리는 추가 소프트웨어 패키지들이 위치하는 곳. 일반적으로 시스템에 미리 포함되지 않는 애플리케이션들을 설치하는 데 사용. - /proc:
/proc 디렉터리는 프로세스와 시스템 정보가 가상 파일 형태로 저장. 시스템 상태에 대한 정보를 얻을 수 있으며, 이 디렉터리의 파일들은 커널의 런타임 정보를 표현, - /root:
/root 디렉터리는 시스템 관리자인 root 사용자의 홈 디렉터리. root 사용자는 시스템의 모든 파일과 디렉터리에 액세스 가능. - /sbin:
/sbin 디렉터리에는 시스템 관리용 명령어가 위치. 보통 일반 사용자보다 더 높은 권한이 필요한 명령어들 존재. 시스템 관리자는 이 디렉터리에 있는 프로그램들을 사용하여 시스템을 구성하고 유지 관리. - /tmp:
/tmp 디렉터리는 임시 파일들이 저장되는 임시 공간. 시스템이 실행되는 동안 생성되고 사용되는 임시 파일들이 저장되며, 시스템이 재부팅되면 여기에 저장된 파일들은 삭제. - /usr:
/usr 디렉터리에는 사용자가 설치한 애플리케이션과 파일들이 위치. 보통 시스템에 포함되지 않은 소프트웨어들이 여기에 설치되며, 시스템과는 별개로 관리. - /var:
/var 디렉터리는 시스템 로그, 프로세스 ID 파일 등이 위치. 시스템이 실행되면서 변하는 데이터들이 저장되며, 여기에 저장된 정보들은 시스템의 상태와 동작을 기록.
디렉터리 다루기
pwd 명령어 : 현재 작업 디렉터리 표시
telemain1@danhee:~$ pwd
/home/telemain1
mkdir 명령어 : 디렉터리 생성 명령어
telemain1@danhee:~$ mkdir niniz
- -p 옵션 : 하위 디렉터리도 함께 생성
telemain1@danhee:~$ mkdir -p niniz/cute
cd 명령어 : 디렉터리 이동
telemain1@danhee:~$ cd niniz
telemain1@danhee:~/niniz$ cd ..
telemain1@danhee:~$ cd niniz/cute
telemain1@danhee:~/niniz/cute$
telemain1@danhee:~/niniz/cute$ cd ~
telemain1@danhee:~$
rmdir 명령어 : 디렉터리 삭제
telemain1@danhee:~/niniz$ rmdir cute
telemain1@danhee:~/niniz$ ls
cp 명령어 : 파일 복사
cp [옵션] 원본파일 대상파일
telemain1@danhee:~/niniz$ touch source.txt
telemain1@danhee:~/niniz$ cp source.txt destination.txt
telemain1@danhee:~/niniz$ ls
destination.txt source.txt
위의 명령어를 실행 시 "source.txt" 파일이 "destination.txt"로 복사됨. 원본 파일의 내용과 권한 등이 그대로 복사되며, 새로운 "destination.txt" 파일이 생성된다.
telemain1@danhee:~/niniz$ mkdir backup
telemain1@danhee:~/niniz$ cp source.txt backup/
telemain1@danhee:~/niniz$ cd backup
telemain1@danhee:~/niniz/backup$ ls
source.txt
위의 명령어를 실행하면 "source.txt" 파일이 "backup" 디렉터리로 복사됨.
만약 "backup" 디렉터리가 존재하지 않으면 새로운 디렉터리가 생성되고 파일이 복사된다.
디렉터리 재귀적 복사 : -r 옵션
telemain1@danhee:~/niniz$ cp -r backup backup2
telemain1@danhee:~/niniz$ ls
backup backup2 destination.txt source.txt
위의 명령어를 실행하면 “backup" 디렉터리와 그 안에 있는 모든 파일과 서브디렉터리가 "backup2" 디렉터리로 재귀적으로 복사된다.
mv 명령어 : 파일 이동 명령어
mv [옵션] 원본파일 대상파일
파일 이동하기:
telemain1@danhee:~/niniz$ ls
backup backup2 destination.txt source.txt
telemain1@danhee:~/niniz$ mv destination.txt backup
telemain1@danhee:~/niniz$ ls
backup backup2 source.txt
telemain1@danhee:~/niniz$ cd backup
telemain1@danhee:~/niniz/backup$ ls
destination.txt source.txt
파일 이름 변경하기:
telemain1@danhee:~/niniz$ ls
backup backup2 source.txt
telemain1@danhee:~/niniz$ mv source.txt new_source.txt
telemain1@danhee:~/niniz$ ls
backup backup2 new_source.txt
rm 명령어 : 파일 삭제
telemain1@danhee:~/niniz$ ls
backup backup2 new_source.txt
telemain1@danhee:~/niniz$ rm new_source.txt
telemain1@danhee:~/niniz$ ls
backup backup2
- -rf 옵션 붙일 시, 하위 디렉터리의 모든 파일 삭제 가능
telemain1@danhee:~/niniz$ rm -rf backup
cat 명령어 : 파일 내용을 화면에 표시함
telemain1@danhee:~/niniz$ cat new_source.txt
hello guys
- -n 옵션을 통해 파일 내용 왼쪽에 줄 번호를 붙여 표시 가능
telemain1@danhee:~/niniz$ cat -n new_source.txt
1 hello guys
- 출력 재지정 기호 > 를 이용하면 화면에 글자를 입력하여 새로운 파일 생성 가능
telemain1@danhee:~/niniz$ cat > new_source2.txt
hello i'm niniz
nice to meet ya
telemain1@danhee:~/niniz$ ls
backup2 new_source.txt new_source2.txt
telemain1@danhee:~/niniz$ ls
backup2 new_source.txt new_source2.txt
telemain1@danhee:~/niniz$ cat new_source2.txt > new_source3.txt
telemain1@danhee:~/niniz$ ls
backup2 new_source.txt new_source2.txt new_source3.txt
telemain1@danhee:~/niniz$ cat new_source3.txt
hello i'm niniz
nice to meet ya
head 명령어 : 파일 처음부터 파일 내용 출력
- 10줄까지 보여주는 게 default
- -n 옵션을 이용하여 몇 줄까지 보여줄지 확인 가능
telemain1@danhee:/var/log$ sudo head alternatives.log
update-alternatives 2022-05-05 16:13:48: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/wslview 30
update-alternatives 2022-05-05 16:13:48: link group x-www-browser updated to point to /usr/bin/wslview
update-alternatives 2022-05-05 16:13:48: run with --install /usr/bin/www-browser www-browser /usr/bin/wslview 30
update-alternatives 2022-05-05 16:13:48: link group www-browser updated to point to /usr/bin/wslview
telemain1@danhee:/var/log$ sudo head -n 1 alternatives.log
update-alternatives 2022-05-05 16:13:48: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/wslview 30
tail 명령어 : 마지막에서부터 파일 내용 출력
- 마지막부터 해서 10줄까지 보여주는 게 default
- -n 옵션을 이용하여 몇 줄까지 보여줄지 확인 가능
- -f 옵션을 통해 파일을 실시간으로 모니터링 가능
telemain1@danhee:/var/log$ tail -f alternatives.log
update-alternatives 2022-05-05 16:13:48: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/wslview 30
update-alternatives 2022-05-05 16:13:48: link group x-www-browser updated to point to /usr/bin/wslview
update-alternatives 2022-05-05 16:13:48: run with --install /usr/bin/www-browser www-browser /usr/bin/wslview 30
update-alternatives 2022-05-05 16:13:48: link group www-browser updated to point to /usr/bin/wslview
파일 검색하기
find 명령어 :
find [경로] [표현식] [동작]
현재 디렉터리에서 특정 이름의 파일 찾기: -name 옵션 이용
telemain1@danhee:~/niniz$ find -name backup2
./backup2
디렉터리에서 일정 크기보다 큰 파일들을 찾기 : -size 옵션 이용
telemain1@danhee:~/niniz$ sudo find /tmp -size +1M
최근에 수정된 파일 찾기 : -mtime 옵션 이용
telemain1@danhee:~/niniz$ find . -mtime -7
.
./new_source2.txt
./new_source.txt
./backup2
./backup2/source.txt
./new_source3.txt
위의 명령어는 현재 디렉터리부터 시작하여 7일 이내에 수정된 모든 파일을 찾아준다.
특정 유형의 파일 찾기: -type 이용 (d는 directory, f는 file)
telemain1@danhee:~/niniz$ find ./ -type d
./
./backup2
telemain1@danhee:~/niniz$ find ./ -type f
./new_source2.txt
./new_source.txt
./backup2/source.txt
./new_source3.txt
특정 표현식으로 파일 찾기:
예를 들어, 현재 디렉터리에서 이름이 "file"로 시작하고 ".txt"로 끝나는 파일을 찾고 싶다면 다음과 같이 사용합니다:
find . -name "file*.txt"
위의 명령어는 현재 디렉터리부터 시작하여 이름이 "file"로 시작하고 ".txt"로 끝나는 모든 파일을 찾습니다.
이처럼 find 명령어를 사용하여 다양한 조건으로 파일이나 디렉터리를 검색할 수 있습니다. 필요한 조건에 따라 적절한 find 명령어를 사용하여 원하는 파일을 찾을 수 있습니다. 사용 가능한 옵션과 조건은 매우 다양하기 때문에 필요에 따라 검색 조건을 조합하여 원하는 결과를 얻을 수 있습니다.
echo 명령어
telemain1@danhee:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Python311/Scripts/:/mnt/c/Python311/:/mnt/c/Program Files/Common Files/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Git/cmd:/mnt/c/Program Files/mosquitto:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/nodejs/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Bandizip/:/mnt/c/Program Files/PuTTY/:/mnt/c/Program Files/Go/bin:/mnt/c/Users/telem/anaconda3:/mnt/c/Users/telem/anaconda3/Library/mingw-w64/bin:/mnt/c/Users/telem/anaconda3/Library/usr/bin:/mnt/c/Users/telem/anaconda3/Library/bin:/mnt/c/Users/telem/anaconda3/Scripts:/mnt/c/Users/telem/AppData/Local/Programs/Python/Python310/Scripts/:/mnt/c/Users/telem/AppData/Local/Programs/Python/Python310/:/mnt/c/Users/telem/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/telem/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin:/mnt/c/flutter:/mnt/c/flutter/bin:/mnt/c/Program Files/JetBrains/IntelliJ IDEA Educational Edition 2021.3.3/bin:/mnt/c/Users/telem/.dotnet/tools:/mnt/c/Users/telem/AppData/Roaming/npm:/mnt/c/Program Files/JetBrains/IntelliJ IDEA 2023.1.1/bin:/mnt/c/Users/telem/go/bin:/snap/bin
- echo $PATH를 PATH를 확인 가능
which 명령어 : 명령의 절대경로를 알려줌
telemain1@danhee:~$ which ls
/bin/ls
whereis 명령어 : 명령/소스 파일/메뉴얼 페이지의 경로 검색
telemain1@danhee:~$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
grep 명령어 : 파일 내용을 검색하는 명령어
grep [옵션] 패턴 [파일]
파일에서 특정 문자열 검색하기:
telemain1@danhee:~/niniz$ cat niniz
hello
my name is niniz
nice to meet you
telemain1@danhee:~/niniz$ grep hello niniz
hello
참고로 -i 옵션은 대소문자 구분 없이 찾아준다.
telemain1@danhee:~/niniz$ grep -i Hello niniz
hello
디렉터리 내에서 재귀적으로 특정 문자열 검색하기: -r 옵션
telemain1@danhee:~/niniz$ grep -r telemain12 /
Binary file /home/3todo/myperformances/__pycache__/settings.cpython-310.pyc matches
Binary file /home/3todo/myperformances/__pycache__/settings.cpython-39.pyc matches
/home/3todo/myperformances/settings.py:EMAIL_HOST_USER = 'telemain12@gmail.com'
Binary file /home/3todo/common/__pycache__/views.cpython-39.pyc matches
Binary file /home/3todo/common/__pycache__/views.cpython-310.pyc matches
/home/3todo/common/views.py: send_mail(subject, email, 'telemain12@gmail.com' , [user.email], fail_silently=False)
파일에서 특정 정규표현식 검색하기:
telemain1@danhee:~/niniz$ grep "^[0-9]+" niniz
파일에서 패턴과 일치하지 않는 행 검색: -v 옵션
telemain1@danhee:~/niniz$ cat niniz
hello
my name is niniz
nice to meet you
telemain1@danhee:~/niniz$ grep -v hello niniz
my name is niniz
nice to meet yo
단어가 몇 번 나오는지 세기 : -c 옵션
telemain1@danhee:~/niniz$ grep -c hello niniz
1
행 번호와 함께 출력 : -n 옵션