1. 程式人生 > >學習Linux第一周所有命令總結

學習Linux第一周所有命令總結

file 特殊 需要 日期 從數據 什麽是 不用 目前 put

一周總結

開學第一周,總結這周所學知識點

以命令首字母順序整理


alias 用來設置指令的別名

  • alias命令的作用只局限於該次登入的操作。
  • 若要每次登入都能夠使用這些命令別名,則可將相應的alias命令存放到bash的初始化文件/etc/bashrc中。
  • 或者存放在用戶家目錄的.bashrc中

    用法

  • alias 新的命令=‘原命令 -選項/參數‘
  • unalias 別名 (刪除別名)
  • unalias -a 別名 (刪除全部別名)

    編輯家目錄下配置文件(只在當前用戶生效)

    vim ~/.bashrc
    alias v=‘vim‘

    編輯etc目錄下配置文件(在所有用戶生效)

    在文件最後面加入別名設置,如:alias v=’vim’,保存後重新載入:

    source ~/.bashrc

    對所有用戶都有效修改/etc目錄下的bashrc文件
    可以在用戶根目錄下新建一個文件.bash_aliases存放命令別名設置。

bc 計算器

用法

  • 輸入bc開始計算

    設定小數精度(數值範圍)

    scale=2

    進制轉換

    obase=16      #設置輸出為16進制
    ibase=2        #設置輸入為2進制

    計算平方和平方根:

    10^10
    sqrt(100)

    cd切換用戶當前工作目錄

    用法

  • cd (選項) (要切換的目錄)

    選項

  • -p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄
  • -L 如果要切換的目標目錄是一個符號的連接,直接切換到字符連接名代表的目錄,而非符號連接所指向的目標目錄。
  • 當僅實用"-"一個選項時,當前工作目錄將被切換到環境變量"OLDPWD"所表示的目錄。

    實例

    1. 進入用戶主目錄;
      cd 
    2. 進入用戶主目錄;
      cd ~
  1. 返回進入此目錄之前所在的目錄;
    cd - 
  2. 返回上級目錄(若當前目錄為“/“,則執行完後還在“/";".."為上級目錄的意思);
    cd ..
  3. 返回上兩級目錄;
    cd ../..
  4. 把上個命令的參數作為cd參數使用。
    cd !$

    cp 將源文件或目錄復制到目標文件或目錄中

    說明

    • cp命令 用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。
    • 它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。
    • cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。

      用法

      cp (選項) (要復制的文件(可多個文件))  (復制到的目錄)

      選項

      --a:此參數的效果和同時指定"-dpR"參數相同;
      -d:當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄;
      -f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
      -i:覆蓋既有文件之前先詢問用戶;
      -l:對源文件建立硬連接,而非復制文件;
      -p:保留源文件或目錄的屬性;
      -R/r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
      -s:對源文件建立符號連接,而非復制文件;
      -u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才復制文件;
      -S:在備份文件時,用指定的後綴“SUFFIX”代替文件的默認後綴;
      -b:覆蓋已存在的文件目標前將目標文件備份;
      -v:詳細顯示命令執行的操作。
      參數
      ? 源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用

      clock用於調整電腦內建的硬件時間

      選項

      --debug  詳細顯示指令執行過程,便於排錯或了解程序執行的情形。
      --directisa  告訴clock指令不要通過/dev/rtc設備文件,直接對硬件時鐘進行存取。這個參數適用於僅有ISA總線結構的老式電腦。
      --getepoch  把系統核心內的硬件時鐘新時代數值,呈現到標準輸出設備。
      -s / --hctosys  Hardware Clock to System Time,把系統時間設成和硬件時鐘一致。由於這個動作將會造成系統全面更新文件的存取時間,所以最好在系統啟動時就執行它。
      --set--date  設置硬件時鐘的日期和時間。
      --setepoch--epoch=<年份>  設置系統核心之硬件時鐘的新時代數值,年份以四位樹字表示。
      --show  讀取硬件時鐘的時間,並將其呈現至標準輸出設備。
      --systohc  System Time to Hardware Clock,將系統時間存回硬件時鐘內。
      --test  僅作測試,並不真的將時間寫入硬件時鐘或系統時間。
      --utc  把硬件時鐘上的時間時為CUT,有時也稱為UTC或UCT。
      --version  顯示版本信息。

cal顯示當前日歷或指定日期的日歷

語法

cal(選項)(參數)

選項

-l:顯示單月輸出;
-3:顯示臨近三個月的日歷;
-s:將星期日作為月的第一天;
-m:將星期一作為月的第一天;
-j:顯示“julian”日期;
-y:顯示當前年的日歷。

cat連接文件並打印到標準輸出設備上

註意:

  當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,並且返回Shell提示符狀態。

語法

cat(選項)(參數)

選項

-n或--number:從1開始對所有輸出的行數編號;
-b或--number-nonblank:和-n相似,只不過對於空白行不編號;
-s或--squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行;
-A:顯示不可打印字符,行尾顯示“$”;
-e:等價於"-vE"選項;
-t:等價於"-vT"選項;

實例

設m1和m2是當前目錄下的兩個文件
cat m1 (在屏幕上顯示文件m1的內容)
cat m1 m2 (同時顯示文件m1和m2的內容)
cat m1 m2 > file (將文件m1和m2合並後放入文件file中)

df顯示磁盤的相關信息

補充說明

  df命令 用於顯示磁盤分區上的可使用的磁盤空間。默認顯示單位為KB。可以利用該命令來獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。

語法

df(選項)(參數)

選項

-a或--all:包含全部的文件系統;
--block-size=<區塊大小>:以指定的區塊大小來顯示區塊數目;
-h或--human-readable:以可讀性較高的方式來顯示信息;
-H或--si:與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes;
-i或--inodes:顯示inode的信息;
-k或--kilobytes:指定區塊大小為1024字節;
-l或--local:僅顯示本地端的文件系統;
-m或--megabytes:指定區塊大小為1048576字節;
--no-sync:在取得磁盤使用信息前,不要執行sync指令,此為預設值;
-P或--portability:使用POSIX的輸出格式;
--sync:在取得磁盤使用信息前,先執行sync指令;
-t<文件系統類型>或--type=<文件系統類型>:僅顯示指定文件系統類型的磁盤信息;
-T或--print-type:顯示文件系統的類型;
-x<文件系統類型>或--exclude-type=<文件系統類型>:不要顯示指定文件系統類型的磁盤信息;
--help:顯示幫助;
--version:顯示版本信息。

date顯示或設置系統時間與日期

補充說明

  很多shell腳本裏面需要打印不同格式的時間或日期,以及要根據時間和日期執行操作。延時通常用於腳本執行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統中,日期被存儲為一個整數,其大小為自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數。

語法

date(選項)(參數)

選項

-d<字符串>:顯示字符串所指的日期與時間。字符串前後必須加上雙引號;
-s<字符串>:根據字符串來設置日期與時間。字符串前後必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息。

參數

<+時間日期格式>:指定顯示時使用的日期時間格式。

日期格式字符串列表
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分(00~59)
%p 顯示出上午或下午
%r 時間,12小時制
%s 從1970年1月1日0點到目前經歷的秒數
%S 秒(00~59)
%T 時間(24小時制)(hh:mm:ss)
%X 顯示時間的格式(%H時%M分%S秒)
%Z 按字母表排序的時區縮寫
%a 星期名縮寫
%A 星期名全稱
%b 月名縮寫
%B 月名全稱
%c 日期和時間
%d 按月計的日期(01~31)
%D 日期(mm/dd/yy)
%h 和%b選項相同
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一為第一天)
%x 顯示日期的格式(mm/dd/yy)
%y 年份的最後兩個數字(1999則是99)
%Y 年份(比如1970、1996等)
%C 世紀,通常為省略當前年份的後兩位數字
%U 一年中的第幾周,以周日為每星期第一天
%e 按月計的日期,添加空格,等於%_d

