Linux常用命令分享

chatGPT發表於2024-01-09

$ 命令列提示符


粗體表示命令


斜體表示引數


    filename, file1, file2 都是檔名。有時檔名有字尾,比如file.zip


    command 命令名


    dir 資料夾名


    string 字串


    username 使用者名稱


    groupname 組名


    regex 正規表示式


    path 路徑


    device 裝置名


    partition 分割槽名


    IP IP地址


    domain 域名


    ID 遠端使用者ID


    host 主機名,可以為IP地址或者域名


    var 變數名


    value 變數值


 


命令幫助

$man command


查詢命令command的說明檔案


    $man -k keyword


    查詢關鍵字


$info command


更加詳細的說明檔案


$whatis command


簡要說明


$which command


command的binary檔案所在路徑


$whereis command


在搜尋路徑中的所有command


 


這裡只是以command (binary file) 為例。比如man還可以用於查詢系統函式、配置檔案等。


 


使用者

$finger username


顯示使用者username的資訊


$who


顯示當前登陸使用者


    $who am I


    一個有趣的用法


$write username


向使用者傳送資訊 (用EOF結束輸入)


$su


成為root使用者


$sudo command


以root使用者身份執行


$passwd


更改密碼


 


SHELL (BASH)

$history


顯示在當前shell下命令歷史


$alias


顯示所有的命令別稱


    $alias new_command='command'


    將命令command別稱為new_command


$env


顯示所有的環境變數


    $export var=value


    設定環境變數var為value   


 


$expr 1 + 1


計算1+1


 


檔案系統

$du -sh dir


資料夾大小, -h 人類可讀的單位, -s 只顯示摘要


$find . -name filename


從當前路徑開始,向下尋找檔案filename


$locate string


尋找包含有string的路徑


    $updatedb


    與find不同,locate並不是實時查詢。你需要更新資料庫,以獲得最新資訊。


$ln -s filename path


為檔案filename在path位置建立軟連結


$pwd


顯示當前路徑


    $cd path


    更改當前工作路徑為path


    $cd -


    更改當前路徑為之前的路徑


 


檔案

$touch filename


如果檔案不存在,建立一個空白檔案;如果檔案存在,更新檔案讀取和修改時間。


$rm filename


刪除檔案


$cp file1 file2


複製file1為file2


$ls -l path


顯示檔案和檔案相關資訊


$mkdir dir


建立dir資料夾


    $mkdir -p path


    遞迴建立路徑path上的所有資料夾


    $rmdir dir


    刪除dir資料夾,dir必須為空資料夾。


    $rm -r dir


    刪除dir資料夾,以及其包含的所有檔案


$file filename


檔案filename的型別描述


$chown username:groupname filename


更改檔案的擁有用會為owner,擁有組為group


$chmod 755 filename


更改檔案的許可權為755: owner r+w+x, group: r+x, others: r+x


 


$od -c filename


以ASCII字元顯示檔案


 


檔案顯示

$cat filename


顯示檔案

    $cat file1 file2


    連線顯示file1和file2


$head -1 filename


顯示檔案第一行


$tail -5 filename


顯示檔案倒數第五行


$diff file1 file2


顯示file1和file2的差別


$sort filename


對檔案中的行排序,並顯示


    $sort -f filename


    排序時,不考慮大小寫


    $sort -u filename


    排序,並去掉重複的行


$uniq filename


顯示檔案filename中不重複的行 (內容相同,但不相鄰的行,不算做重複)


$wc filename


統計檔案中的字元、詞和行數


    $wc -l filename


    統計檔案中的行數


 


文字

$echo string


顯示string


$echo string | cut -c5-7


擷取文字的第5到第7列


$echo string | grep regex


顯示包含正規表示式regex的行


$echo string | grep -o regex


顯示符合正則regrex的子字串


 


時間與日期

$date


