如果你覺得內容對你有幫助的話,不如給個點贊+收藏,鼓勵一下更新😂,
友情提示: 本文很多命令只舉例子,不做詳細介紹,具體請自行查詢資料做筆記🐱?👓
關機:init 0 、 shutdown -h now
重啟:reboot
檔案
在Linux中一切皆檔案
常見目錄介紹
- / 根目錄
- /root root用戶的家目錄
- /home/username 普通用戶的家目錄
- /etc 組態檔目錄
- /bin 命令目錄
- /sbin 管理命令目錄
- /usr/bin /usr/sbin系統預裝的其他命令
絕對路徑
目標檔案的絕對路徑(Absolute path),也叫作完全路徑(full path),是從/開始,接下來每一層都是一級子目錄,直到定位到目標檔案為止,
檔案種類
Linux目錄下的七種檔案:
普通檔案、目錄檔案、可執行檔案、管道檔案、Socket檔案、軟鏈接檔案、硬鏈接檔案,
檔案權限中的第一個字符代表的是檔案型別
- 普通檔案的第一個字符為“-”
- 目錄檔案的第一個字符為“d”
- 字符設備檔案的第一個字符為“c”
- 塊設備檔案的第一個字符為“b”
- 符號鏈接檔案的第一個字符為“s”
- 管道檔案的第一個字符為“p”
- 命名管道 “f”
檔案相關命令
查看
- pwd 查看作業目錄,
- cd 切換作業目錄,支持絕對路徑和相對路徑(. or …)
-
- 回退
-
- which 指令查找一個執行檔案所在的路徑,
- ls 顯示檔案資訊
- 用空格隔開,可以同時顯示多個目錄
- cat 查看檔案,適合小型檔案,
- more,less 查看一個檔案但是只讀取用戶看到的內容到記憶體,因此消耗資源較少,適合在服務器上看日志,less比more更方便,支持前后瀏覽,
- head、tail 可以用來看檔案的頭和尾,
- -f 檔案內容更新后,顯示資訊同步更新
- grep、egrep 指令搜索檔案內容,
- find 指令全域查找檔案,
- wc 統計檔案內容
- type 用來顯示指定命令的型別,判斷給出的指令是內部指令還是外部指令
操作
- rm 洗掉檔案,
- touch 修改一個檔案的時間戳,如果檔案不存在會觸發創建檔案,
- vi 和 nano 可以用來編輯檔案,
- mkdir 創建目錄,rmdir創建空目錄
- tar 打包/解包
- -c 是表示產生新的包;
- -f 指定包的檔案名;
- -v 顯示執行程序;
- -z 以zip壓縮;案例:**
tar -zcvf log.tar.gz *.log** - -x 解包
在選項
f之后的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識, 如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作為tar包名,
man命令和指令的help引數的區別
man比較詳細,會把全部的選項與使用方法等詳細資訊都展現出來,而help是選項幫助命令,顧名思義你可以把單獨某個命令的某個選項列出來,方便快捷很多,省去了man當中查找的繁瑣,但是help只支持shell的內部命令,內部命令即存盤在shell內部可以直接呼叫的一些簡單命令,比如說ls,pwd等
管道命令
> 符號叫作覆寫重定向,>> 叫作追加重定向,> 每次都會把目標檔案覆寫,>> 會在目標檔案中追加,
管道(Pipeline)的作用是在命令和命令之間,傳遞資料,比如說一個命令的結果,就可以作為另一個命令的輸入,我們了解了行程,所以這里說的命令就是行程,更準確地說,管道在行程間傳遞資料,
管道和重定向很像,但是管道是一個連接一個進行計算,重定向是將一個檔案的內容定向到另一個檔案,這二者經常會結合使用,
中間結果
管道一個接著一個,是一個計算邏輯,有時候我們想要把中間的結果保存下來,這就需要用到tee指令,tee指令從標準輸入流中讀取資料到標準輸出流,
舉個栗子:env | tee xxx | grep “匹配的字符”
網路命令
網路管理命令
網路狀態查看命令
- ifconfig 配置和顯示Linux系統網卡的網路引數
- ip addr 顯示網卡ip資訊
- ip route 顯示系統路由
- service network status 查看當前活躍網卡
查看網關: route 加 -n 不決議主機名
網路故障排除命令
測驗網路暢通: ping,想知道本機到某個網站的網路延遲,就可以使用ping指令,
查詢域名決議: nslookup + 域名
查看埠占用
netstat -ntlp | grep 埠- -n是將一些特殊的埠號用數字顯示;
- -t是指看 TCP 協議;
- -l是只顯示連接中的連接;
- -p是顯示行程名稱;
ss -ntlp它可以顯示和netstat類似的內容,但ss的優勢在于它能夠顯示更多更詳細的有關TCP和連接狀態的資訊,而且比netstat更快速更高效,
埠登錄: telnet 命令的格式為 telnet+空格+IP地址/主機名稱 埠號
網路組態檔
- ifcfg-eth0 網卡組態檔
- /etc/hosts 配置主機名
查看主機名: hostname
修改主機名: hostnamectl set-hostname xxx
host: 查看dns決議后的ip地址;
wget: 下載命令;
ssh: 遠程登錄的指令;
scp: 遠程拷貝檔案的指令;
用戶和權限管理指令
用戶和組
為了方便分配每個用戶的權限,Linux 還支持組 (Group)賬戶,組賬戶是多個賬戶的集合,組可以為成員們分配某一類權限,每個用戶可以在多個組,這樣就可以利用組給用戶快速分配權限,同時Root 賬戶也叫作超級管理員,
-rw-------. 1 root root 1337 9月 3 15:59 anaconda-ks.cfg
型別 權限 所屬用戶 所屬組
Linux 還對檔案進行了權限抽象,Linux 中一個檔案可以設定下面 3 種權限:
- 讀權限(r = 4):控制讀取檔案,
- 寫權限(w = 2):控制寫入檔案,
- 執行權限(x = 1):控制將檔案執行,比如腳本、應用程式等,**
然后每個檔案又可以從 3 個維度去配置上述的 3 種權限:
- 用戶維度,每個檔案可以所屬 1 個用戶,用戶維度配置的 rwx 在用戶維度生效;
- 組維度,每個檔案可以所屬 1 個分組,組維度配置的 rwx 在組維度生效;
- 全部用戶維度,設定對所有用戶的權限,
因此 Linux 中檔案的權限可以用 9 個字符,3 組rwx描述:第一組是用戶權限,第二組是組權限,第三組是所有用戶的權限,然后用-代表沒有權限,比如rwxrwxrwx代表所有維度可以讀寫執行,rw–wxr-x代表用戶維度不可以執行,組維度不可以讀取,所有用戶維度不可以寫入,
檔案被創建后的權限通常是: rw-rw-r–,也就是用戶、組維度不可以執行,所有用戶可讀,
用戶組態檔: /etc/passwd
目錄權限: x(進入目錄)、rx(顯示目錄中的檔案名)、wx(修改目錄中的檔案名)
用戶命令
創建用戶: useradd 用戶名
- -g 組名,創建用戶的時候指定用戶組
洗掉用戶: userdel 用戶名
- -r 洗掉用戶家目錄
修改密碼: passwd 用戶名
創建組: groupadd 組名
用戶切換: su
用來以其他身份來執行命令: sudo,預設的身份為root
修改檔案權限
可以用chmod修改檔案權限,chmod( change file mode bits),設定權限也是rwx,只不過在 Linux 中是用三個連在一起的二進制位來表示,
u # 操作物件簡稱,用戶user,檔案或目錄的所有者,
g # 操作物件簡稱,同組用戶group,檔案或目錄所屬群組
o # 操作物件簡稱,其它用戶others
a # 操作物件簡稱,所有用戶all,系統默認使用此項
# 設定foo可以執行
chmod +x ./foo
# 不允許foo執行
chmod -x ./foo
# 也可以同時設定多個權限
chmod +rwx ./foo
# 設定rwxrwxrwx (111111111 -> 777)
chmod 777 ./foo
# 為檔案f01設定自己可以執行,組員可以寫入,其他用戶只能讀的權限
chmod u=rwx,g=rw,o=r f01
因為rwx在 Linux 中用相鄰的 3 個位來表示,比如說111代表rwx,101代表r-x,而rwx總共有三組,分別是用戶權限、組權限和全部用戶權限,也就是可以用111111111的9 個 1 代表rwxrwxrwx,又因為11110 進制是 7,因此當需要一次性設定用戶權限、組權限和所有用戶權限的時候,我們經常用數字表示,
修改檔案屬主、屬組
有時候我們需要修改檔案所屬用戶和所屬組,這個時候會使用chown指令,
chown bar ./foo
修改foo檔案所屬的用戶為bar
chown :group1 ./foo
修改foo檔案所屬的組為group1
chown bar:group1 ./foo
同時修改
擴展:如果一個目錄是只讀權限,那么這個目錄下面的檔案還可寫嗎?
答:可以寫,因為linux中目錄也是檔案,目錄檔案中存放的只是目錄下檔案的清單,并不包括內容,但是想要創建新檔案就會出現報錯,因為創建新檔案也需要改目錄檔案,
Vim
四種模式:正常模式、插入模式、命令模式、可視模式
進入可視模式的方式
- v 字符可視模式
- V 行可視模式
- ctrl+v 塊可視模式
全域設定檔案:/etc/vimrc
基本操作
插入:
i(當前位置),I(頭),a(后一個位置),A(尾),o(下一行),O(上一行)
移動:
h(左移)j(上)k(下)l(右移)
復制/剪切/粘貼:
- yy 復制一行、dd 剪切一行、3yy 復制三行
- y$ 復制當前位置到結尾
- p 粘貼
撤銷: u
行號: 顯示行號 :set nu 和 關閉行號 :set nonu
保存/退出: :w 和 :w!、:q 和 :q!
執行外部命令: :!
跳轉
跳轉指定行: 行號 + shift + g
跳到第一行: gg
最后一行 : shift + g
查找/替換
- / + 查找的內容,內容會被高亮
:noh關閉高亮
- n 移動到下一個匹配的內容,shift + n 移動到上一個匹配的內容
- s 和 %s,前者只替換游標所在行,后者全文替換
- 案例:
:%s/x/X,將全文中的x替換成X - 在s追加3,5,表示3-5行之間
- 案例:
軟體安裝
Centos、RedHast使用yum包管理器,安裝包格式為rmp
Debian、Ubuntu使用apt包管理器,安裝包格式為deb
yum命令常用選項
- install 安裝軟體包
- remove 卸載軟體包
- list | grouplist 查看軟體包
- update 升級軟體包
- yum makecache 重建快取
系統管理
- ps 查看行程
- ps -ef | hrep xxx 查看某些行程的PID
- top 查看系統CPU負載,行程等,我們也可以
sudo apt install htop查看的更加清晰一點- -p 指定行程
- 當在前臺運行某個作業時,終端被該作業占據;可以在命令后面加上& 實作后臺運行 command &,
- 但此時如果這個行程有輸出,還是會顯示出來,所以可以考慮把標準輸出重定向到某個檔案去,如:command >output &
- jobs 顯示所有作業
- history n: 用于顯示歷史命令,n表示顯示最近的多少條
- 關機: init 0 、 shutdown -h now
- 重啟: reboot
行程間通信
- kill -l 列出所有信號名稱
- kill -2 和 ctrl + c等同
- kill -9 立即結束,強制結束
服務管理工具
- service
- centos6及其以前版本使用的是service
- systemctl start | stop | restart | reload | enable | disable 服務名
- systemctl 命令強化了 service,并兼容它
記憶體使用率查看
- free
- -h 適合人類閱讀的形式
系統綜合狀態查看
- top
- sar 命令
- 查看CPU:
sar -u 1 10 - 查看記憶體:
sar -r 1 10 - 查看磁盤:
sar -b 1 10 - 查看行程:
sar -q 1 10
- 查看CPU:
平均負載
uptime 查看Linux系統負載資訊

從上圖中我們可以看到過去 1 分鐘、5 分鐘、15 分鐘的平均負載(Load Average),
平均負載是指單位時間內,系統處于可運行狀態和不可中斷狀態的平均行程數,也就是平均活躍行程數,所以,它不僅包括了正在使用 CPU 的行程,還包括等待 CPU 和等待 I/O 的行程,
最后別忘了點贊哦!!!🐱?👓
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262128.html
標籤:其他
上一篇:Merging Pose Estimates Across Space and Time論文決議
下一篇:第一次攢機記錄
