DevOps/Linux
[Linux] 리눅스 자주 사용하는 명령어 정리
kmindev
2023. 9. 15. 16:44
1. cd: 디렉터리 이동
$ cd [PATH] # 이동하려는 디렉터리로 이동
$ cd ~ # 홈 디렉터리로 이동
$ cd / # 최상위 디렉터리로 이동
$ cd . # 현재 디렉터리
$ cd .. # 상위 디렉터리로 이동
$ cd - # 이전 경로로 이동
2. ls: 현재 위치의 파일 목록 조회
$ ls -l ** # ** 파일의 상세정보
$ ls -a # 숨김 파일 표시
$ ls -t # 파일들을 생성시간순(제일 최신 것부터)으로 표시
$ ls -rt ** # 파일들을 생성시간순(제일 오래된 것부터)으로 표시
$ ls -f # 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등)
$ ll # 숨긴 파일과 함께 파일 상세정보 조회(ls -alF)
3. rm: 파일 삭제
$ rm [file1] # file1을 삭제
$ rm -f [file1] # file1을 강제 삭제
$ rm -r [dir] # dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)
4. cp: 파일 복사
$ cp [file1] [file2] # file1을 file2라는 이름으로 복사
$ cp -f [file1] [file2] # 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)
$ cp -r [dir1] [dir2] # 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사
5. mv: 파일 이동
$ mv [file1] [dir1] # file1을 dir1로 이동
$ mv [file1] [file2] # file1을 file2 이름으로 변경
6. rmdir: 디렉터리 삭제
$ rmdir d1 # 디렉터리를 삭제
7. mkdir: 디렉터리 생성
$ mkdir d1 # d1 디렉터리 생성
8. grep: 파일에서 특정 문자열이나 정규표현식을 포함한 행을 출력
$ grep [옵션][패턴][파일명]
옵션
-c
: 일치하는 행의 수를 출력한다.-i
: 대소문자를 구별하지 않는다.-v
: 일치하지 않는 행만 출력한다.-n
: 포함된 행의 번호를 함께 출력한다.-l
: 패턴이 포함된 파일의 이름을 출력한다.-w
: 단어와 일치하는 행만 출력한다.-x
: 라인과 일치하는 행만 출력한다.-r
: 하위 디렉터리를 포함한 모든 파일에서 검색한다.-m 숫자
: 최대로 표시될 수 있는 결과를 제한한다.-E
: 찾을 패턴을 정규표현식으로 찾는다.-F
: 찾을 패턴을 문자열로 찾는다.
9. chmod: 파일 권한을 부여하는 명령어
- 사용자 권한
chmod 0 0 0
: 왼쪽부터 소유자, 그룹, 기타 사용자에게 권한 부여
read, write, execute 권한
10. ps : 현재 실행중인 프로세스 목록을 보는 명령어
$ ps -e # 모든 프로세스 출력
$ ps -f # 풀포맷으로 출력, uid(user ID), pid(process ID), ppid(parent ID), TTY(프로세스와 연결된 터미널) 등
$ ps -l # 긴 포맷으로 출력, 풀포맷 + F(프로세스 플래그), S(프로세스 상태), PRI(우선순위)
$ ps -p # 특정 PID의 프로세스를 출력
$ ps -u # 특정 사용자의 프로세스 출력
$ ps -ef | grep 프로세스명 # ps | grep 조합으로 많이 쓰임. 프로세스명을 포함하는 모든 프로세스를 출력
11. cat: 파일의 내용을 화면에 출력, 리다이렉션 기호’>’를 사용하여 파일 생성
$ cat file1 # file1의 내용을 출력
$ cat file1 file2 # file1과 file2의 내용을 출력
$ cat file1 file2 | more # file1과 file2의 내용을 페이지 별로 출력
$ cat file1 file2 | head # file1과 file2의 내용을 처음부터 10번째 줄까지만 출력
$ cat file1 file2 | tail # file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력
12. alias: 명령어에 별칭을 부여
$ alias # 현재 등록되어 있는 모든 alias 출력
$ alias lss=’ls -asl’ # 별칭 설정
$ unalias lss # 별칭 삭제
13. 명령어와 조합하여 쓰는 기호
&
: 백그라운드 실행(단 터미널과 세션이 끊기면 종료 ⇒ nohub 사용하면 계속 실행할 수 있음)
$ command1 & # command1을 백그라운드에서 실행
>
: 명령어의 출력을 파일로 리다이렉션할 수 있다.
$ command1 > output.txt # command1의 출력결과를 output.txt로 리다이렉션
<
: 파일로부터 입력을 받는다.
$ command1 < input.txt # input.txt 파일로부터 입력을 받는다.
>>
: 출력을 파일에 추가
$ command1 >> output.txt # command1의 출력결과를 output.txt파일에 추가
!
: 명령어의 결과를 부정
$ ! command1 # command1의 명령을 부정
$()
: 명령어의 출력을 변수에 할당하거나 스크립트 내에서 다른 명령어의 결과를 삽입
$ result=$(command1) # command1의 결과를 result에 삽입
;
: 여러 개의 명령어를 한 줄에 연속해서 실행할 때 사용
$ command1 ; command1 # command1을 실행한 다음 command2를 실행
|
: 앞에서 나온 명령 결과를 두 번째 명령에서 사용
$ command1 | command2 # command1의 출력을 command2의 입력으로 보냄
&&
: 첫 번째 명령이 에러 없이 정상적으로 종료 했을 경우에만 두 번째 명령을 실행
$ command1 && command2 # command1이 성공하면 command2를 실행
||
: 첫 번째 명령의 결과에서 에러가 발생하더라도 각각의 모든 명령을 수행
$ command1 || command2 # command1이 실패하면 command2를 실행
14. systemctl: 서비스 제어 명령어
$ systemctl start [서비스명] # 서비스 시작
$ systemctl stop [서비스명] # 서비스 중지
$ systemctl status [서비스명] # 서비스 상태 확인
$ systemctl restart [서비스명] # 서비스 재시작
$ systemctl reload [서비스명] # 서비스를 중지하지 않고 설정 값을 반영
$ systemctl enable [서비스명] # 시스템이 재부팅하면서 자동으로 서비스 실행하도록 등록, 관련 서비스를 /etc/systemd/system/[target]/ 경로에 링크파일을 생성한다.
$ systemctl disable [서비스명] # enable 된 서비스를 해제
$ systemctl list-units --type=service # 모든 서비스 목록 보기
$ systemctl list-unit-files --type service # 모든 서비스의 현재활성화 상태 보기
$ systemctl daemon-reload # enable 된 서비스(데몬)들을 즉시 반영
$ systemctl kill [서비스명] # 서비스와 관련된 프로세스까지 종료
$ systemctl reset-faild # 서비스를 disable 했는데도 계속 보이면 리셋 시키는 명령