Linux 基本命令 vim與程式設計師 Linux基本命令
檢視命令
ls 檢視目錄檔案
ls -la 檢視所有目錄(包括隱藏檔案)
stat 檔案(目錄) 檢視檔案(目錄)的詳細資訊
lsattr 檔案 檢視檔案的隱藏屬性
. 當前目錄
.. 上一層目錄
- 前一個工作目錄
~ 當前【使用者】所在的家目錄
資料夾操作
增
mkdir 資料夾名稱 建立資料夾
touch .py檔案 建立一個檔案
可以使用遞迴來生成資料夾結構
全是資料夾的 mkdir -p(引數) 資料夾1/資料夾2/資料夾3
資料夾下的檔案 mkdir -p(引數) 資料夾4/{資料夾5,檔案夾6,檔案夾7} (資料夾5、6、7並列)
刪
rmdir 資料夾名稱(空的)
想要刪除非空的資料夾 rm -rf ./*
改
mv 原檔名 新檔名(也有可能是移動)
執行第一個python命令
touch .py檔案 建立一個py檔案
vi py檔案 進入檔案中
按下鍵 i 進入編輯模式
按下鍵o (在游標所在的下一行進入編輯模式)
按下鍵 Esc 進入命令模式
輸入命令 :wq! 儲存退出
輸入命令 :q! 退出,不儲存
vi 或 vim
所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。
但是目前我們使用比較多的是 vim 編輯器。
vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計。
vi/vim 的使用
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)
命令模式
使用者剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字元。比如我們此時按下i,並不會輸入一個字元,i被當作了一個命令
移動游標
w(e) 移動游標到下一個單詞
b 移動到游標上一個單詞
數字0 移動到本行開頭
$ 移動游標到本行結尾
H 移動游標到螢幕首行
M 移動到游標到螢幕的中間一行
L 移動游標到螢幕的尾行
gg 移動游標到文件的首行
G 移動游標到文件尾行
ctrl + f 下一頁
ctrl + b 上一頁
`. 移動游標到上一次的修改行查詢
/chaoge 在整篇文件中搜索chaoge字串,向下查詢 ?chaoge 在整篇文件中搜索chaoge字串,向上查詢 * 查詢整個文件,匹配游標所在的所有單詞,按下n查詢下一處,N上一處 # 查詢整個文件,匹配游標所在的所有單詞,按下n查詢下一處,N上一處 gd 找到游標所在單詞匹配的單詞,並停留在非註釋的第一個匹配上
% 找到括號的另一半!!複製,刪除,貼上
yy 拷貝游標所在行 dd 刪除游標所在行 D 刪除當前游標到行尾的內容 dG 刪除當前行到文件尾部的內容 p 貼上yy所複製的內容
x 刪除游標所在的字元
u 撤銷上一步的操作數字與命令
3yy 拷貝游標所在的3行
5dd 刪除游標所在5行輸入模式
在命令模式下按下字母i 可以進入輸入模式
在輸入模式下按下鍵Esc 可以退出輸入模式
底線命令模式
在命令模式下輸入冒號(英文的:),就進入了底線命令模式,在底線命令模式下可以輸入單個或多個字元的命令,常用命令有:
:q! 強制退出 :wq! 強制寫入退出
:set nu 顯示行號
:數字 調到數字那行
隨時按下esc可以退出底線命令模式vim按鍵
移動游標
移動游標的方法 h 或 向左箭頭鍵(←) 游標向左移動一個字元 j 或 向下箭頭鍵(↓) 游標向下移動一個字元 k 或 向上箭頭鍵(↑) 游標向上移動一個字元 l 或 向右箭頭鍵(→) 游標向右移動一個字元
向下移動5行 5j
向右移動10字元 10l
n(space) 按下數字n,例如10,然後按下空格,游標會向右移動10個字元底線命令
:! command 暫時離開vim指令模式,執行command的結果 例如 :!ip a 臨時看一下ip資訊,然後可以回到vim
:set nu 顯示vim行號
:set nonu 取消行號更多vim用法請看菜鳥教程:http://www.runoob.com/linux/linux-vim.html
vi 檔案(vim 檔案) 進入檔案
預設是命令模式,需要輸入a/i進入編輯模式,然後輸入文字"Life is short,i use python"
按下esc鍵,回到命令模式 輸入 :wq! 強制儲存退出
w write 寫入
q quit 退出
! 強制 或者:x 儲存退出
:q 不儲存退出
:q! 不儲存強制退出
連結:vim與程式設計師
cat
cat命令用於檢視純文字檔案(常用於內容較少的)
cat w檔案 檢視w檔案
cat -n w檔案 或 cat w檔案 -n 檢視檔案並列印行號
cat 追加文字到檔案
mory
用於檢視內容多的文字
例如要看一個很長的配置檔案,cat檢視內容螢幕會快速翻滾到結尾。
more命令檢視文字會以百分比形式告知已經看到了多少,使用回車鍵向下讀取內容
mory 路徑/文字
echo
echo命令用於在終端輸出字串或變數提取後的值,格式是“echo 【字串|$變數】”
覆蓋寫入 和 追加寫入(echo有列印的意思,只是將列印的內容沒有列印在終端而是列印在檔案中)
特殊符號
重定向符號 1.>> 追加重定向,把文字追加到檔案的結尾 2.> 重定向符號,清空原檔案所有內容,然後把文字覆蓋到檔案末尾 echo "oldboy-python666" > /tmp/oldboy.txt echo "chaoge666" >> /tmp/oldboy.txt ------------------------------------ 我想把命令執行的結果資訊,寫入到檔案中 ip addr > /tmp/network.txt #標準輸出重定向 把命令執行結果資訊,放入到檔案中 3.萬用字元 * ls -l /etc/us* 檢視etc資料夾下以us開頭的詳細資訊
複製
copy 簡寫 cp
在操作檔案前,請先做好備份
cp 新建檔案 新建檔案備份
cp 引數 目標檔案 重新命名,複製後的檔案
引數:
cp -r 遞迴,複製目錄以及目錄的子孫後代(相當於新建了一個目錄只是這個目錄的結構)
cp -p 複製檔案,同時保持檔案屬性不變
cp -a 相當於 -pdr (完全複製)
複製XXX.py 到 tmp 目錄下
cp XXX.py tmp
複製XXX.py 到 tmp 目錄下順便改名為chaoge.py
cp XXX.py tmp/chaoge.py
移動命令(改名)
move 簡寫 mv
mv 舊目錄 新目錄 改名:將舊目錄改名為新目錄
mv 移動目錄 目錄 移動:將移動目錄移動到目錄中
mv 移動檔案 目錄 移動:將移動檔案移動到目錄中
移動和改名的區別在於:要移動(改名)的物件是否存在,若存在為移動,不存在是改名
刪除命令
remove 簡寫 rm
rm XXX.py 只適用於空的檔案,無法刪除目錄
在刪除的時候,會有提示:是否確認刪除,你需要按 y 確認
引數
-f 取消提示,強制刪除
-r 可以刪除目錄
rm -rf tmp 刪除目錄tmp,取消提示
新手注意:
rm -rf ./* 這句話的意思是 刪除(rm)當前(.)目錄(-r)下的所有內容(*) 且沒有提示(-f)
------------------
基於以上友情提示:初學者使用rm命令,要隨時快照虛擬機器(備份存檔)
在虛擬機器上(不是Xshell等遠端連線的物件)
xargs命令
find查詢
Linux裡如何找到需要的檔案 例如 oldboy.py
find 在哪裡(目錄) 什麼型別(檔案型別) 叫什麼名字(檔名)
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
(global search regular expression(RE) and print out the line,全面搜尋正則表示式並把行打印出來)是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。常用於配置檔案的編輯
語法:grep 引數 [--color=auto] [字串] filename(檔名)
引數:
-i : 忽略大小寫
-n : 輸出行號
-v : 反向選擇
--color=auto 給關鍵詞部分新增顏色(預設存在)
字串:要查詢的內容
示例:
grep ‘HOST’ settings.py 在settings.py檔案中查詢 ‘HOST’的關鍵詞
常用於檢視程序 ps -ef
檢視有哪些埠存活 netstat -tunlp
head命令
head顯示檔案的前幾行,預設是前十行
檢視前兩行
head -2 新建檔案.txt
tail命令
tail 顯示檔案後幾行,預設是後十行
檢視後兩行
tail -2 新建檔案.txt
實時重新整理顯示
tail -f 日誌檔案.log
顯示檔案的10-30行
head -30 檔案.txt | tail -21 (從iii.txt檔案中的前三十行中挑出21行(從第10到30行算上第10行共有21條))
管道命令
命令格式:命令A | 命令B
Linux提供的管道符“|”講兩條命令隔開,管道符左邊命令的輸出會作為管道符右邊命令的輸入。
常常和 grep。。 搭配在一起
sed??????????
sed是一種流編輯器,它是文字處理中非常重要的工具,能夠完美的配合正則表示式使用,功能不同凡響。
處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),
接著用sed命令處理緩衝區中的內容,
處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有 改變,除非你使用重定向儲存輸出。
Sed主要用來自動編輯一個或多個檔案;簡化對檔案的反覆操作;編寫轉換程式等。
akw
which命令
which命令用於查詢檔案。準確的說是查詢並顯示給定命令的絕對路徑
環境變數PATH中儲存了查詢命令時需要遍歷的目錄。所以
which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案。檢視環境變數 echo $
也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
語法 which 【引數】【檔案】
引數:
-n<檔名長度> 指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p<檔名長度> 與-n引數相同,但此處的<檔名長度>包括了檔案的路徑。
-w 指定輸出時欄位的寬度。
-V 顯示版本資訊。
示例:
which pwd
which python
alias 起別名
seq
scp命令
du命令
用於顯示目錄或檔案的大小,du會顯示指定的目錄或檔案所佔用的磁碟空間。
du 引數 檔案(目錄)
引數:
-s 顯示總數
-h 以K、M、G為單位,可讀性強
示例:
du -sh /tmp/
df命令
df命令用於顯示磁碟分割槽上的可使用的磁碟空間。預設顯示單位為KB可以利用該命令來獲取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。
語法 df(選項)(引數) -h或--human-readable:以可讀性較高的方式來顯示資訊; -k或--kilobytes:指定區塊大小為1024位元組; -T或--print-type:顯示檔案系統的型別; --help:顯示幫助; --version:顯示版本資訊。示例
檢視系統磁碟裝置,預設是KB為單位: df 使用-h選項以KB以上的單位來顯示,可讀性高: df -h
top命令
chattr命令(加鎖、解鎖)
chattr +a 檔案 給檔案上鎖,只能新增資料,無法刪除檔案
chattr -a 上鎖的檔案 給上鎖的檔案解鎖,可以刪除檔案
Linux時間同步
Ntp時間伺服器????????
由於我們只需要用作客戶端更新時間
ntpdate -u ntp.aliyun.com
wget命令(在中斷下載網路檔案)
wget 引數 下載地址
wget -r -p http://pythonav.cn/xiaobo.jpg(美女圖片)
開關機命令
reboot 重啟
poweroff 關機
關於Linux xshe11常用的快捷鍵