實例

格式化輸出:

date +"%Y-%m-%d"
2009-12-07

輸出昨天日期:

date -d "1 day ago" +"%Y-%m-%d"
2012-11-19

2秒後輸出:

date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2012-11-20 14:21.31

傳說中的 1234567890 秒:

date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"  
2009-02-13 23:02:30   

普通轉格式:

date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"  
2009/12/12 00:00.00

apache格式轉換:

date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

格式轉換後時間遊走:

date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37

加減操作:

date +%Y%m%d                   //顯示前天年月日
date -d "+1 day" +%Y%m%d       //顯示前一天的日期
date -d "-1 day" +%Y%m%d       //顯示後一天的日期
date -d "-1 month" +%Y%m%d     //顯示上一月的日期
date -d "+1 month" +%Y%m%d     //顯示下一月的日期
date -d "-1 year" +%Y%m%d      //顯示前一年的日期
date -d "+1 year" +%Y%m%d      //顯示下一年的日期

設定時間:

date -s                        //設置當前時間,只有root權限才能設置,其他只能查看
date -s 20120523               //設置成20120523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01               //設置具體時間,不會對日期做更改
date -s "01:01:01 2012-05-23"  //這樣可以設置全部時間
date -s "01:01:01 20120523"    //這樣可以設置全部時間
date -s "2012-05-23 01:01:01"  //這樣可以設置全部時間
date -s "20120523 01:01:01"    //這樣可以設置全部時間

enable命令

  用於臨時關閉或者激活指定的shell內部命令。
若要執行的文件名稱與shell內建命令相同,可用enable -n來關閉shell內建命令。若不加-n選項,enable可重新啟動關閉的命令。
  linux shell命令執行時,shell總是先在自己的shell builtin中查找該命令,如果找到則執行該命令;如果找不到該命令,則會從環境變量$PATH指定的路徑中依次去查找待執行的命令。因為了解了這一點,所以看起來好像沒有辦法編寫用戶自己的命令來替代shell builtin命令。幸運的是,有了enable命令我們就能做到了。

