UNIX 계열 운영 체제 중 하나로, 무료 및 오픈 소스 소프트웨어로 제공되는 운영 체제입니다. 리눅스는 개발자, 시스템 관리자, 서버 운영자, 임베디드 시스템 개발자 등 다양한 사용자에게 널리 사용되고 있습니다. 리눅스는 많은 배포판(Distribution)으로 나뉘어져 있어, 사용자들은 자신의 요구에 맞는 배포판을 선택할 수 있습니다.
다중 사용자(Multi-user): 여러 명의 사용자가 동시에 시스템에 접속하여 작업을 수행할 수 있습니다. 각 사용자는 자신만의 개인적인 작업 환경을 가질 수 있습니다.
다중 작업(Multi-tasking): 여러 개의 프로세스가 동시에 실행되어 서로 간섭 없이 병행적으로 실행될 수 있습니다. 이를 통해 시스템 자원을 효율적으로 활용할 수 있습니다.
파일 시스템(File System): 파일 시스템이 트리 구조로 구성되어 있으며, 파일 및 디렉터리에 대한 권한과 소유자를 지정하여 파일 관리가 가능합니다.
쉘(Shell): 사용자와 운영 체제 간의 인터페이스로서, 명령어를 입력하여 시스템을 제어할 수 있는 명령어 인터프리터를 제공합니다.
네트워킹(Networking): 네트워크 환경에서 다양한 프로토콜과 서비스를 지원하며, 서버 운영 체제로 널리 사용됩니다.
유닉스는 안정성, 확장성, 보안성 등의 장점을 가지고 있어 다양한 분야에서 사용한다
Ubuntu는 유명한 GNU/Linux 배포판 중 하나로 데스크톱 및 서버 운영 체제로 사용되는 운영 체제입니다.
cd
: 현재 디렉토리 변경
cd <디렉토리 경로>
: 지정한 디렉토리로 이동합니다. 경로는 절대 경로나 상대 경로로 지정할 수 있습니다.cd ..
: 상위 디렉토리로 이동합니다.cd -
: 이전에 작업하던 디렉토리로 이동합니다.ls
: 현재 디렉토리의 파일 목록 보기
ls -l
: 파일 목록을 자세히 출력합니다. 이 명령어를 사용하면 파일 이름 외에도 파일 권한, 소유자 및 그룹, 파일 크기, 수정한 날짜와 시간 등 자세한 정보를 확인할 수 있습니다.ls -a
: 현재 디렉토리의 모든 파일, 디렉토리 및 숨김 파일을 출력합니다. 숨김 파일은 이름이 마침표로 시작하는 파일로, 일반적으로 시스템 파일 또는 설정 파일과 같은 중요한 파일입니다.ls -t
: 파일을 수정한 시간순으로 정렬하여 출력합니다. 가장 최근에 수정된 파일이 위쪽에 나타납니다.ls -r
: 파일 이름을 역순으로 출력합니다. 이 명령어를 사용하면 가장 최근에 만들어진 파일이 아래쪽에 나타납니다.ls -R
: 모든 하위 디렉토리의 파일 목록을 포함하여 현재 디렉토리의 모든 파일 목록을 출력합니다.ls -h
: 파일 크기를 인간이 읽기 쉬운 형식으로 출력합니다. 예를 들어, KB, MB, GB 등으로 크기를 표시합니다.cat
: 파일 내용 출력
cat <파일 이름>
: 해당 파일의 내용을 출력합니다.cat -n <파일 이름>
: 파일 내용을 출력하면서 각 줄에 번호를 붙입니다.cat -b <파일 이름>
: 파일 내용을 출력하면서 비어있지 않은 줄에만 번호를 붙입니다.cat -s <파일 이름>
: 파일 내용을 출력하면서 연속된 빈 줄을 하나로 합칩니다.cp
: 파일 또는 디렉토리 복사
cp <원본 파일> <대상 파일>
: 원본 파일을 대상 파일로 복사합니다.cp -r <원본 디렉토리> <대상 디렉토리>
: 원본 디렉토리를 대상 디렉토리로 복사합니다. r
옵션은 디렉토리와 그 하위 파일 및 디렉토리를 모두 복사합니다.cp -f <원본 파일> <대상 파일>
또는 cp -rf <원본 디렉토리> <대상 디렉토리>
: 복사시 물어보지 않고 덮어쓰기를 수행합니다. r
옵션을 사용할 경우 f
옵션을 함께 사용해야 합니다.cp -i <원본 파일> <대상 파일>
또는 cp -ri <원본 디렉토리> <대상 디렉토리>
: 복사하기 전에 사용자에게 덮어쓰기 여부를 물어봅니다. r
옵션을 사용할 경우 i
옵션을 함께 사용해야 합니다.mv
: 파일 또는 디렉토리 이동 또는 이름 변경
mv file1 directory1
file1
을 directory1
로 이동합니다.mv file1 file2
file1
의 이름을 file2
로 변경합니다.mkdir
: 디렉토리 생성
mkdir
명령어는 디렉토리를 생성합니다.
mkdir <디렉토리 이름>
: 지정한 이름의 디렉토리를 생성합니다.mkdir -p <디렉토리 경로>
: 지정한 경로에 디렉토리를 생성합니다. 만약 경로에 해당 디렉토리가 존재하지 않으면 해당 디렉토리를 생성합니다.mkdir -m <권한> <디렉토리 이름>
: 생성한 디렉토리에 권한을 설정합니다. 권한은 숫자로 표시되며, 4(읽기), 2(쓰기), 1(실행)의 합으로 표현됩니다. 예를 들어 m 755
는 소유자에게 모든 권한을 부여하고, 그룹 및 기타 사용자에게 읽기 및 실행 권한을 부여합니다.rmdir
: 지정된 디렉토리를 삭제.
디렉토리가 비어 있어야 삭제할 수 있습니다.
rmdir -p <directory>
: 지정된 디렉토리를 삭제하고, 필요한 경우 상위 디렉토리도 삭제합니다.
rmdir --ignore-fail-on-non-empty
: 디렉토리가 비어 있지 않아도 삭제를 시도합니다.
rmdir --help
: 도움말을 출력합니다.
예시:
rmdir dir1 # dir1이 비어있는 경우 삭제
rmdir -p dir1/dir2 # dir1과 dir1/dir2를 모두 삭제
rmdir --ignore-fail-on-non-empty dir1 # dir1이 비어있지 않아도 삭제를 시도
rm
: 파일 또는 디렉토리 삭제
rm <파일 이름>
: 해당 이름의 파일을 삭제합니다.rm -r <디렉토리 이름>
: 해당 이름의 디렉토리를 삭제합니다. r
옵션은 디렉토리와 그 하위 파일 및 디렉토리를 모두 삭제합니다.rm -f <파일 이름>
또는 rm -rf <디렉토리 이름>
: 삭제시 물어보지 않고 바로 삭제합니다. r
옵션을 사용할 경우 f
옵션을 함께 사용해야 합니다.rm -i <파일 이름>
또는 rm -ri <디렉토리 이름>
: 삭제하기 전에 사용자에게 삭제 여부를 물어봅니다. r
옵션을 사용할 경우 i
옵션을 함께 사용해야 합니다.touch
: 빈 파일 생성 또는 파일 수정 시간 변경
touch
명령어는 빈 파일을 생성하거나, 이미 존재하는 파일의 수정 시간을 변경합니다.
touch <파일 이름>
: 지정한 이름의 빈 파일을 생성합니다. 만약 해당 이름의 파일이 이미 존재하면, 해당 파일의 수정 시간을 현재 시간으로 변경합니다.touch -a <파일 이름>
: 해당 파일의 마지막 접근 시간을 현재 시간으로 변경합니다.touch -m <파일 이름>
: 해당 파일의 마지막 수정 시간을 현재 시간으로 변경합니다.touch -c <파일 이름>
: 해당 파일이 존재하지 않으면 아무 작업도 수행하지 않습니다.touch -r <원본 파일> <대상 파일>
: 대상 파일의 수정 시간을 원본 파일의 수정 시간으로 변경합니다.locate
: 파일 시스템에서 지정된 패턴(문자열)을 포함하는 파일 탐색
locate
명령어는 파일 시스템에서 지정된 패턴(문자열)을 포함하는 파일을 찾습니다. find
명령어보다 빠르게 실행됩니다.
locate <pattern>
: 지정된 패턴을 포함하는 파일을 찾습니다.locate -i
: 대소문자를 구분하지 않습니다.locate -r <regex>
: 정규식 패턴을 사용하여 파일을 검색합니다.locate -c
: 찾은 파일의 개수만 출력합니다.locate -e
: 찾은 파일 중 존재하는 파일만 출력합니다.locate -S
: 각 파일의 크기를 출력합니다.locate --version
: locate
명령어의 버전 정보를 출력합니다.locate --help
: 도움말을 출력합니다.find
:파일 시스템에서 파일을 검색하고, 검색된 파일에 대해 지정된 작업을 수행.
find <path> <option> <expression>
: 지정된 경로에서 검색 조건에 맞는 파일을 찾습니다.
find / -name <name>
: 루트 디렉토리부터 시작하여 이름이 일치하는 파일을 찾습니다.
find <path> -type <type>
: 파일 타입으로 검색합니다.
find <path> -size <size>
: 파일 크기로 검색합니다.
find <path> -user <username>
: 파일 소유자로 검색합니다.
find <path> -mtime <days>
: 최종 수정 시간으로 검색합니다.
find <path> -newer <file>
: 지정된 파일보다 최근에 수정된 파일을 검색합니다.
find <path> -exec <command>
: 검색된 파일에 대해 지정된 명령을 수행합니다.
find <path> -print
: 검색된 파일의 경로를 출력합니다.
find <path> -delete
: 검색된 파일을 삭제합니다.
예시:
find / -name "*.txt" -type f # 루트 디렉토리부터 시작하여 확장자가 .txt인 파일을 검색
find /home -user gildong # /home 디렉토리에서 소유자가 gildong인 파일 검색
grep
: 파일 내용에서 패턴 검색
grep <패턴> <파일 이름>
: 해당 파일에서 지정한 패턴을 검색합니다.grep -i <패턴> <파일 이름>
: 대소문자를 구분하지 않고 검색합니다.grep -v <패턴> <파일 이름>
: 해당 패턴이 포함되지 않은 라인을 출력합니다.grep -c <패턴> <파일 이름>
: 해당 패턴이 포함된 라인의 개수를 출력합니다.grep -n <패턴> <파일 이름>
: 해당 패턴이 포함된 라인의 번호를 출력합니다.grep -r <패턴> <디렉토리 이름>
: 해당 디렉토리와 그 하위 디렉토리의 모든 파일에서 패턴을 검색합니다.df
: 파일 시스템 별 디스크 사용량과 여유 공간 확인
df
: 파일 시스템의 디스크 사용량과 여유 공간을 확인합니다.df -h
: 사용 용량과 여유 공간을 인간이 읽기 쉬운 형태로 출력합니다.df -T
: 파일 시스템의 유형을 함께 출력합니다.df -i
: 파일 시스템의 inode 사용량과 여유 공간을 확인합니다.df -a
: 파일 시스템의 모든 포인트(마운트 포인트, 특수 파일 등)를 표시합니다.df -x
: 지정한 파일 시스템 유형을 제외한 파일 시스템만 표시합니다.df -l
: 로컬 파일 시스템만 표시합니다.df -P
: 출력을 POSIX 표준 형식으로 표시합니다.du
: 디렉토리 및 파일 크기 확인
du
: 현재 디렉토리의 크기를 확인합니다.du -h
: 인간이 읽기 쉬운 형태로 출력합니다.du -s
: 디렉토리의 크기를 총합하여 출력합니다.du -a
: 디렉토리 내의 모든 파일의 크기를 출력합니다.du -c
: 총 크기를 마지막에 출력합니다.du -d <depth>
: 디렉토리 탐색의 깊이를 제한합니다.du -x
: 다른 파일 시스템에 있는 파일은 무시합니다.du --exclude
: 지정한 파일이나 디렉토리를 제외합니다.head
: 파일 또는 텍스트에서 처음 몇 줄 출력
head -n 5 file1
file1
의 처음 5 줄을 출력합니다.tail
: 파일 또는 텍스트에서 마지막 몇 줄 출력
tail -n 5 file1
file1
의 마지막 5 줄을 출력합니다.diff
:두 파일 사이의 차이점을 비교.
diff <file1> <file2>
: 두 파일 사이의 차이점을 출력합니다.diff -c <file1> <file2>
: 두 파일 사이의 차이점을 컨텍스트 형식으로 출력합니다.diff -u <file1> <file2>
: 두 파일 사이의 차이점을 유니파일 형식으로 출력합니다.diff -r <dir1> <dir2>
: 두 디렉토리 사이의 차이점을 출력합니다.diff -w <file1> <file2>
: 두 파일 사이의 차이점을 공백을 무시하고 출력합니다.diff --brief <file1> <file2>
: 파일 사이의 차이점이 있는지 확인합니다.tar
: 파일 또는 디렉토리를 아카이브로 묶거나 압축 해제
tar -c
: 아카이브를 생성합니다.
tar -x
: 아카이브를 압축 해제합니다.
tar -f <파일 이름>
: 아카이브 파일 이름을 지정합니다.
tar -v
: 파일을 아카이브에 추가할 때마다 상세 정보를 출력합니다.
tar -z
: gzip으로 압축합니다.
tar -j
: bzip2로 압축합니다.
tar -J
: xz로 압축합니다.
tar -r
: 아카이브에 파일을 추가합니다.
tar -t
: 아카이브에 포함된 파일 목록을 출력합니다.
tar --delete
: 아카이브에서 파일을 삭제합니다.
tar --wildcards
: 와일드카드를 사용하여 파일을 선택합니다.
tar -C
: 특정 디렉토리에서 아카이브를 작업합니다.
아카이브란 여러 파일을 하나의 파일로 묶는 것을 말합니다. 이렇게 묶어진 파일은 압축하여 용량을 줄일 수도 있습니다. tar
명령어로 아카이브를 생성하거나 압축 해제할 수 있습니다.
chmod
: 파일 또는 디렉토리의 권한 변경
chmod
명령어는 파일 또는 디렉토리의 권한을 변경합니다. 권한은 r
(읽기), w
(쓰기), x
(실행)의 3개 옵션으로 표시하며, 각각 소유자(user), 그룹(group), 기타 사용자(other)에 대한 권한입니다. 권한 숫자는 r
이 4, w
가 2, x
가 1의 값을 가집니다. 각 권한을 더한 값이 권한 숫자입니다. 예를 들어, 읽기 및 쓰기 권한이 있는 파일의 권한 숫자는 6(4+2)입니다.
chmod <권한 숫자> <파일 이름>
: 해당 파일의 권한을 숫자 형태로 변경합니다.
chmod <권한 문자> <파일 이름>
: 해당 파일의 권한을 문자 형태로 변경합니다. 예를 들어 chmod u+rw <파일 이름>
은 소유자에게 읽기 및 쓰기 권한을 부여합니다.
chmod ugo+rwx <파일 이름>
: 해당 파일에 대해 모든 사용자에게 읽기, 쓰기 및 실행 권한을 부여합니다.
chmod -R <권한> <디렉토리 이름>
: 해당 디렉토리와 그 하위 파일 및 디렉토리의 권한을 모두 변경합니다.
예시:
chmod 755 file.txt
: file.txt 파일에 대해, 소유자는 읽기, 쓰기, 실행 권한을 가지고, 그룹과 기타 사용자는 읽기 및 실행 권한을 가집니다.
chmod u=rw,g=r,o= file.txt
: file.txt 파일에 대해, 소유자는 읽기 및 쓰기 권한을 가지고, 그룹과 기타 사용자는 권한이 없습니다.
chmod ugo+rwx dir
: dir 디렉토리와 그 하위 파일 및 디렉토리에 대해, 모든 사용자는 읽기, 쓰기, 실행 권한을 가집니다.
chmod -R u+rwX,go+rX dir
: dir 디렉토리와 그 하위 파일 및 디렉토리에 대해, 소유자는 읽기 및 쓰기 권한을 가지고, 그룹과 기타 사용자는 실행 권한만 가집니다.
chown
: 파일 또는 디렉토리의 소유자 변경
chown <소유자>:<그룹> <파일 이름>
: 해당 파일의 소유자와 그룹을 변경합니다.chown <소유자> <파일 이름>
: 해당 파일의 소유자를 변경합니다.chown :<그룹> <파일 이름>
: 해당 파일의 그룹을 변경합니다.chown -R <소유자>:<그룹> <디렉토리 이름>
: 해당 디렉토리와 그 하위 파일 및 디렉토리의 소유자와 그룹을 모두 변경합니다.chown -R <소유자> <디렉토리 이름>
: 해당 디렉토리와 그 하위 파일 및 디렉토리의 소유자를 모두 변경합니다.chown -R :<그룹> <디렉토리 이름>
: 해당 디렉토리와 그 하위 파일 및 디렉토리의 그룹을 모두 변경합니다.jobs
:현재 실행 중인 작업의 목록을 출력
jobs
: 백그라운드에서 실행 중인 작업의 목록을 출력합니다.jobs -l
: 작업 번호와 PID를 포함하여 자세한 정보를 출력합니다.jobs -n
: 상태가 변경된 작업의 목록을 출력합니다.jobs -p
: 작업 ID만 출력합니다.jobs -r
: 실행 중인 작업의 목록을 출력합니다.jobs -s
: 정지된 작업의 목록을 출력합니다.jobs %<job number>
: 특정 작업의 정보를 출력합니다.jobs -x
: 작업이 종료되면 자동으로 kill
명령어로 종료합니다.kill
: 실행 중인 프로세스를 종료
kill <PID>
: 지정된 PID를 가진 프로세스를 종료합니다.kill -l
: 시스템에서 사용 가능한 모든 시그널을 출력합니다.kill -<signal> <PID>
: 지정된 시그널을 지정된 PID에게 보냅니다. 예를 들어, kill -9 1234
는 PID가 1234인 프로세스에게 SIGKILL 시그널을 보냅니다.killall <process name>
: 지정된 프로세스 이름을 가진 모든 프로세스를 종료합니다.pkill <process name>
: 지정된 프로세스 이름을 가진 모든 프로세스를 종료합니다.ping
: 네트워크 연결 상태를 확인
ping <호스트 이름 또는 IP 주소>
: 지정된 호스트에 ICMP 패킷을 보내 응답을 확인합니다.ping -c <횟수>
: 지정된 횟수만큼 ICMP 패킷을 보내 응답을 확인합니다.ping -i <대기 시간>
: ICMP 패킷을 보내기 전 대기 시간을 지정합니다.ping -t
: ping을 지속적으로 수행합니다.ping -s <패킷 크기>
: 보낼 ICMP 패킷의 크기를 지정합니다.ping -R
: 응답 패킷에 대한 경로를 표시합니다.ping -r
: 응답 패킷의 수신처를 표시합니다.ping -n
: 응답 패킷의 IP 주소를 숫자로 표시합니다.ping -v
: 상세 정보를 출력합니다.wget
:인터넷에서 파일을 다운로드하기 위해 사용
wget <URL>
: 지정된 URL에서 파일을 다운로드합니다.
wget -c <URL>
: 이전에 다운로드한 파일을 이어받아 다운로드합니다.
wget -i <file>
: 파일에 나열된 URL에서 파일을 다운로드합니다.
wget --limit-rate
: 다운로드 속도를 제한합니다.
wget --mirror
: 웹사이트를 미러링합니다.
wget -r
: 웹사이트를 재귀적으로 다운로드합니다.
wget -np
: 상위 디렉토리로 이동하지 않습니다.
wget -p
: 모든 페이지에 필요한 파일을 다운로드합니다.
wget -O <output file>
: 출력 파일의 이름을 지정합니다.
wget --user
: 서버에 로그인할 사용자 이름을 지정합니다.
wget --password
: 서버에 로그인할 비밀번호를 지정합니다.
wget --no-check-certificate
: SSL 인증서를 검사하지 않습니다.
wget --help
: 도움말을 출력합니다.
예시:
wget <http://example.com/file.txt> # example.com에서 file.txt 파일을 다운로드
wget -c <http://example.com/file.txt> # 이전에 다운로드한 파일을 이어받아 다운로드
wget -i urls.txt # urls.txt 파일에 나열된 URL에서 파일을 다운로드
uname
:현재 운영체제의 정보를 출력
uname
: 현재 운영체제 이름 출력uname -a
: 운영체제 이름, 버전, 호스트 이름 등 모든 정보 출력uname -s
: 운영체제 이름 출력uname -n
: 호스트 이름 출력uname -r
: 운영체제 버전 출력uname -v
: 운영체제 릴리즈 정보 출력uname -m
: 머신 아키텍처 출력uname -p
: 프로세서 타입 출력uname -i
: 하드웨어 플랫폼 출력top
:시스템의 프로세스 상태를 실시간으로 모니터링
top
: 프로세스의 상태를 실시간으로 모니터링합니다.top -d <seconds>
: 지정된 초마다 프로세스의 상태를 모니터링합니다.top -u <username>
: 지정된 사용자의 프로세스만 모니터링합니다.top -p <pid>
: 지정된 PID의 프로세스만 모니터링합니다.top -c
: 명령어의 전체 이름을 표시합니다.top -o <field>
: 지정된 필드를 기준으로 프로세스를 정렬합니다.top -i
: 프로세스 ID가 아닌 인덱스를 사용하여 프로세스를 선택합니다.top -H
: 멀티스레드 프로세스의 각 스레드를 별도의 프로세스로 표시합니다.top -n <iterations>
: 지정된 횟수만큼 반복하여 출력합니다.top -b
: 배치 모드로 실행합니다. 상호작용 없이 결과를 출력합니다.top -w
: 출력 창의 너비를 조정합니다.top -Z
: 프로세스의 SELinux 컨텍스트를 표시합니다.echo
:문자열을 출력
echo <string>
: 지정된 문자열을 출력합니다.echo -n <string>
: 지정된 문자열을 출력하지만, 줄 바꿈을 하지 않습니다.echo -e
: 이스케이프 문자를 인식합니다.\\n
: 줄 바꿈\\t
: 탭\\\\
: 역슬래시echo $<variable>
: 지정된 환경 변수의 값을 출력합니다.echo $?
: 이전 명령어의 종료 코드(exit code)를 출력합니다.echo $$
: 현재 쉘의 프로세스 ID를 출력합니다.echo -
: 이전 명령어에서 사용한 인수(argument)를 출력합니다.echo --help
: 도움말을 출력합니다.zip
:파일이나 디렉토리를 압축하여 ZIP 파일로 만드는 데 사용
zip <output file> <input file/directory>
: 파일이나 디렉토리를 지정된 이름의 ZIP 파일로 압축합니다.zip -r <output file> <input directory>
: 디렉토리를 지정된 이름의 ZIP 파일로 압축합니다. r
옵션은 디렉토리를 재귀적으로 압축합니다.zip -q
: 출력을 표시하지 않습니다.zip -v
: 압축할 파일의 이름과 크기를 표시합니다.zip -c
: 압축할 파일의 CRC(cyclic redundancy check) 값을 표시합니다.zip -e
: 암호화된 ZIP 파일을 만듭니다. 암호는 사용자가 지정합니다.zip -x
: 압축에서 제외할 파일이나 디렉토리 목록을 지정합니다.zip -u
: ZIP 파일에 새로운 파일을 추가합니다.zip -d
: ZIP 파일에서 파일을 삭제합니다.zip -m
: 원본 파일을 삭제한 후 압축합니다.zip -r backup.zip /home/user/data # /home/user/data 디렉토리를 backup.zip 파일로 압축
zip -e -r backup.zip /home/user/data # /home/user/data 디렉토리를 암호화된 backup.zip 파일로 압축
unzip
:ZIP 파일에서 파일을 추출하는 데 사용
unzip <file>
: ZIP 파일에서 파일을 추출합니다.
unzip -l <file>
: ZIP 파일 내의 파일 목록을 표시합니다.
unzip -t <file>
: ZIP 파일의 무결성을 테스트합니다.
unzip -q <file>
: 출력을 표시하지 않습니다.
unzip -o <file>
: 기존 파일을 덮어씁니다.
unzip -d <directory> <file>
: 지정된 디렉토리에 파일을 추출합니다.
unzip -p <file> <pattern>
: ZIP 파일에서 패턴과 일치하는 파일의 내용을 표시합니다.
unzip -x <file> <pattern>
: ZIP 파일에서 패턴과 일치하지 않는 파일만 추출합니다.
unzip --help
: 도움말을 출력합니다.
예시:
unzip backup.zip # backup.zip 파일에서 파일을 추출합니다.
unzip -l backup.zip # backup.zip 파일 내의 파일 목록을 표시합니다.
unzip -t backup.zip # backup.zip 파일의 무결성을 테스트합니다.
hostname
: 시스템의 호스트네임을 출력하거나 설정.
f
: FQDN(Fully Qualified Domain Name)을 출력s
: 짧은 호스트 이름을 출력useradd
: 새로운 사용자 계정을 생성
m
: 사용자의 홈 디렉토리를 생성s
: 사용자의 셸을 설정g
: 사용자의 기본 그룹을 설정userdel
: 사용자 계정을 삭제
r
: 사용자의 홈 디렉토리와 메일 박스를 함께 삭제apt-get
: APT(Advanced Packaging Tool)를 사용하여 리눅스 패키지를 설치
install <package>
: 패키지를 설치remove <package>
: 패키지를 삭제update
: 패키지 목록을 업데이트upgrade
: 설치된 패키지를 최신 버전으로 업그레이드nano
: 기본적인 텍스트 에디터
r
: 파일을 읽기 전용 모드로 엽니다.w
: 파일을 쓰기 전용 모드로 엽니다.vi
: 기본적인 텍스트 에디터
:w
: 파일을 저장합니다.:q
: 에디터를 종료합니다.:wq
: 파일을 저장하고 에디터를 종료합니다.jed
: 텍스트 에디터
batch
: 배치 모드로 실행합니다.version
: 버전 정보를 출력합니다.alias
: 명령어나 명령어 조합에 별칭을 지정
p
: 현재 정의된 별칭을 출력합니다.unalias
: 지정된 별칭을 삭제
su
: 다른 사용자로 권한을 변경
<username>
: 권한을 변경할 사용자 이름을 지정합니다.htop
: 프로세스 관리 도구
d <delay>
: 갱신 주기를 지정u <username>
: 지정된 사용자의 프로세스만 표시p <pid>
: 지정된 PID(Process ID)를 가진 프로세스만 표시ps
: 현재 실행 중인 프로세스의 정보를 출력
aux
: 모든 사용자의 프로세스를 상세하게 출력f
: 프로세스 간의 계층 구조를 표시u
: 프로세스 소유자의 이름과 실행 시간 등 자세한 정보를 출력ssh
: 원격 서버에 보안 셸 연결
ssh
명령어는 원격 서버에 보안 셸 연결을 제공합니다. 다음은 ssh
명령어의 일부 옵션입니다.
ssh <user>@<hostname>
: 호스트 이름과 사용자 이름을 지정하여 원격 서버에 연결합니다.ssh -p <port> <user>@<hostname>
: 호스트 이름, 포트 및 사용자 이름을 지정하여 원격 서버에 연결합니다.ssh -i <identity_file> <user>@<hostname>
: 키 파일을 사용하여 원격 서버에 연결합니다.ssh -X <user>@<hostname>
: X11 포워딩을 사용하여 원격 서버에 연결합니다.ssh -L <local_port>:<remote_host>:<remote_port> <user>@<hostname>
: 로컬 포트를 리모트 호스트의 리모트 포트로 포워딩합니다.ssh -D <local_port> <user>@<hostname>
: SOCKS 프록시를 사용하여 로컬 포트에 대한 포워딩을 설정합니다.ssh -N <user>@<hostname>
: 백그라운드에서 SSH 연결을 엽니다.ssh -T <user>@<hostname>
: 명령을 실행하지 않고 원격 호스트에 연결합니다.ssh -C <user>@<hostname>
: 데이터를 압축하여 전송합니다.rsync
: 로컬 및 원격 파일 및 디렉토리 동기화
rsync <소스> <대상>
: 로컬 파일 또는 디렉토리를 다른 로컬 경로 또는 원격 호스트로 복사합니다.rsync -a
: 아카이브 모드로 파일 및 디렉토리를 복사합니다. 소유자, 그룹, 권한, 타임스탬프와 같은 메타데이터가 유지됩니다.rsync -r
: 하위 디렉토리를 포함하여 디렉토리를 복사합니다.rsync -v
: 작업 진행 상황을 자세하게 출력합니다.rsync -h
: 파일 크기 등을 인간이 읽기 쉬운 형태로 출력합니다.rsync -z
: 파일을 전송하기 전에 압축합니다.rsync -P
: 작업 진행 상황을 자세하게 출력하면서, 중단한 작업을 이어서 진행할 수 있도록 합니다.rsync -u
: 대상 파일이 소스 파일보다 오래된 경우에만 복사합니다.rsync -i
: 변경된 파일만 복사합니다. 변경된 파일을 출력합니다.rsync --delete
: 대상 디렉토리에 소스 디렉토리에 없는 파일이 있다면 삭제합니다.rsync -e
: SSH 연결에 사용할 명령어를 지정합니다.rsync --exclude
: 복사에서 제외할 파일이나 디렉토리를 지정합니다.rsync --include
: 제외할 파일이나 디렉토리 중에서 복사할 목록을 지정합니다.rsync --dry-run
: 실제로는 실행하지 않고 작업 내용을 출력합니다.ifconfig
: 네트워크 인터페이스 구성 정보 확인
ifconfig
: 모든 인터페이스의 상태를 표시합니다.ifconfig <인터페이스 이름>
: 특정 인터페이스의 상태를 표시합니다.ifconfig -a
: 모든 인터페이스의 상태를 표시합니다. 단, 비활성화된 인터페이스도 표시됩니다.ifconfig -s
: 간단한 통계 정보를 표시합니다.ifconfig -v
: 자세한 정보를 표시합니다.ifconfig <인터페이스 이름> up
: 특정 인터페이스를 활성화합니다.ifconfig <인터페이스 이름> down
: 특정 인터페이스를 비활성화합니다.ifconfig <인터페이스 이름> <IP 주소>
: 특정 인터페이스에 IP 주소를 할당합니다.ifconfig <인터페이스 이름> netmask <넷마스크>
: 특정 인터페이스에 넷마스크를 설정합니다.ifconfig <인터페이스 이름> broadcast <브로드캐스트 주소>
: 특정 인터페이스에 브로드캐스트 주소를 설정합니다.ifconfig <인터페이스 이름> mtu <MTU>
: 특정 인터페이스의 MTU(Maximum Transmission Unit) 값을 설정합니다.ifconfig <인터페이스 이름> hw <MAC 주소>
: 특정 인터페이스의 MAC 주소를 변경합니다.traceroute
: 네트워크 경로 추적
traceroute example.com
example.com
까지의 네트워크 경로를 출력합니다.awk
: 파일 또는 텍스트에서 특정 패턴 찾기 및 처리
awk '<pattern> {<action>}' <file>
: 파일에서 패턴을 찾고 해당 패턴에 대해 지정된 작업을 수행합니다.awk '/<pattern>/ {<action>}' <file>
: 파일에서 정규식 패턴을 찾고 해당 패턴에 대해 지정된 작업을 수행합니다.awk '{<action>}' <file>
: 파일의 각 줄에 대해 지정된 작업을 수행합니다.awk -F
: 필드 구분자를 지정합니다.awk -v
: 변수를 정의합니다.awk 'BEGIN {<action>}'
: 처리 전에 실행할 작업을 지정합니다.awk 'END {<action>}'
: 처리 후에 실행할 작업을 지정합니다.awk '{print $<number>}'
: 지정된 필드(열)의 값을 출력합니다.awk '{<expression>}
: 지정된 표현식을 평가하고 결과를 출력합니다.awk '{printf <format>, <expr1>, <expr2>, ...}'
: 지정된 형식으로 출력합니다.sort
: 파일 또는 텍스트 정렬
sort
: 오름차순으로 정렬합니다.sort -r
: 내림차순으로 정렬합니다.sort -n
: 숫자로 정렬합니다.sort -k <field>
: 지정된 필드를 기준으로 정렬합니다.sort -t <delimiter>
: 필드 구분자를 지정합니다.sort -u
: 중복 라인을 제거합니다.sort -c
: 파일이 정렬되어 있는지 검사합니다.sort -f
: 대소문자를 구분하지 않습니다.sort -o <output>
: 정렬 결과를 지정된 파일에 출력합니다.sort --help
: 도움말을 출력합니다.uniq
: 파일 또는 텍스트에서 중복 라인 제거
uniq file1
file1
에서 중복 라인을 제거합니다.cut
: 파일 또는 텍스트에서 열 추출
cut
명령어는 파일 또는 텍스트에서 지정된 열만 추출합니다.
cut -f <number>
: 지정된 필드(열)를 추출합니다.
cut -f <number>-<number>
: 지정된 범위(열)를 추출합니다.
cut -f <number>,<number>
: 지정된 필드(열)을 쉼표로 구분하여 추출합니다.
cut -c <number>
: 지정된 문자(열)를 추출합니다.
cut -c <number>-<number>
: 지정된 범위(문자)를 추출합니다.
cut -d <delimiter>
: 필드 구분자를 지정합니다.
cut -s
: 구분자가 없는 라인(행)을 제외합니다.
cut --complement
: 지정된 열을 제외한 나머지 열을 추출합니다.
cut --output-delimiter
: 출력 구분자를 지정합니다.
cut --help
: 도움말을 출력합니다.
예시:
cut -d ',' -f 1,3 file.csv # file.csv에서 1, 3번째 열 추출
cut -c 1-5 file.txt # file.txt에서 1~5번째 문자 추출
paste
: 파일 또는 텍스트에서 열 병합
paste
: 파일의 열을 병합합니다. 구분자는 탭(\t) 문자로 지정됩니다.
paste -d <delimiter>
: 병합 시 사용할 구분자를 지정합니다.
paste -s
: 파일의 모든 행을 하나의 행으로 병합합니다.
paste <file1> <file2>
: 두 파일의 열을 병합합니다. 구분자는 탭(\t) 문자로 지정됩니다.
예시:
paste file1 file2 # file1과 file2의 열을 병합
paste -d ',' file1 file2 # file1과 file2의 열을 쉼표로 구분하여 병합
paste -s file1 # file1의 모든 행을 하나의 행으로 병합
patch
: 파일에 변경 내용 적용 patch
명령어는 파일에 변경 내용을 적용합니다.patch <original file> <patch file>
: 원본 파일에 패치 파일의 변경 내용을 적용합니다.
patch -p<n>
: 패치 파일의 경로에서 단계를 제거합니다.
patch -R
: 변경 내용을 되돌립니다.
patch -u
: 패치 파일을 유닉스 표준 형식으로 지정합니다.
patch -i <patch file>
: 지정된 패치 파일을 사용하여 변경 내용을 적용합니다.
patch -o <output file>
: 변경 내용을 출력 파일에 저장합니다.
patch --dry-run
: 변경 내용을 적용하지 않고 테스트합니다.
patch --help
: 도움말을 출력합니다.
예시:
patch file.txt patch.diff # file.txt에 patch.diff 파일의 변경 내용 적용
patch -p1 < patch.diff # patch.diff 파일에서 경로에서 첫 번째 디렉토리를 제거한 후 변경 내용 적용
patch -R file.txt patch.diff # file.txt의 변경 내용을 되돌림
clear
: 터미널 화면을 지우기Tab
버튼을 눌러 자동 완성 기능을 사용Ctrl + C
: 실행 중인 명령을 종료Ctrl + Z
: 작업 중인 명령을 일시 중단Ctrl + S
: 터미널을 일시적으로 정지Ctrl + Q
: 터미널 정지를 취소Ctrl + A
: 명령어 라인의 시작으로 이동Ctrl + E
: 명령어 라인의 끝으로 이동;
를 사용하여 구분&&
를 사용