1. 程式人生 > 實用技巧 >Linux常用基本命令

Linux常用基本命令

Linux系統的重要性大家都知道,下面我來彙總一下Linux常用的基本命令,有什麼不足或者錯誤的地方希望大家多多指正.

一、基本常用類

1. 幫助手冊
man(manual手冊)
man ls
或者
–help
例如:
ls --help

2. 日期類

date

date +%Y-%m-%d

date +%Y-%m-%d’ ‘%H:%M:%S

date +%F’ '%T

cal

cal -y (展示一年的日曆)

3. clear 或者 ctrl + L 清屏

4. cd切換目錄

cd … 返回上級目錄

cd / 返回至/

cd ~ 返回家目錄

cd /etc/sysconfig 通過絕對路徑訪問(利用tab鍵)

cd ./sysconf 通過相對路徑訪問

cd - 回到上一次所在目錄

二、檔案目錄類

1.pwd

例如: 我用cd~進入家目錄,然後用pwd 展示當前目錄

2 ls

列出當前目錄所有資源

ll 等價於 ls -l

ll -al

下面圖示的依次的列為:

<型別><許可權> <檔案:硬連線數或目錄:子目錄數> < 所屬人> <所屬組> <大小> <建立時間> <檔名>

如果檔案較大,可以用 ll - h 來改變顯示型別,

ll /etc

ll /etc|grep sos.conf 列出指定目錄下的指定檔案及目錄

ll /etc|grep conf 列出帶conf名稱的檔案及目錄

功能:列出目錄的內容

語法:ls [選項] [目錄或是檔案]
命令中主要選項的含義如下:
選項與引數:
-a :全部的檔案,連同隱藏檔( 開頭為 . 的檔案) 一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄內的檔案資料(常用)
-l :長資料串列出,包含檔案的屬性與許可權等等資料;(常用)
 每行列出的資訊依次是: 
檔案型別與許可權 連結數 檔案屬主 檔案屬組 檔案大小(用byte來表示) 建立或最近修改的時間  名字
ls -R   遞迴檢視目錄裡面的內容
ls -F   選項會在顯示目錄條目時,在目錄後加一個/
ls -ltr 逆序羅列最新修改過的檔案,實用。

3. grep

配合顯示內容的命令

例如:上面的圖示

4. mkdir

建立一個新的目錄

-p,可以自行幫你建立多層目錄

例: mkdir 目錄名

5. rmdir

刪除一個空的目錄

例: rmdir aaa

6. touch

新建一個檔案

例:touch 檔名

7. rm

移除檔案或目錄

rmdir deleteEmptyFolder 刪除空目錄

rm -rf deleteFile 遞迴刪除目錄中所有內容–不提示