語法

enable(選項)(參數)

選項

-n:關閉指定的內部命令;
-a:顯示所有激活的內部命令;
-f:從指定文件中讀取內部命令。

實例

使用enable命令顯示所有激活的內部命令:

[root@localhost ~]# enable -a
enable .
enable :
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare  
.....

echo輸出指定的字符串或者變量

語法

echo(選項)(參數)

選項

-e:激活轉義字符。
使用-e選項時,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:

\a 發出警告聲;
\b 刪除前一個字符;
\c 不產生進一步輸出 (\c 後面的字符不會輸出);
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符; 

使用echo命令關機:echo o > /proc/sysrq-trigger reboots

free顯示內存的使用情況

語法

free(選項)

選項

-b # 以Byte為單位顯示內存使用情況;
-k # 以KB為單位顯示內存使用情況;
-m # 以MB為單位顯示內存使用情況;
-g # 以GB為單位顯示內存使用情況。 
-o # 不顯示緩沖區調節列;
-s<間隔秒數> # 持續觀察內存使用狀況;
-t # 顯示內存總和列;
-V # 顯示版本信息

file 用來探測給定文件的類型。

語法

file(選項)(參數)

選項

-b:列出辨識結果時,不顯示文件名稱;
-c:詳細顯示指令執行過程,便於排錯或分析程序執行的情形;
-f<名稱文件>:指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式為每列一個文件名稱;
-L:直接顯示符號連接所指向的文件類別;
-m<魔法數字文件>:指定魔法數字文件;
-v:顯示版本信息;
-z:嘗試去解讀壓縮文件的內容。

history用於顯示歷史命令

補充說明

  用於顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。

  該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。

  歷史命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制。

語法

history(選項)(參數)

選項

-c:清空當前歷史命令;
-a:將歷史命令緩沖區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;
-w:將當前歷史命令緩沖區命令寫入歷史命令文件中。

hexdump顯示文件十六進制格式

語法

hexdump [選項] [文件]...

選項

-n length 只格式化輸入文件的前length個字節。
-C 輸出規範的十六進制和ASCII碼。
-b 單字節八進制顯示。
-c 單字節字符顯示。
-d 雙字節十進制顯示。
-o 雙字節八進制顯示。
-x 雙字節十六進制顯示。
-s 從偏移量開始輸出。
-e 指定格式字符串,格式字符串包含在一對單引號中,格式字符串形如:‘a/b "format1" "format2"‘。

  每個格式字符串由三部分組成,每個由空格分隔,第一個形如a/b,b表示對每b個輸入字節應用format1格式,a表示對每a個輸入字節應用format2格式,一般a>b,且b只能為1,2,4,另外a可以省略,省略則a=1。format1和format2中可以使用類似printf的格式字符串,如:

%02d:兩位十進制
%03x:三位十六進制
%02o:兩位八進制
%c:單個字符等

還有一些特殊的用法:

%_ad:標記下一個輸出字節的序號,用十進制表示。
%_ax:標記下一個輸出字節的序號,用十六進制表示。
%_ao:標記下一個輸出字節的序號,用八進制表示。
%_p:對不能以常規字符顯示的用 . 代替。

同一行如果要顯示多個格式字符串,則可以跟多個-e選項。

實例

hexdump -e ‘16/1 "%02X " "  |  "‘ -e ‘16/1 "%_p" "\n"‘ test
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |  ................  
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F  |  ................  
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F  |   !"#$%&‘()*+,-./ 

halt關閉正在運行的Linux操作系統

補充說明

halt命令 用來關閉正在運行的Linux操作系統。halt命令會先檢測系統的runlevel,若runlevel為0或6,則關閉系統,否則即調用shutdown來關閉系統。

語法

halt(選項)

選項

-d:不要在wtmp中記錄;
-f:不論目前的runlevel為何,不調用shutdown即強制關閉系統;
-i:在halt之前,關閉全部的網絡界面;
-n:halt前,不用先執行sync;
-p:halt之後,執行poweroff;
-w:僅在wtmp中記錄,而不實際結束系統。

實例

halt -p     //關閉系統後關閉電源。
halt -d     //關閉系統,但不留下紀錄。

help

hash顯示、添加或清除哈希表

說明

  linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令時,hash表會記錄下這條命令的路徑,就相當於緩存一樣。
  第一次執行命令shell解釋器默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令才會去PATH路徑下尋找。

實例

hash –l  顯示詳細路徑

-p 添加hash表
hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新寫了一遍,改名為bb

hostname顯示和設置系統的主機名

補充說明

  用於顯示和設置系統的主機名稱。
  環境變量HOSTNAME也保存了當前的主機名。在使用hostname命令設置主機名後,系統並不會永久保存新的主機名,重新啟動機器之後還是原來的主機名。
  如果需要永久修改主機名,需要同時修改/etc/hosts和/etc/sysconfig/network的相關內容。