當前日期時間


    $date +"%Y-%m-%d_%T"


    以YYYY-MM-DD_HH:MM:SS的格式顯示日期時間 (格式可參考$man date)


    $date --date="1999-01-03 05:30:00" 100 days


    顯示從1900-01-03 05:30:00向後100天的日期時間


$sleep 300 


休眠300秒


 


程式

$top


顯示程式資訊,並實時更新


$ps


顯示當前shell下的程式


    $ps -lu username


    顯示使用者username的程式


    $ps -ajx


    以比較完整的格式顯示所有的程式


$kill PID


殺死PID程式 (PID為Process ID)


    $kill %job


    殺死job工作 (job為job number)


$lsof -u username


使用者username的程式所開啟的檔案


$dmesg


顯示系統日誌


$time a.out


測試a.out的執行時間


 


硬體

$uname -a


顯示系統資訊


$df -lh


顯示所有硬碟的使用狀況


$mount


顯示所有的硬碟分割槽掛載


    $mount partition path


    掛在partition到路徑path


    $umount partition


    解除安裝partition


$sudo fdisk -l


顯示所有的分割槽


    $sudo fdisk device


    為device(比如/dev/sdc)建立分割槽表。 進入後選擇n, p, w


    $sudo mkfs -t ext3 partition


    格式化分割槽patition(比如/dev/sdc1)


    修改 /etc/fstab,以自動掛載分割槽。增加行:


    /dev/sdc1  path(mount point) ext3 defaults 0 0


$arch


顯示架構


$cat /proc/cpuinfo


顯示CPU資訊


$cat /proc/meminfo


顯示記憶體資訊


$free


顯示記憶體使用狀況


$pagesize


顯示記憶體page大小(以KByte為單位)


 


網路

$ifconfig


顯示網路介面以及相應的IP地址。ifconfig可用於設定網路介面


    $ifup eth0


    執行eth0介面


    $ifdown eth0


    關閉eth0介面


$iwconfig


顯示無線網路介面


$route


顯示路由表。route還可以用於修改路由表


$netstat


顯示當前的網路連線狀態


$ping IP


傳送ping包到地址IP


$traceroute IP


探測前往地址IP的路由路徑


$dhclient


向DHCP主機傳送DHCP請求,以獲得IP地址以及其他設定資訊。


$host domain


DNS查詢,尋找域名domain對應的IP


    $host IP


    反向DNS查詢


$wget url


使用wget下載url指向的資源


    $wget -m url 


    映象下載


 


SSH登陸與檔案傳輸

$ssh ID@host


ssh登陸遠端伺服器host,ID為使用者名稱。


$sftp ID@host


登陸伺服器host,ID為使用者名稱。sftp登陸後,可以使用下面的命令進一步操作:


    get filename    # 下載檔案


    put filename    # 上傳檔案


    ls              # 列出host上當前路徑的所有檔案


    cd              # 在host上更改當前路徑


    lls             # 列出本地主機上當前路徑的所有檔案


    lcd             # 在本地主機更改當前路徑


$scp localpath ID@host:path


將本地localpath指向的檔案上傳到遠端主機的path路徑


    $scp -r ID@site:path localpath


    以ssh協議,遍歷下載path路徑下的整個檔案系統,到本地的localpath


 


壓縮與歸檔

$zip file.zip file1 file2


將file1和file2壓縮到file.zip


$unzip file.zip


解壓縮file.zip


 


$gzip -c filename > file.gz


將檔案filename壓縮到file.gz


$gunzip file.gz


解壓縮file.gz檔案


 


$tar -cf file.tar file1 file2


建立tar歸檔


    $tar -zcvf file.tar file1 file2


    建立tar歸檔,並壓縮


    $tar -xf file.tar


    釋放tar歸檔


    $tar -zxf file.tar.gz


    解壓並釋放tar歸檔


 


列印

$lpr filename


列印檔案


$lpstat


顯示所有印表機的狀態


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026630/viewspace-3003285/,如需轉載,請註明出處,否則將追究法律責任。