1. ls (List segments) : 현재 위치의 파일 목록 조회
- ls -l : 파일의 상세정보
- ls -a : 숨김 파일 표시
- ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시
- ls -rt : 파일들을 생성시간순(제일 오래된 것부터)으로 표시
- ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시
('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등등,,,)
2. cd (Change directory) :디렉터리 이동
- cd [디렉터리 경로] : 이동하려는 디렉터리로 이동 (경로 입력 시 '[', ']'부분은 빼고 입력!)
- cd ~ : 홈 디렉터리로 이동
- cd / : 최상위 디렉터리로 이동
- cd . : 현재 디렉터리
- cd .. : 상위 디렉터리로 이동
- cd - : 이전 경로로 이동
3. mkdir (Make dirctory) : 디렉터리 생성
- mkdir dirname : dirname이라는 디렉터리 생성
- mkdir dir1 dir2: 한 번에 여러 개의 디렉터리 생성
- mkdir -p dirname/sub_dirname : dirname이라는 디렉터리 생성, sub_dirname이라는 하위 디렉터리도 생성
- mkdir -m 700 dirname : 특정 퍼미션(권한)을 갖는 디렉터리 생성
<파일의 퍼미션>
8진수 | 2진수 | 권한 | 의미 |
0 | 000 | --- | 아무 권한 없음 |
1 | 001 | --x | 실행 권한만 있음 |
2 | 010 | -w- | 쓰기 권한만 있음 |
3 | 011 | -wx | 쓰기,실행 권한 있음 |
4 | 100 | r-- | 읽기 권한만 있음 |
5 | 101 | r-x | 쓰기,실행 권한 있음 |
6 | 110 | rw- | 읽기,쓰기 권한 있음 |
7 | 111 | rwx | 모든 권한 있음 |
예를 들어 '777'의 경우 이진수로 111111111이고 rwxrwxrwx라는 의미를 가지므로 파일 소유자, 소유 그룹, 일반 사용자에게 읽기, 쓰기, 실행의 모든 권한을 주는 설정이다.
4. cp (Copy) : 파일 복사
- cp file1 file2 : file1을 file2라는 이름으로 복사
- cp -f file1 file2 : 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)
- cp -r dir1 dir2 : 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사
5. mv (Move) : 파일 이동
- mv file1 file2 : file1 파일을 file2 파일로 변경
- mv file1 /dir : file1 파일을 dir 디렉터리로 이동
- mv file1 file2 /dir : 여러 개의 파일을 dir 디렉터리로 이동
- mv /dir1 /dir2 : dir1 디렉터리를 dir2 디렉터리로 이름 변경
6. rm (Remove) : 파일 삭제
- rm file1 : file1을 삭제
- rm -f file1 : file1을 강제 삭제
- rm -r dir : dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)
7. pwd
Print Work Directory의 약자이며, 현재 작업 중이거나 사용자가 있는 디렉터리의 경로를 보여준다.
8. cd
Change Directory의 약자이며, 인자값 없이 사용하게 된다면 홈 디렉토리(~)로 이동하는 명령을 수행한다.
cd 뒤에 상대 경로(.., ./tmp)나 절대 경로(/Users/Documents)를 붙여주면, 해당 경로로 이동하는 명령을 수행한다.
# 시스템 조작
9. uname
Unix Name의 약자이며, 이름, 버전 및 기타 시스템 특정 세부 사항과 같은 시스템 정보를 얻기 위한 기본 Linux 명령어다. 이 명령으로 OS 및 커널 버전을 빠르게 확인할 수 있으며, 시스템의 명령 길이를 확인할 수 있다.
macOS의 uname 기능들은 다음과 같다.
- uname -a : 시스템의 모든 정보를 출력
- uname -m : 시스템 하드웨어 타입 정보
- uname -n : 사용중인 네트워크 호스트 이름 확인
- uname -p : 프로세서 정보 확인
- uname -r : 커널 릴리즈 확인 (운영체제 배포 버전)
- uname -s : 커널명 확인
- uname -v : 커널 버전 확인
10. ps
Process Status의 약자로, 현재 시스템에서 실행 중인 프로세스를 시각화해준다. 시스템 리소스를 분석하는데 사용되는 매우 유연한 수단이며, 터미널을 통해 기본적으로 시스템 프로세스를 조작할 수도 있다. ps는 기본 및 최상의 Linux 모니터링 도구 중 하나로 간주된다. ps는 서버 관리에서 가장 중요한 명령어이다보니 옵션들을 자세히 기술 해놓으려 한다. 참고로, ps 외에 실시간으로 프로세스의 상태를 보고 싶다면 top 명령어를 쓰는 방법도 있다.
- ps : 명령어를 입력한 순간의 프로세스 정보 출력. 현재의 Shell에 의해서 수행된 프로세서들을 조회활 수 있다.
- ps -f : Full Listing. 프로세스 정보에 대해 상세하게 출력한다. (uid, pid, parent pid, CPU 사용량, 시작 시간 등등)
- ps -l : Long Listing. 프로세스의 기본 정보 및 프로세스가 사용하고 있는 OS 자원(CPU, Memory)의 활용 규모, OS의 리소스 활성화 상태 등을 출력한다.
- ps -o : Optional Listing. 프로세스의 상태값 중 출력을 원하는 컬럼값을 지정하여 출력한다
- List에서 각 칼럼의 정보
- UID : User ID. 일반적으로 컴퓨터의 최초 사용자를 가리키는 UID 501을 출력함. (다를 수 있다.)
- PID : Process ID. 동일한 프로그램이지만 다른 PID를 부여 받을 수 있다.
- PPID : Parent Process ID. 해당 프로세스를 실행시킨 부모 프로세스의 PID
- TTY : The Controlling Terminal For the Process, 터미널 번호
- Time : 시작 시간
- CPU : 해당 프로세스가 사용한 CPU 시간의 양
- CMD : 실행 중인 명령 커맨드
- 현재 Shell 뿐만 아니라 모든 프로세스를 출력하고 싶을 때는 -e 옵션 또는 -aux 옵션을 사용한다. 리스팅 수가 너무 많을 수 있으니 "| less" 명령을 포함시키면 좋다.
- 유닉스 옵션 : -a, -e, -u. "man ps" 명령어로 내장 매뉴얼 확인
- BSD 옵션 : a, u, x.
- a : 터미널에서 실행한 프로세스의 정보 출력
- u : 프로세스 소유자 이름, CPU, 메모리 사용량 등 상세정보 출력
- x : 시스템에서 실행 중인 모든 프로세스의 정보 출력
- 특정 유저의 프로세스 출력 : -u [UserName]
11. kill
자원 제한으로 인해 멈춘 프로세스를 중지하는 강력한 명령어다. Linux 시스템 기술을 발전시키다보면 해당 명령어의 본질과 중요성을 알게 된다. ps로 프로세스 목록을 확인하고, 멈추고자 하는 프로세스의 PID를 사용하면 된다.
$ kill [PID]
$ killall [Process Name]
12. service
시스템 전체 서비스를 호출하는 명령어다. 시스템 조작을 위한 강력한 Linux 터미널 명령, 터미널 창에서 직접 System V init 스크립트를 실행하기 위해 해당 명령어를 사용할 수 있다.
13. batch
자동화 쉘 스크립트 작성을 위한 또 다른 강력한 Linux 명령어 중 하나로 Linux 생산성을 크게 향상시킬 수 있다.
14. shutdown
Linux 명령어 shutdown은 halt, init과 함께 시스템을 종료하는 명령어 중 하나다. shutdown은 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지를 보낼 수 있다.
# 파일 관리
15. head
터미널에서 직접 파일 또는 파이프 된 데이터의 시작을 볼 수 있다. 텍스트 처리를 많이 사용하는 사용자가 가장 많이 사용하는 Linux 명령 중 하나다. 터미널에서 많은 파일을 처리할 때마다 이 명령을 사용하여 생산성을 향상 시킬 수 있다. 기본적으로 파일의 맨 위부터 10줄을 출력한다.
16. tail
파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력한다. 기본적으로 마지막 10줄을 출력한다. Linux에서 오류나 파일 로그를 실시간으로 확인할 때 매우 유용하게 사용한다.
29. history
터미널 세션의 bash 기록을 출력해주는 명령어
# 네트워크 관리
33. wget
네트워크 관리자가 터미널에서 바로 웹에서 파일을 다운로드하는데 활용하는 명령어. 해당 명령어는 스크립트나 크론 작업에 사용될 수 있는 편리한 작은 터미널 명령 중 하나이며, 사용자에게 HTTP, HTTPS 및 FTP 인터넷 프로토콜을 사용할 수 있는 기능을 제공한다.
34. iptables
시스템 관리자가 특정 호스트 시스템에서 들어오고 나가는 인터넷 트래픽을 제어할 수 있는 터미널 유틸리티를 호출하는 명령어. sysadmins는 정기 트래픽을 정의하고, 의심스럽거나 신뢰할 수 없는 네트워크 요청을 블랙리스트에 올리는 데 가장 많이 사용하는 명렁어이다.
35. traceroute
네트워크 패킷이 한 시스템에서 다른 시스템으로 이동하는 경로를 결정하기 위해 사용하는 명령어. 여러 가지 유해한 침입자로부터 컴퓨터를 보호할 수 있는 강력한 네트워크 명령어다.
36. cURL
네트워크를 통해 파일을 전송하여 새로운 Linux 시스템 사용자도 사용할 수 있는 매우 강력한 네트워크 도구. 사용자 개입 없이 작동하도록 설계된 Linux 명령어 중 하나이며, 일반적으로 네트워크 관련 쉘 스크립트에 사용된다.
# Linux 명령어 검색 및 정규 표현식
40. grep
대량의 텍스트 파일에서 패턴을 검색할 때 사용할 수 있는 가장 강력한 정규식 터미널 명령 중 하나이다. 찾고자 하는 패턴을 입력으로 받아 특정 패턴에 대해 지정된 파일을 검색한다.
41. sed
지정된 부분을 교체하여 파일 또는 스트림의 각 줄을 조작하는데 가장 많이 사용되는 명령어 중 하나이다. 많은 양의 텍스트 데이터를 다루고 이동 중에도 변경해야 하는 사용자들이 많이 사용한다.
# I/O 및 소유권
42. clear
터미널 화면을 지우는 데 사용하는 명령어.
43. echo
터미널 콘솔에 특정 텍스트를 출력할 수 있는 명령 줄 유틸리티이다. echo의 출력을 다른 터미널 명령으로 파이프 할 수도 있다.
45. sudo
sudo 명령어는 Linux 명령의 성배와 같다. 권한이 없는 사용자는 낮은 수준의 권한이 필요한 파일에만 액세스하고 수정할 수 있다. 해당 명령어를 사용하면 일반 사용자 계정에서 root에 액세스할 수 있다.
46. chmod
시스템 파일 또는 객체의 액세스 권한을 변경하거나 수정하는데 사용하는 명령어이다. 해당 명령어는 사용자로부터 다양한 매개 변수 세트를 취할 수 있으며, 파일 권한 변경에 따라 다르다.
47. chown
chown 명령은 chmod 명령과 매우 유사하다. 그러나 액세스 권한을 변경하는 것이 아닌, 파일 또는 디렉터리의 소유권을 변경하는 명령어이다. chmod와 chown 명령어는 모두 root 권한이 필요하다.
# 일상적인 사용을 위한 기타 명령어
49. tar
파일을 아카이브하고 추출하는데 사용하는 명령어. 파일을 압축하는데 널리 사용되는 명령어로, 매우 효율적으로 처리할 수 있다.
'개발환경 > Linux' 카테고리의 다른 글
[Linux] 리눅스 자료 (0) | 2024.05.24 |
---|