語法

hostname(選項)(參數)

選項

-v:詳細信息模式;
-a:顯示主機別名;
-d:顯示DNS域名;
-f:顯示FQDN名稱;
-i:顯示主機的ip地址;
-s:顯示短主機名稱,在第一個點處截斷;
-y:顯示NIS域名。

hostnamectl

語法

hostnamectl (選項)(參數)

選項

status                 顯示當前主機名設置  
set-hostname NAME      系統設置主機名  
set-icon-name NAME     設置主機圖標名稱  
set-chassis NAME       為主機設置機箱類型  
set-deployment NAME    為主機設置部署環境  
set-location NAME      設置主機位置  

hwclock顯示與設定硬件時鐘

補充說明

  hwclock命令 是一個硬件時鐘訪問工具,它可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統時間,也可設置系統時間為硬件時鐘的時間。
  在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之後系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。

--hctosys:將系統時鐘調整為與目前的硬件時鐘一致;
--set --date=<日期與時間>:設定硬件時鐘;
--show:顯示硬件時鐘的時間與日期;
--systohc:將硬件時鐘調整為與目前的系統時鐘一致;

init init進程是所有Linux進程的父進程

補充說明

init命令 是Linux下的進程初始化工具,init進程是所有Linux進程的父進程,它的進程號為1

init命令是Linux操作系統中不可缺少的程序之一,init進程是Linux內核引導運行的,是系統中的第一個進程。

語法

init(選項)(參數)

選項

-b:不執行相關腳本而直接進入單用戶模式;
-s:切換到單用戶模式。

參數

運行等級:指定Linux系統要切換到的運行等級。

實例

幾個常用的命令
查看系統進程命令:ps -ef | head
查看init的配置文件:more /etc/inittab
查看系統當前運行的級別:runlevel

運行級別

到底什麽是運行級呢?簡單的說,運行級就是操作系統當前正在運行的功能級別。這個級別從0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介紹。

#0  停機(千萬不能把initdefault 設置為0)
#1  單用戶模式
#2  多用戶,沒有 NFS(和級別3相似,會停止部分服務)
#3  完全多用戶模式 文本界面
#4  沒有用到
#5  x11(Xwindow)
#6  重新啟動(千萬不要把initdefault 設置為6)

id顯示用戶的ID以及所屬群組的ID

補充說明

id命令 可以顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。id命令已經默認預裝在大多數Linux系統中。要使用它,只需要在你的控制臺輸入id。不帶選項輸入id會顯示如下。結果會使用活躍用戶。

當我們想知道某個用戶的UID和GID時id命令是非常有用的。一些程序可能需要UID/GID來運行。id使我們更加容易地找出用戶的UID以GID而不必在/etc/group文件中搜尋。如往常一樣,你可以在控制臺輸入man id進入id的手冊頁來獲取更多的詳情。

語法

id [-gGnru]--[help][--version][用戶名稱]

選項

-g或--group   顯示用戶所屬群組的ID。
-G或--groups   顯示用戶所屬附加群組的ID。
-n或--name    顯示用戶,所屬群組或附加群組的名稱。
-r或--real    顯示實際ID。
-u或--user    顯示用戶ID。
-help         顯示幫助。
-version      顯示版本信息。

用戶root的UID號碼 = 0,GID號碼 = 0。用戶root是下面組的成員:

?   root組GID號是:0
?   bin組GID號是:1
?   daemon組GID號是:2
?   sys組GID號是:3
?   adm組GID號是:4
?   disk組GID號是:6
?   wheel組GID號是:10

ifconfig配置和顯示Linux系統網卡的網絡參數

##補充說明
ifconfig命令 被用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦裏,那就要修改網卡的配置文件了。

語法

ifconfig(參數)

參數

add<地址>:設置網絡設備IPv6的ip地址;
del<地址>:刪除網絡設備IPv6的IP地址;
down:關閉指定的網絡設備;
<hw<網絡設備類型><硬件地址>:設置網絡設備的類型與硬件地址;
io_addr<I/O地址>:設置網絡設備的I/O地址;
irq<IRQ地址>:設置網絡設備的IRQ;
media<網絡媒介類型>:設置網絡設備的媒介類型;
mem_start<內存地址>:設置網絡設備在主內存所占用的起始地址;
metric<數目>:指定在計算數據包的轉送次數時,所要加上的數目;
mtu<字節>:設置網絡設備的MTU;
netmask<子網掩碼>:設置網絡設備的子網掩碼;
tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;

ifup:啟動指定的網絡設備;

-broadcast<地址>:將要送往指定地址的數據包當成廣播數據包來處理;
-pointopoint<地址>:與指定地址的網絡設備建立直接連線,此模式具有保密功能;
-promisc:關閉或啟動指定網絡設備的promiscuous模式;
IP地址:指定網絡設備的IP地址;
網絡設備:指定網絡設備的名稱。
啟動關閉指定網卡:

ifconfig eth0 up  
ifconfig eth0 down  

