linux命令入門指南
(個人學習所用,雷同之處請忽略)
關於linux
伺服器種類
- 物理伺服器
需要機房(零度、無塵、無靜電)--防止機器短路,資料丟失。(建造自己的機房或者進行託管)
自己的伺服器需要維護。 - 雲伺服器
由伺服器廠商提供(阿里雲、騰訊雲)--省錢、有人維護 - vmware虛擬化技術
透過cpu的虛擬化技術,建立虛擬機器伺服器。
安裝虛擬機器linux參考:https://www.cnblogs.com/pyyu/articles/9313587.html
linux的優勢
- 跨平臺的硬體支援
- 豐富的軟體支援
- 多使用者多工
- 可靠的安全性(檔案系統)
- 良好的穩定性
- 完善的網路功能
硬體---(有效控制)---作業系統-->應用程式
linux的發展情況
- Linux以高效和靈活主城,Linux同事具有多工、多使用者的能力,支援多執行緒,多CPU。
- Linux包括了文字編輯器,高階語言編譯器,以及圖形使用者介面登應用軟體,當然絕大多數伺服器都是使用命令列,文字模式操作Linux的。
- Linux遵循GNU通用公共許可協議,屬於自由軟體,使用者不需要支付費用就可以獲得系統和系統原始碼,無償使用且自由傳播。
- Linux具有很高的系統穩定性和可靠性。
- 具有很高的系統安全性
- 眾多業界廠商支援,如IBM、Oracle、Intel、HP、Google等
- 有完善的資料庫平臺,包括Oracle、DB/2、Sybase、MySQL、PostgreSQL等。
- 有完善的圖形化使用者介面,包括GNOME、KDE等。
- 有完善的開發平臺,包括C/C++、Java、Python等。
linux發行版
Linux實際上只是定義了一個作業系統的核心,這個核心由kernel.org維護。不同的企業和組織在基礎上開發了一系列的輔助軟體,打包釋出自己的“發行”版本。(這個發行版才叫作業系統)
- linux桌面程式 -- Ubuntu
- 伺服器端linux -- Redhat(企業、收費)、CentOS(社群版、免費)
- 中文 -- 麒麟linux
linux和window區別
Windows:普通使用者基本依靠圖形介面操作,滑鼠和鍵盤完成一切需求,上手簡單容易
Linux:兼具圖形介面(需要帶有桌面環境的發行版Linux)和完全命令列操作,無法使用滑鼠,新手入門困難,需要學習後方可使用,熟練後效率極高!
總結
-
作業系統是什麼
是人與計算機硬體溝通的介質 -
作業系統組成---雞蛋由幾部分組成
- 蛋黃-系統核心
- 蛋清-命令直譯器shell
- 蛋殼-應用程式
-
Linux是一套開放原始碼程式、且可以自由傳播的作業系統
-
掌握centos/redhat能更好的適應網際網路服務端開發環境
-
使用linux的好處是自由傳播,免費,不會犯法,任意切換圖形/命令終端,安全穩定,不用防毒軟體,不卡
linux檔案系統
1. window對硬碟分盤,存在多個主盤。而linux是從一個原點開始。
2. window是透過反斜槓(\)做分隔符,而linux是透過斜杆(/)作為分隔符
linux目錄結構
-
/bin:
bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。 -
/sbin:
s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。 -
/etc:
這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。 -
/lib:
這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。 -
/tmp:
這個目錄是用來存放一些臨時檔案的。 -
/opt:(第三方軟體存放目錄)
這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。 -
/var:
這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。 -
/sys:
這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。 -
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。 -
/usr:
這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。 -
/usr/bin:
系統使用者使用的應用程式。 -
/usr/sbin:
超級使用者使用的比較高階的管理程式和系統守護程式。 -
/media:
linux系統會自動識別一些裝置,例如隨身碟、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。
使用者目錄
/root:
該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。
/使用者名稱:
普通使用者檔案主目錄。
linux使用者系統
熟悉普通的命令
- ssh + 登入使用者 + @ip 進行ssh隧道連線
輸入密碼可以成功連線
直到看到上次登入時間和歡迎詞時登入成功。
在伺服器命令列當中:
掌握普通使用者登入後系統的提示符:$
掌握root使用者登入後系統的提示符:#
- 檢視終端情況
tty 檢視當前終端
who am i 僅顯示當前使用者正在使用的終端和登入時間
w 檢視所有終端(功能最全,顯示使用者名稱,終端標記,登入時間,負載等資訊)
ssh連線在linux當中的配置檔案
- 配置檔案位置:/etc/ssh/sshd_config
- 透過次命令檢視配置 grep -v '^#' /etc/ssh/sshd_config | grep -v '^$' -- grep管道符進行篩選、-v表示將篩選結果倒置(將篩出來的東西排除)、'^#' 所有#開頭的註釋,'^$'所有空行。
- 其中PasswordAuthentication yes表示ssh隧道允許使用密碼登入。
linux目錄檔案操作
linux命令手冊
對資料夾的操作
命令 | 描述 | 備註 |
---|---|---|
ls + 路徑 | 展示目錄下的檔案和資料夾 | 無 |
mkdir +檔名 | 建立資料夾 | 無 |
mv + 檔案/資料夾路徑 + 檔名/路徑 | 資料夾重新命名 | 當為路徑時也可以進行檔案移動 |
rm -rf | 刪除檔案或者資料夾 | -r無需確定進行刪除、-f遞迴刪除 |
rmdir | 刪除空資料夾 | 對空資料夾進行刪除 |
對檔案的操作
命令 | 描述 | 備註 |
---|---|---|
ls + 路徑 | 展示目錄下的檔案和資料夾 | 無 |
touch +檔名 | 建立檔案 | 無 |
mv + 檔案/資料夾路徑 + 檔名/路徑 | 資料夾重新命名 | 當為路徑時也可以進行檔案移動 |
rm -rf | 刪除檔案或者資料夾 | -r無需確定進行刪除、-f遞迴刪除 |
通用命令
-
修改檔案的修改時間
touch -t '07101530' 1.txt --將1.txt的檔案修改時間修改為07月10日15:30
-
控制檯輸出和寫入檔案
echo '字串' --將某字串輸出在終端
echo '字串' >> 1.txt -- 將某字串寫入檔案1.txt -
特殊符號
- '>>' 追加重定向,將文字寫入檔案末尾
- '>' 重定向符號,清空原來檔案內容,然後進行覆蓋寫入
- '<' 輸入重定向
- '<<' 將輸入結果輸入重定向
給幾個例子
注意:wc -l為統計行數,< 可以將檔案內容作為輸入。
-
stat [引數] 檔案
顯示檔案或檔案系統狀態
出現的結果如下例子:
解釋如下:[root@master tmp]# stat 1.txt File: '1.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 17348002 Links: 1 (許可權)Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) (最近訪問)Access: 2018-07-10 15:30:00.000000000 +0800 (最近更改)Modify: 2018-07-10 15:30:00.000000000 +0800 (最近改動)Change: 2018-11-07 15:38:36.400989868 +0800 Birth: -
相關引數如下:
-
-L, --dereference 跟隨連結
-
-f, --file-system 顯示檔案系統狀態而非檔案狀態
-
-c --format=格式 使用指定輸出格式代替預設值,每用一次指定格式換一新行
--printf=格式 類似 --format,但是會解釋反斜槓轉義符,不使用換行作輸出結尾。如果您仍希望使用換行,可以在格式中加入"\n"
-
-t,
--terse 使用簡潔格式輸出
--help 顯示此幫助資訊並退出
--version 顯示版本資訊並退出
-
格式化輸出引數:
%a 八進位制許可權
%A 用可讀性較好的方式輸出許可權
例如:
-
-
cat、more命令
檢視檔案:
cat:內容較少
more:內容較多#檢視檔案,顯示行號 cat -n xxx.py #貓,檢視檔案 cat xxx.py #在每一行的結尾加上$符 [root@master tmp]# cat -E 1.txt #追加文字到檔案 cat >>/tmp/oldboy.txt << EOF 唧唧復唧唧 木蘭開飛機 開的什麼機 波音747 EOF more /etc/passwd 按下空格space是翻頁 按下b鍵是上一頁 Enter鍵向下讀取內容
-
find 命令
Linux裡如何找到需要的檔案 例如 oldboy.py
輸入格式:
find 在哪裡(目錄) 什麼型別(檔案型別) 叫什麼名字(檔名)
引數
- -name 按照檔名查詢檔案
- -type 查詢某一型別的檔案,諸如:
- b - 塊裝置檔案。
- d - 目錄。
- c - 字元裝置檔案。
- p - 管道檔案。
- l - 符號連結檔案。
- f - 普通檔案。
- s - socket檔案
例子:
find /tmp/ -type f -name "oldboy.py" #找出/tmp所有以 .txt 結尾的檔案 find /tmp/ -type f -name "*.txt" #找到/etc下所有名字以host開頭的檔案 find /etc -name 'host*' #找到/opt上一個名為settings.py find /opt -name 'settings.py'
-
grep 命令
-
語法:
grep [引數] [--color=auto] [字串] filename -
引數:
- -i : 忽略大小寫
- -n : 輸出行號
- -v : 反向選擇
- --color = auto : 給關鍵詞部分新增顏色
- 管道符與grep配合快速搜尋
-
語法:
命令A | 命令B常見用法: #檢查python程式是否啟動 ps -ef|grep "python" #找到/tmp目錄下所有txt檔案 ls /tmp|grep '.txt' #檢查nginx的埠是否存活 netstat -tunlp |grep nginx
-
head、tail命令
查詢頭幾行或者尾幾行,
可以用來看持續更新的檔案#檢視前兩行 head -2 /tmp/oldboy.txt #檢視後兩行 tail -2 /tmp/oldboy.txt #持續重新整理顯示 tail -f xx.log #顯示檔案10-30行 head -30 /tmp/oldboy.txt |tail -21
-
別名alias
Linux如何提示你,在使用rm、cp、mv這些命令時候,提醒你小心呢?
答案就是alias命令alias就可以設定別名,在你進行某些設定的命令時->先走別名的定義->再進行某些命令的操作
舉例如下:
# 檢視所有有別名的命令 [root@iZ2zefuxklg0ufrapu0xnpZ tmp]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' # 設定新別名以阻止危險操作 [root@iZ2zefuxklg0ufrapu0xnpZ ~]# alias rm='echo do not use rm' [root@iZ2zefuxklg0ufrapu0xnpZ ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='echo do not use rm' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@iZ2zefuxklg0ufrapu0xnpZ ~]# cd /tmp/ [root@iZ2zefuxklg0ufrapu0xnpZ tmp]# ls a c oldboy [root@iZ2zefuxklg0ufrapu0xnpZ tmp]# rm -r a do not use rm -r a [root@iZ2zefuxklg0ufrapu0xnpZ tmp]# ls a c oldboy # 取消別名 unalias rm
- 注意,此時設定的別名不會永久生效,需要設定配置檔案
#設定別名永久生效,寫入到/etc/profile(針對登入使用者的合同,設定環境變數) vim /etc/profile #編輯檔案 G # 快速到達最後一行 o # 當前行下一行,建立一個新行,進入編輯模式 # 加入兩行 alias rm="echo do not use rm" source /etc/profile #讀取檔案(合同生效) # 退出重啟後別名仍然成立
-
which命令
查詢命令是否存在環境變數,或者存在在那個環境變數裡面
- 注意與find區分
例:
-
scp命令
遠端複製檔案
和cp命令幾乎一模一樣,只是它是複製遠端的檔案。
例
-
du命令
顯示檔案大小
-
語法
du 【引數】【檔案或目錄】-s 顯示總計
-h 以k,M,G為單位顯示,可讀性強
-
top命令
工作管理員
使用top之後調出系統情況:包括以下內容
解釋如下:第一行 (uptime) 系統時間 主機執行時間 使用者連線數(who) 系統1,5,15分鐘的平均負載 第二行:程序資訊 程序總數 正在執行的程序數 睡眠的程序數 停止的程序數 殭屍程序數 第三行:cpu資訊 1.5 us:使用者空間所佔CPU百分比 0.9 sy:核心空間佔用CPU百分比 0.0 ni:使用者程序空間內改變過優先順序的程序佔用CPU百分比 97.5 id:空閒CPU百分比 0.2 wa:等待輸入輸出的CPU時間百分比 0.0 hi:硬體CPU中斷佔用百分比 0.0 si:軟中斷佔用百分比 0.0 st:虛擬機器佔用百分比 第四行:記憶體資訊(與第五行的資訊類似與free命令) 8053444 total:實體記憶體總量 7779224 used:已使用的記憶體總量 274220 free:空閒的記憶體總量(free+used=total) 359212 buffers:用作核心快取的記憶體量 第五行:swap資訊 8265724 total:交換分割槽總量 33840 used:已使用的交換分割槽總量 8231884 free:空閒交換區總量 4358088 cached Mem:緩衝的交換區總量,記憶體中的內容被換出到交換區,然後又被換入到記憶體,但是使用過的交換區沒有被覆蓋,交換區的這些內容已存在於記憶體中的交換區的大小,相應的記憶體再次被換出時可不必再對交換區寫入。
-
lsattr和chattr命令
如何讓root都刪不掉你的檔案 ->
給他加鎖- lsattr 檢視有沒有鎖
- chattr +某個引數 加鎖
- chattr -某個引數 解鎖
例:
-
時間命令
進行時間同步,保證機器時間與雲端時間伺服器相同
相關命令:
# 檢視硬體時間 hwclock # 檢視系統時間 date # 與阿里雲的時間伺服器同步 ntp -u ntp.aliyun.com [root@localhost ~]# date Thu Jul 11 00:31:17 CST 2024 [root@localhost ~]# hwclock Thu 11 Jul 2024 12:31:46 AM CST -0.993494 seconds [root@localhost ~]# ntpdate -u ntp.aliyun.com 11 Jul 00:32:28 ntpdate[10203]: step time server 203.107.6.88 offset 0.870400 sec
-
日期命令
檢視日曆
-y引數 檢視一年的日曆
[root@localhost ~]# cal July 2024 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 31 [root@localhost ~]# cal -y ……
-
wget命令
對網頁發get和post請求,詳情參考命令手冊。
-
window和linux互傳:
lrzsz工具。(透過yum安裝)
sz(向window傳送檔案)
rz(從linux接受檔案)
例子如下:
還可以透過拖拽的方式拉入linux(xshell)
-
其他命令
命令 | 描述 | 備註 |
---|---|---|
pwd | 顯示當前路徑 | 顯示目前自己在哪 |
clear | 清屏 | 無 |
cd + 路徑 | 切換目錄 | 表示自己要去哪 |
-
ls有許多常用的引數:
-a --顯示指定目錄下所有子目錄和檔案(包括隱藏)、
-l --以列表的形式顯示詳細資訊(大小、許可權資訊)
-h --配合-l以更人性化的方式顯示檔案大小 -
mkdir 可以透過-p引數進行遞迴建立,{}包含的檔名可以在同級建立
參考連結:https://www.cnblogs.com/pyyu/p/9276851.html