rm -rvf $JAVA_HOME/* 遞迴刪除目錄中所有內容–提示

**

8. cp

複製檔案或目錄

cp 【要複製的檔案】 【到哪裡】

-r 遞迴複製整個資料夾

-v 顯示覆制過程中檔案的列表

強制覆蓋不提示的方法

臨時方法:用\cp

例如:

cp source dest 作用是複製檔案

cp -r sourceFolder targetFolder 遞迴複製整個資料夾

\cp -rvf a /test 避免悲劇:將a資料夾內容遞迴拷貝到/test目錄下,並進行覆蓋。

9. mv

移動檔案與目錄或重新命名

mv oldNameFile newNameFile 重新命名

mv /temp/movefile /targetFolder 移動檔案

10. cat

檢視檔案,檢視多個檔案,合併輸出,合併追加

cat 檔名 檢視輕量級的文字檔案

cat 檔案1 檔案2 連線顯示多個檔案

cat 檔案1 檔案2 > 檔案3 合併為新檔案

cat 檔案1 檔案2 >> 檔案3 追加內容

案例:

cat springboot2.conf >> springboot.conf

11. more

檢視較長的檔案

空白鍵 (space):代表向下翻一頁

Enter:代表向下翻一行

q:代表立刻離開 more ,不再顯示該檔案內容。

Ctrl+F 向下滾動一屏

Ctrl+B 返回上一屏

12. less

同more類似,比more功能更多。

[pagedown]:向下翻動一頁;

[pageup] :向上翻動一頁;

/字串 :向下搜尋『字串』的功能;

?字串 :向上搜尋『字串』的功能;

n :重複前一個搜尋 (與 / 或 ? 有關!)

N :反向的重複前一個搜尋 (與 / 或 ? 有關!)

more:

less:

less命令的話比more檢視起來更加方便一些.

13. tail

從尾部開始檢視,比較適合檢視日誌

-f 跟隨檢視

-n200 顯示的行數,n可以省略。

案例:

tail -n 10 example.txt 檢視檔案頭10行

tail -50f example.txt 檢視檔案末尾50行,可進行堵塞,檔案有新內容增加到檔案中,立刻可以顯示。

14. history

所敲命令歷史

15. 重定向命令

16. echo

列印資訊 (區分大小寫)

輸出環境變數

在shell指令碼中當system.out.print用

3搜尋查詢類

1. find

查詢檔案或者目錄

解釋: 查詢檔案或者目錄

命令:find+搜尋路徑+引數+搜尋關鍵字

按檔名:find /home/esop -name ‘*.txt’ 根據名稱查詢/目錄下的filename.txt檔案。

按擁有者:find /home/esop -user esop

2. Locate

查詢檔案,查詢速度更快,使用更方便。

執行前需要執行updatedb來更新檔案索引。

updatedb 建立索引

locate conf 查詢速度更快

存放在臨時目錄下的資源是不建立索引的

3. ln

軟連線

相當於window中的快捷方式。

ln -s 原檔案或目錄名 軟連線名

ln -s /etc/sysconfig sysconf

ls -l 可以檢視到列表屬性第一位是l,尾部會採用->顯示連結名稱

如果cd到軟連線目錄,cd …退出到的是軟連線所在目錄

4. grep

在檔案內搜尋字串匹配的行並輸出

配合顯示內容的命令,根據跟隨的內容顯示,該行內容

例如:ls –l |grep xxx

4 壓縮/解壓縮

1 壓縮/解壓縮 檔案(tar)

解釋:打包目錄,壓縮後的檔案格式.tar.gz

壓縮檔案(tar)

tar -zcvf XXX.tar.gz n1.txt

-c 建立一個新歸檔

-v 顯示詳細資訊

-f 指定壓縮後的檔名

-z 通過 gzip 過濾歸檔

2 解壓縮檔案(tar)

tar -zxvf XXX.tar.gz

-x從歸檔中解出檔案

-v 顯示詳細資訊

-f 指定解壓前的檔名

-z 通過 gzip 過濾歸檔

3 壓縮檔案(zip/upzip)

zip

zipmypackage.zip1.txt 2.txt

zip -rpack.zippack/*

4 解壓縮unzip

unzipmypackage.zip

6 網路+程序

1. ifconfig

如何修改IP

圖形化操作:系統->首選項->網路連線

DNS配置:

與閘道器一樣,可以上網

8.8.8.8 測試不能上網

114.114.114.114 可以上網

** 命令方式**

vim /etc/sysconfig/network-scripts/ifcfg-System_eth0  (檔名稱可能不一樣ifcfg-ens33)

DEVICE=eth0    #介面名(裝置,網絡卡)
BOOTPROTO=static  # IP的配置方法[none|static|bootp|dhcp](引導時不使用協議|靜態分配IP|BOOTP協議|DHCP協議) 
BROADCAST=192.168.1.255    #廣播地址    
HWADDR=00:0C:2x:6x:0x:xx    #MAC地址 
IPADDR=192.168.1.23          #IP地址
NETMASK=255.255.255.0       #網路掩碼  
NETWORK=192.168.1.0        #網路地址 
ONBOOT=yes                 #系統啟動的時候網路介面是否有效(yes/no)
TYPE=Ethernet                #網路型別(通常是Ethemet,工業乙太網)
參考:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=4b84fe58-c2ba-421a-b40b-66f31fd2bdb2
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.137.129
PREFIX=24
GATEWAY=192.168.137.2
DNS1=192.168.137.2
PEERDNS=no

重啟網路 service network restart

2. 程序執行緒

3. ps ★

天字1號程序是所有程序的父程序

檢視程序

最常用的方法是

ps -aux,然後再利用一個管道符號導向到grep去查詢特定的程序,然後對程序進行操作

ps –aux|grep xxx

System V展示風格

USER:使用者名稱稱

PID:程序號

%CPU:程序佔用CPU的百分比

%MEM:程序佔用實體記憶體的百分比

VSZ:程序佔用的虛擬記憶體大小(單位:KB)

RSS:程序佔用的實體記憶體大小(單位:KB)

TT:終端名稱,縮寫 .

STAT:程序狀態,其中S-睡眠,s-表示該程序是會話的先導程序,N-表示程序擁有比普通優先順序更低的優先順序,R-正在執行,D-短期等待,Z-僵死程序,T-被跟蹤或者被停止等等

STARTED:程序的啟動時間

TIME:CPU時間,即程序使用CPU的總時間

COMMAND:啟動程序所用的命令和引數,如果過長會被截斷顯示

ps –ef

是以全格式顯示當前所有的程序

-e 顯示所有程序。

-f 全格式。

ps -ef|grep xxx

是BSD風格

UID:使用者ID

PID:程序ID

PPID:父程序ID

C:CPU用於計算執行優先順序的因子。數值越大,表明程序是CPU密集型運算,執行優先順序會降低;數值越小,表明程序是I/O密集型運算,執行優先順序會提高

STIME:程序啟動的時間

TTY:完整的終端名稱

TIME:CPU時間

CMD:啟動程序所用的命令和引數

CentOS6 (天字號1號程序,CentOS6中 /sbin/init)

CentOS7(天字號1號程序,CentOS7中 /usr/lib/systemd/systemd)

最後一個程序,就是剛剛執行的命令程序

綜上:

如果想檢視程序的CPU佔用率和記憶體佔用率,可以使用aux

如果想檢視程序的父程序ID可以使用ef

4. kill 殺死程序

kill pid 通過唯一標識pid殺死程序

-9 強行殺死程序

案例:

在虛擬系統中開啟文字編輯器

檢視gedit程序

殺死gedit程序

殺級別比較高的程序:bash程序(命令列視窗),採用-9

5. killall

killall name 通過程序名稱殺死程序

killall gedit 殺死所有的gedit程序

6. service(CentOS6)

註冊在系統中的標準化程序

方便統一的管理方式(常用的方法)

service 服務名 start

service 服務名 stop

service 服務名 restart

service 服務名 reload

service 服務名 status

檢視服務的方法 /etc/init.d/服務名

通過chkconfig 命令設定自啟動

檢視服務 chkconfig --list|grep xxx

chkconfig --level 5 服務名 on

案例:

顯示系統所有服務

顯示服務有哪些操作

檢視服務狀態(防火牆狀態)

停止服務

檢視服務啟動(執行級別)

CentOS7顯示內容:

vim /etc/inittab

關閉防火牆,檢視級別:vi /etc/inittab

Linux系統有7種執行級別(runlevel):常用的是級別3和5(CentOS7中只有兩個級別了:3和5)

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

執行級別2:多使用者狀態(沒有NFS),不支援網路

執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式

執行級別4:系統未使用,保留

執行級別5:X11控制檯,登陸後進入圖形GUI模式

執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

7. systemctl (Centos7)

註冊在系統中的標準化程式

有方便統一的管理方式(常用的方法)

systemctl start 服務名(xxxx.service)

systemctl restart 服務名(xxxx.service)

systemctl stop 服務名(xxxx.service)

systemctl reload 服務名(xxxx.service)

systemctl status 服務名(xxxx.service)

檢視服務的方法 /usr/lib/systemd/system

檢視服務的命令

systemctl list-unit-files

systemctl --type service

通過systemctl 命令設定自啟動

自啟動systemctl enable service_name

不自啟動systemctl disable service_name

CentOS7設定防火牆自啟動/禁用自啟動

systemctl list-unit-file | grep firewalld

執行級別runlevel(centos7)

檢視預設級別: vim /etc/inittab

Centos7執行級別簡化為:

multi-user.target等價於原執行級別3(多使用者有網,無圖形介面)

graphical.target等價於原執行級別5(多使用者有網,有圖形介面)

8. netstat

檢視埠8080的使用情況,見下:

netstat –anp|grep 8080

檢視網路資訊

檢視22埠狀態