歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux常用shell命令

Linux常用shell命令

日期:2017/3/3 15:55:46   编辑:關於Linux

本文章記錄我在linux系統下常用或有用的系統級命令,包括軟硬件查看、修改命令,有CPU、內存、硬盤、網絡、系統管理等命令。但本文不打算介紹生僻命令,也不介紹各個linux發行版下的特有命令,且以後會持續更新。

說明,我是在一個Centos 6.4 64位的虛擬機系統進行測試。本文介紹的命令都會在此Centos下運行驗證(也有部分命令會在我的suse/ubuntu系統裡測試的,會做特明說明),但運行結果就不再列出了。

硬件篇

CPU相關

lscpu #查看的是cpu的統計信息.

cat /proc/cpuinfo #查看CPU信息詳細信息,如每個CPU的型號,主頻等

內存相關

free -m #概要查看內存情況 這裡的單位是MB

cat /proc/meminfo #查看內存詳細信息

磁盤相關

lsblk #查看硬盤和分區分布,顯示很直觀

df -h #查看各分區使用情況

cat /proc/partitions #查看硬盤和分區

mount | column -t #查看掛接的分區狀態

網卡相關

lspci | grep -i 'eth' #查看網卡硬件信息

ifconfig -a #查看系統的所有網絡接口

ethtool eth0 #如果要查看某個網絡接口的詳細信息,例如eth0的詳細參數和指標

軟件篇

內核相關

uname -a                #查看版本當前操作系統內核信息)
cat /proc/version       #查看當前操作系統版本信息
cat /etc/issue          #查看版本當前操作系統發行版信息
cat /etc/redhat-release #同上
cat /etc/SuSE-release   #suse系統下才可使用
lsb_release -a          #用來查看linux兼容性的發行版信息
lsmod                   #列出加載的內核模塊

網絡

ifconfig                #查看所有網絡接口的屬性
iptables -L             #查看防火牆設置
service iptables status #查看防火牆狀態
service iptables stop   #關閉防火牆
route -n                #查看路由表
netstat -lntp           #查看所有監聽端口
netstat -antp           #查看所有已經建立的連接
netstat -s              #查看網絡統計信息進程
netstat -at             #列出所有tcp端口
netstat -au             #列出所有udp端口
netstat -lt             #只列出所有監聽tcp端口

系統管理

top                     #查看系統所有進程的詳細信息,比如CPU、內存等,信息很多!
df -lh                  #查看硬盤大小及使用率
mount                   #掛接遠程目錄、NFS、本地共享目錄到linux下
hostname                #查看/修改計算機名
w                       #查看活動用戶
id                      #查看指定用戶信息
last                    #查看用戶登錄日志
cut -d: -f1 /etc/passwd #查看系統所有用戶
cut -d: -f1 /etc/group  #查看系統所有組
crontab -l              #查看當前用戶的計劃任務服務
chkconfig –list         #列出所有系統服務
chkconfig –list | grep on #列出所有啟動的系統服務程序
rpm -qa                 #查看所有安裝的軟件包
uptime                  #查看系統運行時間、用戶數、負載    
/sbin/chkconfig --list  #查看系統自動啟動列表
/sbin/chkconfig –add mysql #把MySQL添加到系統的啟動服務組裡面

文件相關

ls -lht #列出一個文件夾下所有文件及大小、訪問權限

du -sh <dir> #查看指定目錄的大小

du -lh <dir> #查看指定目錄及各文件的大小

ln -s #建立軟鏈接

進程相關

pstree -p pid           #查看一個進程下的所有線程
pstree  -a              #顯示所有進程的所有詳細信息,遇到相同的進程名可以壓縮顯示。
ps -ef                  #查看所有進程
kill -9 pid             #殺死進程
kill all test           #殺死進程
kill -9 `pgrep test`    #殺死進程
./test.sh &             #使程序在後台運行
nohup ./test.sh &       #使程序在後台運行

壓縮解壓縮

zip -r dir.zip dir file #將目錄dir、文件file等壓縮到zip包,

zip -re dir.zip dir file #創建zip包,且加密

unzip dir.zip #解壓

tar -zcvf dir.tar.gz dir file #將目錄dir、文件file等壓縮到tar包

tar -xf dir.tar.gz #解壓

screen命令

更多精彩內容:http://www.bianceng.cn/OS/Linux/

screen命令組最大的好處就是當你的shell退出或關閉後,你運行的服務不會關系,也就是說,我們可以在screen裡開啟一組服務,且不受終端斷開的影響。

screen -S test          #創建一個名字為test的screen
screen -r test          #打開名字為test的screen
screen -r pid           #打開進程號為pid的screen
screen -ls              #列出所有的screen
ctrl + a,d              #當在一個screen時,退出screen
ctrl + a,n              #當在一個screen時,切換到下一個窗口
ctrl + a,c              #當在一個screen時,創建一個新的窗口

scp命令

scp local_file remote_username@remote_ip:remote_dir #拷貝本地文件到遠程機器上

scp -r local_dir remote_username@remote_ip:remote_dir #拷貝本地整個目錄到遠程機器上

軟件包安裝管理命令

假設你想要安裝的軟件包叫做app,注意,這裡的命令通常需要sudo或者root權限。

//centos系統、redhat系統
rpm -qa | grep app      #查找本機是否安裝了app;
rpm -ivh app.rpm        #假設你有app的rpm包,這樣直接安裝
sudo yum install app    #否則就在線安裝
yum update app          #更新app
rpm -e app              #刪除已安裝的app包
//suse、opensuse系統
zypper search app       #查找本機是否安裝了app;
zypper install app      #安裝
zypper update app       #更新
zypper remove app       #刪除
zypper lr               #列出所有已定義的安裝源。
zypper    ar            #添加新安裝源。
zypper    rr            #刪除指定的安裝源
zypper    mr            #修改指定的安裝源
//ubuntu系統
apt-get install app     #安裝
apt-get update app      #更新
apt-get remove app      #刪除    
apt-cache search app    #搜索軟件包
dpkg -i app.deb         #假設你有app的deb包,這樣直接安裝

請關注,後續隨著使用的深入還會持續更新。

作者:cnblogs lizhenghn

Copyright © Linux教程網 All Rights Reserved