為網卡配置和刪除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64    #為網卡eth0配置IPv6地址  
ifconfig eth0 del 33ffe:3240:800:1005::2/64    #為網卡eth0刪除IPv6地址  

用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE  

配置IP地址:

[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

啟用和關閉arp協議:

ifconfig eth0 arp    #開啟網卡eth0 的arp協議
ifconfig eth0 -arp   #關閉網卡eth0 的arp協議

設置最大傳輸單元:

ifconfig eth0 mtu 1500    #設置能通過的最大數據包大小為 1500 bytes

其它實例

ifconfig   #處於激活狀態的網絡接口
ifconfig -a  #所有配置的網絡接口,不論其是否激活
ifconfig eth0  #顯示eth0的網卡信息

ls列出當前目錄的內容或指定目錄

用法

ls [options] [ files_or_dirs ]

示例

ls -a 包含隱藏文件
ls -l 顯示額外的信息
ls -R 目錄遞歸通過
ls -ld 目錄和符號鏈接信息
ls -1 文件分行顯示
ls –S 按從大到小排序
ls –t 按mtime排序
ls –u 配合-t選項,顯示並按atime從新到舊排序
ls –U 按目錄存放順序顯示
ls –X 按文件後綴排序

lscpu顯示有關CPU架構的信息

語法

lscpu [選項]

選項

-a, --all               打印在線和離線CPU(默認為-e)
-b, --online            僅打印在線CPU(-p的默認值)
-c, --offline           打印離線CPU
-e, --extended[=<list>] 打印出一個擴展的可讀格式
-p, --parse[=<list>]    打印出可解析的格式
-s, --sysroot <dir>     將指定的目錄用作系統根目錄
-x, --hex               打印十六進制掩碼,而不是CPU列表
-h, --help     顯示此幫助並退出
-V, --version  輸出版本信息並退出

參數
可用列:

CPU           邏輯CPU編號
CORE          邏輯核心號碼
SOCKET        邏輯套接字號
NODE          邏輯NUMA節點號
BOOK          邏輯書號
CACHE         顯示了如何在CPU之間共享高速緩存
POLARIZATION  虛擬硬件上的CPU調度模式
ADDRESS       CPU的物理地址
CONFIGURED    顯示管理程序是否分配了CPU
ONLINE        顯示Linux是否正在使用CPU

lsblk列出塊設備信息

補充說明

  lsblk命令 用於列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關系,但是它不會列出RAM盤的信息。塊設備有硬盤,閃存盤,cd-ROM等等。lsblk命令包含在util-linux-ng包中,現在該包改名為util-linux。這個包帶了幾個其它工具,如dmesg。要安裝lsblk,請在此處下載util-linux包。Fedora用戶可以通過命令sudo yum install util-linux-ng來安裝該包。

選項

-a, --all            顯示所有設備。
-b, --bytes          以bytes方式顯示設備大小。
-d, --nodeps         不顯示 slaves 或 holders。
-D, --discard        print discard capabilities。
-e, --exclude <list> 排除設備 (default: RAM disks)。
-f, --fs             顯示文件系統信息。
-h, --help           顯示幫助信息。
-i, --ascii          use ascii characters only。
-m, --perms          顯示權限信息。
-l, --list           使用列表格式顯示。
-n, --noheadings     不顯示標題。
-o, --output <list>  輸出列。
-P, --pairs          使用key="value"格式顯示。
-r, --raw            使用原始格式顯示。
-t, --topology       顯示拓撲結構信息。

ln用來為文件創件連接

補充說明

ln命令 用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用"-s"選項。

註意:符號鏈接文件不是一個獨立的文件,它的許多屬性依賴於源文件,所以給符號鏈接文件設置存取權限是沒有意義的。

語法

ln [選項]... [-T] 目標 鏈接名    (第一種格式)
 或:ln [選項]... 目標        (第二種格式)
 或:ln [選項]... 目標... 目錄    (第三種格式)
 或:ln [選項]... -t 目錄 目標...    (第四種格式)

選項

--backup[=CONTROL]  為每個已存在的目標文件創建備份文件
-b    類似--backup,但不接受任何參數
-d, -F, --directory   創建指向目錄的硬鏈接(只適用於超級用戶)
-f, --force     強行刪除任何已存在的目標文件
-i, --interactive           覆蓋既有文件之前先詢問用戶;
-L, --logical               取消引用作為符號鏈接的目標
-n, --no-dereference        把符號連接的目的目錄視為一般文件;
-P, --physical              直接將硬鏈接到符號鏈接
-r, --relative              創建相對於鏈接位置的符號鏈接
-s, --symbolic              對源文件建立符號連接,而非硬連接;
-S, --suffix=SUFFIX         用"-b"參數備份目標文件後,備份文件的字尾會被加上一個備份字符串,預設的備份字符串是符號“~”,用戶可通過“-S”參數來改變它;
-t, --target-directory=DIRECTORY  指定要在其中創建鏈接的DIRECTORY
-T, --no-target-directory   將“LINK_NAME”視為常規文件
-v, --verbose               打印每個鏈接文件的名稱
--help    顯示此幫助信息並退出
--version   顯示版本信息並退出

參數

源文件:指定連接的源文件。如果使用-s選項創建符號連接,則“源文件”可以是文件或者目錄。創建硬連接時,則“源文件”參數只能是文件;
目標文件:指定源文件的目標連接文件。
none, off # 不進行備份(即使使用了--backup 選項)
numbered, t # 備份文件加上數字進行排序
existing, nil # 若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
simple, never # 永遠使用普通方式備份

實例

將目錄/usr/mengqc/mub1下的文件m2.c鏈接到目錄/usr/liu下的文件a2.c

cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c

  在執行ln命令之前,目錄/usr/liu中不存在a2.c文件。執行ln之後,在/usr/liu目錄中才有a2.c這一項,表明m2.c和a2.c鏈接起來(註意,二者在物理上是同一文件),利用ls -l命令可以看到鏈接數的變化。

在目錄/usr/liu下建立一個符號鏈接文件abc,使它指向目錄/usr/mengqc/mub1

ln -s /usr/mengqc/mub1 /usr/liu/abc

執行該命令後,/usr/mengqc/mub1代表的路徑將存放在名為/usr/liu/abc的文件中。

知識

  Linux具有為一個文件起多個名字的功能,稱為鏈接。被鏈接的文件可以存放在相同的目錄下,但是必須有不同的文件名,而不用在硬盤上為同樣的數據重復備份。另外,被鏈接的文件也可以有相同的文件名,但是存放在不同的目錄下,這樣只要對一個目錄下的該文件進行修改,就可以完成對所有目錄下同名鏈接文件的修改。對於某個文件的各鏈接文件,我們可以給它們指定不同的存取權限,以控制對信息的共享和增強安全性。

  文件鏈接有兩種形式,即硬鏈接和符號鏈接。

硬鏈接

  建立硬鏈接時,在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中。如圖所示的m2.c文件就在目錄mub1和liu中都建立了目錄項。

  創建硬鏈接後,己經存在的文件的I節點號(Inode)會被多個目錄文件項使用。一個文件的硬鏈接數可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數為l。

  在默認情況下,ln命令創建硬鏈接。ln命令會增加鏈接數,rm命令會減少鏈接數。一個文件除非鏈接數為0,否則不會從文件系統中被物理地刪除。

對硬鏈接有如下限制:

  不能對目錄文件做硬鏈接。
  不能在不同的文件系統之間做硬鏈接。就是說,鏈接文件和被鏈接文件必須位於同一個文件系統中。

符號鏈接

  符號鏈接也稱為軟鏈接,是將一個路徑名鏈接到一個文件。這些文件是一種特別類型的文件。事實上,它只是一個文本文件(如圖中的abc文件),其中包含它提供鏈接的另一個文件的路徑名,如圖中虛線箭頭所示。另一個文件是實際包含所有數據的文件。所有讀、寫文件內容的命令被用於符號鏈接時,將沿著鏈接方向前進來訪問實際的文件。

  與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接並沒有建立新文件。

  符號鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接,也可以在不同文件系統之間做符號鏈接。

  用ln -s命令建立符號鏈接時,源文件最好用絕對路徑名。這樣可以在任何工作目錄下進行符號鏈接。而當源文件用相對路徑時,如果當前的工作路徑與要創建的符號鏈接文件所在路徑不同,就不能進行鏈接。

  符號鏈接保持了鏈接與源文件或目錄之間的區別:

  刪除源文件或目錄,只刪除了數據,不會刪除鏈接。一旦以同樣文件名創建了源文件,鏈接將繼續指向該文件的新數據。
  在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l。
符號鏈接的大小是其鏈接文件的路徑名中的字節數。
  當用ln -s命令列出文件時,可以看到符號鏈接名後有一個箭頭指向源文件或目錄,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的數字“14”恰好說明源文件名original_file由14個字符構成。

mkdir用來創建目錄

-m<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限;  
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一並建立上層目錄;

在當前目錄中建立etc下的file目錄,權限設置為文件主可讀、寫、執行,同組用戶可讀和執行,其他用戶無權訪問

mkdir -p-m 777 etc/file

mv用來對文件或目錄重新命名

補充說明

  mv命令 用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。   source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。

  mv命令可以用來將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中。源文件被移至目標文件有兩種不同的結果:

  如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
  如果目標文件不是目錄文件,則源文件名(只能有一個)會變為此目標文件名,並覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。
註意事項:mv與cp的結果不同,mv好像文件“搬家”,文件個數並未增加。而cp對文件進行復制,文件個數增加了。

語法

mv(選項)(參數)

選項

--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<後綴>:為備份文件指定後綴,而不使用默認的後綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

參數

  源文件:源文件列表。
目標文件:如果“目標文件”是文件名則在移動文件的同時,將其改名為“目標文件”;如果“目標文件”是目錄名則將源文件移動到“目標文件”下。

makewhatis生成man庫

mandb創建或更新手冊頁索引緩存

man 幫助手冊

nano

OLDPWD上一次目錄路徑

pwd絕對路徑方式顯示用戶當前工作目錄

poweroff關閉Linux系統

  關閉記錄會被寫入到/var/log/wtmp日誌文件中。

語法

poweroff [選項]

選項

-n 關閉之前不同步
-p 當被稱為halt時關閉電源
-v 增加輸出,包括消息
-q 降低輸出錯誤唯一的消息
-w 並不實際關閉系統,只是寫入/var/log/wtmp文件中
-f 強制關機,不調用shutdown

Ping測試主機之間網絡的連通性

補充說明

  ping命令 用來測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。

語法

ping(選項)(參數)

選項

-d:使用Socket的SO_DEBUG功能;
-c<完成次數>:設置完成要求回應的次數;
-f:極限檢測;
-i<間隔秒數>:指定收發信息的間隔時間;
-I<網絡界面>:使用指定的網絡界面送出數據包;
-l<前置載入>:設置在送出要求信息之前,先行發出的數據包;
-n:只輸出數值;
-p<範本樣式>:設置填滿數據包的範本樣式;
-q:不顯示指令執行過程,開頭和結尾的相關信息除外;
-r:忽略普通的Routing Table,直接將數據包送到遠端主機上;
-R:記錄路由過程;
-s<數據包大小>:設置數據包的大小;
-t<存活數值>:設置存活數值TTL的大小;
-v:詳細顯示指令的執行過程。

參數

目的主機:指定發送ICMP報文的目的主機。

quit

reboot重啟

語法:

reboot [-dfinw]

補充說明:執行reboot指令可讓系統停止運作,並重新開機。

參數:

-d  重新開機時不把數據寫入記錄文件/var/tmp/wtmp。本參數具有"-n"參數的效果。
-f  強制重新開機,不調用shutdown指令的功能。
-i  在重開機之前,先關閉所有網絡界面。
-n  重開機之前不檢查是否有未結束的程序。
-w  僅做測試,並不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。

stat用於顯示文件的狀態信息

語法

stat(選項)(參數)

選項

-L:支持符號連接;
-f:顯示文件系統狀態而非文件狀態;
-t:以簡潔方式輸出信息;
--help:顯示指令的幫助信息;
--version:顯示指令的版本信息。

三個時間戳:

access time  訪問時間,atime,讀取文件內容
modify time  修改時間, mtime,改變文件內容(數據)
change time  改變時間, ctime,元數據發生改變

scp加密的方式在本地主機和遠程主機之間復制文件

語法

scp(選項)(參數)

選項

-1:使用ssh協議版本1;
-2:使用ssh協議版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批處理模式運行;
-C:使用壓縮;
-F:指定ssh配置文件;
-i:identity_file 從指定文件中讀取傳輸時使用的密鑰文件(例如亞馬遜雲pem),此參數直接傳遞給ssh;
-l:指定寬帶限制;
-o:指定使用的ssh選項;
-P:指定遠程主機的端口號;
-p:保留文件的最後修改時間,最後訪問時間和權限模式;
-q:不顯示復制進度;
-r:以遞歸方式復制。

shutdown以一種安全的方式關閉系統

語法

shutdown(選項)(參數)

選項

-c:當執行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令;
-f:重新啟動時不執行fsck;
-F:重新啟動時執行fsck;
-h:將系統關機;
-k:只是送出信息給所有用戶,但不會實際關機;
-n:不調用init程序進行關機,而由shutdown自己進行;
-r:shutdown之後重新啟動;
-t<秒數>:送出警告信息和刪除信息之間要延遲多少秒。

參數

[時間]:設置多久時間後執行shutdown指令;
[警告信息]:要傳送給所有登入用戶的信息。

實例

指定現在立即關機:

shutdown -h now

指定5分鐘後關機,同時送出警告信息給登入用戶:

shutdown +5 "System will shutdown after 5 minutes"

screen

source在當前Shell環境中從指定文件讀取和執行命令,命令返回退出狀態。

語法

source [文件名] [參數]

例子

讀取和執行/root/.bash_profile文件。

[root@localhost ~]# source ~/.bash_profile

timedatectl

顯示系統的當前時間和日期

timedatectl  status   #結果中RTC time就是硬件時鐘的時間。

Linux系統上的time總是通過系統的timezone設置的,查看當前時區:

# timedatectl | grep Time

3.查看所有可用的時區:

timedatectl list-timezones

4.根據地理位置找到本地的時區:

timedatectl list-timezones |  egrep  -o “Asia/B.*”
timedatectl list-timezones |  egrep  -o “Europe/L.*”
timedatectl list-timezones |  egrep  -o “America/N.*”

5.在Linux中設置本地時區,使用set-timezone開關:

timedatectl set-timezone “Asia/shagnhai”

6.可以使用timedatectl命令設置系統的日期和時間:

timedatectl set-time 15:58:30 #只設置時間的話可以使用set-time開關以及HH:MM:SS(小時,分,秒)的時間格式。

7.只設置日期的話可以使用set-time開關以及YY:MM:DD(年,月,日)的日期格式。

timedatectl set-time 20151120

8.設置日期和時間:

timedatectl set-time ‘16:10:40 2015-11-20‘

9.設置硬件時鐘為UTC可以使用 set-local-rtc boolean-value選:

timedatectl | grep local    #首先確定硬件時鐘是否設置為本地時區:
timedatectl set-local-rtc 1  #將硬件時鐘設置為本地時區:
timedatectl set-local-rtc 0  #將硬件時鐘設置為UTC:

touch創建新的空文件

選項

-a:或--time=atime或--time=access或--time=use  只更改存取時間;
-c:或--no-create  不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現在的時間;
-f:此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題;
-m:或--time=mtime或--time=modify  只更該變動時間;
-r:<參考文件或目錄>  把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間>  使用指定的日期時間,而非現在的時間;

touch -c -t 05061803 test.php     #將檔案時間改為,5月6日18點3分
touch -r abc.php test.php         #將test.php檔案改成跟abc.php一樣
touch -d "2 days ago" test.php   #將test.php日期修改為2天以前

type顯示指定命令的類型

命令類型:

alias:別名。
keyword:關鍵字
Shell保留字。
function:函數
Shell函數。
builtin:內建命令
Shell內建命令。
file:文件,磁盤文件外部命令。
unfound:沒有找到。

語法

type(選項)(參數)

選項

-t:輸出“file”、“alias”或者“builtin”,分別表示給定的指令為“外部指令”、“命令別名”或者“內部指令”;
-p:如果給出的指令為外部指令,則顯示其絕對路徑;
-a:在環境變量“PATH”指定的路徑中,顯示給定指令的信息,包括命令別名。

tty顯示連接到當前標準輸入的終端設備文件名

uname顯示Linux系統信息

補充說明

uname命令 用於打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)。

