Linux基礎命令及命令歷史
阿新 • • 發佈:2017-10-01
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基礎命令及命令歷史