1,Linux基本命令行的組成結構
2,Linux系統命令操作格式
命令 | 空格 | 參數 | 空格 | 需要處理的內容 |
rm | -rf | /tmp/* | ||
ls | -la | /home |
- 一般情況下(參數)是可選的,一些情況下(文件的路徑)也是可選的
- 參數 > 同一個命令,跟上不同的參數執行不同的功能,執行Linux命令,添加參數的目的是讓命令更加貼近實際工作的需要,Linux命令,參數之間,普遍應該用一個 或多個空格分割
3,創建一個目錄/xuexue
- mkdir xuexue 在root目錄下創建xuexue文件夾
- mkdir /xuexue 在根目錄下創建xuexue文件夾
- mkdir -p a/b c/d 遞歸創建文件夾
- mkdir test{a,b,c,d} 遞歸創建四個目錄
-
mkdir -p a/b/c/d/ 遞歸創建文件夾
-
4,創建文件或者修改文件時間戳(文件屬性)
- 修改文件的更改時間,很多黑客就會在惡意修改文件之后再修改之前的時間
- ls -l 查看所有文件夾
-
echo "xuexue" >> python.py 表示把xuexue這個字符串寫到python.py中
-
5,stat命令(顯示文件或文件系統的狀態):
- 用法: stat [參數] 文件
- 參數列表:
- -L, --dereference 跟隨連接
- -f. --file-system 顯示文件系統狀態而非文件狀態
- -c --format-格式 使用指定輸出格式代替默認值,每用一次指定格式換一新行
- --printf=格式 類似 --format,但是會解釋反斜杠轉義符,不使用換行作輸出結尾,如果您仍希望 使用換行,可以在格式中加入"\n"
- -t, --terse 使用簡潔格式輸出
- --help 顯示此幫助信息並退出
- --version 顯示版本信息並退出
- 格式化輸出參數:
- %a 八進制權限
- %A 用可讀性較好的方式輸出權限
- 顯示文件的權限
- stat -c %a python.py
- stat -c %A python.py
6,vim:所有的Unix Like系統都會內建vi編輯器,其他的文書編輯器則不一定會存在
但是目前我們使用比較多的是vim編輯器
vim具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,更方便程序的設計
- vi vim:使用vi打開python.py默認是命令模式,需要輸入a/i進入編輯模式,然后輸入文本"Life is short,i use python"
- 按下esc鍵,回到命令模式
- 輸入:wq!, 強制保存退出
- w write 寫入
- q quit 退出
- ! 強制
- 或者:x 保存退出
- :q 不保存退出
- :q! 不保存強制退出
7,查看文件內容:cat命令用於查看純文本內容(常用於內容比較少)
- cat -n python.py 查看文件顯示行號
- cat python.py 直接查看文件內容
-
在每一行的結尾加上$符
- cat -E python.py
-
追加文字到文件中
- cat >> python.py << EOF
- 世情薄,人情惡,雨送黃昏花易落,
- 曉風干,淚痕殘,欲箋心事,獨語斜闌,
- 難,難,難!
- EOF
8,more命令
- more命令用於查看內容較多的文本,列如要看一個很長的配置文件,cat查看內容屏幕會快速翻滾到結尾
- more命令查看文本會以百分比形式告知已經看到多少,使用回車鍵向下讀取內容
- more/etc/passwd
- 按下空格鍵space是翻頁
- 按下b鍵上一頁
- 回車鍵向下讀取內容
9,Linux的快捷鍵
- tab鍵, 用於自動補全命令/文件名/目錄名
- ctrl + l: 清理終端顯示
- clear/cls:清理終端顯示
- ctrl +c: 終止當前操作
10,echo命令:
- echo命令用於在終端輸出字符串或變量提取后的值,格式"echo[字符串|$變量]"
- # 默認把內容顯示到終端
- echo "帥爆太陽的男人",
- echo "帥爆太陽的男人" > python.py
11,特殊符號
- 輸入輸出,重新定向
- >> 追加重定向, 把文字追加到文件的結尾
- > 重新定向符號,清空原文件所有內容,然后把文字覆蓋到文件末尾
- < 輸入重定向
- << 將輸入結果輸入重定向
- eg:<< 和>> 一起用:如下
-
-
通配符: ls -l /etc/us*
12,賦值(拷貝的命令)
- cp xxx.py /tmp目錄下
- 移動xxx.py文件到/tmp目錄下
- cp xxx.py /tmp/yyy.py
- 移動xxx.py目錄,並重命名xxx.py為yyy.py
- Linux下面很多命令,一般沒有辦法直接出處理文件夾,因此需要加上參數
- cp -r 遞歸,復制目錄以及目錄的子孫后代
- cp -p復制文件,同時保持文件屬性不變, 可以用stat
- cp -a相當於 -pdr
- cp -r test test2
- 操作命令前,先cp復制一份
- cp main.py main.py.bak
13,移動命令
- mv /home
14,刪除命令
- 刪除/ --->remove/ ---->rm
- 參數: -i 需要刪除確認
- 參數: -f 強制刪除
- 參數: -r 遞歸刪除目錄和內容
15,查找命令
格式:find 在哪里(目錄) 什么類型(文件類型) 叫什么名字(文件名)
- 參數: -name 按照文件名查找文件 -type查找某一類文件列如
- b -塊級設備文件
- d -目錄
- c -字符串設備名稱
- p -管道文件
- l -符號鏈接文件
- s -socket文件
- # 表示找出"xuexue".txt文件
- find -type f -name "xuexue".txt
- # 找出所有以.txt結尾的文件
- find -type f -name "*.txt"
- # 找到當前目錄下所有名字以host開頭的文件
- find -name "host*"
- # 找到當前目錄名為settings.py文件
- find -name "settings.py"
16,管道命令
Linux提供的管道符"|"是將兩條命令隔開,管道符左邊命令的輸出會作為管道符右邊命令的輸入,常見用法:
- # 檢查python程序是否啟動
- ps -ef | grep "python"
-
# 找到test目錄下的所有.txt文件
-
ls test|grep ".txt"
-
# 檢查nginx的端口是否存活
- netstat -tunlp |grep nginx
命令格式
grep:(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來.
-
- 語法:grep [參數] [--color=auto] [字符串] filename
- 參數詳解:
- -i:忽略大小寫
- -n: 輸出行號
- -v: 反向選擇
- --color = auto :給關鍵部分添加顏色
- grep "我要找什么" ./test/ python.py
-
# 排除 -v,排除我要找的東西
- grep -v "我要找什么" ./test/ python.txt
16.1,head,tail命令
- head顯示文件前幾行,默認前10行
- tail顯示文件后幾行,默認后10行
- # 查看 前 2行
- head -2 /test/python.txt
- #查看后2行
- tail -2 /test/python.txt
- 持續刷新顯示
- tail -f xx.log
- #顯示文件10-30行
- head -30 /test/python.txt |tail -21
17,別名alias命令
Linux在使用rm(刪除),cp(覆蓋),mv(搬家)等命令的時候,必須非常小心,因為這些命令都是"炸彈",刪庫跑路,就是這么來的
- 查看系統別名的命令: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-title"
- 別名的作用:我們在Linux中使用cp時候相當於執行了cp -i
- -i: 刪除已有文件或目錄之前先詢問用戶
- # 別名用比較危險的操作,防止犯錯
18,為rm設置別名
- 讓系統顯示do not use rm
- echo do not use rm
- # 設置rm別名
- alias rm = "echo do not use rm"
-
-
# 設置別名永遠生效,寫入到etc/prodile(針對登錄用戶的客戶,設置環境變量)
- vim /etc/profile # 編輯文件
- G 快速到達最后一行
- O 當前行下一行,創建一個新行,進入編輯模式
- source /etc/profile# 讀取文件,合同生效
- 取消別名
- unalias rm
19,which命令
which命令用於查找並顯示給命令的絕對路徑,環境變量PATH中保存了命令時需要遍歷的目錄.wgich指令會在環境變量$PATH設置的目錄里查找符合條件的文件
也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行到那一位置的命令
which pwd
which python
查看到的都是絕對路徑下的命令的位置
20,scp命令
Linux scp命令用於Linux之間復制文件和目錄
scp 是 source copy的縮寫,scp是linux系統下基於ssh登錄進行安全的遠程文件拷貝命令
- 語法 :scp (可選參數)本地原文件 遠程文件標記
- 參數:
- -r : 遞歸復制這個目錄
- -v : 詳細方式輸出
- -q : 不顯示出書進度條
- -c :允許壓縮
20.1,文件的傳輸
- 傳輸本地文件到遠程地址
- scp 本地文件 遠程用戶@遠程ip: 遠程文件夾/
- scp ./test/xuexue.txt root@192.168.21.8:/root/practice/
-
scp 本地文件 遠程用戶名@遠程ip:遠程文件夾/遠程文件名
- scp test/python.txt root@192.168.21.8:/practice/xuexue_python.txt
-
# 復制遠程文件到本地
- scp root@192.168..21.8:/root/practice/python.py test/python.py
-
scp -r root@192.168.21.8:/test/python.py
-
這個先得創建好python.py文件去接收
21,du命令
Linux中du命令顯示目錄或文件的大小
du會顯示指定目錄或文件所占用的磁盤大小
- 用法:du (參數) (文件或目錄)
- -s: 顯示總計
- -h以k,m,g為單位顯示,可讀性強
- # 顯示目錄或文件所占空間,什么都不跟,代表顯示當前目錄所有文件大小
- du
-
# 顯示/home的總大小
-
du -sh /home
-
22,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: 虛擬機占用百分比
- 第四行內存信息
- 8053444 total: 物理內存總量
- 7779224 used: 已使用的內存總量
- 274220 free: 空閑的內存總量
- 359212 buffers: 用做內核緩存的內存量
- 第五行 :swap信息
- 8265724 total:交換分區總量
- 33840 used: 已使用的交換分區總量
- 8231884 free :空閑交換區總量
- 7358088 cached Mem: 緩沖的交換區總量,內存中的內容被換出到交換區,然后使用過的交換的交換區沒有被覆蓋,交換區的這些內容已存在於內存中的交換區的大小,相應的內存再次被換出時,可不比再對交換區寫入.
23,chattr命令
給文件加鎖,只能寫入數據,無法刪除
- chattr +a python.txt # 加鎖
- chattr -a python.txt # 解鎖
24,lasttr命令
查看文件隱藏屬性
lsattr test/python.txt
25,Linux時間同步
Linux的date命令可以顯示當前時間或者設置系統時間
查看當前時間
- 格式化輸出時間
- -d --date=string 顯示指定的時間,而不是當前時間
- 以 年-月-日顯示當前時間
- date + "%Y-%m-%d"
- 以年-月-日 時分秒 顯示當前時間
- date +"%Y-%m-%d %T"
- 在Linux下系統時間和硬件時間不會自動同步,在Linux運行過程中,系統時間和硬件時間以異步的方式運行,互不干擾.硬件時間的運行,是靠Bios電池來運行,而系統時間是CPU tick來維持的
- 在系統開機的時候,會從Bios中獲取硬件時間,設置系統時間
硬件始終的查看
- hwclock
-
同步系統時間和硬件時間,可以用hwclock命令
-
# 以系統時間為基准,修改硬件時間
-
# 以硬件時間為基准,修改系統時間
-
26,NTP時間服務器
時間對於人類來說是必不可少的,時間就是金錢,因此對於服務器時間額度把控非常重要,如果系統的時間不對,那么對於每一個文件的擦歐洲哦都是錯誤的
關於時間服務器的配置文件,有如下幾種
- /bin/date 用於Linux時間(軟件時鍾)的修改與顯示的指令
- /sbin/hwclock 用於BISO時鍾(硬件時間)的修改與顯示的命令,這是一個root才執行的命令,因為Linux系統上面BISO時間與Linux系統時間時分開的,所以使用date這個指令調整了時間之后,還需要使用hwclock才能將修改后的時間寫入BISO當中!
- /usr/sbin/ntpd 主要提供NTP服務的程序,配置文件為/etc/ntp.conf
- /usr/sbin/ntpdate :用於客戶端的時間的矯正.如果你沒有要啟用NTP而僅想用NTP Client功能,只會用到這個指令就好了
由於我們只需要用作客戶端更新時間
ntpdate -u ntp.aliyun,com
27,wget命令
wget命令用於在終端下載網絡文件
參數是wget(參數)下載地址
wget -r -p http:// www.xiaohua100.com # 遞歸下載所有資源
28,開關機命令
reboot命令用於重啟機器
poweroff用於關閉系統