1. 程式人生 > >Linux基礎命令及命令歷史

Linux基礎命令及命令歷史

resp mbo -1 -type hist tor shell命令 his 遠程

(一)Linux系統上的文件類型

使用ls命令的結果中,最左邊一位表示文件類型:

  • -:常規文件,在其它程序中用f表示,可以繼續使用file命令查看常規文件的類型
  • d:目錄文件/directory
  • b:塊設備文件/block device,支持以“block”為單位進行隨機訪問
  • c:字符設備文件/character device,支持以“character”為單位進行線性訪問
    • ls命令查詢設備文件時,結果中顯示到的不是大小,而是兩個數字,稱為主號和次號,一般用8位二進制表示,逗號分隔
    • 主號:major number/主設備號,用於標識設備類型,進而確定要加載的驅動程序
    • 次號:minor number/次設備號,用於標識同一種類型下的不同的具體設備
  • l:符號鏈接文件/symbolic link
  • p:命名管道/pipe
  • s:套接字文件/socket

(二)基本命令

  • 命令類型
    • 外部命令:每個命令都有一個對應的文件,命令名就是文件名
    • 內部命令:Bash等shell命令自帶很多命令,所以內部命令是指shell的內部命令,而shell本身是一個外部命令
    • 查看命令類型的方法是:type COMMAND。結果中,外部命令顯示文件路徑(但是未必總是如此,因為有些命令有別名),內部命令顯示builtin。
    • 註:命令可以有別名,別名可以與原名相同,此時原名被隱藏,可以加反斜線使用原命令,比如ls其實是ls --color=auto,此時原來的ls被隱藏了,可以用/ls調用原來的ls
    • 使用alias命令可以查看命令別名列表
    • 定義別名的方法是:alias 別名=‘命令‘;如果命令中間沒有空格,可以不加引號,這種方式只對當前shell有效,登出之後就失效了(具有時間限制和範圍限制)。如果想永久有效,需要添加到配置文件中。
    • 撤銷別名的方法是:unalias 別名;
  • Which命令
    • 顯示命令的完整路徑
  • Whereis命令
    • 顯示命令的二進制文件,源碼文件,手冊頁的位置
    • -b:僅搜索二進制文件路徑
    • -m:僅搜索手冊頁路徑
  • who命令
    • 顯示登陸系統的用戶信息,例如下面表示有兩個用戶通過偽終端登陸,一個通過虛擬終端登陸。顯示格式為:用戶名,終端,時間,遠程登陸主機的ip(本機登陸不顯示ip)

        root pts/0 2015-12-10 09:25(172.16.100.100)

        root pts/1 2015-12-10 09:25(172.16.100.100)

        root tty1   2015-12-10 09:25

    • who -b:顯示系統此次啟動的時間
    • who -r:顯示系統運行級別
  • w命令
    • 增強版的who,不光能顯示登陸系統的用戶信息,還能顯示他們當前正在幹什麽

(三)bash的基礎特性

  • 命令歷史:shell進程會在其會話中保存此前用戶提交執行過的命令
    • 使用history命令即可查看命令歷史
    • 定制history的功能,可以通過環境變量實現
      • HISTSIZE:shell進程可以保留的命令歷史的條數
      • HISTFILE:持久保存命令歷史的文件。每個用戶的家目錄裏都有一個隱藏文件.bash_history,在每次用戶登出時,都會將內存中的命令歷史寫進該文件。history命令顯示的內容包括兩部分,文件中的和當前內存中的。
      • HISTFILESIZE:文件所能保存的歷史條數
    • history n:顯示最近n條命令歷史
    • -c:清空內存中的命令歷史
    • -d offset n:清除指定命令歷史
    • -r:從文件讀取命令歷史到內存中
    • -w:把內存中的命令追加到歷史文件中
    • 調用命令歷史列表中的命令:
      • !#:再一次執行歷史列表中的第#條命令
      • !!:再一次執行上一條命令
      • !String:再一次執行歷史列表中最近一次以string開頭的命令
    • 調用上一條命令的最後一個參數:
      • 先按“esc”鍵,再按“.”號鍵
      • 或者在參數的位置輸入“!$”
    • 控制命令歷史記錄的方式:
      • 環境變量:HISTCONTROL
      • 可以有三種取值:
        • 默認ignoredups:忽略重復,只有相鄰一樣才被認為是重復
        • ignorespace:忽略以空白字符開頭的命令,所以我們可以在某個命令前面加空格從而讓它不被記錄
        • ignoreboth:以上兩者同時生效
        • 改變HISTCONTROL值的方式:HISTCONTROL=ignorespace,因為值裏沒有空格,所以不需要加引號。只對當前shell會話有效。

Linux基礎命令及命令歷史