컬쥐네 다락방

리눅스 시스템 명령어 본문

클라우드/리눅스

리눅스 시스템 명령어

코딩하는 갱얼쥐 2022. 2. 16. 22:47

시스템 명령어

시스템 정보 관련 명령어

uptime

uptime은 다음 정보를 한 줄로 표시한다.

현재 시간, 시스템이 실행된 시간, 현재 로그온한 사용자 수, 지난 1분, 5분, 15분 동안의 시스템 로드 평균 (CPU 평균값)

[root@localhost ~]# uptime
 21:30:22 up  7:56,  5 users,  load average: 0.00, 0.00, 0.00

free

리눅스 시스템에서 메모리의 전체적인 현황을 빠르게 살펴볼 수 있는 명령어.

전체 메모리의 크기, 사용중인 메모리 크기, 공유 메모리와 buffer, cache 메모리, swap의 크기를 알 수 있다.

사용 가능한 메모리가 없으면 모든 프로세스가 공간 확보를 못해서 시스템 응답 불가 현상 또는 성능 저하가 올 수 있기에 메모리 모니터링은 매우 중요하다.

[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1831820     1093696      267200        6092      470924      573688
Swap:       2097148      395264     1701884

top

시스템의 상태를 빠르게 살펴보는 명령어.

옵션 없이 입력하면 interval 간격으로 (기본 3초) 화면을 갱신하며 보여준다.

실행 전 옵션

-b  : 순간의 정보보여준다

-n : 실행 주기를 설정

실행 후 명령어

shift + p : CPU 사용률 내림차순

shift + m : 메모리 사용률 내림차순

shift + t : 프로세스가 돌아가고 있는 시간순

k : kill. k 입력 후 PID 번호 작성

a : 메모리 사용량에 따라 정렬

 

[root@localhost ~]# top
top - 22:01:06 up  8:27,  5 users,  load average: 0.01, 0.02, 0.00
Tasks: 271 total,   2 running, 269 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1788.9 total,    259.6 free,   1068.8 used,    460.5 buff/cache
MiB Swap:   2048.0 total,   1662.0 free,    386.0 used.    559.4 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    779 root      20   0  368368   9812   8480 S   0.3   0.5   0:39.81 vmtoolsd
  11577 root      20   0   63980   5164   4284 R   0.3   0.3   0:00.05 top
      1 root      20   0  245696   9644   6400 S   0.0   0.5   0:05.33 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.61 ksoftirqd/0
     11 root      20   0       0      0      0 R   0.0   0.0   0:01.45 rcu_sched
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0
     13 root      rt   0       0      0      0 S   0.0   0.0   0:00.02 watchdog/0
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     16 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs
     17 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kauditd
     19 root      20   0       0      0      0 S   0.0   0.0   0:00.04 khungtaskd

w, who

로그인한 사용자 정보 확인 명령어

[root@localhost ~]# w
 21:36:08 up  8:02,  5 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty2     tty2             07:16   14:20m  3:19   0.67s /usr/libexec/tracker-miner-fs
user     tty3     -                07:28   14:04m  0.05s  0.05s -bash
root     tty4     -                07:28   14:03m  0.04s  0.04s -bash
root     tty6     -                07:33   14:03m  0.05s  0.05s -bash
root     pts/1    192.168.209.1    19:13    0.00s  0.34s  0.03s w

[root@localhost ~]# who
root     tty2         2022-02-14 07:16 (tty2)
user     tty3         2022-02-14 07:28
root     tty4         2022-02-14 07:28
root     tty6         2022-02-14 07:33
root     pts/1        2022-02-14 19:13 (192.168.209.1)

디렉토리 구성

/boot  booting 관련 디렉토리 booting 이미지가 로드된다.
/etc  시스템 환경 설정 디렉토리
/usr  시스템 구성 및 응용프로램이 설치되는 디렉토리
/tmp  임시저장 디렉토리 - 응용프로그램에 대한 (프로세스에 대한)
/var   임시저장 디렉토리 - 시스템 운영시 발생하는 정보를 저장
         ex) log 
/home  사용자 홈디렉티가 저장되는 디렉토리
/usr/bin  시스템의 명령어가 설치된 디렉토리 

 

pstree 

tree 형태로 구성을 보여준다