語法

uname(選項)

選項

-a或--all:顯示全部的信息;
-m或--machine:顯示電腦類型;
-n或-nodename:顯示在網絡上的主機名稱;
-r或--release:顯示操作系統的發行編號;
-s或--sysname:顯示操作系統名稱;
-v:顯示操作系統的版本;
-p或--processor:輸出處理器類型或"unknown";
-i或--hardware-platform:輸出硬件平臺或"unknown";
-o或--operating-system:輸出操作系統名稱;
--help:顯示幫助;
--version:顯示版本信息。

who顯示目前登錄系統的用戶信息

語法

who(選項)(參數)

選項

-H或--heading: 顯示各欄位的標題信息列;
-i或-u或--idle:顯示閑置時間,若該用戶在前一分鐘之內有進行任何動作,將標示成"."號,如  果該用戶已超過24小時沒有任何動作,則標示出"old"字符串;
-m: 此參數的效果和指定"am i"字符串相同;
-q或--count: 只顯示登入系統的帳號名稱和總人數;
-s:此參數將忽略不予處理,僅負責解決who指令其他版本的兼容性問題;
-w或-T或--mesg或--message或--writable:顯示用戶的信息狀態欄;
--help: 在線幫助;
--version:顯示版本信息。

which查找並顯示給定命令的絕對路徑

