메뉴얼 조회
매뉴얼 조회 명령어인 man 을 사용하려고 할 때 아래의 메시지가 나왔다.
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, including manpages, you can run the 'unminimize'
command. You will still need to ensure the 'man-db' package is installed.
위 메시지는 시스템이 최소화(minimized)되어 man 페이지와 같은 비필수 패키지 및 콘텐츠가 제거된 상태라는 의미이다. 이러한 최소화된 환경에서는 man 명령어의 설명 페이지가 제공되지 않는다.
아래의 명령어는 최소화된 시스템에서 제거된 콘텐츠를 복원하는 데 사용된다.
sudo unminimize
이렇게 하면 man 페이지를 포함한 문서화가 복원되고 man ls와 같은 명령어를 사용할 수 있게 된다.
man 명령어는 “manual”의 약자로, 리눅스와 유닉스 계열 시스템에서 명령어 및 프로그램에 대한 설명서(manual page)를 표시하는 데 사용된다. 사용자가 명령어의 사용법, 옵션, 인자, 예제 등을 확인할 수 있게 도와준다.
man command_name
command_name 자리에 확인하고자 하는 명령어나 프로그램 이름을 입력하면 해당 명령어의 설명서가 출력된다.
/(슬래시)문자열을 입력하면 원하는 내용을 검색할 수도 있다.
->ex) /help
검색 결과가 여러개일 경우 n을 누르면 다음 검색 결과로 이동한다.
나가려면 q 를 누르면 된다.
파일 목록/내용 조회
ls
ls 명령어는 현재 경로의 디렉토리와 파일을 확인할 수 있는 명령어이다. 기본적으로 ls 명령어를 입력하면 현재 디렉토리에 있는 파일과 디렉토리의 목록이 출력된다.
추가적인 옵션을 사용하면 더 많은 정보를 볼 수 있다.
- ls -l: 파일 및 디렉토리의 세부 정보(권한, 소유자, 파일 크기, 수정 날짜 등)를 포함한 목록을 출력한다.
- ls -a: 숨김 파일(파일명 앞에 .이 있는 파일 포함)을 포함하여 모든 파일과 디렉토리를 출력한다.
- ls -d */: 현재 디렉토리 내의 디렉토리만 출력한다.
cat
cat 명령어는 “concatenate”의 약자로, 파일의 내용을 출력하거나 여러 파일을 결합하여 표시하고, 새로운 파일을 생성할 때 사용된다. 주로 파일의 내용을 빠르게 확인하기 위해 사용된다.
- 파일 내용 출력
cat filename.txt
- 여러 파일 결합 및 출력
cat file1.txt file2.txt
여러 파일의 내용을 한 번에 결합하여 출력한다.
- 파일 내용 결합 후 새로운 파일 생성
cat file1.txt file2.txt > combined.txt
file1.txt와 file2.txt의 내용을 결합하여 combined.txt라는 새로운 파일에 저장한다.
- 파일에 내용 추가
cat file3.txt >> existing_file.txt
file3.txt의 내용을 existing_file.txt의 끝에 추가한다.
주요 옵션
- -n: 출력되는 각 라인에 번호를 붙여서 보여준다.
cat -n filename.txt
- -b: 빈 줄을 제외한 각 라인에 번호를 붙인다.
cat -b filename.txt
- -s: 연속된 빈 줄을 한 줄로 축소하여 출력한다.
cat -s filename.txt
head 및 tail
head와 tail 명령어는 파일의 내용을 부분적으로 출력할 때 사용하는 명령어이다. 두 명령어 모두 텍스트 파일의 특정 부분을 확인할 때 유용하다.
head
head는 기본적으로 파일의 처음 몇 줄을 출력하는 명령어이다. 기본값으로 처음 10줄을 출력하지만, 옵션을 사용하여 출력할 줄 수를 조정할 수 있다.
head filename.txt
- -n: 출력할 줄 수를 지정한다.
head -n 5 filename.txt
filename.txt의 처음 5줄을 출력한다.
tail
tail은 기본적으로 파일의 마지막 몇 줄을 출력하는 명령어이다. 기본값으로 마지막 10줄을 출력하지만, 옵션을 사용하여 출력할 줄 수를 변경할 수 있다.
tail filename.txt
- -n: 출력할 줄 수를 지정한다.
tail -n 15 filename.txt
filename.txt의 마지막 15줄을 출력한다.
- -f: 실시간으로 파일의 추가되는 내용을 출력한다. 로그 파일 모니터링에 주로 사용된다.
tail -f logfile.txt
logfile.txt의 내용을 실시간으로 모니터링하며, 새로운 내용이 추가될 때마다 업데이트되어 출력된다.
검색 및 탐색
grep
grep 명령어는 주어진 패턴을 파일이나 표준 입력에서 검색하고, 일치하는 줄을 출력하는 강력한 텍스트 검색 도구이다. 주로 특정 텍스트 패턴을 찾아내거나 필터링할 때 사용된다.
grep "pattern" filename
filename에서 pattern이 포함된 줄을 출력한다.
- -i (대소문자 구분 없이 검색)
grep -i "pattern" filename
- -r (재귀적으로 디렉토리 검색)
grep -r "pattern" /path/to/directory
- -n (줄 번호 함께 출력)
grep -n "pattern" filename
- -v (일치하지 않는 줄 출력)
grep -v "pattern" filename
- -c (일치하는 줄 수 출력)
grep -c "pattern" filename
grep 명령어는 파이프(|)와 결합하여 다른 명령어의 출력을 필터링할 때 매우 유용하다. 파이프는 한 명령어의 출력을 다른 명령어의 입력으로 전달하는 기능을 제공한다.
- 명령어 출력에서 특정 패턴 찾기
ls -l | grep "txt"
- 로그 파일에서 특정 키워드 찾기
cat /var/log/syslog | grep "error"
- 디렉토리 내 파일명 필터링
find /path/to/dir -type f | grep "log"
find
find 명령어는 리눅스와 유닉스 계열 시스템에서 파일과 디렉토리를 검색하는 데 사용되는 강력한 도구이다. 다양한 옵션과 조건을 이용해 원하는 파일이나 디렉토리를 효율적으로 찾을 수 있다.
- 특정 경로에서 파일 찾기
find /path/to/search -name "filename"
지정된 경로에서 filename이라는 이름의 파일을 찾는다. 이름은 대소문자를 구분한다.
- 대소문자를 구분하지 않고 파일 찾기
find /path/to/search -iname "filename"
-iname 옵션은 대소문자를 구분하지 않고 파일을 찾는다.
- 특정 확장자의 파일 찾기
find /path/to/search -name "*.txt"
- 특정 크기 이상의 파일 찾기
find /path/to/search -size +100M
100MB보다 큰 파일을 찾는다. 크기는 M(메가바이트), K(킬로바이트), G(기가바이트) 등의 단위로 지정할 수 있다.
- 파일 삭제
find /path/to/search -name "*.tmp" -type f -delete
.tmp 파일을 찾고 삭제한다. 이 명령어는 주의해서 사용해야 한다.
- 파이프와 결합
find . | grep "conf"
현재 디렉토리(.)와 모든 하위 디렉토리에서 conf라는 문자열이 포함된 파일 또는 디렉토리를 찾는다.
- find 명령어는 논리 연산자(-and, -or, !)를 사용하여 검색 조건을 조합할 수 있다.
find /path/to/search -name "*.sh" -or -name "*.py"
.sh 파일이나 .py 파일을 찾는다.
find /path/to/search ! -name "*.bak"
.bak 확장자가 아닌 파일을 찾는다.
압축 및 해제
특징 | tar | gzip | zip |
---|---|---|---|
기능 | 파일 및 디렉토리를 아카이브(묶기) | 단일 파일 압축 | 다중 파일/디렉토리 아카이브 및 압축 |
확장자 | .tar | .gz | .zip |
압축 지원 | 압축 기능 없음 (gzip 등과 함께 사용) | 압축 기능 있음 | 압축 기능 있음 |
압축 후 원본 파일 | 유지 | 기본적으로 삭제됨 | 유지 |
복원 시 구조 | 여러 파일 및 디렉토리 복원 | 단일 파일 복원 | 여러 파일 및 디렉토리 복원 |
사용 예시 | tar -cvf archive.tar /path/to/files | gzip filename | zip archive.zip file1 file2 dir/ |
주 사용 환경 | 리눅스/유닉스 | 리눅스/유닉스 | Windows, 리눅스, macOS |
tar
tar 명령어는 리눅스 및 유닉스 계열 시스템에서 여러 파일을 하나의 파일로 묶는 아카이브(archive)를 생성하거나, 그 아카이브를 해제하는 데 사용된다. 일반적으로 파일 백업 및 배포에 많이 활용된다. tar는 “tape archive”의 약자이다.
- 아카이브 생성: 여러 파일을 하나의 .tar 파일로 묶는다.
- 압축: 아카이브 파일을 생성하면서 동시에 압축할 수 있다.
- 아카이브 해제: .tar 파일을 해제하여 파일과 디렉토리를 원래대로 복원한다.
아카이브 생성
tar -cvf archive.tar /path/to/files
/path/to/files 경로의 파일들을 archive.tar라는 아카이브 파일로 묶는다.
- -c: 새 아카이브 생성 (create)
- -v: 진행 과정을 자세히 출력 (verbose)
- -f: 파일 이름 지정 (file)
이 명령어는 단순히 파일을 묶는 것일 뿐 압축하는 것은 아니다.
- 압축된 아카이브 생성
tar -czvf archive.tar.gz /path/to/files
-z: 아카이브 한 파일을 gzip을 사용해 압축 (compress with gzip)
- 아카이브 해제
tar -xvf archive.tar
-x: 아카이브 해제 (extract)
archive.tar 파일의 내용을 현재 디렉토리에 해제한다.
- 압축된 아카이브 해제
tar -xzvf archive.tar.gz
-z: gzip 압축 해제
- 특정 디렉토리에 해제
tar -xvf archive.tar -C /target/directory
-C: 특정 디렉토리 지정 (change to directory)
archive.tar 파일의 내용을 /target/directory 경로에 해제한다.
gzip / gunzip
gzip과 gunzip은 파일을 압축하거나 압축 해제하는 데 사용되는 명령어이다. gzip은 파일을 압축하는 데 사용되며, gunzip은 gzip으로 압축된 파일을 해제하는 데 사용된다. 두 명령어 모두 기본적으로 .gz 확장자를 사용한다.
단일 파일만 압축할 수 있으며, 압축된 파일은 .gz 확장자를 갖는다.
다수의 파일이나 디렉토리를 압축하려면 먼저 tar과 결합하여 하나의 아카이브 파일을 만들고, 이를 gzip으로 압축해야 한다.
gzip은 파일을 압축하여 파일 크기를 줄인다. 원본 파일은 압축된 파일로 대체되며, 압축된 파일의 이름은 원래 파일 이름에 .gz 확장자가 추가된다.
gzip filename
filename 파일을 filename.gz로 압축한다.
- 디렉토리 내 파일 압축
gzip -r mydirectory
mydirectory 내의 모든 파일을 .gz 확장자로 압축한다.
이 명령어는 mydirectory 디렉토리 내의 각 파일을 개별적으로 압축할 뿐, 디렉토리 전체를 하나의 파일로 묶어 압축하지 않는다.
- -k: 압축 후에도 원본 파일을 그대로 유지한다.
gzip -k filename
- -d: 압축 해제(이 경우 gunzip을 사용하는 것과 동일).
gzip -d filename.gz
gunzip은 gzip으로 압축된 .gz 파일을 원래 상태로 복원하는 데 사용된다.
gunzip filename.gz
filename.gz를 압축 해제하여 원본 filename으로 복원한다.
- -k: 압축 해제 후에도 .gz 파일을 유지한다.
gunzip -k filename.gz
zip / unzip
zip과 unzip 명령어는 파일과 디렉토리를 압축하고 해제하는 데 사용되는 명령어이다. zip은 파일이나 디렉토리를 .zip 형식으로 압축하는 데 사용되고, unzip은 .zip 파일을 해제하여 원래 파일이나 디렉토리를 복원하는 데 사용된다.
zip은 여러 파일과 디렉토리를 하나의 .zip 파일로 압축할 수 있다.
zip archive.zip file1.txt
- 파일과 디렉토리 함께 압축
zip archive.zip file1.txt file2.txt myfolder/
이 명령어는 file1.txt, file2.txt, 그리고 myfolder/와 그 안의 모든 내용을 압축하여 archive.zip에 포함시킨다.
- 디렉토리만 압축
zip -r archive.zip myfolder/
myfolder/ 내 모든 파일과 하위 디렉토리를 포함하여 압축한다.
- unzip은 .zip 파일을 압축 해제하는 명령어이다.
unzip archive.zip
- -d: 특정 디렉토리에 해제.
unzip archive.zip -d /path/to/destination
/path/to/destination 디렉토리에 압축을 해제한다.
- -o: 동일한 이름의 파일이 존재할 경우 덮어쓰기.
시간
date
date 명령어는 현재 날짜와 시간을 출력할 때 사용되며, 다양한 형식으로 출력할 수 있도록 옵션을 제공한다. + 뒤에 형식을 지정하여 원하는 날짜와 시간 부분만 출력할 수 있다. 각 옵션은 다음과 같은 의미를 가진다.
- +%y: 연도를 두 자리로 출력한다 (예: 24).
- +%Y: 연도를 네 자리로 출력한다 (예: 2024).
- +%m: 월을 두 자리 숫자로 출력한다 (예: 11).
- +%d: 일을 두 자리 숫자로 출력한다 (예: 04).
각 옵션을 결합하여 날짜를 특정 형식으로 출력할 수도 있다.
date +%Y-%m-%d
cal
cal 명령어는 현재 월 또는 지정한 월과 연도의 달력을 출력하는 데 사용된다.
- 현재 월의 달력 표시
cal
- 특정 연도의 달력 출력
cal 2024
- 특정 월과 연도의 달력 출력
cal 11 2024
기타
echo
echo 명령어는 문자열을 출력하는 데 사용된다. 주로 텍스트 메시지를 표시하거나, 변수의 값을 출력하고, 스크립트에서 데이터를 전달할 때 많이 사용된다.
echo "Hello, World!"
- 변수 값 출력
name="Alice"
echo "Hello, $name"
- 특수 문자 해석
-e 옵션을 사용하면 \n, \t, \\ 등의 특수 문자를 해석하여 출력한다.
echo -e "Hello\nWorld"
- 명령어 결과 출력
echo "Today's date is $(date)"
$(command) 구문을 사용하면 명령어의 결과를 출력에 포함할 수 있다.
- 환경 변수 출력
echo $PATH
시스템의 PATH 환경 변수를 출력한다.
- 파일에 텍스트 저장
echo "This is a test" > test.txt
"This is a test"라는 텍스트를 test.txt 파일에 저장한다.
- 텍스트를 파일에 추가
echo "Appended text" >> test.txt
test.txt 파일에 "Appended text"를 추가한다.
history
history 명령어는 사용자가 입력한 이전 명령어들의 목록을 표시하는 데 사용된다. 리눅스와 유닉스 계열 시스템에서 매우 유용하며, 사용자가 실행했던 명령어를 추적하거나 다시 실행할 때 활용된다.
- 기본 사용법
history
이 명령어는 사용자가 실행한 명령어 목록을 출력한다. 출력된 목록에는 각 명령어에 번호가 매겨져 있어 특정 명령어를 쉽게 참조할 수 있다.
- 특정 개수의 명령어 출력
history 10
최근 10개의 명령어만 출력한다.
- 특정 명령어 다시 실행
!123
123번 명령어를 다시 실행한다. ! 뒤에 명령어 번호를 붙이면 해당 명령어가 재실행된다.
touch
touch 명령어는 주로 빈 파일을 생성하거나, 파일의 마지막 수정 시간을 업데이트하는 데 사용된다.
touch newfile.txt
파일이 이미 존재할 경우, touch 명령어는 파일의 수정 시간과 접근 시간을 현재 시간으로 업데이트한다.
mv
mv 명령어는 파일이나 디렉토리를 이동하거나 이름을 변경할 때 사용한다.
- 파일 이동
mv file.txt /path/to/directory/
이 명령어는 file.txt를 지정한 디렉토리(/path/to/directory/)로 이동시킨다.
- 파일 이름 변경
mv oldname.txt newname.txt
이 명령어는 oldname.txt의 이름을 newname.txt로 변경한다.
자주 사용하는 옵션
- -i (interactive): 대상 파일이 이미 존재할 경우, 덮어쓰기를 확인하는 메시지를 출력한다.
- -f (force): 파일을 강제로 덮어쓴다. 대상 파일이 이미 존재해도 사용자에게 확인하지 않고 덮어쓴다.
- -n (no-clobber): 대상 파일이 이미 존재하면 아무 작업도 하지 않고 덮어쓰지 않는다.
cp
리눅스에서 cp 명령어는 파일이나 디렉토리를 복사하는 데 사용된다. 이 명령어를 통해 파일을 다른 위치에 복사하거나 이름을 바꿔서 복사할 수 있으며, 디렉토리 전체를 복사할 수도 있다.
- 파일 복사
cp file1.txt /home/user/Documents/
이 명령어는 file1.txt를 /home/user/Documents/ 디렉토리로 복사한다.
- 파일 복사 및 이름 변경
cp file1.txt newfile.txt
이 명령어는 file1.txt를 복사하여 newfile.txt라는 이름으로 저장한다.
- 여러 파일 복사
cp file1.txt file2.txt /home/user/Documents/
file1.txt와 file2.txt를 /home/user/Documents/ 디렉토리에 복사한다.
자주 사용하는 속성
- -r 또는 -R (recursive): 디렉토리를 복사할 때 사용한다. 하위 디렉토리와 파일까지 모두 복사한다.
- -i (interactive): 대상 파일이 이미 존재할 경우 덮어쓸지 여부를 묻는다.
- -f (force): 대상 파일이 이미 존재하더라도 강제로 덮어쓴다. 사용자에게 확인을 묻지 않는다.
- -u (update): 대상 파일이 존재할 경우, 원본 파일이 더 최신일 때만 복사한다. 파일이 변경되었을 때만 덮어쓰고, 그렇지 않으면 복사하지 않는다.
rm
- 파일 삭제
rm file1.txt
- 여러 파일 삭제
rm file1.txt file2.txt file3.txt
file1.txt, file2.txt, file3.txt를 동시에 삭제한다.
자주 사용하는 옵션
- -r 또는 -R (recursive): 디렉토리를 삭제할 때 사용한다. 하위 디렉토리와 파일까지 모두 삭제한다.
- -f (force): 강제로 삭제한다. 확인 없이 바로 삭제하며, 존재하지 않는 파일에 대해 오류 메시지를 표시하지 않는다.
rm -rf: 이 조합은 강제 삭제와 재귀 삭제를 결합한 것으로, 디렉토리와 하위 모든 파일 및 디렉토리를 강제로 삭제한다. 사용 시 매우 주의해야 한다.
rm -rf /path/to/directory
패키지 매니저
apt
apt는 Debian 계열의 리눅스 배포판(예: Ubuntu)에서 패키지를 관리하는 명령어이다.
apt 명령어는 패키지 설치, 업데이트, 업그레이드, 삭제 등 다양한 패키지 관리 작업을 수행할 수 있도록 해준다.
apt-get, apt-cache 등의 명령어를 통합하여 사용하기 쉽게 개선된 명령어이다.
- 패키지 목록 업데이트
sudo apt update
시스템에 설치 가능한 패키지의 목록을 업데이트한다. 이를 통해 새로 추가된 패키지나 업데이트된 패키지 정보를 알 수 있다.
- 패키지 업그레이드
sudo apt upgrade
설치된 모든 패키지를 최신 버전으로 업그레이드한다. 업그레이드 시 사용자 승인이 필요할 수 있다.
- 패키지 제거
sudo apt remove package-name
package-name에 해당하는 패키지를 제거한다. 설정 파일은 남아있을 수 있다.
- 패키지 완전 제거(설정 파일 포함)
sudo apt purge package-name
package-name의 패키지와 설정 파일을 모두 제거한다.
- 시스템 전체 업그레이드
sudo apt full-upgrade
기존 패키지를 업그레이드하면서 필요에 따라 새로운 패키지를 설치하거나 기존 패키지를 제거할 수 있다. upgrade와 달리 의존성 충돌을 해결하면서 업그레이드한다.
- 패키지 검색
apt search package-name
package-name 패키지의 상세 정보를 확인할 수 있다.
- 설치된 모든 패키지의 목록을 표시
apt list --installed
패키지 이름, 버전, 설치 여부 등이 출력
'컴퓨터 구조 & 운영체제 > Linux' 카테고리의 다른 글
[Linux] 스크립트 작성 및 실행 (0) | 2024.11.07 |
---|---|
[Linux] 사용자와 그룹 (0) | 2024.11.07 |
[Linux] 파일 시스템(File System) (3) | 2024.11.06 |
[Linux / Ubuntu] VMware Tools 수동 설치 (0) | 2024.03.28 |
[Linux / Ubuntu] VMware Fusion 가상머신이 안켜질 때 (0) | 2024.03.28 |