linux 指令使用大全
目錄
從一臺linux上傳送一個遠端指令給另一臺遠端linux去執行
Linux指令學習技巧
善於檢視man help等幫助文件
利用好Tab鍵 自動補全
掌握好一些快捷鍵
ctrl + c(停止當前程序)
ctrl + z 掛起當前程序,放後臺
ctrl + r(檢視命令歷史) history
ctrl + l(清屏,與clear命令作用相同)
方向箭頭 上 下 可以檢視執行過的命令
Linux注意事項
linux下嚴格區分大小寫
在Linux命令列下,輸入字元後,按兩次Tab鍵,shell就會列出以這些字元打頭的所有可用命令。如果只有一個命令匹配到,按一次Tab鍵就自動將這個命令補全。比如,想更改密碼,但只記得這個命令前幾個字母是pass。這時候,按Tab鍵,shell就自動輸出 passwd 命令,非常方便。當然,除了命令補全,還有路徑、檔名補全。這個在我們 cd 到特定目錄時特別好用。
在linux下配置環境變數,使用$ 追加路徑是:而不是分號
檔案顯示的第一列會顯示檔案的資訊,是一個檔案還是一個資料夾
檔案開頭是-
資料夾開頭是dr
Linux 常用指令:
../上一級目錄 ./當前目錄
關機/重啟機器
shutdown
-r 關機重啟
-h 關機不重啟
now 立刻關機
halt 關機
reboot 重啟
Ifconfig:
檢查ip地址資訊
Reboot:
重啟虛擬機器
Ping
Ping -C n
設定返回資訊的行數
Ping是Windows、Unix和Linux系統下的一個命令。ping也屬於一個通訊協議,是TCP/IP協議的一部分。利用“ping”命令可以檢查網路是否連通,可以很好地幫助我們分析和判定網路故障。應用格式:Ping空格IP地址。該命令還可以加許多引數使用,具體是鍵入Ping按回車即可看到詳細說明。
結束ping
ctrl+c 可以停止ping
ctrl+z可以暫停ping,ctrl+z是把程序放到後臺去, 你只需要fg就可以把它弄到前臺來
ls
簡述:列出檔案或目錄列表。
-> ls 預設列出當前目錄下的所有檔案。
-> ls -l(long)以長格式檢視檔案。 簡寫ll
-> ls -d(directorys)檢視目錄。簡寫 ld 下面的以此類推
-> ls -F:給不同檔案的結尾加標識。例如目錄結尾會加"/"
-> ls -p:只給目錄結尾加標識"/"
-> ls -a:顯示所有檔案,包括隱藏檔案,預設點開頭的檔案是隱藏檔案
-> ls -r:倒排序
-> ls -t:按修改時間排序,一般rt結合,檢視最近被修改的檔案。
-> \ls --color=auto:顯示顏色,預設已經設定到別名裡
-> ls -i /data/:顯示inode,檔案索引
-> ls -lh /data/:h引數表示人類可讀,會將檔案大小換成k、M等易讀方式
-> ls -l --time-style=long-iso /data:規範時間顯示(2016-03-04)
mkdir
簡述:建立目錄。
-> mkdir /data 在根目錄下建立data目錄
-> mkdir -p /aa/bb/cc:遞迴建立目錄
cd
簡述:切換目錄
-> cd /etc 從當前目錄切換到/etc路徑下
Cd - 返回到執行cd之前的目錄
直接 cd 回到當前使用者的家目錄。
pwd
簡述:列印工作目錄。注意 pwd要大寫
-> pwd (print work directory) 顯示當前所在路徑
-> echo $PWD:可以看到這個變數的值
touch
簡述:不存在就建立檔案,存在則更新檔案時間戳資訊。
-> touch /data.txt 直接在/目錄下建立data.txt檔案。
Touch 後面可以一次建立多個資料夾或檔案 檔案或資料夾之間用空格隔開
例如 touch 1.txt 2.txt 3.txt
-> cd /; touch data.txt 切換到/目錄下,建立data.txt檔案
vi/vim
簡述:vi編輯器。
I意識是insert的開頭字母意思是進入編輯模式
Esc進入命令格式
退出Vi
當編輯完檔案,準備退出Vi返回到shell時,可以使用以下幾種方法之一。
在命令模式中,連按兩次大寫字母Z,若當前編輯的檔案曾被修改過,則Vi儲存該檔案後退出,返回到shell;若當前編輯的檔案沒被修改過,則Vi直接退出, 返回到shell。
在末行模式下,輸入命令 :w
Vi儲存當前編輯檔案,但並不退出,而是繼續等待使用者輸入命令。在使用w命令時,可以再給編輯檔案起一個新的檔名。 :w newfile
此時Vi將把當前檔案的內容儲存到指定的newfile中,而原有檔案保持不變。若newfile是一個已存在的檔案,則Vi在顯示視窗的狀態行給出提示資訊:
File exists (use ! to override)
此時,若使用者真的希望用檔案的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的檔名來儲存當前檔案。
在末行模式下,輸入命令 :q
系統退出Vi返回到shell。若在用此命令退出Vi時,編輯檔案沒有被儲存,則Vi在顯示視窗的最末行顯示如下資訊:
No write since last change (use ! to overrides)
提示使用者該檔案被修改後沒有儲存,然後Vi並不退出,繼續等待使用者命令。若使用者就是不想儲存被修改後的檔案而要強行退出Vi時,可使用命令 :q!
Vi放棄所作修改而直接退到shell下。
在末行模式下,輸入命令 :wq
Vi將先儲存檔案,然後退出Vi返回到shell。
在末行模式下,輸入命令 :x
該命令的功能同命令模式下的ZZ命令功能相同。
-> vi /data.txt 開啟data檔案,開啟預設為命令模式不可編輯。點選a或i進入插入狀態,點選Esc退出編輯狀態進入命令狀態可以執行以:冒號後面執行以下命令。
命令狀態按:wq儲存退出。(wq為write quit)
dd:游標點住哪一行直接刪除一行或剪下一行
n dd 刪除或剪下從游標開始的n行
p 貼上
yy複製
Ctrl +z 掛起在後臺 ,相當於最小化
Fg 取消掛起 ,相當於最大化
> set nu顯示行號 記住不帶/
-> set nonu 不顯示行號
-> G或]]或:$ 游標移動到檔案的最後一行
-> gg或[[或:0 游標移動到檔案的第一行-
-> o 開啟新一行
I 游標調到開頭
A 游標調到結尾
:n 第你
-> $或end鍵:從游標位置移動到當前行的結尾
-> u:取消上一次的動作->
/:向下搜尋,繼續搜尋按n,配置檔案時,可以搜尋關鍵字
反向搜尋按N-> ?:向上搜尋,繼續搜尋按n,反向搜尋按N
替換:%s/舊字串/新的字串/g
其中 % 匹配所有 s 從開始的地方開始 g 是全部的意思
S:start g:globle
echo
簡述:列印。
-> echo ‘I like linux’ 列印後邊的字串
-> echo -n "abc"; echo "456":不換行輸出
-> echo -e "123\t456":加特殊符號,比如製表符\t,換行\n等
注意 -n和-e要和echo之間有空格或製表符
cat
簡述:檢視檔案內容。
-> cat /data.txt 檢視data.txt檔案中的內容-> cat >>/test/test.txt<<EOF I like Linux.
You like linux too.
EOF
此用法即可>>和<<,可以追加多行內容,內容用EOF包裹,EOF可以用任意重複字元替代,但內容中不存在此重複字元即可。
此方法也會自動建立檔案。
-> cat -n /data.txt:顯示行號-> cat test{1,2}.txt >/tmp/aa.txt:將test1.txt和test2.txt檔案內容合併到aa.txt裡面-> cat -T test.txt:區分tab鍵和空格,tab鍵會被^I替代-> cat -E test.txt:會在行尾加$符號,空行也會有
tac
簡述:和cat相反,倒序讀取檔案。最後一行先輸出,然後倒數第二行……
簡述:每行倒讀
-> echo 1234|rev:輸出是4321
簡述:顯示行號
-> nl /data.txt:顯示行號
cp
簡述:拷貝命令,可以拷貝檔案或目錄。
-> cp /data/aa.txt /test/ :將/data/aa.txt檔案拷貝到/test/目錄下。-> cp –r /data /test/ :將/data目錄遞迴拷貝到/test/下面。-> cp –a /data /test/ :-a引數相當於-pdr
-p:連同檔案屬性一塊拷貝,而非預設屬性。
-d: 若原檔案為連結檔案,則複製連結檔案屬性而非檔案本身
ps -ef|grep詳解
ps命令將某個程序顯示出來
grep命令是查詢
中間的|是管道命令 是指ps命令與grep同時執行
PS是LINUX下最常用的也是非常強大的程序檢視命令
grep命令是查詢,是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。
grep全稱是Global Regular Expression Print,表示全域性正則表示式版本,它的使用許可權是所有使用者。
以下這條命令是檢查java 程序是否存在:ps -ef |grep java
欄位含義如下:
UID PID PPID C STIME TTY TIME CMD
zzw 14124 13991 0 00:38 pts/0 00:00:00 grep --color=auto dae
UID :程式被該 UID 所擁有
PID :就是這個程式的 ID
PPID :則是其上級父程式的ID
C :CPU使用的資源百分比
STIME :系統啟動時間
TTY :登入者的終端機位置
TIME :使用掉的CPU時間。
CMD :所下達的是什麼指令
rm
簡述:刪除命令,remove。使用rm命令要格外小心。因為一旦刪除了一個檔案,就無法再恢復它,少用。一般結合find刪除。
d:直接把欲刪除的目錄的硬連線資料刪除成0,刪除該目錄;
-f:強制刪除檔案或目錄;
-i:刪除已有檔案或目錄之前先詢問使用者;
-r或-R:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;
--preserve-root:不對根目錄進行遞迴操作;
-v:顯示指令的詳細執行過程。
-> rm /test/aa.txt :刪除/test/aa.txt檔案。 不加引數會提示確認刪除。
-> rm –f /test/aa.txt :強制刪除,不會出提示。
-> rm –r /test :刪除目錄,目錄下若有檔案,則每個檔案都會提示,可以加f引數
重定向(> />>/<<)
注意:有時候寫指令碼 檔案刪除了 重定向檔案檔案不會出現了
簡述:標準輸出/輸入,結合echo會建立檔案覆蓋檔案內容或追加內容。
>覆蓋檔案
>> 追加內容到檔案
-> echo ‘I like linux’>/data.txt 如果data.txt不存在則建立 並把內容輸入進檔案。如果檔案存在則覆蓋內容。
-> echo ‘I like linux’>>/data.txt 追加內容到檔案尾部。
-> echo ‘aa
bb
cc’>>/data.txt 追加多行內容。
-> cat >>/data.txt<<EOF
I like linux
you like linux
EOF :此用法結合了cat和>>和<<,可以追加多行內容,內容用EOF包裹,EOF可以用任意重複字元替換,只要內容不存在就可以。檔案不存在會自動建立檔案
-> >或1> 輸出重定向:把前面輸出的東西輸入到後邊的檔案中,會清除檔案原有內容。-> >>或1> 追加重定向:把前面輸出的東西追加到後邊的檔案尾部,不會清除檔案原有內容。-> 0<或<< 輸入重定向:輸入重定向用於改變命令的輸入,後面指定輸入內容,前面跟檔名。-> 2> 錯誤重定向:把錯誤資訊輸入到後邊的檔案中,會刪除檔案原有內容。-> 2>> 錯誤追加重定向:把錯誤資訊追加到後邊的檔案中,不會刪除檔案原有內容。 箭頭的指向就是資料的流向。
數字0表示標準輸入(stdin),預設可以不用寫。
數字1表示正常輸出(stdout)。
數字2表示標準錯誤輸出(stderr)
-> echo 1 2 3 4 >/data.txt xargs –n 2 </data.txt 其中2表示兩個一組。輸出如下:
1 2
3 4
-> echo girl >a.txt 2>a.txt 將正確或者錯誤資訊都輸入到 a.txt。echo girl >a.txt 2>&1 和上面的意思一樣,不同的寫法,這個常用。
echo girl &>a.txt 和上面意思一樣,正確和錯誤資訊都放入a.txt
man
簡述:檢視命令的幫助資訊。
-> man mv:檢視mv命令的幫助資訊
xargs
簡述:從標準輸入獲取內容建立和執行命令。
-n 接數字相當於分組。
-> echo 1 2 3 4 >/data.txt
xargs –n 2 </data.txt 其中2表示兩個一組。輸出如下:
1 2
3 4
清空檔案
“: > test.log“或"echo "" > test.log"或"echo > test.log"
find
簡述:顧名思義。查詢檔案
-> find /data –type f –name “test.txt” –exec rm {} \;
先找到/data下面名字叫test.txt的檔案,然後執行刪除操作。
-> find /data –type f –name “test.txt” |xargs rm -f: 用管道和xargs進行刪除。
用xargs的目的是將找到的內容變為1行。
-type :檔案型別 f(file),d(directory),c(character),b(block)s(sockey),l(link)
-name :檔名稱。
-mtime :參考考試題,刪除7天之前的檔案
more,less,clear
n more,less命令
這兩個命令用於檢視檔案,如果一個檔案太長,顯示內容超出一個螢幕,用cat命令只能看到最後的內容,用more和less兩個命令可以分頁檢視。more指令可以使超過一頁的檔案內容分頁暫停顯示,使用者按鍵後才繼續顯示下一頁。而less除了有more的功能以外,還可以用方向鍵往上或往下的滾動檔案,更方便瀏覽閱讀。
less的常用動作命令:
less 在檢視之前不會載入整個檔案。可以嘗試使用 less 和 vi 開啟一個很大的檔案,你就會看到它們之間在速度上的區別。
在 less 中導航命令類似於 vi。本文中將介紹一些導航命令以及使用 less 的其它一些技巧。
當使用命令 less file-name 開啟一個檔案後,可以使用下面的指令操作所開啟的檔案。
搜尋
/關鍵字 就可以搜尋關鍵字 ,比如 /MAIL表示在檔案中搜索MAIL單詞
回車鍵 向下移動一行;
y 向上移動一行;
空格鍵 向下滾動一屏;
下面的,命令要和shift一起使用
b 向上滾動一屏;
d 向下滾動半屏;
h less的幫助;
u 向上洋動半屏;
w 可以指定顯示哪行開始顯示,是從指定數字的下一行顯示;比如指定的是6,那就從第7行顯示;
g 跳到第一行;
G 跳到最後一行;
p n% 跳到n%,比如 10%,也就是說比整個檔案內容的10%處開始顯示;
v 呼叫vi編輯器;
q 退出less
!command 呼叫SHELL,可以執行命令;比如!ls 顯示當前列當前目錄下的所有檔案;
n clear命令
clear命令是用來清除當前螢幕顯示的,不需任何引數,和dos下的cls命令功能相同。
Tail和head命令
head命令是用來檢視具體檔案的前面幾行的內容,具體格式如下:
head <filename>:
你可以通過head命令檢視具體檔案最初的幾行內容,該命令預設是前10行內容,如果你想檢視前面更多內容,你可以通過一個數字選項來設定,head-20 例如
head -20 install.log
通過上面命令你可以檢視install.log這個檔案前面20行的內容
與head命令相反,tail命令是用來檢視具體檔案後面幾行的內容,預設情況下,是檢視該檔案尾10行的內容,同樣,如果想檢視後面更多內容,也是通過數字選項來設定,例如
tail -20 install.log
tail -n 100 檢視檔案的最後100行
你還可以使用 tail 來觀察日誌檔案被更新的過程。使用 -f 選項,tail 會自動實時
-F刪除後 重新建立名字相同的檔案也可以繼續監視。
地把開啟檔案中的新訊息顯示到螢幕上。例如,要即時觀察 /var/log/messages的變化,以根使用者身份在 shell 提示
下鍵入以下命令:
tail -f /var/log/messages
wc [option] filename統計檔案字數
功能:統計檔案中的檔案行數、字數和字元數。
選項:
-l lines 統計檔案的行數
Wc -l 1.txt 回車
-w words 統計檔案的單詞數 (英文單字)
-c bytes 統計檔案的位元組數
-m chars 統計檔案字元數
檔案的拷貝,剪貼 ,重新命名
拷貝
拷貝檔案: cp 檔案目錄 貼上的檔案目錄/[重新命名]
拷貝資料夾 cp 資料夾目錄 貼上的檔案目錄/[重新命名] -r
剪下
mv 剪下 檔案目錄 貼上的檔案目錄/[重新命名]
其中MV 預設遞迴
Rename 重新命名
rename支援萬用字元
? 可替代單個字元
* 可替代多個字元
把一txt結尾的檔案字尾改成tar
rename .txt .txt.bar *
Linux下對檔案重新命名有兩種命令: mv ,rename
mv /dir/file1 /dir2/file1
兩個引數,第一個是原始檔,第二個是目的地,如果第二個引數檔名不一樣,則會重新命名。
當兩個引數不帶目錄,只有檔名時,那就是重新命名了。這是單個檔案的重新命名。
rename arg1 arg2 arg3
rename才是真正的批量重新命名命令。而且他是3個引數,不是2個。
arg1:舊的字串
arg2:新的字串
arg3:匹配要重新命名的檔案,可以使用3種萬用字元,*所有檔案、?滿足某個字元匹配的檔案、[char],*表示任意多個字元,?表示單個字元,[char]匹配char單個自定的精確字元,可以填寫任意字元,foo[a]*表示只匹配fooa開頭的檔名,如果一個檔案是foobcc.txt,是不會被匹配的。
值的注意的是,此命令在不同的linux版本也有不同,Debian一系的作業系統別有用法。舉例說明:
比如/home下有兩個檔案 abbcc.txt, addbb.txt , a.txt
我想把a替換為xxx,命令是這樣的 : rename “a” “xxx” *.txt
那麼它會首先去匹配有哪些檔案需要修改,這裡凡是.txt字尾的檔案都會被匹配,如果改成?.txt則只會匹配到一個檔案,那就是a.txt。然後把匹配到的檔案中的a字元替換為xxx,注意測試時abab.txt這樣的,只會替換第一個a,有待再瞭解。
rename支援正則表示式
字母的替換
rename "s/AA/aa/" * //把檔名中的AA替換成aa
S 從開頭 開始 *匹配所有
修改檔案的字尾
rename "s//.html//.php/" * //把.html 字尾的改成 .php字尾
批量新增檔案字尾
rename "s/$//.txt/" * //把所有的檔名都以txt結尾
批量刪除檔名
rename "s//.txt//" * //把所有以.txt結尾的檔名的.txt刪出
ln
英文: link 命令路徑:/bin/ln 執行許可權:所有使用者
作用:產生連結檔案 建立快捷方式
ln -s [原始檔] [目標檔案] 建立軟連結 原始檔 使用 絕對路徑
ln [原始檔] [目標檔案] 建立硬連結
軟連線指向原檔案原檔案刪除,無法再使用
而硬連結類似於複製原本檔案,原文刪除還可以使用刪除前原檔案裡面的內容
同時,原檔案的改變,軟連線,和硬連結都會隨之改變。
eg:ln -s /etc/service .service.soft
建立檔案/etc/service的軟連結.service.soft
eg:/etc/service /service.hard
建立檔案/etc/service的硬連結/service.hard
軟連線類似於windows下的快捷方式
軟連線檔案格式:
lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services
硬連結數量,如果該檔案沒有硬連結,就只有本身一個硬連結。
13連結檔案的長度
格式解析(特徵):
1, 軟連線的檔案型別是 l(軟連線),軟連線檔案的許可權 都是 lrwxrwxrwx
2,-> 箭頭指向到原始檔
真正的許可權取決於對原始檔的許可權
時間值為建立軟連線的時間
軟連線可以跨檔案系統生成
硬連結特徵
1,相當於 cp -p +同步更新
2,通過i節點識別,與原始檔有相同的idnode節點
3,硬連結不能跨分割槽,ln /home/test/issuels /boot/test (錯誤)
4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬連結)
刪除軟連線
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
~線下的`
可以轉移指令,
例如 echo `ll` >> a.txt
一般用於 把一個指令的結果寫到檔案中
Linux 萬用字元
*:匹配所有
?:匹配單個字元
打包 壓縮與解壓
打包tar:將多個檔案打入一個包檔案(tar檔案; tar ball)
打包:
格式 tar -cf 打包到的資料夾 需要打包的檔案 可以多個 用空格隔開
tar -cf doc.tar ./a.txt ./b.txt ./*.dat ## 將a.txt,b.txt *.dat打入doc.tar包
解包:
tar -xf 要解包的檔案
tar -xf doc.tar
壓縮:
gzip a.txt
gzip doc.tar ## 得到 doc.tar.gz
解壓:
gzip -d doc.tar.gz ## 得到doc.tar
打包和壓縮可以一次性完成:
tar -zcf doc.tar.gz ./a.txt ./b.txt ./c.txt ## 將abc三個檔案打包,然後壓縮
解包和解壓縮可以一次性完成:
tar -zxvf doc.tar.gz ## 將doc.tar.gz解壓,然後解包
tar -zxvf doc.tar.gz -C /home/ ## 將doc.tar.gz解壓到/home目錄下去
注意:有的檔案可能不經過打包直接壓縮的,此時解壓只能使用gzip -d
從windows上傳檔案指令和安裝指令檔案
ALT +P
可以直接把檔案從windows下託過去
Rz
上傳檔案
如果無法使用說明沒有安裝rz軟體
使用 yum list | grep rz 找到re的安裝軟體
然後安裝
yum -y install lrzsz
可以試著安裝其他的 如man 一樣的方式 先搜 再按
Yum指令
Yum list
Yum list |gerp 關鍵字
從yum中搜索安裝包
Yum -y install 安裝包名字
安裝軟體
Yum info 安裝包名字
顯示安裝包資訊
網路指令:
Ping
用於確定主機能不能和另一臺主機進行資料包交換
Ping 後面加要測試的主機ip
修改主機名
臨時生效:
hostname 主機名
永久生效:修改配置檔案
vim /etc/sysconfig/network
顯示主機名:
# hostname
linmu100
此主機的主機名是linmu100,不加引數是用來顯示當前主機的主機名;
臨時設定主機名:
# hostname test100
# hostname 注:顯示主機名
test100
通過hostname 工具來設定主機名只是臨時的,下次重啟系統時,此主機名將不會存在;
顯示主機IP:
# hostname -i
192.168.1.100
修改對映關係
修改主機名和ip地址之間的對映關係
vim /etc/hosts
192.168.2.120 node-1.edu.cn node-1
可配置別名
Chkconfig --list
檢視所有linux下的所有服務
Ipconfig
查詢本地ip 預設閘道器,子網掩碼等資訊
netstat
顯示每個網路介面裝置的連線狀態資訊
Netstat -ltnp 檢視tcp的所有的網路埠
L 監聽 t tcp n 數字 p port
檢視具體某一個埠使用狀態
Netstat -ltnp | grep 8080
防火牆操作
防火牆無法啟動
iptables -F
service iptables save
service iptables restart
Service iptables status 檢視防火牆的狀態
service iptables stop 關閉防火牆
service iptables start 開啟防火牆
Chkconfig iptables off 開機就關掉防火牆Chkconfig iptables on 開機重啟防火牆
Tracert
追蹤每個網點經過的每一個ip地址
如 tracert www.baidu.com
會顯示 這次請求經過的所有的ip地址,最後一個是百度地址。第一是本地地址。
find