補充說明

  which命令 用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環境變量$PATH設置的目錄裏查找符合條件的文件。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。which 默認是找 PATH 內所規範的目錄

語法

which(選項)(參數)

選項

-n<文件名長度>:制定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名;
-p<文件名長度>:與-n參數相同,但此處的<文件名長度>包含了文件的路徑;
-w:指定輸出時欄位的寬度;
-V:顯示版本信息。

whereis查找二進制程序、代碼等相關文件路徑

補充說明

  whereis命令 用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。
  whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
  和find相比,whereis查找的速度非常快,這是因為linux系統會將 系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。
  但是該數據庫文件並不是實時更新,默認情況下時一星期更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。

語法

whereis(選項)(參數)

選項

-b:只查找二進制文件;
-B<目錄>:只在設置的目錄下查找二進制文件;
-f:不顯示文件名前的路徑名稱;
-m:只查找說明文件;
-M<目錄>:只在設置的目錄下查找說明文件;
-s:只查找原始代碼文件;
-S<目錄>只在設置的目錄下查找原始代碼文件;
-u:查找不包含指定類型的文件。

參數

指令名:要查找的二進制程序、源文件和man手冊頁的指令名。

whatis

  whatis是用於查詢一個命令執行什麽功能whatis命令在用catman -w命令創建的數據庫中查找command參數指定的命令、系統調用、庫函數或特殊文件名。whatis命令顯示手冊部分的頁眉行。然後可以發出man命令以獲取附加的信息。
  whatis命令等同於使用man -f命令。

who am i打印當前有效的用戶名稱

學習Linux第一周所有命令總結