[리눅스] 명령어 정리

dobi·2023년 2월 5일
0

💻리눅스

목록 보기
6/7
post-thumbnail

Intro

리눅스를 공부하며 해당 내용에 대해 기록하고자 명령어를 모아 정리해보려고 한다.

1. 사용자 명령어 정리

whoami

현재 로그인한 사용자의 사용자명 출력

# whoami 
  root

현재 로그인한 사용자의 이름(실질적으로 활성화된 유저 이름 출력)

참고적으로 공부하기 위해 현재 root 계정을 사용하고 있지만 실무에서는 root 계정을 사용하는건 매우 위험해서 지양된다고 한다. 실무에선 해당 업무를 할 수 있는 새로운 계정을 요청하여 받은 계정을 통해 업무를 수행한다.

logname [옵션]

최초로 로그인한 계정

중간에 su 명령으로 중도 사용자를 전환했을 때도 최초의 로그인 계정을 출력한다

# logname
  user1
# sudo -root
# logname
  root

who [옵션]

# who
root     tty1         2023-01-31 17:35
user1     pts/0        2023-01-31 17:36 (gateway)

로그인한 사용자 계정들

모든 사용자 정보 자세히 출력 (터미널 종류, 로그인 시각 등 정보 출력)

users [옵션]

#users
root root

로그인한 사용자 계정의 접속 정보

who [옵션]

$who
$w [options] user [...]
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      09:43    1:57m  0.01s  0.01s -bash
root     pts/0    gateway          09:43   24:11   0.18s  0.18s -bash
root     pts/1    gateway          11:40    3.00s  0.03s  0.02s w

현재 로그인한 사용자 정보와 그 사용자가 실행시킨 프로세스들의 정보 조회

유저 명 / 터미널명 / 호스트명 / 로그인 시간 /IDLE ( 터미널과 상호작용한 시간 )/ JCPU (ty에 연결된 모든 프로세스에서 사용하는 시간) / PCPU (사용자의 현재 프로세스에 사용되는 시간)

uname

시스템 정보

#uname
Linux
#uname-a # 프로세스와 하드웨어 플랫폼을 제외한 모든 정보 출력 
Linux [호스트네임] 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
#uname-n # 호스트 이름 출력
#uname-v # 커널의 버전 출력 #1 SMP Tue Jun 28 15:37:28 UTC 2022
#uname-m # 시스템 하드웨어 타입 출력 86_64
#uname-i # 하드웨어 플랫폼 출력 x86_64

hostname

호스트 정보

$hostname  localhost.localdomain

2. 도움말 명령어

[명령어]--help

해당 명령어에 대한 도움말

명령어에 대한 도움말이 조회 가능하다.

man [옵션][섹션] [명령어]

리눅스의 매뉴얼 확인 가능

해당 명령어의 사용법이 조회되는데 키보드를 통해 내용을 조회할 수 있다. 이 매뉴얼을 종료하기 위해 키보드 q를 입력하면 종료된다.

#man ls 

info [명령어]

GNU 프로젝트에서 배포되는 온라인 매뉴얼

man과 유사하게 사용되지만 제공되지 않는 명령어가 많지 않다.

#info ls 

3. 파일

pwd

현재 어떤 디렉토리 경로에 있는지를 절대 경로로 표시

#pwd
/root

ls

디렉토리에 있는 내용(디렉토리, 파일) 리스트 조회

#ls 
a.txt  aa.txt  b.txt  index.html  sample.tar.gz  test.tar

#ls -al
-rw-------.  1 root root 3513  21 14:09 .bash_history
-rw-r--r--.  1 root root  176 1229  2013 .bash_profile

#ls -lh
-rw-r--r--. 1 root root   70  131 11:02 a.txt
-rw-r--r--. 1 root root   57  131 11:21 aa.txt

실무에서 매우 자주 쓰는 명령어라고 한다. 실제로 연습하면서 가장 많이 쓴 명령어이기도 했다.

ls에서 자주 사용하는 옵션

옵션설명
-aall의 줄입말. 모든 숨김 파일 보여줌. 숨김 파일의 경우 파일앞에 .(마침표)로 표시
-l파일에 대한 상세 정보 출력
-rreverse 줄임말. 출력결과 내림차 순
-t출력 결과를 파일이 수정된 시간을 기준으로 정렬

cd [이동할 디렉토리 경로]

[입력받은 경로]로 현재 작업하고 있는 디렉토리의 위치를 이동

#cd / # root 디렉토리로 이동
#pwd 
/
#cd ~ # 홈 디렉토리로 이동
#pwd 
/home/foouser

cp [옵션][복사 할 디렉토리/파일][복사 될 디렉토리/파일]

파일이나 디렉토리를 복사할 때 사용

copy의 줄임말

#cp test.txt copy_test.txt #현재 디렉토리의 test파일을 현 위치에 copy_test.txt로 복사 

옵션

옵션설명
-f복사 대상 파일이 있을 경우 사용자에게 확인 없이 강제로 복사
-R / -r 디렉토리를 복사할 경우 하위 디렉토리/파일 모두 복사
-v복사 진행 상태 출력
-a원본 파일의 속성, 링크 모두 복사
-v복사 진행 상태 출력