[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─agetty
        ├─alsactl
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─chronyd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cupsd
        ├─dbus-daemon───{dbus-daemon}
        ├─dnsmasq───dnsmasq
        ├─firewalld───{firewalld}
        ├─gdm─┬─gdm-session-wor─┬─gdm-wayland-ses─┬─gnome-session-b─┬─gnome-shell─┬─Xwayland
        │     │                 │                 │                 │             ├─ibus-daemon─┬─ibus-dconf───3*[{ibus-dcon+
        │     │                 │                 │                 │             │             ├─ibus-engine-sim───2*[{ibus+
        │     │                 │                 │                 │             │             └─2*[{ibus-daemon}]
        │     │                 │                 │                 │             └─5*[{gnome-shell}]

df

디스크 용량 사이즈를 보여준다

[root@localhost ~]# df -hTP   (h Size 정보를 m G 단위로 변환해서 보여줌, T type 파일 시스템 정보를 알려줌 P --portability
			       화면에 출력시 끊겨서 출력되는 것을 방지)
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  866M     0  866M   0% /dev
tmpfs          tmpfs     895M     0  895M   0% /dev/shm
tmpfs          tmpfs     895M  9.7M  885M   2% /run
tmpfs          tmpfs     895M     0  895M   0% /sys/fs/cgroup
/dev/nvme0n1p3 xfs        48G  4.6G   43G  10% /
/dev/nvme0n1p1 xfs       507M  225M  282M  45% /boot
tmpfs          tmpfs     179M  1.2M  178M   1% /run/user/42
tmpfs          tmpfs     179M  4.6M  175M   3% /run/user/0
tmpfs          tmpfs     179M  4.0K  179M   1% /run/user/1000

du

디렉토리와 모든 하위 디렉토리의 용량을 표시해주는 명령어

옵션

-s : 선택한 디렉토리만의 용량을 알려준다.

-sh : h를 붙이면 용량이 읽기 편한 단위로 나오게 할 수 있다.

-a : 디렉토리에 속한 파일의 용량도 같이 출력한다.

[root@localhost ~]# du -sh /*  2> /dev/null
0       /bin
196M    /boot
0       /dev
29M     /etc
11M     /home
0       /lib
0       /lib64
0       /media
0       /mnt
0       /opt
0       /proc
105M    /root
9.8M    /run
0       /sbin
0       /srv
0       /sys
32K     /tmp
3.9G    /usr
174M    /var

stat

디렉터리나 파일의 상세 정보를 표시하는 명령어.

ls 명령어로 표시되지 않는 정보를 보고 싶을때 사용한다.

옵션

-L : 심벌릭 링크를 역참조하여 정보를 출력

-f : 해당 파일이 저장된 파일 시스템의 정보를 출력

-c : 사용자 정의 형식으로 정보를 출력 -> format sequence를 붙여서 활용한다.

-t : 디렉터리나 파일 정보를 요약하여 출력

[root@localhost ~]# ls -li aaa
68430434 -rw-r--r--. 2 root root 2658  2월 15 00:42 aaa
[root@localhost ~]#
[root@localhost ~]# stat aaa
  File: aaa
  Size: 2658            Blocks: 8          IO Block: 4096   일반 파일
Device: 10303h/66307d   Inode: 68430434    Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-02-14 12:19:57.449069907 -0500
Modify: 2022-02-15 00:42:47.846396585 -0500
Change: 2022-02-15 00:42:51.407396472 -0500
 Birth: -
[root@localhost ~]# stat -f aaa
  File: "aaa"
    ID: 1030300000000 Namelen: 255     Type: xfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 12445505   Free: 11240169   Available: 11240169
Inodes: Total: 24903168   Free: 24781096
[root@localhost ~]# ls -l ccc
lrwxrwxrwx. 1 root root 3  2월 14 20:09 ccc -> aaa
[root@localhost ~]# stat ccc
  File: ccc -> aaa
  Size: 3               Blocks: 0          IO Block: 4096   심볼릭 링크
Device: 10303h/66307d   Inode: 67934266    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-02-14 20:09:32.806916337 -0500
Modify: 2022-02-14 20:09:32.805916338 -0500
Change: 2022-02-14 20:09:32.805916338 -0500
 Birth: -
[root@localhost ~]# stat -L ccc
  File: ccc
  Size: 2658            Blocks: 8          IO Block: 4096   일반 파일
Device: 10303h/66307d   Inode: 68430434    Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-02-14 12:19:57.449069907 -0500
Modify: 2022-02-15 00:42:47.846396585 -0500
Change: 2022-02-15 00:42:51.407396472 -0500
 Birth: -

 

Format Sequence : -c 옵션을 이용해 사용자 정의를 할 때 필요한 포맷

[root@localhost ~]# stat -c %i aaa
68430434
[root@localhost ~]# ls -li aaa | cut -d " " -f 1
68430434

[root@localhost ~]# stat -c %h *
2
1
2
1
1
2
1
5
2
[root@localhost ~]# stat -c %A aaa -rw-r--r--

 

%a : 8진수로 된 파일 권한

%d : 10진수로 된 장치 번호

%f : 16진수로 된 파일 유형

%g : 소유자의 그룹 ID

%G : 소유자의 그룹 이름

%h : 하드 링크 개수

%i : inode 번호

%n : 파일 이름 

 

find 

형식 : find [option] [path] [expression]

파일 및 디렉토리를 검색할 때 사용하는 명령어

find 명령어는 다른 명령어와 달리 옵션을 거의 사용하지 않고 표현식을 통해 찾을 대상을 정한다.

표현식의 중첩으로 대상 범위를 줄일 수 있다.

 

 Option (옵션)

-P : 심볼릭 링크를 따라가지 않고 심볼릭 링크 자체 정보 사용

-L : 심볼릭 링크에 연결된 파일 정보 사용

-H : 심볼릭 링크를 따라가지 않으나 Command Line Argument를 처리할 땐 예외

-D : 디버그 메세지 출력

 

 Expression (표현식)

-name : 지정된 문자열 패턴에 해당하는 파일 검색 (대소문자를 구분하지 않으려면 iname 사용)

-type : 지정된 파일 타입 검색

-inum : inode 넘버로 파일 검색

-samefile : 같은 파일 검색

-perm : 퍼미션으로 검색

-size : 파일 크기를 이용해 검색 (-n : n 이하 +n : n이상 크기)

-empty : 빈 디렉토리 혹은 크기가 0인 파일 검색

-delete : 검색된 파일 또는 디렉토리 삭제

-exec : 검색된 파일에 대해 지정된 명령을 실행하고 싶을 때 명령 앞에 붙여준다.

-path : 지정된 문자열 패턴에 해당하는 경로에서 검색

-print : 검색 결과를 출력 검색 항목은 newline으로 구분한다

-print0 : 검새 결과를 출력. 검색 항복은 null로 구분

-atime : n일 이내에 엑세스된 파일을 검색

-ctime : n일 이내에 만들어진 파일을 검색

-mtime : n일 이내에 수정된 파일을 검색

-mmin : n분 이내에 수정된 파일을 검색 (+mmin으로 사용할 시 n분보다 오래된 파일 검색)

-cnewer file : 해당 팡리보다 최근에 수정된 파일 검색

-user : 사용자명을 이용해 검색

 

-다양한 예시

[root@localhost ~]# ls -l aaa
-rw-r--r--. 2 root root 2658  2월 15 00:42 aaa   <---user rw-  group r--  other r--   = 6 4 4
[root@localhost ~]#     
[root@localhost ~]# chmod 777 aaa   <-- chmod는 뒤에 배우게 됨  권한을 변경하는 명령어 
[root@localhost ~]# ls -l aaa
-rwxrwxrwx. 2 root root 2658  2월 15 00:42 aaa
[root@localhost ~]# find . -type f -perm 777 -ls
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./aaa
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./bbb
[root@localhost ~]# find . -type f -perm -001  -ls
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./aaa
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./bbb


[root@localhost ~]# find . -type f  -perm -020 -ls
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./aaa
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./bbb
[root@localhost ~]# find . -type f ! -perm -020 -ls
		
			-perm  /u /g /o /a    r w x s t 
[root@localhost ~]# find . -type f -perm  /g=w -ls
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./aaa
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./bbb

[root@localhost ~]# find . -type f  -perm /o=x -ls
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./aaa
 68430434      4 -rwxrwxrwx   2  root     root         2658  2월 15 00:42 ./bbb
[root@localhost ~]# find . -type f  -perm /o=x
./aaa
./bbb
[root@localhost ~]# find . -type f  -perm /o=x -exec chmod 644 {} \;
[root@localhost ~]# find . -type f  -perm /o=x -ls
[root@localhost ~]# ls -l aaa bbb
-rw-r--r--. 2 root root 2658  2월 15 00:42 aaa
-rw-r--r--. 2 root root 2658  2월 15 00:42 bbb
	
	mtime atime ctime  mmin amin cmin
[root@localhost ~]# find /root -type f  -mtime -1
/root/anaconda-ks.cfg
/root/.cache/dconf/user
/root/.cache/gnome-shell/update-check-3.32
/root/.cache/tracker/db-version.txt

[root@localhost ~]# find /root -type f -mmin -60
/root/.cache/tracker/meta.db
/root/.cache/tracker/meta.db-wal
/root/.cache/tracker/meta.db-shm
/root/.local/share/gvfs-metadata/root
/root/.local/share/gvfs-metadata/root-2e7b231c.log
/root/.local/share/tracker/data/tracker-store.journal
[root@localhost ~]# find /root -type f -mmin -120
/root/.cache/tracker/meta.db
/root/.cache/tracker/meta.db-wal
/root/.cache/tracker/meta.db-shm
/root/.local/share/gvfs-metadata/root
/root/.local/share/gvfs-metadata/root-2e7b231c.log
/root/.local/share/tracker/data/tracker-store.journal
/root/aaa
/root/bbb

   -size +50M  -size -100M  
[root@localhost ~]# find . -type f -size +50  -size -100  -print
./.cache/tracker/meta.db-shm
./.cache/mozilla/firefox/pxtt36so.default-default/cache2/entries/96A3A367708E3D055E8AAFD2CC426BD24476E19E
./.cache/mozilla/firefox/pxtt36so.default-default/cache2/entries/E34CCF2F421FB2762468857BBB9C7CF2AC2FBB09
./.config/pulse/40adb6651b7a4ddd8acccc50129a93f5-card-database.tdb
./.local/share/gvfs-metadata/home-21f9616f.log
./.local/share/gvfs-metadata/root-2e7b231c.log
./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/3561288849sdhlie.sqlite
./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/1451318868ntouromlalnodry--epcr.sqlite
./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/1657114595AmcateirvtiSty.sqlite
./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/2823318777ntouromlalnodry--naod.sqlite
./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/2918063365piupsah.sqlite
./.mozilla/firefox/pxtt36so.default-default/storage/default/moz-extension+++ef336ded-5287-4179-916a-14906948498f^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite
./.mozilla/firefox/pxtt36so.default-default/addonStartup.json.lz4
./.mozilla/firefox/pxtt36so.default-default/saved-telemetry-pings/62685a98-a8be-4f90-8186-2af362a4e162
[root@localhost ~]# find . -type f -size +50  -size -100  -ls
 67934756     32 -rw-r--r--   1  root     root        32768  2월 15 01:54 ./.cache/tracker/meta.db-shm
102164573     32 -rw-------   1  root     root        31180  2월 14 09:11 ./.cache/mozilla/firefox/pxtt36so.default-default/cache2/entries/96A3A367708E3D055E8AAFD2CC426BD24476E19E
102164586     48 -rw-------   1  root     root        47868  2월 14 09:11 ./.cache/mozilla/firefox/pxtt36so.default-default/cache2/entries/E34CCF2F421FB2762468857BBB9C7CF2AC2FBB09
  2433213     28 -rw-------   1  root     root        28672  2월 14 07:16 ./.config/pulse/40adb6651b7a4ddd8acccc50129a93f5-card-database.tdb
102164555     32 -rw-r--r--   1  root     root        32768  2월 14 07:17 ./.local/share/gvfs-metadata/home-21f9616f.log
103231839     32 -rw-r--r--   1  root     root        32768  2월 15 01:55 ./.local/share/gvfs-metadata/root-2e7b231c.log
 68430428     48 -rw-r--r--   1  root     root        49152  2월 14 07:37 ./.mozilla/firefox/pxtt36so.default-default/storage/permanent/chrome/idb/3561288849sdhlie.sqlite



[root@localhost ~]# find /etc -type f -exec ls -s {} \; | sort -n -r | head -5
9124 /etc/udev/hwdb.bin
8652 /etc/selinux/targeted/policy/policy.31
700 /etc/brltty/Contraction/zh-tw.ctb
680 /etc/services
564 /etc/ssh/moduli
[root@localhost ~]#

[root@localhost ~]# find /etc -type f -exec ls -s {} \; | sort -n | head -5
0 /etc/.pwd.lock
0 /etc/cron.deny
0 /etc/crypttab
0 /etc/cups/classes.conf
0 /etc/cups/client.conf

[root@localhost ~]# find /etc -type f  -exec grep -l umask  {} \;
/etc/X11/xinit/Xsession
/etc/lvm/lvm.conf
/etc/bashrc
/etc/login.defs
/etc/csh.cshrc
/etc/profile
/etc/rc.d/init.d/functions
/etc/authselect/postlogin
/etc/udisks2/mount_options.conf.example

[root@localhost ~]# rm -f aaa bbb
[root@localhost ~]# cp /etc/passwd aaa
[root@localhost ~]# ln aaa bbb
[root@localhost ~]# ls -il aaa bbb
68430434 -rw-r--r--. 2 root root 2658  2월 15 02:25 aaa
68430434 -rw-r--r--. 2 root root 2658  2월 15 02:25 bbb
[root@localhost ~]# find / -inum 68430434 -exec cp {} /tmp \;
[root@localhost ~]# ls /tmp
aaa
bbb
......

'클라우드 > 리눅스' 카테고리의 다른 글

작업 예약 - cron  (0) 2022.02.24
vi 에디터 명령어  (0) 2022.02.21
파일 입출력 명령어  (0) 2022.02.18
리눅스 기본 명령어  (0) 2022.02.15
vi 편집기 명령어 간단 정리  (0) 2021.10.26
Comments