1. cd (change directory)
Linux에서 디렉토리를 변경하는 명령어는 “cd”입니다. “cd” 명령어는 Change Directory의 약자로, 사용자가 현재 작업 디렉토리를 변경하는 데 사용됩니다.
“cd” 명령어는 사용자가 해당 디렉토리에 읽고 쓰기 권한이 있을 때만 작동합니다. 만약 디렉토리가 존재하지 않거나 액세스 권한이 없는 경우에는 오류 메시지가 표시됩니다.
1) 홈 디렉토리로 이동
어느 디렉토리에 있든 홈 디렉토리로 이동하고 싶다면 cd만 누르면 된다.
itgoit@itgoit-linux:/var/www/html$ cd
itgoit@itgoit-linux:~$
2) 상대 경로 이동
home 디렉토리 내의 "documents" 디렉토리로 이동합니다. 이동 시 해당 디렉토리 내에 documents 디렉토리가 있어야 한다.
itgoit@itgoit-linux:/home$ cd documents
itgoit@itgoit-linux:/home/documents$
itgoit@itgoit-linux:/home/documents$ cd documents
-bash: cd: documents: No such file or directory
itgoit@itgoit-linux:/home/documents$
3) 절대 경로 이동 전체 경로인 "/var/www/html" 디렉토리로 이동합니다. 최상위 경로(/)를 붙여줌으로써 절대 경로 사용이 가능하며 특정 디렉토리로 이동할 수 있다. 어느 경로에서든 상관 없이 절대 경로로 이동이 가능하다.
itgoit@itgoit-linux:/home/documents$ cd /var/www/html
itgoit@itgoit-linux:/var/www/html$
4) 상위 디렉토리로 이동 / 이전 디렉토리로 이동 해당 디렉토리의 상위 디렉토리로 이동하기 위해 ".."을 사용합니다. 또한 바로 전에 머물렀던 디렉토리로 다시 돌아가고 싶다면 "-"를 이용하여 바로 전에 머물렀던 디렉토리가 표시되며 이동됩니다.
itgoit@itgoit-linux:/var/www/html$ cd ..
itgoit@itgoit-linux:/var/www$ cd -
/var/www/html
itgoit@itgoit-linux:/var/www/html$
2. mkdir (Make Directory)
새로운 디렉토리(폴더)를 만들기 위한 명령어로 사용자가 지정한 이름의 디렉토리를 생성하여 파일 시스템에 추가합니다. 윈도우의 새 폴더 만들기라고 생각하시면됩니다.
mkdir [옵션] 디렉토리명 -p: 지정된 경로에 디렉토리를 만들 때 필요한 중간 디렉토리 또한 모두 생성합니다. -m: 새로운 디렉토리의 권한을 설정합니다. -v: 새로운 디렉토리를 만들 때마다 그 작업을 자세히 표시해줍니다. 명령이 실행될 때마다 만들어진 디렉토리의 이름을 보여줍니다. 이 옵션을 사용하면 작업이 성공적으로 수행되었는지 확인이 쉽습니다.
-p 옵션을 사용하면 디렉토리 생성시 "/www/html/"는 기존에 있는 경로이며 "wp/make/folder/test"는 존재하지 않는 디렉토리지만 중간 디렉토리를 동시에 생성할 수 있습니다.
itgoit@itgoit-linux:~$ mkdir -p /var/www/html/wp/make/folder/test
-m 옵션은 디렉토리 생성 시 디렉토리의 권한을 설정하는 데 사용됩니다. 새로운 디렉토리에 대한 권한을 숫자 모드(Octal mode)로 설정합니다. test라는 새 디렉토리를 만들고, 이 디렉토리에 대한 권한을 764를 설정합니다. 소유자에게 읽기(Read) O, 쓰기(Write) O, 실행(Excute) O 권한인 7(rwx), 그룹 사용자에게 읽기(Read) O, 쓰기(Write) O, 실행(Excute) X 권한인 6(rw-), 기타사용자에게 읽기(Read) O, 쓰기(Write) X, 실행(Excute) X 권한인 4(r--)으로 설정합니다.
itgoit@itgoit-linux:~$ mkdir -m 764 test (※ 764 - 소유자 7(rwx):그룹 6(rw-):기타사용자 4(r--))
itgoit@itgoit-linux:~$ ls
drwxrw-r-- 2 root root 4096 May 13 13:15 test
itgoit@itgoit-linux:~$
-v 옵션은 작업 여부를 메시지로 확인할 수 있습니다.
itgoit@itgoit-linux:~$ mkdir -v test
mkdir: created directory 'test'
itgoit@itgoit-linux:~$ ls
test
itgoit@itgoit-linux:~$
3. rmdir (Remove Directory)
빈 디렉토리를 삭제하는 데 사용됩니다. 해당 디렉토리에는 어떤 파일이나 디렉토리도 포함되어 있지 않아야 합니다. 만약 삭제하려는 디렉토리에 내용이 있으면 rmdir은 실패하고 오류 메시지가 표시됩니다. 이 때 -p 옵션을 사용합니다.
rmdir [옵션] 디렉토리명 -p: 부모 디렉토리를 함께 삭제합니다. 즉, 지정된 디렉토리를 삭제하고 그 디렉토리가 비어 있고, 이후에 부모 디렉토리가 비어 있으면 부모 디렉토리도 삭제됩니다. -v: 작업을 수행할 때마다 세부 정보를 표시합니다.
itgoit@itgoit-linux:/var/www$ ls
make test1
itgoit@itgoit-linux:/var/www$ tree make
make
└── test2
1 directory, 0 files
목록에는 make와 test1 폴더가 있고, 그중 make 폴더안에는 test2가있습니다.
itgoit@itgoit-linux:/var/www$ rmdir test1
itgoit@itgoit-linux:/var/www$ ls
make
itgoit@itgoit-linux:/var/www$ rmdir make
rmdir: failed to remove 'make': Directory not empty
itgoit@itgoit-linux:/var/www$ rmdir -p make
itgoit@itgoit-linux:/var/www$ ls
itgoit@itgoit-linux:/var/www$
4. ls / dir (ms-dos 시절 dir도 지원)
리눅스에서 ls
명령어는 현재 디렉토리에 있는 파일과 디렉토리의 목록을 보여줍니다. 일반적으로 사용되는 옵션은 다음과 같습니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls // 일반 파일 표시
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -a // 모든 파일 표시 (dot 파일 등)
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -F // 파일명 뒤에 파일 유형을 나타내는 기호를 표시
(디렉토리-/, 실행파일-*, 심볼릭 링크-@)
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -C // 한줄에 여러 파일 표시 (도스의 dir/w과 같은 명령)
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -l // 상세 파일 정보를 표시
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -t // 파일이 생성된 시간 별로 정렬
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -R // 서브 디렉토리 내 모든 파일 표시 (리눅스 모든 폴더가 표시)
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -lt // 상세파일 표시를 파일 생성 시간대 별로 표
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -al // 모든 파일을 상세하게 표시
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -aC // 모든 파일을 한줄에 여러 파일 표시
1) ls
현재 디렉토리의 모든 파일 및 폴더를 기본 형식으로 보여준다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls
index.php wp-blog-header.php wp-cron.php wp-settings.php
license.txt wp-comments-post.php wp-includes wp-signup.php
nginx.conf wp-config-docker.php wp-links-opml.php wp-trackback.php
readme.html wp-config-sample.php wp-load.php xmlrpc.php
wp-activate.php wp-config.php wp-login.php
wp-admin wp-content wp-mail.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
2) ls -a
숨겨진 파일을 포함하여 모든 파일을 보여준다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -a
. wp-activate.php wp-content wp-settings.php
.. wp-admin wp-cron.php wp-signup.php
.htaccess wp-blog-header.php wp-includes wp-trackback.php
index.php wp-comments-post.php wp-links-opml.php xmlrpc.php
license.txt wp-config-docker.php wp-load.php
nginx.conf wp-config-sample.php wp-login.php
readme.html wp-config.php wp-mail.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
3) ls -F
각 항목의 유형을 나타내는 문자를 추가하여 파일과 디렉토리를 목록화합니다.
ls -F를 사용하면 아래와 같이 식별 문자가 추가됩니다. 아래 식별자를 통해 파일과 디렉토리를 더 쉽게 식별할 수 있습니다.
- 슬래시(/) : 디렉토리
- 별표(*) : 실행 가능한 파일
- AT 기호(@) : 심볼릭 링크
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -F
ads.txt wp-activate.php* wp-content/ wp-mail.php*
ads.txt.save wp-admin/ wp-cron.php* wp-settings.php*
index.php* wp-blog-header.php* wp-includes/ wp-signup.php*
license.txt* wp-comments-post.php* wp-links-opml.php* wp-trackback.php*
readme.html* wp-config-sample.php* wp-load.php* xmlrpc.php*
wp-config.php wp-login.php*
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ cd /etc/nginx
itgoit@itgoit-linux:~/etc/nginx$ ls -F
conf.d/ itgoit.conf modules@ scgi_params uwsgi_params
fastcgi.conf koi-utf modules-enabled/ sites-available/ win-utf
fastcgi_params koi-win nginx.conf sites-enabled/
itgoit.com mime.types proxy_params snippets/
itgoit@itgoit-linux:~/etc/nginx$
4) ls -C
파일과 디렉토리를 여러 열에 걸쳐 정렬하여 표시합니다. 이렇게 하면 화면 너비에 맞춰 목록이 자동으로 조정되어 더 가독성이 좋아집니다. 파일 및 디렉토리가 여러 열에 걸쳐 표시되므로 긴 파일 목록을 볼 때 특히 유용합니다.
창 너비에 맞춰 목록이 아래와 같이 자동으로 조정되니 창을 조절해야할 경우 다시 다시 정렬하여 깔끔하게 볼 수있습니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -C
index.php wp-blog-header.php wp-cron.php wp-settings.php
license.txt wp-comments-post.php wp-includes wp-signup.php
nginx.conf wp-config-docker.php wp-links-opml.php wp-trackback.php
readme.html wp-config-sample.php wp-load.php xmlrpc.php
wp-activate.php wp-config.php wp-login.php
wp-admin wp-content wp-mail.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -C
index.php wp-blog-header.php
wp-cron.php wp-settings.php
license.txt wp-comments-post.php
wp-includes wp-signup.php
nginx.conf wp-config-docker.php
wp-links-opml.php wp-trackback.php
readme.html wp-config-sample.php
wp-load.php xmlrpc.php
wp-activate.php wp-config.php
wp-login.php wp-admin
wp-content wp-mail.php
5) ls -l
현재 디렉토리에 있는 파일과 디렉토리의 자세한 정보를 보여줍니다.
- 파일 유형 및 권한
- 링크 수
- 소유자 이름
- 그룹 이름
- 파일 크기(바이트 단위)
- 마지막 수정 날짜 및 시간
- 파일 또는 디렉토리 이름
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -l
total 248
-rw-r--r-- 1 82 82 405 Feb 6 2020 index.php
-rw-r--r-- 1 82 82 19915 Jan 1 2023 license.txt
-rw-r--r-- 1 82 82 0 Jul 4 23:37 nginx.conf
-rw-r--r-- 1 82 82 7402 May 31 00:43 readme.html
-rw-r--r-- 1 82 82 7205 Sep 17 2022 wp-activate.php
drwxr-xr-x 9 82 82 4096 May 17 01:45 wp-admin
-rw-r--r-- 1 82 82 351 Feb 6 2020 wp-blog-header.php
-rw-r--r-- 1 82 82 2338 Nov 10 2021 wp-comments-post.php
-rw-rw-r-- 1 82 82 5529 May 31 00:18 wp-config-docker.php
-rw-r--r-- 1 82 82 3013 Feb 23 19:38 wp-config-sample.php
-rw-r--r-- 1 82 82 5633 Jul 4 23:37 wp-config.php
drwxr-xr-x 10 82 82 4096 Aug 4 16:42 wp-content
-rw-r--r-- 1 82 82 5536 Nov 24 2022 wp-cron.php
drwxr-xr-x 28 82 82 16384 May 17 01:45 wp-includes
-rw-r--r-- 1 82 82 2502 Nov 27 2022 wp-links-opml.php
-rw-r--r-- 1 82 82 3792 Feb 23 19:38 wp-load.php
-rw-r--r-- 1 82 82 49330 Feb 23 19:38 wp-login.php
-rw-r--r-- 1 82 82 8541 Feb 3 22:35 wp-mail.php
-rw-r--r-- 1 82 82 24993 Mar 2 00:05 wp-settings.php
-rw-r--r-- 1 82 82 34350 Sep 17 2022 wp-signup.php
-rw-r--r-- 1 82 82 4889 Nov 24 2022 wp-trackback.php
-rw-r--r-- 1 82 82 3238 Nov 30 2022 xmlrpc.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
6) ls -t
파일 및 디렉토리를 수정된 시간에 따라 정렬하여 표시합니다. 가장 최근에 수정된 파일이 먼저 표시되고, 가장 오래된 파일이 나중에 표시됩니다. 가장 최근에 사용한 파일이나 작업한 디렉토리를 빠르게 찾을 수 있습니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -t
wp-content wp-admin license.txt wp-activate.php
nginx.conf wp-settings.php xmlrpc.php wp-comments-post.php
wp-config.php wp-config-sample.php wp-links-opml.php index.php
readme.html wp-load.php wp-cron.php wp-blog-header.php
wp-config-docker.php wp-login.php wp-trackback.php
wp-includes wp-mail.php wp-signup.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
7) ls -lt
파일과 디렉토리를 자세한 정보와 함께 수정된 시간에 따라 정렬하여 표시합니다. 즉, 가장 최근에 수정된 파일이 먼저 나타나고, 가장 오래된 파일이 나중에 나타납니다. 파일의 자세한 정보를 표시하면서도 최신 파일 부터 보여주므로 가장 많이 사용되는 옵션 중 하나입니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -lt
total 248
drwxr-xr-x 10 82 82 4096 Aug 4 16:43 wp-content
-rw-r--r-- 1 82 82 0 Jul 4 23:37 nginx.conf
-rw-r--r-- 1 82 82 5633 Jul 4 23:37 wp-config.php
-rw-r--r-- 1 82 82 7402 May 31 00:43 readme.html
-rw-rw-r-- 1 82 82 5529 May 31 00:18 wp-config-docker.php
drwxr-xr-x 28 82 82 16384 May 17 01:45 wp-includes
drwxr-xr-x 9 82 82 4096 May 17 01:45 wp-admin
-rw-r--r-- 1 82 82 24993 Mar 2 00:05 wp-settings.php
-rw-r--r-- 1 82 82 3013 Feb 23 19:38 wp-config-sample.php
-rw-r--r-- 1 82 82 3792 Feb 23 19:38 wp-load.php
-rw-r--r-- 1 82 82 49330 Feb 23 19:38 wp-login.php
-rw-r--r-- 1 82 82 8541 Feb 3 22:35 wp-mail.php
-rw-r--r-- 1 82 82 19915 Jan 1 2023 license.txt
-rw-r--r-- 1 82 82 3238 Nov 30 2022 xmlrpc.php
-rw-r--r-- 1 82 82 2502 Nov 27 2022 wp-links-opml.php
-rw-r--r-- 1 82 82 5536 Nov 24 2022 wp-cron.php
-rw-r--r-- 1 82 82 4889 Nov 24 2022 wp-trackback.php
-rw-r--r-- 1 82 82 34350 Sep 17 2022 wp-signup.php
-rw-r--r-- 1 82 82 7205 Sep 17 2022 wp-activate.php
-rw-r--r-- 1 82 82 2338 Nov 10 2021 wp-comments-post.php
-rw-r--r-- 1 82 82 405 Feb 6 2020 index.php
-rw-r--r-- 1 82 82 351 Feb 6 2020 wp-blog-header.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
8) ls -al
현재 디렉토리에 있는 모든 파일과 디렉토리를 자세한 정보와 함께 표시합니다. 숨겨진 파일 및 디렉토리도 모두 포함하여 보여줍니다. 따라서 현재 디렉토리에 있는 모든 항목을 보고 싶을 때 유용합니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -al
total 260
drwxr-xr-x 5 82 82 4096 Aug 3 00:53 .
drwxrwxr-x 8 itgoit itgoit 4096 Jul 27 23:07 ..
-rw-r--r-- 1 82 82 294 May 31 01:07 .htaccess
-rw-r--r-- 1 82 82 405 Feb 6 2020 index.php
-rw-r--r-- 1 82 82 19915 Jan 1 2023 license.txt
-rw-r--r-- 1 82 82 0 Jul 4 23:37 nginx.conf
-rw-r--r-- 1 82 82 7402 May 31 00:43 readme.html
-rw-r--r-- 1 82 82 7205 Sep 17 2022 wp-activate.php
drwxr-xr-x 9 82 82 4096 May 17 01:45 wp-admin
-rw-r--r-- 1 82 82 351 Feb 6 2020 wp-blog-header.php
-rw-r--r-- 1 82 82 2338 Nov 10 2021 wp-comments-post.php
-rw-rw-r-- 1 82 82 5529 May 31 00:18 wp-config-docker.php
-rw-r--r-- 1 82 82 3013 Feb 23 19:38 wp-config-sample.php
-rw-r--r-- 1 82 82 5633 Jul 4 23:37 wp-config.php
drwxr-xr-x 10 82 82 4096 Aug 4 16:45 wp-content
-rw-r--r-- 1 82 82 5536 Nov 24 2022 wp-cron.php
drwxr-xr-x 28 82 82 16384 May 17 01:45 wp-includes
-rw-r--r-- 1 82 82 2502 Nov 27 2022 wp-links-opml.php
-rw-r--r-- 1 82 82 3792 Feb 23 19:38 wp-load.php
-rw-r--r-- 1 82 82 49330 Feb 23 19:38 wp-login.php
-rw-r--r-- 1 82 82 8541 Feb 3 22:35 wp-mail.php
-rw-r--r-- 1 82 82 24993 Mar 2 00:05 wp-settings.php
-rw-r--r-- 1 82 82 34350 Sep 17 2022 wp-signup.php
-rw-r--r-- 1 82 82 4889 Nov 24 2022 wp-trackback.php
-rw-r--r-- 1 82 82 3238 Nov 30 2022 xmlrpc.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
9) ls -aC
현재 디렉토리에 있는 모든 파일과 디렉토리를 숨겨진 항목을 포함하여 열거하고, 항목을 여러 열에 걸쳐 화면에 출력합니다. 이렇게 하면 파일 및 디렉토리를 가독성 좋게 표시할 수 있습니다.
itgoit@itgoit-linux:~/itgoit-wp/wordpress$ ls -aC
. wp-activate.php wp-content wp-settings.php
.. wp-admin wp-cron.php wp-signup.php
.htaccess wp-blog-header.php wp-includes wp-trackback.php
index.php wp-comments-post.php wp-links-opml.php xmlrpc.php
license.txt wp-config-docker.php wp-load.php
nginx.conf wp-config-sample.php wp-login.php
readme.html wp-config.php wp-mail.php
itgoit@itgoit-linux:~/itgoit-wp/wordpress$
5. login
리눅스는 기본적으로 멀티 유저 개념으로 만들어져 생성된 사용자 ID로 로그인하여 사용합니다.
root@itgoit-server:~# login --help
Usage: login [-p] [name] // -p id 이전의 동일한 환경으로 실행
login [-p] [-h host] [-f name] // -h hostname 원격접속할 때 호스트명을 입력한다.
login [-p] -r host // -f 인증 절차가 완료된 사용자는 절차를 무시. root id는 무조건 인증절차를 거친다.
root@itgoit-server:~# login -p itgoit
Password: itgoit!!
---------- 생략 ----------
itgoit@itgoit-linux:~$
root@itgoit-server:~# login -p itgoit
Password: itgoit!!
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Fri Aug 4 14:52:07 KST 2022
System load: 0.2841796875 Users logged in: 1
Usage of /: 5.6% of 193.65GB IPv4 address for br-5ac294f22074: 175.10.0.1
Memory usage: 48% IPv4 address for docker0: 175.12.0.1
Swap usage: 1% IPv4 address for ens3: 10.0.0.111
Processes: 143
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
Last login: Fri Aug 4 14:19:29 KST 2022 from 172.253.1.93 on pts/0
itgoit@itgoit-linux:~$ // 계정과 호스트명, 디렉토리 표시가 변경되었다.
6. password
패스워드 관련 명령어로 패스워드를 변경하거나 사용 기한 지정 등을 설정할 수 있습니다.
p.s 네트워크 장비는 입력 도중 backspasce가 적용되지만 리눅스는 도중에 틀리면 엔터 치고 다시 해야 합니다.
itgoit@itgoit-linux:~$ passwd --help
Usage: passwd [options] [LOGIN]
Options:
-a, --all report password status on all accounts // 모든 계정의 비밀번호 상태 보고
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the password of the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-R, --root CHROOT_DIR directory to chroot into
-S, --status report password status on the named account
-u, --unlock unlock the password of the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
itgoit@itgoit-linux:~$ passwd
Current password: itgoit00!! // 현재 패스워드 입력
New password: itgoit!!00 // 새로운 패스워드 입력
Retype new password: itgoit!!00 // 새로운 패스워드 다시 한번 입력
itgoit@itgoit-linux:~$
1) 정상적인 변경방법
itgoit@itgoit-linux:~$ passwd
Changing password for itgoit.
Current password: itgoit00!! // 현재 패스워드 입력
New password: itgoit!!00 // 새로운 패스워드 입력
Retype new password: itgoit!!00 // 새로운 패스워드 다시 한번 입력
passwd: password updated successfully // 변경이 정상적으로 이루어짐
itgoit@itgoit-linux:~$
2) 현재 패스워드 틀렸을 때
itgoit@itgoit-linux:~$ passwd
Changing password for itgoit.
Current password: itgoti00!! // 비밀번호를 틀려보겠습니다.
passwd: Authentication token manipulation error
passwd: password unchanged // 비밀번호가 변경되지 않았습니다.
3) 새로운 패스워드가 현재 패스워드와 동일하거나 비었을 때
itgoit@itgoit-linux:~$ passwd
Changing password for itgoit.
Current password: itgoti00!! // 현재 비밀번호 itgoti00!!
New password: itgoti00!! // 새로운 비밀번호 itgoti00!!
Retype new password: itgoti00!!
The password has not been changed. // 비밀번호가 동일할 경우 변경하지 않음
New password: itgoti00!!
Retype new password: itgoti00!!
The password has not been changed.
New password: // 비밀번호를 공백으로 둘 때
Retype new password:
No password has been supplied. // 비밀번호가 비었다고 나오며 변경되지 않음
passwd: Authentication token manipulation error
passwd: password unchanged
4) 패스워드 다시 입력하기 틀렸을 경우
itgoit@itgoit-linux:~$ passwd
Changing password for itgoit.
Current password: itgoti00!!
New password: itgoti00##
Retype new password: itgoti0033 // 새로운 비밀번호 재입력 오류 시
Sorry, passwords do not match.
passwd: Authentication token manipulation error
passwd: password unchanged
itgoit@itgoit-linux:~$
7. pwd (print working directory)
1) 현재 작업 디렉토리 확인
pwd 명령어는 현재 작업 디렉토리의 절대 경로를 출력합니다. 이것은 사용자가 현재 어디에 있는지 알 수 있도록 도와줍니다.
itgoit@itgoit-linux:/var/www/html$ pwd
/var/www/html
itgoit@itgoit-linux:/var/www/html$
2) 파일 및 디렉토리의 절대 경로 얻기pwd 명령어는 다른 명령어의 인수로 사용할 수 있습니다. 예를 들어, ls 명령어에 pwd 명령어의 출력을 인수로 전달하면 현재 작업 디렉토리의 내용을 나열할 수 있습니다.
itgoit@itgoit-linux:/var/www/html$ ls $(pwd)
ads.txt wp-activate.php wp-content wp-mail.php
ads.txt.save wp-admin wp-cron.php wp-settings.php
index.php wp-blog-header.php wp-includes wp-signup.php
license.txt wp-comments-post.php wp-links-opml.php wp-trackback.php
readme.html wp-config-sample.php wp-load.php xmlrpc.php
wp-config.php wp-login.php
itgoit@itgoit-linux:/var/www/html$
3) 셸 스크립트를 생성하여 변수를 통한 현재 작업 디렉토리 출력pwd 명령어는 셸 스크립트에서 현재 작업 디렉토리를 얻는 데 유용합니다. 이것은 스크립트가 다른 디렉토리에 있는 파일에 액세스 해야 할 때 유용할 수 있습니다.
itgoit@itgoit-linux:/var/www/html$ sudo vim script.sh
# 현재 작업 디렉토리 출력
pwd
# 현재 작업 디렉토리를 itgoit_dir 변수에 저장
itgoit_html_dir=$(pwd)
# PATH 환경 변수에 현재 작업 디렉토리 추가
export PATH=$PATH:$itgoit_html_dir
# 변수를 사용하여 현재 작업 디렉토리를 출력
echo "itgoit html working directory: $itgoit_html_dir"
# PATH 환경변수 값 출력
echo PATH
:wq
itgoit@itgoit-linux:/var/www/html$ chmod +x script.sh
itgoit@itgoit-linux:/var/www/html$ ./script.sh
/var/www/html
itgoit html working directory: /var/www/html
/기존 환경변수:/pwd값 작업 디렉토리 환경변수
itgoit@itgoit-linux:/var/www/html$
4) 환경 변수 설정 해제
환경변수를 해제하게 되면 아래와 같이 공백으로 표시
itgoit@itgoit-linux:/var/www/html$ unset PATH
itgoit@itgoit-linux:/var/www/html$ echo $PATH
itgoit@itgoit-linux:/var/www/html$
8. 그 외 자주 사용하게 될 명령어
1) find
리눅스에서 흩어져 있는 파일및 디렉토리를 찾아 정리할 수있는 명령어입니다. 명령을 사용하여 다양한 방법으로 흩어져 있던 내용을 정리할 수 있음
find [경로] [옵션] [검색 조건] [명령어]
-name: 파일 이름으로 검색합니다.
-type: 파일 유형으로 검색합니다.
-size: 파일 크기로 검색합니다.
-mtime: 파일 수정 시간으로 검색합니다.
-atime: 파일 액세스 시간으로 검색합니다.
-ctime: 파일 상태 변경 시간으로 검색합니다.
[검색 조건]
-and: 여러 검색 조건을 연결합니다.
-or: 여러 검색 조건을 연결합니다.
-not: 검색 조건을 부정합니다.
[명령어]
-print: 검색 결과를 출력합니다.
-delete: 검색 결과를 삭제합니다.
-exec: 검색 결과에 명령어를 실행합니다.
find . -name "*itgoit*" | xargs grep "itgoit" | sort | uniq // 현재 디렉토리에서 "itgoit"이라는 단어가
포함된 모든 파일을 검색하고 그 파일의
내용을 정렬하고, 중복된 줄을 제거
find . -name "*itgoit*" // 현재 디렉토리에서 "itgoit"이라는 단어가 포함된 모든 파일을 검색
find . -size +500M // 현재 디렉토리에서 파일 용량이 500M 이상되는 모든파일을 검색
find . -mtime -1 // 현재 디렉토리에서 1일이내에 수정된 모든 파일검색
find . -name "*itgoit*" -delete // 현재 디렉토리에서 검색결과 삭제
2) dpkg
dpkg는 데비안 패키지 관리 시스템을 위한 명령어입니다. 데비안 패키지 관리 시스템은 데비안 기반 리눅스 배포판에서 사용되는 패키지 관리 시스템입니다.
dpkg [옵션] 명령어 패키지
-i 패키지 설치
-r 패키지 제거
-u 패키지 업그레이드
-s 패키지 정보 표시
-e 패키지 구성 파일 편집
-l 설치된 모든 패키지의 목록 표시
itgoit@itgoit-linux:~$ dpkg -i python3.deb // 패키지 설치
itgoit@itgoit-linux:~$ dpkg -r python3 // 패키지 삭제
itgoit@itgoit-linux:~$ dpkg -u python3.deb // 패키지 업데이트
itgoit@itgoit-linux:~$ dpkg -s python3 // 패키지 정보 표시
itgoit@itgoit-linux:~$ dpkg -e python3 // 패키지 구성파일 편집
itgoit@itgoit-linux:~$ dpkg -l // 설치된 모든 패키지목록 표시
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version >
+++-=====================================-=====================================>
ii adduser 3.118ubuntu5 >
ii apparmor 3.0.4-2ubuntu2.3 >
ii apport 2.20.11-0ubuntu82.5 >
ii apport-symptoms 0.24 >
ii apt 2.4.12 >
ii apt-utils 2.4.12 >
ii autoconf 2.71-2 >
ii automake 1:1.16.5-1.3 >
------------------------------ 이하 생략 -----------------------------------------
3) whereis
whereis 명령어는 리눅스에서 명령어, 매뉴얼 페이지, 소스 코드 파일의 위치를 찾는 데 사용되는 명령어입니다.
whereis [옵션] 명령어
-b: 바이너리 파일의 위치만 표시합니다.
-m: 매뉴얼 페이지의 위치만 표시합니다.
-s: 소스 코드 파일의 위치만 표시합니다.
-u: 모든 파일의 위치를 표시합니다.
itgoit@itgoit-linux:~$ wehreis dpkg // pkg 위치 표시 (man 디렉토리내 gz파일은 매뉴얼 페이지)
dpkg: /usr/bin/dpkg /usr/lib/dpkg /etc/dpkg /usr/libexec/dpkg /usr/share/dpkg /usr/share/man/man1/dpkg.1.gz
itgoit@itgoit-linux:~$ wehreis -b dpkg // 바이너리 파일 위치 표시
dpkg: /usr/bin/dpkg /usr/lib/dpkg /etc/dpkg /usr/libexec/dpkg /usr/share/dpkg
itgoit@itgoit-linux:~$ wehreis -s dpkg // 소스코드 파일 위치 표시
itgoit@itgoit-linux:~$ wehreis -u dpkg // 모든 파일 위치 표시
4) file
파일의 유형을 확인하는 데 사용됩니다. 파일이 어떤 종류의 데이터를 포함하고 있는지를 결정하기 위해 파일의 내용과 특성을 분석합니다. 이것은 파일이 텍스트 파일, 이미지 파일, 바이너리 파일 등인지를 판별하는 데 도움이 됩니다.
file [옵션] 파일명
-b 혹은 --brief : 파일명을 출력하지 않고 파일의 유형만 출력합니다.
-f 혹은 --file-form : 많은 파일을 한 번에 확인하기 위한 파일 리스트를 만들어서 여러 개의 파일을 한 번에 확인할 때 사용합니다.
-i 혹은 --mime : MIME 타입 문자로 출력합니다.
itgoit@itgoit-linux:/var/www/html/wp$ file ads.txt
ads.txt: ASCII text
itgoit@itgoit-linux:/var/www/html/wp$ file readme.html
readme.html: HTML document, ASCII text, with very long lines (345)
itgoit@itgoit-linux:/var/www/html/wp$
itgoit@itgoit-linux:/var/www/html/wp$ file -b readme.html
HTML document, ASCII text, with very long lines (345)
itgoit@itgoit-linux:/var/www/html/wp$ file -i readme.html
readme.html: text/html; charset=us-ascii
itgoit@itgoit-linux:/var/www/html/wp$
5) apt-cache
apt-cache
는 데비안 기반의 리눅스 배포판(예: Ubuntu)에서 패키지 메타데이터를 검색하고 생성합니다. 시스템 상태를 변경하지 않으며, update
명령을 통해 가져온 패키지 메타데이터에서 다양한 유용한 정보를 검색하고 생성하는 기능을 제공합니다
5-1) apt-cache search 키워드
Debian 기반 리눅스 시스템에서 사용되는 Advanced Packaging Tool (APT)의 캐시를 검색하여 패키지를 검색하는 데 사용됩니다.
이 명령어는 패키지 이름, 설명 및 다른 관련 정보를 사용하여 패키지 데이터베이스에서 패키지를 검색합니다.
itgoit@itgoit-linux:~$ apt-cache search jvm
libpython3-all-dbg - package depending on all supported Python 3 debugging packages
libpython3-all-dev - package depending on all supported Python 3 development packages
python3-all - package depending on all supported Python 3 runtime versions
python3-all-dbg - package depending on all supported Python 3 debugging packages
python3-all-dev - package depending on all supported Python 3 development packages
clojure - Lisp dialect for the JVM
gradle - Powerful build system for the JVM
gradle-doc - Powerful build system for the JVM - Documentations
groovy - Agile dynamic language for the Java Virtual Machine
groovy-doc - Agile dynamic language for the Java Virtual Machine (documentation)
jarwrapper - Run executable Java .jar files
jattach - JVM Dynamic Attach utility all in one jmap jstack jcmd jin
------------------------------------- 중간 생략 -----------------------------------------
itgoit@itgoit-linux:~$
5-2) apt-cache show 패키지명
명령을 사용하면 특정 패키지에 대한 세부정보를 확인할 수 있습니다.
itgoit@itgoit-linux:~$ apt-cache show python3
Package: python3
Architecture: amd64
Version: 3.10.6-1~22.04
Multi-Arch: allowed
Priority: important
Section: python
Source: python3-defaults
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Matthias Klose <doko@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 90
Provides: python3-profiler
Pre-Depends: python3-minimal (= 3.10.6-1~22.04)
------------------------------------- 중간 생략 -----------------------------------------
5-3) apt-cache depends 패키지명
명령을 사용하면 특정 패키지에 대한 종속성을 확인할 수 있습니다.
itgoit@itgoit-linux:~$ apt-cache depends python3
python3
PreDepends: python3-minimal
Depends: python3.10
Depends: libpython3-stdlib
Suggests: python3-doc
Suggests: python3-tk
Suggests: python3-venv
Replaces: python3-minimal
itgoit@itgoit-linux:~$
5-4) apt-cache policy 패키지명
명령을 사용하면 특정 패키지에 대한 설치 상태와 사용 가능한 버전을 확인할 있습니다.
itgoit@itgoit-linux:~$ apt-cache policy python3
python3:
Installed: 3.10.6-1~22.04
Candidate: 3.10.6-1~22.04
Version table:
*** 3.10.6-1~22.04 500
500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
3.10.4-0ubuntu2 500
500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
6) APT (Advanced Packaging Tool), APT-GET
데비안 (Debian) 기반 리눅스 시스템에서 패키지를 관리하는 데 사용됩니다.
apt-get install 패키지명 : 패키지 설치
패키지를 설치하는 데 사용됩니다. 이 명령어를 사용하여 시스템에 새로운 소프트웨어를 설치하거나 기존 소프트웨어를 업그레이드할 수 있습니다.
패키지 저장소에서 지정된 패키지를 찾아 설치하고, 필요한 경우 의존성 패키지도 함께 설치합니다.
필요에 의해 저장소를 추가하여 최신버전을 설치하는 경우도 있습니다.
apt-get remove 패키지명 : 패키지 제거
패키지를 제거하는 데 사용됩니다. 이 명령어를 사용하여 시스템에서 특정 소프트웨어를 제거할 수 있습니다.
이때, 해당 패키지에 의존하는 다른 패키지가 있다면 이를 함께 제거하지 않습니다. 만약 해당 패키지에 의존하는 다른 패키지도 함께 제거하려면 apt-get autoremove 명령어를 사용할 수 있습니다.
apt-get --purge remove 패키지명 : 패키지 및 관련 설정 파일 제거
apt-get upgrade : 패키지 업그레이드
apt-get search 검색어 : 패키지 검색
apt-get update : 패키지 정보 업데이트
apt-get autoremove : 불필요한 패키지 제거
사용하지 않는 패키지를 자동으로 제거하는 데 사용됩니다. 일반적으로 이 명령어는 시스템에서 더 이상 필요하지 않은 의존성이나 잔여 파일을 정리하는 데 사용됩니다.
현재 시스템에 설치된 패키지 중에서 다른 패키지에 의존하지 않는 패키지가 검색되어 제거됩니다. 이것은 시스템 공간을 절약하고 불필요한 패키지를 정리하는 데 도움이 됩니다.
명령어 실행 후에는 자동으로 삭제될 패키지 목록이 표시되며, 삭제를 승인하려면 "Y"를 입력하고 엔터 키를 누르면 됩니다.
6-1) APT
– APT를 통해 패키지 검색/설치/삭제/업데이트 등 진행 가능
– APT는 패키지 의존성을 자동으로 해결하므로 필요한 모든 패키지를 자동으로 설치 혹은 업그레이드 할 수 있음
– 명령줄 및 API를 통해 사용될 수 있으며 친화적인 인터페이스를 제공하고, 패키지 관리 작업을 편리하게 실행할 수있음
6-2) APT-GET (1998년 릴리즈)
데비안 (Debian) 기반 리눅스 시스템에서 패키지를 관리하는 데 사용되는 APT보다 더 오래전 릴리즈된 명령어
– APT-GET은 APT의 하위 도구 중 하나로, 주로 패키지의 설치 및 업그레이드를 담당
– 명령줄 도구로 사용되며, 터미널에서 패키지를 설치/업그레이드 및 삭제
– APT-GET은 더 많은 옵션과 기능을 제공하며, 일부 사용자는 더욱 세부적인 제어를 위해 APT-GET을 선호할 수 있음
일반적으로 APT는 APT-GET과 다른 APT 하위 도구를 통합하여 패키지 관리를 보다 효율적으로 수행할 수 있습니다. 따라서 대부분의 경우에는 APT를 사용하는 것이 권장됩니다.
man python3 – python3 명령어 메뉴얼 확인 (명령어 괄호 안 숫자 (1)은 주로 일반사용자 활용, (8)은 주료 관리자 활용
df -h – 전체 디스크 용량 확인 (disk free), -h(human) 사람이 보기 좋게 표시, -sh 현재 폴더 용량 사이즈 확인(-s size)
touch itgoit.sh – itgoit.sh 라는 빈 파일 만들기
echo HelloWorld > itgoit.sh – itgoit.sh 파일에 HelloWorld 입력, > (덮어쓰기), >> (이어쓰기 append)
cat /var/log/syslog | tail -2 – 파일 내용 출력 (tail -2 는 syslog 파일 내용중 마지막 2라인 출력)
head -1 itgoit.sh – 첫줄 한 줄 읽기
tail -1 itgoit.sh – 끝줄 한 줄 읽기
tree – 폴더 구조로 볼수있는 명령어
itgoit@itgoit-linux:/var/log$ tree
.
├── alternatives.log
├── apt
│ ├── eipp.log.xz
│ ├── history.log
│ └── term.log
├── auth.log
ps -ef – 실행 중인 프로세스 모두 표시
ps -ef | grep php – 실행 중인 모든 프로세스 중 php 패키지만 표시. 이 때 프로세스의 UID, PID, PPID 등을 확인가능
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May06 ? 00:00:25 /sbin/init
root 2 0 0 May06 ? 00:00:00 [kthreadd]
kill -9 1641 – 위에서 확인된 pid로 프로세스 죽이기