Linux常用命令

Linux常用命令

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

 

在博客的草稿箱裏一直有一份"Linux命令"的草稿,記錄了一些常用的Linux命令,用於需要的時候查詢。由於是出於個人使用的目的,所以這個清單並不完整。今天整理了一下這個清單,調整了格式,並增加了一些內容。現在發佈出來,以拋磚引玉。我也會在未來繼續補充。希望能對Linux用戶有用。

Linux相關背景可參閱Linux的概念與體系系列文章

網絡相關背景可參閱協議森林系列文章

 

下面是格式說明,你現在可以跳過,直到遇到疑問時再來查詢。

$ 命令行提示符

粗體表示命令

斜體表示參數

    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

    設置環境變量varvalue   

 

$expr 1 + 1

計算1+1

 

文件系統

$du -sh dir

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

$find . -name filename

從當前路徑開始,向下尋找文件filename

$locate string

尋找包含有string的路徑

    $updatedb

    與find不同,locate並不是實時查找。你需要更新數據庫,以獲得最新信息。

$ln -s filename path

爲文件filenamepath位置創建軟鏈接

$pwd

顯示當前路徑

    $cd path

    更改當前工作路徑爲path

    $cd -

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

 

文件

$touch filename

如果文件不存在,創建一個空白文件;如果文件存在,更新文件讀取和修改時間。

$rm filename

刪除文件

$cp file1 file2

複製file1file2

$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

顯示file1file2的差別

$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登陸遠程服務器hostID爲用戶名。

$sftp ID@host

登陸服務器hostID爲用戶名。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

file1file2壓縮到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

顯示所有打印機的狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章