LIUNX目錄結構和常用命令
文章都是基於centOS
linux中,一切皆是文件,包括進程,磁盤等等…
1.1 Linux的系統目錄結構
- bin: 全稱binary, 含義是二進制。所以顧名思義放的都是二進制文件,文件都是可以被運行的
- dev: 主要存放的是外接設備,例如u盤,光盤。在其中的外接設備是不能直接使用的,需要掛載(類似windows下的分配盤符, windows會新建了一個盤符)
- etc: 主要存儲一些配置文件,比如數據庫的配置文件
- Home: 表示除了root用戶以外的其它用戶的家目錄,類似於windows的/User用戶目錄
- Proc: process,該目錄中存儲的是Linux運行時候的進程
- Root:root用戶自己的家目錄
- sbin:Super binary, 該目錄也是存儲一些可以被執行的二進制文件,但是必須有root權限的才能執行
- tmp: temporary, 系統運行時產生的臨時文件
- usr: 存放的是用戶自己安裝的軟件。
- var:存放的程序/系統的日誌文件的目錄
- mnt:當外接設備需要掛載的時候,就需要掛載到mnt目錄下
1.2 Linux指令和選項
在Linux終端(命令行)中輸入的內容就稱之爲指令
。
一個完整的指令的標準格式: Linux通用的格式
一個指令可以包含多個選項和操作對象
#指令主體 [選項] 操作對象
1.3 Linux基礎指令
- ls: list 列出當前工作目錄下所有文件/文件夾名稱
-l: 表示以
詳細
列表的形式進行展示
drwxr-xr-x 2 root root 4096 May 11 2019 media // drwxr-xr-x第一個字母'd'表示文件類型是一個文件夾directory
-rwxr-xr-x 2 root root 4096 May 11 2019 log // -rwxr-xr-x第一個'-'表示文件類型是一個文件
-a: 顯示所有,包括隱藏的文件/文件夾, 隱藏文檔一般都是以’.'開頭
ls --help 可以查看更多
#ls ../../root // 列出上上級目錄下的root下面的文件名稱
關於路徑可以分爲相對路徑和絕對路徑 相對路徑:首先得有一個參照物,一般就是當前的工作路徑 絕對路徑:不需要參照物,直接從根目錄"/"開始尋找對應路徑
- pwd: print working directory沒有參數, 打印當前目錄
- cd: change directory, 切換工作目錄
cd ~: 切換到當前用戶的家目錄
- mkdir: make directory,創建目錄,可以是文件夾名稱,也可以是名稱的一個完整路徑
- mv: move, 剪切,
重命名
- cp: copy, 複製
- rm: remove, 如果不帶選項,會出現是否需要刪除提示
-f: force, 強制刪除,不會提示是否刪除
-r: recursion, 遞歸刪除, 刪除文件夾下面的所有文件/文件夾, 一般需要加-f, 如rm -rf /directory
rm -rf a b 批量刪除多個
rm -f depu* 批量以depu開頭的, 通配符
- vim:文本編輯器
- 輸入重定向,一般命令的輸出都會顯示在終端中,有些時候需要將一些命令的執行結果想要保存到文件中進行後續的分析/統計,則這個時候需要用到重定向技術
“>”:覆蓋輸出, 覆蓋掉原先的內容, 文件不存在則自動新建 ls -la > ls.txt
“>>”: 追加,追加到文件內容的末尾, 文件不存在則自動新建 ls -la >> ls.txt
- cat: 直接打開一個文件,可以對文件進行合併,把多個文件合併成一個文件
cat 待合併的文件路徑1 待合併的文件路徑2 … > 合併之後的文件路徑
1.4 Linux進階指令
- df: disk free 查看磁盤空間
[root@ad1b28c6a518 /]# df -h
#Filesystem(磁盤分區), Mounted on是磁盤的掛點路徑,如果想訪問overlay,就進入到/,如果訪問tmpfs就去/dev
Filesystem Size Used Avail Use% Mounted on
overlay 19G 8.7G 9.1G 49% /
tmpfs 64M 0 64M 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
- free 查看內容使用情況
Swap代表當內存不夠用的時候使用磁盤空間來充當內存
[root@ad1b28c6a518 /]# free -h
total used free shared buff/cache available
Mem: 3.8Gi 861Mi 1.8Gi 8.0Mi 1.2Gi 2.7Gi
Swap: 974Mi 0B 974Mi
- head 查看一個文件的前n行,如果不指定,默認顯示前10行
head -5 /log.log: 查看前5行
- tail 查看一個文件的末n行,如果不指定,默認顯示後10行
tail -f /log.log: 查看一個文件的動態變化,用來查看日誌很方便
- less 查看文件,以較少的內容進行輸入,按輔助功能鍵來查看更多
less /log.log: (數字+回車, 空格鍵+上下方向鍵可以查看更多)
- wc 統計文件內容信息(包括行數,單詞數,字節數)
-l: lines
-w: word
-c: bytes
date(重點),表示操作時間(讀取,設置)
, 涉及到shell腳本
date “+%F %T”: 2020-04-06 01:04:14, %F表示完整的年月日, %T表示完整的時分秒, %Y表示四位年份
date -d “-1 day” “+%F %T” : 往前推一天
date -d “-1 year” “+%F %T” : 往前推一年
%m: 表示兩位年份(帶前導0)
%d: 表示兩位日期(帶前導0)
%H: 表示兩位小時(帶前導0)
%M: 表示兩位分鐘(帶前導0)
%S: 表示兩位秒數(帶前導0)
- cal 輸出房前月份的日曆
[root@ad1b28c6a518 /]# cal
April 2020
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
- clear/Ctrl+L 清除終端中已經存在的命令和結果(把之前的信息隱藏到了上面,可以通過滾動條查看)
- 管道符, “|”, 用於過濾, 特殊,擴展處理, 不能單獨使用,其作用主要是輔助
ls /|grep y: 列出/目錄下包含y字母的文件夾/文件, grep主要用來過濾
cat /log.log|less: 只是瞭解一下特殊用法,等於於less /log.log
ls /|wc -l: 統計文檔總數量
1.5 Linux高級指令
- hostname: 顯示操作服務器的主機名(讀取, 設置)
-f: 輸出當前主機的FQDN(Fully Qualified Domain Name全限定域名)
- id: 查看一個用戶的一些基本信息(包括用戶id, 用戶組id, 附加組id…), 如果不指定用戶顯示當前用戶基本信息
驗證用戶信息, /etc/passwd
驗證組信息, /etc/group
whoami:顯示當前用戶名, 一般用於shell腳本
- ps -ef: 主要是查看服務器的進程信息, -e 等價於"-A", 表示列出全部的進程, -f顯示全部的列(顯示全字段)
UID:用戶id,
PID:進程ID,
PPID:parent PID,`如果一個進程的PPID找不到,那麼稱之爲殭屍進程,是可以kill的`,
C:cpu佔用率,
STIME:該進程的啓動時間,
TTY:終端設備, 如果顯示一個"?",表示不是由終端發起的
CMD:進程名稱或者對應的路徑
[root@ad1b28c6a518 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 00:28 pts/0 00:00:00 /bin/bash
root 38 1 0 01:54 pts/0 00:00:00 ps -ef
ps -ef|grep docker: 搜索docker的進程,搜索結果至少是一個,如果只有1個,表示除了剛纔搜索的這個進程,沒有找到對應的進程
- top: 查看服務器的進程佔的資源, 實時動態的形式, q鍵退出
depu@ubuntu:~$ top
top: 當前時間
up: 系統運行時間
1 user: 一個用戶
load average: 運行時的負載情況,第一個0.04表示5分鐘內的負載情況,0.01表示10分鐘內的負載情況,0.00表示15分鐘內的負載情況
tasks: 任務數
1 running:一個運行的
168 sleeping: 168個休眠的
0 stopped:
0 zombie:
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st : cpu使用情況
PR: priority 進程優先級
NI: 用戶進程空間內改變過優先級的進程佔用CPU百分比
VIRT:virtual memory usage,虛擬內存
RES: resident memory usage,常駐內存
SHR: shared memory,共享內存
S: state, 進程的狀態(S睡眠,R運行,I表示Idle空閒...)
COMMAND: 進程的名稱或者路徑
------------------------------------------------------------------------------------------------------
top - 10:07:45 up 1:40, 1 user, load average: 0.04, 0.01, 0.00
Tasks: 238 total, 1 running, 168 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4015932 total, 1933644 free, 765732 used, 1316556 buff/cache
KiB Swap: 998396 total, 998396 free, 0 used. 2876892 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2339 depu 20 0 195456 5456 5116 S 0.3 0.1 0:00.36 ibus-engi+
6199 depu 20 0 48968 3924 3220 R 0.3 0.1 0:00.12 top
1 root 20 0 185176 5848 4096 S 0.0 0.1 0:04.08 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0+
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu+
在運行stop的時候,按一下鍵可以按以下快捷鍵
M:按照內存佔用率從高到低排列
P:按照CPU使用率從高到低排列
1:查看每個CPU的使用信息
- du -sh: disk usage, 查看目錄的真實大小
-s: summaries: 只顯示彙總的大小
-h: 高可讀的方式顯示
- sudo find / -name daemon.json -type f: 搜索/目錄下面的daemon.json文件,不包含文件夾
-name: 按照文檔名稱進行搜索(支持模糊搜索), sudo find / -name *.json
-type: "-“表示文件,“d"表示文件,搜索的時候用"f"來代替”-”
sudo find / -name *.json | wc -l: 搜索/目錄下面的有多少個json文件
service: 重點, 控制一些軟件的服務的啓動,停止和重啓
service 服務名 start/stop/restart