mv [옵션][이동 할 파일][이동 될 위치]

파일이나 디렉토리를 이동 시킬 때 사용

move의 줄임말

#mv mv test.txt test_folder #  test.txt 파일을 test_folder 디렉토리로 이동
#mv test.txt copy_test.txt #cp처럼 해당 파일을 copy_test.txt 로 이름 바꾸기

실무에서는 기존 것을 삭제하는 것이 아니라 mv를 통해 파일명만 변경하여 사용한다.

mkdir [옵션][디렉토리명]

새로운 디렉토리 생성

make directory 의 약어
경로를 지정하지 않을 경우 현재 위치에 디렉토리를 생성한다.

#mkdir test 
#ls -al
drwxr-xr-x.  2 root root    6  25 15:16 test
#mkdir -p a/test2 #상위 디렉토리도 함께 생성

rmdir [옵션][디렉토리명]

디렉토리를 지우는 명령어 (지우려고 하는 디렉토리가 비어있지 않으면 삭제 되지 않는다)

remove directories 의 약어

 #rmdir test3/ # 해당 디렉토리가 비어있다면 삭제 됨
 #rmdir test2/ # 디렉토리가 비어있지 않을 경우 오류 발생  

디렉토리가 비어있지 않아 발생한 오류

rm [옵션][삭제할 디렉토리/파일]

파일이나 디렉토리 삭제

remove의 약어

 #rm /home/test/test1.txt #test1.txt 파일 삭제
 #rm -r /home/test 
 #rm -rf * #현재 위치의 모든 파일 제거
 #rm *.txt #현재 위치의 .txt로 끝나는 모든 파일 삭제

-r 옵션 : 디렉토리 내부의 모든 내용 삭제
-f 옵션 : 강제로 파일이나 디렉토리를 삭제
특히나 rm-rf 명령어는 조심해야 한다.
=> 실수로 모든 파일과 디렉토리가 강제로 삭제되는 일이 생길 수 있으므로 조심해야 한다. 실무에서는 특히 더 조심히 써야한다. 지양하는 게 제일 좋을 것 같다.

4. 권한 관련 명령어

chown [옵션][소유자]:[그룹][디렉토리 or 파일]

파일 소유권 변경. 파일과 디렉토리의 사용자, 그룹을 변경 가능

#chown -r user1 file1.txt # 경로와 그 하위 파일들 모두 변경 
#그룹을 입력하지 않으면 소유자만 변경

옵션

옵션설명
-c수정된 파일들만 상세 표시 옵션
-t간략한 정보 표시
-R지정한 디렉토리 포함하여 하위파일까지 변경

chmod [옵션][퍼미션] [파일]

파일 / 디렉토리 권한(허가권) 변경

#chmod -r 777 file1.txt # 경로와 그 하위 파일들 모두 변경 

5. Pipe & Redirection

리다이렉션(Redirection)

리다이렉션을 이용하여 명령의 출력을 변경할 수 있다

Redirection설명
>해당 파일이 없을 경우 새로 생성. 기존의 내용을 덮어쓰고 입력
>>입력한 내용을 기존의 내용에 추가함

파이프(PIPE)

각기 다른 명령어를 |(파이프)를 통해 연결하여 사용 가능

cat [옵션][파일명]

파일 내용을 단순 출력하거나 파일 생성/저장

cat 명령어는 concatenate 에서 따온 이름. 일반적으로 CAT 명령어와 pipe 를 함께 사용하여 가독성을 높이는 방식으로 사용한다

#cat > file.txt # 내용을 입력할 수 있도록 입력창이 활성화 됨
HELLO 
#cat file.txt # 파일 내용을 화면에 출력
HELLO 
#cat >>  file.txt 
GOOD BYE
#cat > file.txt 
HELLO GOOD BYE # 기존 내용이 삭제되지 않고 출력 됨
#cat .bash_history | more  
#cat .bash_history | less 

.bash_history | more 엔터를 통해 일부씩 추가하여 확인 가능

.bash_history | less 파일의 내용을 vim 편집기로 확인

grep [옵션][패턴][파일명]

특정 파일에서 지정한 문자열이나 정규 표현식을 포함한 행을 출력

실무에서 검색을 위해 사용한다.

#ps -ef  #실제로 실행중인 모둔 프로세스의 정보를 모두 출력
#ps -ef | grep ssh # ssh를 포함한 프로세스의 정보를 출력

tail [옵션] [파일명]

파일의 마지막 부분 출력
#tail -f 파일명 |grep '키워드'

실제로 실무에서는 grep 명령어와 함께 사용하고 오류나 파일 로그를 실시간으로 확인할 때 사용한다

#tail -f test.log | grep 'Exception' # 로그가 많을 경우 특정 키워드로 검색  시 사용 

참고 Tip

tab (명령어 자동완성)

명령어 자동 완성

#/etc/sysconfig/network-scripts 경로로 이동시 
#cd /e #e까지만 쓰고 tab키를 누르면 etc 자동 완성 
 

여러개가 있을 때는 자동완성이 되지 않는다.
#/etc/s #tab을 두 번 누르면 동일한 단어로 시작화는 디렉토리 명 모두 조회 가능하다. 아래는 tab 두번을 눌렀을 때 실행 예시이다.

0개의 댓글